LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Class managing the creation of a new recob::Cluster object. More...
#include "ClusterCreator.h"
Public Member Functions | |
ClusterCreator (util::GeometryUtilities const &gser, ClusterParamsAlgBase &algo, float start_wire, float sigma_start_wire, float start_tick, float sigma_start_tick, float end_wire, float sigma_end_wire, float end_tick, float sigma_end_tick, recob::Cluster::ID_t ID, geo::View_t view, geo::PlaneID const &plane, recob::Cluster::SentryArgument_t sentry=recob::Cluster::Sentry) | |
Constructor: computes some information from hit list. More... | |
recob::Cluster && | move () |
Prepares the constructed hit to be moved away. More... | |
recob::Cluster const & | copy () const |
Returns the constructed wire. More... | |
Protected Member Functions | |
recob::Cluster | CreateCluster (util::GeometryUtilities const &gser, ClusterParamsAlgBase &algo, float start_wire, float sigma_start_wire, float start_tick, float sigma_start_tick, float end_wire, float sigma_end_wire, float end_tick, float sigma_end_tick, recob::Cluster::ID_t ID, geo::View_t view, geo::PlaneID const &plane, recob::Cluster::SentryArgument_t sentry=recob::Cluster::Sentry) |
Creates a cluster from direct information and a hit list. More... | |
Protected Attributes | |
recob::Cluster | cluster |
Local instance of the cluster being constructed. More... | |
Class managing the creation of a new recob::Cluster object.
A Creator is a class that creates a temporary data product, and at the end it yields it to the caller for storage. This last step should be by move construction, although a copy method is also provided.
An example of creating a Cluster object:
cluster::ClusterCreator cluster(...); cluster.push_back(cluster.move()); // cluster content becomes invalid
This is a one-step creation object: the cluster is constructed at the same time the ClusterCreator is, and no facility is offered to modify the constructed cluster, or to create another one.
Definition at line 46 of file ClusterCreator.h.
cluster::ClusterCreator::ClusterCreator | ( | util::GeometryUtilities const & | gser, |
ClusterParamsAlgBase & | algo, | ||
float | start_wire, | ||
float | sigma_start_wire, | ||
float | start_tick, | ||
float | sigma_start_tick, | ||
float | end_wire, | ||
float | sigma_end_wire, | ||
float | end_tick, | ||
float | sigma_end_tick, | ||
recob::Cluster::ID_t | ID, | ||
geo::View_t | view, | ||
geo::PlaneID const & | plane, | ||
recob::Cluster::SentryArgument_t | sentry = recob::Cluster::Sentry |
||
) |
Constructor: computes some information from hit list.
algo | a configured and initialized algorithm set |
start_wire | wire coordinate of the start of the cluster |
sigma_start_wire | uncertainty on start_wire |
start_tick | tick coordinate of the start of the cluster |
sigma_start_tick | uncertainty on start_tick |
end_wire | wire coordinate of the end of the cluster |
sigma_end_wire | uncertainty on end_wire |
end_tick | tick coordinate of the end of the cluster |
sigma_end_tick | uncertainty on end_tick |
ID | cluster ID |
view | view for this cluster |
plane | location of the start of the cluster |
sentry | a check-point variable, optional |
The algorithm set algo will compute and return:
start_charge
: charge on the start wirestart_angle
: angle of the start of the cluster, in start_opening
: opening angle at the start of the clustersigma_end_tick
: uncertainty on end_tickend_charge
: charge on the end wireend_angle
: angle of the end of the cluster, in end_opening
: opening angle at the end of the clusterintegral
: total charge from fitted shape of hitsintegral_stddev
: standard deviation of hit charge from fitted shapesummedADC
: total charge from signal ADC of hitssummedADC_stddev
: standard deviation of signal ADC of hitsn_hits
: number of hits in the clustermultiple_hit_density
: wires covered by cluster divided by number of hitswidth
: a measure of the cluster width Definition at line 19 of file ClusterCreator.cxx.
|
inline |
Returns the constructed wire.
Despite the name, no copy happens in this function. Copy takes place in the caller code as proper; for example:
// be cluster a ClusterCreator instance: std::vector<recob::Cluster> Clusters; cluster.copy(); // nothing happens Clusters.push_back(cluster.copy()); // here a copy happens recob::Cluster single_cluster(cluster.copy()); // copied again
Definition at line 130 of file ClusterCreator.h.
|
protected |
Creates a cluster from direct information and a hit list.
algo | a configured and initialized algorithm set |
start_wire | wire coordinate of the start of the cluster |
sigma_start_wire | uncertainty on start_wire |
start_tick | tick coordinate of the start of the cluster |
sigma_start_tick | uncertainty on start_tick |
end_wire | wire coordinate of the end of the cluster |
sigma_end_wire | uncertainty on end_wire |
end_tick | tick coordinate of the end of the cluster |
sigma_end_tick | uncertainty on end_tick |
ID | cluster ID |
view | view for this cluster |
plane | location of the start of the cluster |
sentry | a check-point variable, optional |
The algorithm set algo will compute and return:
start_charge
: charge on the start wirestart_angle
: angle of the start of the cluster, in start_opening
: opening angle at the start of the clustersigma_end_tick
: uncertainty on end_tickend_charge
: charge on the end wireend_angle
: angle of the end of the cluster, in end_opening
: opening angle at the end of the clusterintegral
: total charge from fitted shape of hitsintegral_stddev
: standard deviation of hit charge from fitted shapesummedADC
: total charge from signal ADC of hitssummedADC_stddev
: standard deviation of signal ADC of hitsn_hits
: number of hits in the clustermultiple_hit_density
: wires covered by cluster divided by number of hitswidth
: a measure of the cluster width Definition at line 52 of file ClusterCreator.cxx.
References cluster::ClusterParamsAlgBase::EndAngle(), cluster::ClusterParamsAlgBase::EndCharge(), cluster::ClusterParamsAlgBase::EndOpeningAngle(), cluster::ClusterParamsAlgBase::Integral(), cluster::ClusterParamsAlgBase::IntegralStdDev(), cluster::ClusterParamsAlgBase::MultipleHitDensity(), cluster::ClusterParamsAlgBase::NHits(), cluster::ClusterParamsAlgBase::StartAngle(), cluster::ClusterParamsAlgBase::StartCharge(), cluster::ClusterParamsAlgBase::StartOpeningAngle(), cluster::ClusterParamsAlgBase::SummedADC(), cluster::ClusterParamsAlgBase::SummedADCStdDev(), cluster::details::Measure_t< T >::value(), and cluster::ClusterParamsAlgBase::Width().
|
inline |
Prepares the constructed hit to be moved away.
Despite the name, no move happens in this function. Move takes place in the caller code as proper; for example:
// be cluster a ClusterCreator instance: std::vector<recob::Cluster> Clusters; cluster.move(); // nothing happens Clusters.push_back(cluster.move()); // here the move happens recob::Cluster single_cluster(cluster.move()); // wrong! cluster is empty now
Definition at line 114 of file ClusterCreator.h.
Referenced by lar_pandora::LArPandoraOutput::BuildCluster().
|
protected |
Local instance of the cluster being constructed.
Definition at line 134 of file ClusterCreator.h.