LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
LArSoft utility namespace. More...
Namespaces | |
detail | |
details | |
LArSoft utility implementation details. | |
simple_geo | |
Simple class definitions for geometry concepts. | |
Classes | |
struct | assns_has_metadata |
Trait: value true if Assns (association or its node) has metadata. More... | |
struct | assns_iterator_type |
Trait: type is iterator of Assns . More... | |
struct | assns_iterator_type< art::Assns< L, R, D > > |
struct | assns_iterator_type< art::Assns< L, R, void > > |
struct | assns_metadata_type |
Trait: type is metadata in Assns (association or its node). More... | |
struct | assns_metadata_type< art::Assns< L, R, D > > |
struct | assns_metadata_type< art::AssnsNode< L, R, D > > |
struct | assns_metadata_type< proxy::details::AssnsNode< ArtAssnsIterValue > > |
struct | assns_metadata_type< std::pair< art::Ptr< L >, art::Ptr< R > > > |
struct | assns_traits |
Data types for the specified association type (or its node). More... | |
struct | assns_traits< art::Assns< L, R, D > > |
struct | assns_traits< art::AssnsNode< L, R, D > > |
struct | assns_traits< std::pair< art::Ptr< L >, art::Ptr< R > > > |
class | ChiSquareAccumulator |
Computes a χ² from expectation function and data points. More... | |
struct | dereferenced_type |
Class defining the dereferenced type of the specified type. More... | |
class | GaussianFit |
"Fast" Gaussian fit More... | |
struct | identity |
A unary functor returning its own argument (any type) More... | |
class | LinearFit |
Performs a linear regression of data. More... | |
class | MinMaxCollector |
Keeps track of the minimum and maximum value we observed. More... | |
class | QuadraticFit |
Performs a second-degree fit of data. More... | |
struct | RealComparisons |
Provides simple real number checks. More... | |
class | StatCollector |
Collects statistics on a single quantity (weighted) More... | |
class | StatCollector2D |
Collects statistics on two homogeneous quantities (weighted) More... | |
struct | Vector2DComparison |
Class comparing 2D vectors. More... | |
struct | Vector3DComparison |
Class comparing 2D vectors. More... | |
Typedefs | |
template<typename Iter > | |
using | DereferenceConstIterator = detail::DereferenceIteratorBase< Iter, std::add_const_t< std::decay_t< decltype(**(std::declval< Iter >()))>> > |
An iterator wrapper to dereference pointed values. More... | |
template<typename Iter > | |
using | DereferenceIterator = detail::DereferenceIteratorBase< Iter, std::decay_t< decltype(**(std::declval< Iter >()))> > |
An iterator wrapper to dereferencing pointed values as constant. More... | |
using | HitToWire = details::FindAllP< recob::Hit, recob::Wire > |
Query object connecting a hit to a wire. More... | |
template<typename Assns > | |
using | assns_metadata_t = typename assns_metadata_type< Assns >::type |
Trait: type of metadata in Assns (association or its node). More... | |
template<typename Assns > | |
using | assns_iterator_t = typename assns_iterator_type< Assns >::type |
Trait: type of iterator of Assns . More... | |
Functions | |
template<typename Iter > | |
auto | makeDereferenceIterator (Iter &&iter) |
Returns a dereference iterator to the begin of specified container. More... | |
template<typename Cont > | |
auto | beginDereferenceIterator (Cont &cont) |
Returns a dereference iterator to the begin of specified container. More... | |
template<typename Cont > | |
auto | endDereferenceIterator (Cont &cont) |
Returns a dereference iterator to the end of specified container. More... | |
template<typename Cont > | |
auto | rbeginDereferenceIterator (Cont &cont) |
Returns a dereference reverse iterator to the begin of container. More... | |
template<typename Cont > | |
auto | rendDereferenceIterator (Cont &cont) |
Returns a dereference reverse iterator to the end of container. More... | |
template<typename Cont > | |
auto | dereferenceIteratorLoop (Cont &cont) |
Returns an object enabling a dereferencing range-for loop. More... | |
template<typename Cont > | |
auto | dereferenceIteratorReverseLoop (Cont &cont) |
Returns an object enabling a dereferencing reverse range-for loop. More... | |
template<typename RealType > | |
auto | makeVector2DComparison (RealType threshold) |
Creates a Vector2DComparison from a RealComparisons object. More... | |
template<typename RealType > | |
auto | makeVector2DComparison (lar::util::RealComparisons< RealType > const &comp) |
Creates a Vector2DComparison from a RealComparisons object. More... | |
template<typename RealType > | |
auto | makeVector3DComparison (RealType threshold) |
Creates a Vector3DComparison from a RealComparisons object. More... | |
template<typename RealType > | |
auto | makeVector3DComparison (lar::util::RealComparisons< RealType > const &comp) |
Creates a Vector3DComparison from a RealComparisons object. More... | |
double | TrackProjectedLength (recob::Track const &track, geo::View_t view) |
Returns the length of the projection of a track on a view. More... | |
double | TrackPitchInView (recob::Track const &track, geo::View_t view, size_t trajectory_point=0) |
Provides projected wire pitch for the view. More... | |
template<typename F > | |
auto | makeChiSquareAccumulator (F &&e) |
Creates a ChiSquareAccumulator object with the specified function. More... | |
template<typename T , typename F > | |
auto | makeChiSquareAccumulator (F &&e) |
Creates a ChiSquareAccumulator object with the specified function. More... | |
template<typename T > | |
details::dereference_class< T, details::has_dereference_class< T >::value >::reference_type | dereference (T &v) |
Returns the value pointed by the argument, or the argument itself. More... | |
template<typename T > | |
details::make_pointer_class< T, details::has_dereference_class< T >::value >::pointer_type | make_pointer (T &v) |
Returns a pointer to the value of argument, or the argument itself. More... | |
Constant iterator functions | |
See the documentation of the similar non-const ones. | |
template<typename Iter > | |
auto | makeDereferenceConstIterator (Iter &&iter) |
template<typename Cont > | |
auto | cbeginDereferenceIterator (Cont &cont) |
template<typename Cont > | |
auto | cendDereferenceIterator (Cont &cont) |
template<typename Cont > | |
auto | crbeginDereferenceIterator (Cont &cont) |
template<typename Cont > | |
auto | crendDereferenceIterator (Cont &cont) |
template<typename Cont > | |
auto | dereferenceConstIteratorLoop (Cont &cont) |
Returns an object enabling a dereferencing range-for loop. More... | |
template<typename Cont > | |
auto | dereferenceConstIteratorReverseLoop (Cont &cont) |
Returns an object enabling a dereferencing reverse range-for loop. More... | |
Variables | |
template<typename Assns > | |
constexpr bool | assns_has_metadata_v = assns_has_metadata<Assns>::value |
Trait: true if Assns (association or its node) has metadata. More... | |
LArSoft utility namespace.
LArSoft utilities namespace.
using lar::util::DereferenceConstIterator = typedef detail::DereferenceIteratorBase< Iter, std::add_const_t<std::decay_t<decltype(**(std::declval<Iter>()))>> > |
An iterator wrapper to dereference pointed values.
Iter | type of iterator being wrapped |
This iterator is useful to iterate a collection of pointers accessing directly the pointed values.
It's probably easier to use cbeginDereferenceIterator(), cendDereferenceIterator() and dereferenceConstIteratorLoop() rather than instantiating this class directly.
Definition at line 214 of file DereferenceIterator.h.
using lar::util::DereferenceIterator = typedef detail::DereferenceIteratorBase< Iter, std::decay_t<decltype(**(std::declval<Iter>()))> > |
An iterator wrapper to dereferencing pointed values as constant.
Iter | type of iterator being wrapped |
This class behaves like DereferenceConstIterator, except that it returns mutable references to values.
Definition at line 228 of file DereferenceIterator.h.
using lar::util::HitToWire = typedef details::FindAllP<recob::Hit, recob::Wire> |
Query object connecting a hit to a wire.
Once upon a time, recob::Hit had a art::Ptr<recob::Wire> in it, and life was easy. When it was discovered that art pointers in data products were evil, they were banned from recob::Hit. As always, evil turns out to be convenient. This query object tries to provide in an efficient way a connection between a hit and the wire that has generated it.
This object expects
Example of usage: let hit_ptr be a valid art::Ptr<recob::Hit>. Then
HitToWire HtoW(evt); art::Ptr<recob::Wire> wire_ptr = HtoW[hit_ptr];
If the association label is known, it can be used to selectively load that association:
HitToWire HtoW(evt, AssociationInputTag); art::Ptr<recob::Wire> wire_ptr = HtoW[hit_ptr];
that has little advantage (in fact, it is possibly slower) respect to using art::FindOneP.
Definition at line 56 of file HitUtils.h.
auto lar::util::beginDereferenceIterator | ( | Cont & | cont | ) |
Returns a dereference iterator to the begin of specified container.
Cont | type of the container (may be constant) |
cont | container to extract the iterator from |
If the type is constant, the iterator will likely be constant too. This wrapper is quite blind to the meaning of iterators and their constantness.
Definition at line 260 of file DereferenceIterator.h.
References makeDereferenceIterator().
Referenced by dereferenceIteratorLoop().
auto lar::util::cbeginDereferenceIterator | ( | Cont & | cont | ) |
Definition at line 386 of file DereferenceIterator.h.
References makeDereferenceConstIterator().
Referenced by dereferenceConstIteratorLoop().
auto lar::util::cendDereferenceIterator | ( | Cont & | cont | ) |
Definition at line 391 of file DereferenceIterator.h.
References makeDereferenceConstIterator().
Referenced by dereferenceConstIteratorLoop().
auto lar::util::crbeginDereferenceIterator | ( | Cont & | cont | ) |
Definition at line 396 of file DereferenceIterator.h.
References makeDereferenceConstIterator().
Referenced by dereferenceConstIteratorReverseLoop().
auto lar::util::crendDereferenceIterator | ( | Cont & | cont | ) |
Definition at line 401 of file DereferenceIterator.h.
References makeDereferenceConstIterator().
Referenced by dereferenceConstIteratorReverseLoop().
|
inline |
Returns the value pointed by the argument, or the argument itself.
T | the type of the argument |
v | the value to be dereferenced |
This function allows the use of the same template code to process both pointers and pointed values. For example:
template <typename T> std::vector<int> extract_int(std::vector<T> const& from) { std::vector<int> v; v.reserve(from.size()); std::transform(from.begin(), from.end(), std::back_inserter(v), util::dereference); return v; } int value = 10; std::vector<int> v(10, value); std::vector<int*> v_ptr(10, &value); extract_int(v); extract_int(v_ptr);
shows that the same function can be used on vectors of integers and of their pointers.
Definition at line 254 of file Dereference.h.
Referenced by util::PxHitConverter::ToPxHit().
auto lar::util::dereferenceConstIteratorLoop | ( | Cont & | cont | ) |
Returns an object enabling a dereferencing range-for loop.
Cont | type of the container (may be constant) |
cont | container to extract the iterator from |
Example of usage:
This wrapper forces the iteration variable to be constant.
Definition at line 427 of file DereferenceIterator.h.
References cbeginDereferenceIterator(), cendDereferenceIterator(), and lar::util::detail::makeIteratorBox().
auto lar::util::dereferenceConstIteratorReverseLoop | ( | Cont & | cont | ) |
Returns an object enabling a dereferencing reverse range-for loop.
Cont | type of the container (may be constant) |
cont | container to extract the iterator from |
This function is similar to dereferenceConstIteratorLoop(), but the order of iteration is reversed.
Example of usage:
If the type is constant, the loop variable will likely be constant too. This wrapper is quite blind to the meaning of iterators and their constantness.
Definition at line 463 of file DereferenceIterator.h.
References crbeginDereferenceIterator(), crendDereferenceIterator(), and lar::util::detail::makeIteratorBox().
auto lar::util::dereferenceIteratorLoop | ( | Cont & | cont | ) |
Returns an object enabling a dereferencing range-for loop.
Cont | type of the container (may be constant) |
cont | container to extract the iterator from |
Example of usage:
If the type is constant, the loop variable will likely be constant too. This wrapper is quite blind to the meaning of iterators and their constantness.
Definition at line 331 of file DereferenceIterator.h.
References beginDereferenceIterator(), endDereferenceIterator(), and lar::util::detail::makeIteratorBox().
auto lar::util::dereferenceIteratorReverseLoop | ( | Cont & | cont | ) |
Returns an object enabling a dereferencing reverse range-for loop.
Cont | type of the container (may be constant) |
cont | container to extract the iterator from |
This function is similar to dereferenceIteratorLoop(), but the order of iteration is reversed.
Example of usage:
If the type is constant, the loop variable will likely be constant too. This wrapper is quite blind to the meaning of iterators and their constantness.
Definition at line 367 of file DereferenceIterator.h.
References lar::util::detail::makeIteratorBox(), rbeginDereferenceIterator(), and rendDereferenceIterator().
auto lar::util::endDereferenceIterator | ( | Cont & | cont | ) |
Returns a dereference iterator to the end of specified container.
Cont | type of the container (may be constant) |
cont | container to extract the iterator from |
If the type is constant, the iterator will likely be constant too. This wrapper is quite blind to the meaning of iterators and their constantness.
Definition at line 274 of file DereferenceIterator.h.
References makeDereferenceIterator().
Referenced by dereferenceIteratorLoop().
|
inline |
Returns a pointer to the value of argument, or the argument itself.
T | the type of the argument |
v | the value to be taken the pointer of |
This function allows the use of the same template code to process both pointers and pointed values. For example:
template <typename T> std::vector<int*> extract_int(std::vector<T> const& from) { std::vector<int*> v; v.reserve(from.size()); std::transform(from.begin(), from.end(), std::back_inserter(v), util::make_pointer); return v; } int value = 10; std::vector<int> v(10, value); std::vector<int*> v_ptr(10, &value); extract_int(v); extract_int(v_ptr);
shows that the same function can be used on vectors of integers and of their pointers.
Definition at line 293 of file Dereference.h.
Referenced by cluster::ClusterParamsImportWrapper< Algo >::ImportHits().
auto lar::util::makeChiSquareAccumulator | ( | F && | e | ) |
Creates a ChiSquareAccumulator
object with the specified function.
F | type of function (deduced from e ) |
e | expectation function |
ChiSquareAccumulator<F>
instance with specified expectationExample of usage:
declare chiSquare
in a way equivalent to: lar::util::ChiSquareAccumulator<decltype(zero)> chiSquare(zero)
.
Definition at line 161 of file ChiSquareAccumulator.h.
References e.
auto lar::util::makeChiSquareAccumulator | ( | F && | e | ) |
Creates a ChiSquareAccumulator
object with the specified function.
T | type of data (default: double ) |
F | type of function (deduced from e ) |
e | expectation function |
ChiSquareAccumulator<F,T>
instance with specified expectationExample of usage:
declare chiSquare
in a way equivalent to: lar::util::ChiSquareAccumulator<decltype(zero), float> chiSquare(zero)
.
Definition at line 180 of file ChiSquareAccumulator.h.
References e.
auto lar::util::makeDereferenceConstIterator | ( | Iter && | iter | ) |
Definition at line 381 of file DereferenceIterator.h.
Referenced by cbeginDereferenceIterator(), cendDereferenceIterator(), crbeginDereferenceIterator(), and crendDereferenceIterator().
auto lar::util::makeDereferenceIterator | ( | Iter && | iter | ) |
Returns a dereference iterator to the begin of specified container.
Iter | type of the iterator to be wrapped (may be constant) |
iter | the iterator to be wrapped |
If the type is constant, the iterator will likely be constant too. This wrapper is quite blind to the meaning of iterators and their constantness.
Definition at line 246 of file DereferenceIterator.h.
Referenced by beginDereferenceIterator(), endDereferenceIterator(), rbeginDereferenceIterator(), and rendDereferenceIterator().
auto lar::util::makeVector2DComparison | ( | RealType | threshold | ) |
Creates a Vector2DComparison
from a RealComparisons
object.
Definition at line 187 of file RealComparisons.h.
References lar::util::RealComparisons< RealType >::threshold.
auto lar::util::makeVector2DComparison | ( | lar::util::RealComparisons< RealType > const & | comp | ) |
Creates a Vector2DComparison
from a RealComparisons
object.
Definition at line 193 of file RealComparisons.h.
auto lar::util::makeVector3DComparison | ( | RealType | threshold | ) |
Creates a Vector3DComparison
from a RealComparisons
object.
Definition at line 252 of file RealComparisons.h.
References lar::util::RealComparisons< RealType >::threshold.
Referenced by checkTPCcoords(), groupTPCsByDriftDir(), geo::TPCGeo::UpdateAfterSorting(), and geo::PlaneGeo::UpdateWireDir().
auto lar::util::makeVector3DComparison | ( | lar::util::RealComparisons< RealType > const & | comp | ) |
Creates a Vector3DComparison
from a RealComparisons
object.
Definition at line 258 of file RealComparisons.h.
auto lar::util::rbeginDereferenceIterator | ( | Cont & | cont | ) |
Returns a dereference reverse iterator to the begin of container.
Cont | type of the container (may be constant) |
cont | container to extract the iterator from |
If the type is constant, the iterator will likely be constant too. This wrapper is quite blind to the meaning of iterators and their constantness.
Definition at line 288 of file DereferenceIterator.h.
References makeDereferenceIterator().
Referenced by dereferenceIteratorReverseLoop().
auto lar::util::rendDereferenceIterator | ( | Cont & | cont | ) |
Returns a dereference reverse iterator to the end of container.
Cont | type of the container (may be constant) |
cont | container to extract the iterator from |
If the type is constant, the iterator will likely be constant too. This wrapper is quite blind to the meaning of iterators and their constantness.
Definition at line 302 of file DereferenceIterator.h.
References makeDereferenceIterator().
Referenced by dereferenceIteratorReverseLoop().
double lar::util::TrackPitchInView | ( | recob::Track const & | track, |
geo::View_t | view, | ||
size_t | trajectory_point = 0 |
||
) |
Provides projected wire pitch for the view.
track | the track to be projected on a view |
view | the view for track projection |
trajectory_point | at which point of the track to look for the pitch (default: 0) |
The point of the trajectory with the specified index (by default, the first point of the trajectory) is projected into the specified view, and the effective distance between two wires along the direction the track is pointing to at that point is computed and returned.
Definition at line 76 of file TrackUtils.cxx.
References geo::CryostatID::Cryostat, dir, recob::Track::DirectionAtPoint(), e, geo::CryostatID::isValid, geo::kUnknown, recob::Track::LocationAtPoint(), recob::Track::NumberTrajectoryPoints(), and geo::TPCID::TPC.
Referenced by calo::TrackCalorimetryAlg::AnalyzeHit(), shower::EMShowerAlg::FinddEdx(), calo::Calorimetry::produce(), and TrackProjectedLength().
double lar::util::TrackProjectedLength | ( | recob::Track const & | track, |
geo::View_t | view | ||
) |
Returns the length of the projection of a track on a view.
track | the track to be projected on a view |
view | the view to project the track on |
Definition at line 32 of file TrackUtils.cxx.
References recob::Track::DirectionAtPoint(), geo::kUnknown, recob::Track::LocationAtPoint(), recob::Track::NumberTrajectoryPoints(), and TrackPitchInView().