Algorithm collection class computing cluster parameters. More...
#include <ClusterParamsAlgBase.h>
Public Types | |
using | Measure_t = details::Measure_t< float > |
Type used to return values with errors. More... | |
Public Member Functions | |
virtual | ~ClusterParamsAlgBase ()=default |
virtual void | Clear () |
Restores the class to post-configuration, pre-initialization state. More... | |
virtual void | SetHits (util::GeometryUtilities const &gser, std::vector< recob::Hit const * > const &hits)=0 |
Sets the list of input hits. More... | |
virtual void | SetHits (util::GeometryUtilities const &gser, std::vector< recob::Hit > const &hits) |
Sets the list of input hits. More... | |
virtual void | SetVerbose (int level=1) |
Set the verbosity level. More... | |
virtual size_t | NHits () |
Returns the number of hits in the cluster. More... | |
virtual float | MultipleHitDensity () |
Fraction of wires in the cluster with more than one hit. More... | |
virtual float | Width (util::GeometryUtilities const &) |
Computes the width of the cluster. More... | |
virtual Measure_t | StartCharge (util::GeometryUtilities const &gser) |
Computes the charge on the first and last wire of the track. More... | |
virtual Measure_t | EndCharge (util::GeometryUtilities const &gser) |
virtual Measure_t | StartAngle () |
Computes the angle at the start or end of the cluster. More... | |
virtual Measure_t | EndAngle () |
virtual Measure_t | StartOpeningAngle () |
Computes the opening angle at the start or end of the cluster. More... | |
virtual Measure_t | EndOpeningAngle () |
Cluster charge | |
virtual Measure_t | Integral () |
Computes the total charge of the cluster from Hit::Integral() More... | |
virtual Measure_t | IntegralStdDev () |
Computes the standard deviation on the charge of the cluster hits. More... | |
virtual Measure_t | SummedADC () |
Computes the total charge of the cluster from Hit::SummedADC() More... | |
virtual Measure_t | SummedADCStdDev () |
Computes the standard deviation on the charge of the cluster hits. More... | |
Static Protected Member Functions | |
static std::logic_error | NotImplemented (std::string function_name) |
Protected Attributes | |
int | verbose = 0 |
verbosity level: 0 is normal, negative is even quieter More... | |
Algorithm collection class computing cluster parameters.
This class is an interface only. The implementing classes should implement constructors able to read the necessary information from hit lists, and any of the virtual algorithms.
The interface allows for the single extraction of the information required in recob::Cluster version 14. The implementation can compute and cache different variables at once. The accessor functions are non-const, allowing the caching of the quantity after computation (without using mutable cache members).
The default algorithm functions throw an exception.
The algorithms require a list of hits as input. The structure chosen for this interface is recob::Hit from LArSoft, since it is complete by definition and it does not carry deep dependences (in fact, recob::Hit version 14 has only larreco/SimpleTypesAndConstants.h as compile-time dependency, and no external link-time dependency beside standard C++).
Definition at line 102 of file ClusterParamsAlgBase.h.
using cluster::ClusterParamsAlgBase::Measure_t = details::Measure_t<float> |
Type used to return values with errors.
Definition at line 105 of file ClusterParamsAlgBase.h.
|
virtualdefault |
|
inlinevirtual |
Restores the class to post-configuration, pre-initialization state.
This function is expected to be called before SetHits(), and the implementation might call it in SetHits() itself.
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::LazyClusterParamsAlg, and cluster::StandardClusterParamsAlg.
Definition at line 116 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 203 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 186 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 220 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Computes the total charge of the cluster from Hit::Integral()
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 234 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Computes the standard deviation on the charge of the cluster hits.
Hit charge is obtained by recob::Hit::Integral().
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 247 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Fraction of wires in the cluster with more than one hit.
Returns a quantity defined as NMultiHitWires / NWires, where NWires is the number of wires hosting at least one hit of this cluster, and NMultiHitWires is the number of wires which have more than just one hit.
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 295 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Returns the number of hits in the cluster.
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 280 of file ClusterParamsAlgBase.h.
|
inlinestaticprotected |
Definition at line 315 of file ClusterParamsAlgBase.h.
|
pure virtual |
Sets the list of input hits.
hits | list of pointers to hits |
undefined | in case of error, this method can throw (anything) |
The hits are in the LArSoft format of recob::Hits, that should have enough information for all the algorithms. The hits are passed as constant pointers. The implementation is expected to either copy the vector (not just to keep a reference to it, since the vector might be temporary) or to translated the required information from the hits into its own internal format. The hits are expected to exist as long as this object is used, until the next Clear() call. It is recommended that this method call Clear() at the beginning. This is left to the implementation, that might still implement a different strategy.
Implemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::LazyClusterParamsAlg, and cluster::StandardClusterParamsAlg.
|
inlinevirtual |
Sets the list of input hits.
hits | list of hits (hits will not be modified) |
undefined | in case of error, this method can throw (anything) |
The same general directions apply as for SetHits() version with pointers. This version takes a list of recob::Hit, rather than their pointers. It can simplify upstream handling when the original list is not recob::Hit and creation of temporary recob::Hit is needed. In that case, managing to obtain pointers to these temporary objects can be inefficient.
The default implementation provided here is not efficient either, since it just creates an additional vector of recob::Hit pointers and uses it. If an implementation is concerned with efficiency, it can reimplement this to initialize the algorithm in a more direct way.
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, and cluster::StandardClusterParamsAlg.
Definition at line 157 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Set the verbosity level.
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, and cluster::StandardClusterParamsAlg.
Definition at line 170 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Computes the angle at the start or end of the cluster.
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 198 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Computes the charge on the first and last wire of the track.
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 181 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Computes the opening angle at the start or end of the cluster.
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 215 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Computes the total charge of the cluster from Hit::SummedADC()
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 258 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Computes the standard deviation on the charge of the cluster hits.
Hit charge is obtained by recob::Hit::SummedADC().
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 271 of file ClusterParamsAlgBase.h.
|
inlinevirtual |
Computes the width of the cluster.
Reimplemented in cluster::OverriddenClusterParamsAlg< AlgoBase >, cluster::StandardClusterParamsAlg, and cluster::LazyClusterParamsAlg.
Definition at line 306 of file ClusterParamsAlgBase.h.
|
protected |
verbosity level: 0 is normal, negative is even quieter
Definition at line 312 of file ClusterParamsAlgBase.h.