LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
cluster::ClusterMatchAlg Class Reference

#include "ClusterMatchAlg.h"

Classes

struct  cluster_match_info
 

Public Types

enum  MatchMethod_t {
  kRoughZ = 0, kRoughT, kSpacePoint, kSumCharge,
  kMATCH_METHOD_MAX
}
 Enum switch for various matching methods. More...
 

Public Member Functions

 ClusterMatchAlg (fhicl::ParameterSet const &pset)
 Default constructor with fhicl parameters. More...
 
virtual ~ClusterMatchAlg ()
 Default destructor. More...
 
void ReportConfig () const
 Method to report the current configuration. More...
 
void SetMCTruthModName (std::string name)
 Method to specify input MCTruth's module name (optional) More...
 
void FillMCInfo (const art::Event &evt)
 Internal method to fill MCTruth information when available. More...
 
void AppendClusterInfo (const recob::Cluster &in_cluster, const std::vector< art::Ptr< recob::Hit > > &in_hit_v)
 Method to fill cluster information to be used for matching. More...
 
void AppendClusterInfo (const art::Ptr< recob::Cluster > in_cluster, const std::vector< art::Ptr< recob::Hit > > &in_hit_v)
 Method to fill cluster information to be used for matching. More...
 
void MatchThreePlanes ()
 
void MatchTwoPlanes ()
 Two plane version of cluster matching method. More...
 
std::vector< std::vector< unsigned int > > GetMatchedClusters () const
 Method to retrieve matched cluster combinations. The format is [wire_plane][cluster_index]. More...
 
const std::vector< std::vector< recob::SpacePoint > > & GetMatchedSpacePoints () const
 Method to retrieve matched SpacePoint for each combinations. More...
 
bool StoreSpacePoints () const
 Method to check if it is configured to store SpacePoint. More...
 
void ClearEventInfo ()
 Method to clear event-wise information. More...
 

Protected Member Functions

void ClearMatchInputInfo ()
 Method to clear input cluster information. More...
 
void ClearMatchOutputInfo ()
 Method to clear output matched cluster information. More...
 
void ClearTTreeInfo ()
 Method to clear TTree variables. More...
 
void PrepareDetParams ()
 Internal method, called only once, to fill detector-wise information. More...
 
void PrepareTTree ()
 Internal method to create output TTree for quality checking of the algorithm. More...
 
void FillHitInfo (cluster_match_info &ci, art::PtrVector< recob::Hit > &out_hit_v, const std::vector< art::Ptr< recob::Hit > > &in_hit_v)
 
void AppendClusterTreeVariables (const cluster_match_info &ci)
 Internal method to fill cluster-info tree. More...
 
bool Match_RoughZ (const cluster_match_info &ci1, const cluster_match_info &ci2, const geo::View_t v1, const geo::View_t v2) const
 
bool Match_RoughTime (const cluster_match_info &ci1, const cluster_match_info &ci2)
 Checks min/max hit timing among two clusters and make sure there is an overlap. More...
 
bool Match_SumCharge (const cluster_match_info &uc, const cluster_match_info &vc)
 
bool Match_SpacePoint (const size_t uindex, const size_t vindex, const size_t windex, std::vector< recob::SpacePoint > &sps_v)
 

Protected Attributes

size_t _num_sps_cut
 Number of SpacePoint used to cut in Match_SpacePoint method. More...
 
double _overlay_tratio_cut
 Minimum overlayed time fraction among two clusters used in Match_RoughTime method. More...
 
double _qratio_cut
 Maximum difference among clusters' charge sum used in Match_SumCharge method. More...
 
std::vector< unsigned int > _matched_uclusters_v
 U plane matched clusters' index. More...
 
std::vector< unsigned int > _matched_vclusters_v
 V plane matched clusters' index. More...
 
std::vector< unsigned int > _matched_wclusters_v
 W plane matched clusters' index. More...
 
std::vector< std::vector< recob::SpacePoint > > _matched_sps_v
 Local SpacePoint vector container. More...
 
bool _match_methods [kMATCH_METHOD_MAX]
 Boolean list for enabled algorithms. More...
 
bool _det_params_prepared
 
bool _debug_mode
 Boolean to enable debug mode (call all enabled matching methods) More...
 
bool _store_sps
 Boolean to enable storage of SpacePoint vector. More...
 
unsigned int _tot_planes
 
double _time_offset_uplane
 
double _time_offset_vplane
 
double _time_offset_wplane
 
std::string _ModName_MCTruth
 MCTruth producer's module name. More...
 
std::vector< art::PtrVector< recob::Hit > > _uhits_v
 Local Hit pointer vector container ... U-plane. More...
 
std::vector< art::PtrVector< recob::Hit > > _vhits_v
 Local Hit pointer vector container ... V-plane. More...
 
std::vector< art::PtrVector< recob::Hit > > _whits_v
 Local Hit pointer vector container ... W-plane. More...
 
std::vector< cluster_match_info_ucluster_v
 Local cluster data container... U-plane. More...
 
std::vector< cluster_match_info_vcluster_v
 Local cluster data container... V-plane. More...
 
std::vector< cluster_match_info_wcluster_v
 Local cluster data container... W-plane. More...
 
trkf::SpacePointAlg_sps_algo
 SpacePointFinder algorithm pointer. More...
 
TTree * _match_tree
 
double _mc_E
 
double _mc_Px
 
double _mc_Py
 
double _mc_Pz
 
double _mc_Vx
 
double _mc_Vy
 
double _mc_Vz
 
int _pdgid
 
unsigned short _tot_u
 
unsigned short _tot_v
 
unsigned short _tot_w
 
unsigned short _tot_pass_qsum
 
unsigned short _tot_pass_t
 
unsigned short _tot_pass_z
 
unsigned short _tot_pass_sps
 
std::vector< uint16_t > _u_nhits_v
 
std::vector< uint16_t > _v_nhits_v
 
std::vector< uint16_t > _w_nhits_v
 
std::vector< uint16_t > _nsps
 
std::vector< double > _qratio_v
 
std::vector< double > _uv_tratio_v
 
std::vector< double > _vw_tratio_v
 
std::vector< double > _wu_tratio_v
 
bool _save_cluster_info
 
TTree * _cluster_tree
 
std::vector< uint16_t > _view_v
 
std::vector< double > _charge_v
 
std::vector< uint16_t > _nhits_v
 
std::vector< double > _tstart_min_v
 
std::vector< double > _tstart_max_v
 
std::vector< double > _tpeak_min_v
 
std::vector< double > _tpeak_max_v
 
std::vector< double > _tend_min_v
 
std::vector< double > _tend_max_v
 

Detailed Description

Definition at line 44 of file ClusterMatchAlg.h.

Member Enumeration Documentation

Enum switch for various matching methods.

Enumerator
kRoughZ 

Rough-Z comparison method ... see Match_RoughZ() description.

kRoughT 

Rough-Time comparison method ... see Match_RoughTime() description.

kSpacePoint 

Use SpacePoint finder algorithm ... see Match_SpacePoint() description.

kSumCharge 

Use summed charge comparison ... see Match_SumCharge() description.

kMATCH_METHOD_MAX 

Definition at line 49 of file ClusterMatchAlg.h.

49  { kRoughZ = 0,
50  kRoughT,
51  kSpacePoint,
52  kSumCharge,
54  };
Use summed charge comparison ... see Match_SumCharge() description.
Use SpacePoint finder algorithm ... see Match_SpacePoint() description.
Rough-Time comparison method ... see Match_RoughTime() description.
Rough-Z comparison method ... see Match_RoughZ() description.

Constructor & Destructor Documentation

cluster::ClusterMatchAlg::ClusterMatchAlg ( fhicl::ParameterSet const &  pset)

Default constructor with fhicl parameters.

Definition at line 15 of file ClusterMatchAlg.cxx.

References _cluster_tree, _debug_mode, _det_params_prepared, _match_methods, _match_tree, _num_sps_cut, _overlay_tratio_cut, _qratio_cut, _save_cluster_info, _sps_algo, _store_sps, ClearEventInfo(), fhicl::ParameterSet::get(), kMATCH_METHOD_MAX, and ReportConfig().

Referenced by cluster::ClusterMatchAlg::cluster_match_info::cluster_match_info().

15  :
17  //##################################################################
18  {
19 
20  _debug_mode = pset.get<bool> ("DebugMode");
21  _store_sps = pset.get<bool> ("StoreSpacePoint");
22  _num_sps_cut = pset.get<size_t> ("CutParam_NumSpacePoint");
23  _overlay_tratio_cut = pset.get<double> ("CutParam_OverlayTimeFraction");
24  _qratio_cut = pset.get<double> ("CutParam_SumChargeRatio");
25  std::vector<size_t> algo_list = pset.get<std::vector<size_t> > ("MatchAlgoList");
26 
27  _sps_algo = new trkf::SpacePointAlg(pset.get<fhicl::ParameterSet>("SpacePointAlg"));
28  _match_tree = 0;
29  _cluster_tree = 0;
30  _save_cluster_info = true;
31  _det_params_prepared = false;
32 
33  for(size_t i=0; i<(size_t)(kMATCH_METHOD_MAX); ++i)
34 
35  _match_methods[i]=false;
36 
37  for(auto const v : algo_list) {
38 
39  if(v >= (size_t)(kMATCH_METHOD_MAX))
40 
41  mf::LogError("ClusterMatchAlg")<<Form("Invalid algorithm enum: %zu",v);
42 
43  else _match_methods[v]=true;
44  }
45 
46  ReportConfig();
47 
49  }
trkf::SpacePointAlg * _sps_algo
SpacePointFinder algorithm pointer.
void ClearEventInfo()
Method to clear event-wise information.
double _qratio_cut
Maximum difference among clusters&#39; charge sum used in Match_SumCharge method.
bool _store_sps
Boolean to enable storage of SpacePoint vector.
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
double _overlay_tratio_cut
Minimum overlayed time fraction among two clusters used in Match_RoughTime method.
std::string _ModName_MCTruth
MCTruth producer&#39;s module name.
bool _debug_mode
Boolean to enable debug mode (call all enabled matching methods)
size_t _num_sps_cut
Number of SpacePoint used to cut in Match_SpacePoint method.
bool _match_methods[kMATCH_METHOD_MAX]
Boolean list for enabled algorithms.
void ReportConfig() const
Method to report the current configuration.
virtual cluster::ClusterMatchAlg::~ClusterMatchAlg ( )
inlinevirtual

Default destructor.

Definition at line 104 of file ClusterMatchAlg.h.

References ReportConfig().

104 {};

Member Function Documentation

void cluster::ClusterMatchAlg::AppendClusterInfo ( const recob::Cluster in_cluster,
const std::vector< art::Ptr< recob::Hit > > &  in_hit_v 
)

Method to fill cluster information to be used for matching.

Definition at line 266 of file ClusterMatchAlg.cxx.

References _ucluster_v, _uhits_v, _vcluster_v, _vhits_v, _wcluster_v, _whits_v, AppendClusterTreeVariables(), FillHitInfo(), recob::Cluster::ID(), geo::kU, geo::kV, geo::kW, PrepareDetParams(), cluster::ClusterMatchAlg::cluster_match_info::view, and recob::Cluster::View().

Referenced by SetMCTruthModName().

267  {
268 
270  cluster_match_info ci(in_cluster.ID());
271  ci.view = in_cluster.View();
272 
274  FillHitInfo(ci, hit_ptrv, in_hit_v);
275 
276  // Save created art::PtrVector & cluster_match_info struct object
277  switch(ci.view){
278  case geo::kU:
279  _uhits_v.push_back(hit_ptrv);
280  _ucluster_v.push_back(ci);
282  break;
283  case geo::kV:
284  _vhits_v.push_back(hit_ptrv);
285  _vcluster_v.push_back(ci);
287  break;
288  case geo::kW:
289  _whits_v.push_back(hit_ptrv);
290  _wcluster_v.push_back(ci);
292  break;
293  default:
294  mf::LogError("ClusterMatchAlg")<<Form("Found an invalid plane ID: %d",in_cluster.View());
295  }
296 
297  }
std::vector< art::PtrVector< recob::Hit > > _vhits_v
Local Hit pointer vector container ... V-plane.
std::vector< art::PtrVector< recob::Hit > > _whits_v
Local Hit pointer vector container ... W-plane.
Planes which measure V.
Definition: geo_types.h:77
void FillHitInfo(cluster_match_info &ci, art::PtrVector< recob::Hit > &out_hit_v, const std::vector< art::Ptr< recob::Hit > > &in_hit_v)
std::vector< cluster_match_info > _wcluster_v
Local cluster data container... W-plane.
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
Planes which measure U.
Definition: geo_types.h:76
std::vector< art::PtrVector< recob::Hit > > _uhits_v
Local Hit pointer vector container ... U-plane.
void AppendClusterTreeVariables(const cluster_match_info &ci)
Internal method to fill cluster-info tree.
std::vector< cluster_match_info > _vcluster_v
Local cluster data container... V-plane.
geo::View_t View() const
Returns the view for this cluster.
Definition: Cluster.h:741
ID_t ID() const
Identifier of this cluster.
Definition: Cluster.h:738
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:78
void PrepareDetParams()
Internal method, called only once, to fill detector-wise information.
std::vector< cluster_match_info > _ucluster_v
Local cluster data container... U-plane.
void cluster::ClusterMatchAlg::AppendClusterInfo ( const art::Ptr< recob::Cluster in_cluster,
const std::vector< art::Ptr< recob::Hit > > &  in_hit_v 
)

Method to fill cluster information to be used for matching.

Definition at line 299 of file ClusterMatchAlg.cxx.

References _ucluster_v, _uhits_v, _vcluster_v, _vhits_v, _wcluster_v, _whits_v, AppendClusterTreeVariables(), FillHitInfo(), recob::Cluster::ID(), geo::kU, geo::kV, geo::kW, PrepareDetParams(), cluster::ClusterMatchAlg::cluster_match_info::view, and recob::Cluster::View().

300  {
301 
303  cluster_match_info ci(in_cluster->ID());
304  ci.view = in_cluster->View();
305 
307  FillHitInfo(ci, hit_ptrv, in_hit_v);
308 
309  // Save created art::PtrVector & cluster_match_info struct object
310  switch(ci.view){
311  case geo::kU:
312  _uhits_v.push_back(hit_ptrv);
313  _ucluster_v.push_back(ci);
315  break;
316  case geo::kV:
317  _vhits_v.push_back(hit_ptrv);
318  _vcluster_v.push_back(ci);
320  break;
321  case geo::kW:
322  _whits_v.push_back(hit_ptrv);
323  _wcluster_v.push_back(ci);
325  break;
326  default:
327  mf::LogError("ClusterMatchAlg")<<Form("Found an invalid plane ID: %d",in_cluster->View());
328  }
329 
330  }
std::vector< art::PtrVector< recob::Hit > > _vhits_v
Local Hit pointer vector container ... V-plane.
std::vector< art::PtrVector< recob::Hit > > _whits_v
Local Hit pointer vector container ... W-plane.
Planes which measure V.
Definition: geo_types.h:77
void FillHitInfo(cluster_match_info &ci, art::PtrVector< recob::Hit > &out_hit_v, const std::vector< art::Ptr< recob::Hit > > &in_hit_v)
std::vector< cluster_match_info > _wcluster_v
Local cluster data container... W-plane.
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
Planes which measure U.
Definition: geo_types.h:76
std::vector< art::PtrVector< recob::Hit > > _uhits_v
Local Hit pointer vector container ... U-plane.
void AppendClusterTreeVariables(const cluster_match_info &ci)
Internal method to fill cluster-info tree.
std::vector< cluster_match_info > _vcluster_v
Local cluster data container... V-plane.
geo::View_t View() const
Returns the view for this cluster.
Definition: Cluster.h:741
ID_t ID() const
Identifier of this cluster.
Definition: Cluster.h:738
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:78
void PrepareDetParams()
Internal method, called only once, to fill detector-wise information.
std::vector< cluster_match_info > _ucluster_v
Local cluster data container... U-plane.
void cluster::ClusterMatchAlg::AppendClusterTreeVariables ( const cluster_match_info ci)
protected

Internal method to fill cluster-info tree.

Definition at line 373 of file ClusterMatchAlg.cxx.

References _charge_v, _cluster_tree, _nhits_v, _tend_max_v, _tend_min_v, _tpeak_max_v, _tpeak_min_v, _tstart_max_v, _tstart_min_v, _view_v, cluster::ClusterMatchAlg::cluster_match_info::end_time_max, cluster::ClusterMatchAlg::cluster_match_info::end_time_min, cluster::ClusterMatchAlg::cluster_match_info::nhits, cluster::ClusterMatchAlg::cluster_match_info::peak_time_max, cluster::ClusterMatchAlg::cluster_match_info::peak_time_min, cluster::ClusterMatchAlg::cluster_match_info::start_time_max, cluster::ClusterMatchAlg::cluster_match_info::start_time_min, cluster::ClusterMatchAlg::cluster_match_info::sum_charge, and cluster::ClusterMatchAlg::cluster_match_info::view.

Referenced by AppendClusterInfo(), and StoreSpacePoints().

374  {
375 
376  if(_cluster_tree){
377  _view_v.push_back(ci.view);
378  _charge_v.push_back(ci.sum_charge);
379  _nhits_v.push_back(ci.nhits);
380  _tstart_min_v.push_back(ci.start_time_min);
381  _tstart_max_v.push_back(ci.start_time_max);
382  _tpeak_min_v.push_back(ci.peak_time_min);
383  _tpeak_max_v.push_back(ci.peak_time_max);
384  _tend_min_v.push_back(ci.end_time_min);
385  _tend_max_v.push_back(ci.end_time_max);
386  }
387 
388  }
std::vector< double > _tpeak_max_v
std::vector< double > _charge_v
std::vector< uint16_t > _nhits_v
std::vector< double > _tend_max_v
std::vector< double > _tend_min_v
std::vector< double > _tstart_max_v
std::vector< double > _tstart_min_v
std::vector< uint16_t > _view_v
std::vector< double > _tpeak_min_v
void cluster::ClusterMatchAlg::ClearEventInfo ( )

Method to clear event-wise information.

Clear TTree variables

Definition at line 137 of file ClusterMatchAlg.cxx.

References ClearMatchInputInfo(), ClearMatchOutputInfo(), and ClearTTreeInfo().

Referenced by ClusterMatchAlg(), and StoreSpacePoints().

139  {
140  // Clear input event data holders
142 
143  // Clear result data holders
145 
147  ClearTTreeInfo();
148 
149  }
void ClearMatchInputInfo()
Method to clear input cluster information.
void ClearMatchOutputInfo()
Method to clear output matched cluster information.
void ClearTTreeInfo()
Method to clear TTree variables.
void cluster::ClusterMatchAlg::ClearMatchInputInfo ( )
protected

Method to clear input cluster information.

Definition at line 78 of file ClusterMatchAlg.cxx.

References _ucluster_v, _uhits_v, _vcluster_v, _vhits_v, _wcluster_v, and _whits_v.

Referenced by ClearEventInfo(), MatchThreePlanes(), MatchTwoPlanes(), and StoreSpacePoints().

79  {
80  _ucluster_v.clear();
81  _vcluster_v.clear();
82  _wcluster_v.clear();
83 
84  _uhits_v.clear();
85  _vhits_v.clear();
86  _whits_v.clear();
87  }
std::vector< art::PtrVector< recob::Hit > > _vhits_v
Local Hit pointer vector container ... V-plane.
std::vector< art::PtrVector< recob::Hit > > _whits_v
Local Hit pointer vector container ... W-plane.
std::vector< cluster_match_info > _wcluster_v
Local cluster data container... W-plane.
std::vector< art::PtrVector< recob::Hit > > _uhits_v
Local Hit pointer vector container ... U-plane.
std::vector< cluster_match_info > _vcluster_v
Local cluster data container... V-plane.
std::vector< cluster_match_info > _ucluster_v
Local cluster data container... U-plane.
void cluster::ClusterMatchAlg::ClearMatchOutputInfo ( )
protected

Method to clear output matched cluster information.

Definition at line 89 of file ClusterMatchAlg.cxx.

References _matched_sps_v, _matched_uclusters_v, _matched_vclusters_v, and _matched_wclusters_v.

Referenced by ClearEventInfo(), MatchThreePlanes(), MatchTwoPlanes(), and StoreSpacePoints().

90  {
91  _matched_uclusters_v.clear();
92  _matched_vclusters_v.clear();
93  _matched_wclusters_v.clear();
94  _matched_sps_v.clear();
95  }
std::vector< std::vector< recob::SpacePoint > > _matched_sps_v
Local SpacePoint vector container.
std::vector< unsigned int > _matched_uclusters_v
U plane matched clusters&#39; index.
std::vector< unsigned int > _matched_wclusters_v
W plane matched clusters&#39; index.
std::vector< unsigned int > _matched_vclusters_v
V plane matched clusters&#39; index.
void cluster::ClusterMatchAlg::ClearTTreeInfo ( )
protected

Method to clear TTree variables.

Definition at line 97 of file ClusterMatchAlg.cxx.

References _charge_v, _mc_E, _mc_Px, _mc_Py, _mc_Pz, _mc_Vx, _mc_Vy, _mc_Vz, _nhits_v, _nsps, _pdgid, _qratio_v, _tend_max_v, _tend_min_v, _tot_pass_qsum, _tot_pass_sps, _tot_pass_t, _tot_pass_z, _tot_u, _tot_v, _tot_w, _tpeak_max_v, _tpeak_min_v, _tstart_max_v, _tstart_min_v, _u_nhits_v, _uv_tratio_v, _v_nhits_v, _view_v, _vw_tratio_v, _w_nhits_v, and _wu_tratio_v.

Referenced by ClearEventInfo(), MatchThreePlanes(), MatchTwoPlanes(), and StoreSpacePoints().

98  {
99 
100  _mc_E = 0;
101  _mc_Px = 0;
102  _mc_Py = 0;
103  _mc_Pz = 0;
104  _mc_Vx = 0;
105  _mc_Vy = 0;
106  _mc_Vz = 0;
107  _pdgid = 0;
108  _tot_u = 0;
109  _tot_v = 0;
110  _tot_w = 0;
111  _tot_pass_z = 0;
112  _tot_pass_t = 0;
113  _tot_pass_sps = 0;
114  _tot_pass_qsum = 0;
115  _qratio_v.clear();
116  _uv_tratio_v.clear();
117  _vw_tratio_v.clear();
118  _wu_tratio_v.clear();
119  _u_nhits_v.clear();
120  _v_nhits_v.clear();
121  _w_nhits_v.clear();
122  _nsps.clear();
123 
124  _view_v.clear();
125  _charge_v.clear();
126  _nhits_v.clear();
127  _tstart_min_v.clear();
128  _tstart_max_v.clear();
129  _tpeak_min_v.clear();
130  _tpeak_max_v.clear();
131  _tend_min_v.clear();
132  _tend_max_v.clear();
133 
134  }
std::vector< uint16_t > _w_nhits_v
std::vector< double > _vw_tratio_v
std::vector< double > _wu_tratio_v
std::vector< double > _qratio_v
unsigned short _tot_pass_sps
std::vector< double > _tpeak_max_v
std::vector< double > _charge_v
std::vector< uint16_t > _nhits_v
std::vector< double > _tend_max_v
std::vector< double > _tend_min_v
std::vector< uint16_t > _nsps
std::vector< uint16_t > _u_nhits_v
std::vector< double > _tstart_max_v
std::vector< double > _tstart_min_v
std::vector< double > _uv_tratio_v
std::vector< uint16_t > _view_v
unsigned short _tot_pass_qsum
std::vector< uint16_t > _v_nhits_v
std::vector< double > _tpeak_min_v
void cluster::ClusterMatchAlg::FillHitInfo ( cluster_match_info ci,
art::PtrVector< recob::Hit > &  out_hit_v,
const std::vector< art::Ptr< recob::Hit > > &  in_hit_v 
)
protected

Definition at line 334 of file ClusterMatchAlg.cxx.

References _time_offset_uplane, _time_offset_vplane, _time_offset_wplane, cluster::ClusterMatchAlg::cluster_match_info::end_time_max, cluster::ClusterMatchAlg::cluster_match_info::end_time_min, geo::kU, geo::kV, geo::kW, cluster::ClusterMatchAlg::cluster_match_info::nhits, cluster::ClusterMatchAlg::cluster_match_info::peak_time_max, cluster::ClusterMatchAlg::cluster_match_info::peak_time_min, art::PtrVector< T >::push_back(), art::PtrVector< T >::reserve(), cluster::ClusterMatchAlg::cluster_match_info::start_time_max, cluster::ClusterMatchAlg::cluster_match_info::start_time_min, cluster::ClusterMatchAlg::cluster_match_info::sum_charge, cluster::ClusterMatchAlg::cluster_match_info::view, cluster::ClusterMatchAlg::cluster_match_info::wire_max, and cluster::ClusterMatchAlg::cluster_match_info::wire_min.

Referenced by AppendClusterInfo(), and StoreSpacePoints().

337  {
338 
339  out_hit_v.reserve(in_hit_v.size());
340 
341  double time_offset = 0;
342  if(ci.view == geo::kU) time_offset = _time_offset_uplane;
343  else if(ci.view == geo::kV) time_offset = _time_offset_vplane;
344  else if(ci.view == geo::kW) time_offset = _time_offset_wplane;
345 
346  // Loop over hits in this cluster
347  for(auto const hit : in_hit_v){
348 
349  unsigned int wire = hit->WireID().Wire;
350  double tstart = hit->PeakTimePlusRMS(-1.) - time_offset;
351  double tpeak = hit->PeakTime() - time_offset;
352  double tend = hit->PeakTimePlusRMS(+1.) - time_offset;
353 
354  ci.sum_charge += hit->Integral();
355 
356  ci.wire_max = (ci.wire_max < wire) ? wire : ci.wire_max;
357  ci.wire_min = (ci.wire_min > wire) ? wire : ci.wire_min;
358 
359  ci.start_time_max = ( ci.start_time_max < tstart ) ? tstart : ci.start_time_max;
360  ci.peak_time_max = ( ci.peak_time_max < tpeak ) ? tpeak : ci.peak_time_max;
361  ci.end_time_max = ( ci.end_time_max < tend ) ? tend : ci.end_time_max;
362 
363  ci.start_time_min = ( ci.start_time_min > tstart) ? tstart : ci.start_time_min;
364  ci.peak_time_min = ( ci.peak_time_min > tpeak) ? tpeak : ci.peak_time_min;
365  ci.end_time_min = ( ci.end_time_min > tend) ? tend : ci.end_time_min;
366 
367  out_hit_v.push_back(hit);
368  }
369 
370  ci.nhits = in_hit_v.size();
371  }
void reserve(size_type n)
Definition: PtrVector.h:343
Planes which measure V.
Definition: geo_types.h:77
Planes which measure U.
Definition: geo_types.h:76
void push_back(Ptr< U > const &p)
Definition: PtrVector.h:441
Detector simulation of raw signals on wires.
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:78
void cluster::ClusterMatchAlg::FillMCInfo ( const art::Event evt)

Internal method to fill MCTruth information when available.

Definition at line 201 of file ClusterMatchAlg.cxx.

References _mc_E, _mc_Px, _mc_Py, _mc_Pz, _mc_Vx, _mc_Vy, _mc_Vz, _ModName_MCTruth, _pdgid, e, art::DataViewImpl::getView(), part, and art::errors::ProductNotFound.

Referenced by SetMCTruthModName().

203  {
204  if(!_ModName_MCTruth.size()) return;
205 
206  std::vector<const simb::MCTruth*> mciArray;
207 
208  try {
209 
210  evt.getView(_ModName_MCTruth,mciArray);
211 
212  }catch (art::Exception const& e) {
213 
214  if (e.categoryCode() != art::errors::ProductNotFound ) throw;
215 
216  }
217 
218  for(size_t i=0; i < mciArray.size(); ++i){
219 
220  if(i==1) {
221  mf::LogWarning("ClusterMatchAlg")<<" Ignoring > 2nd MCTruth in MC generator...";
222  break;
223  }
224  const simb::MCTruth* mci_ptr(mciArray.at(i));
225 
226  for(size_t j=0; j < (size_t)(mci_ptr->NParticles()); ++j){
227 
228  if(j==1) {
229  mf::LogWarning("ClusterMatchAlg")<<" Ignoring > 2nd MCParticle in MC generator...";
230  break;
231  }
232 
233  const simb::MCParticle part(mci_ptr->GetParticle(j));
234 
235  _pdgid = part.PdgCode();
236  _mc_E = part.E();
237  _mc_Px = part.Px();
238  _mc_Py = part.Py();
239  _mc_Pz = part.Pz();
240  _mc_Vx = part.Vx();
241  _mc_Vy = part.Vy();
242  _mc_Vz = part.Vz();
243  }
244  }
245  }
std::size_t getView(std::string const &moduleLabel, std::string const &productInstanceName, std::vector< ELEMENT const * > &result) const
Definition: DataViewImpl.h:474
TString part[npart]
Definition: Style.C:32
std::string _ModName_MCTruth
MCTruth producer&#39;s module name.
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
Event generator information.
Definition: MCTruth.h:30
Float_t e
Definition: plot.C:34
std::vector< std::vector< unsigned int > > cluster::ClusterMatchAlg::GetMatchedClusters ( ) const

Method to retrieve matched cluster combinations. The format is [wire_plane][cluster_index].

Definition at line 523 of file ClusterMatchAlg.cxx.

References _matched_uclusters_v, _matched_vclusters_v, and _matched_wclusters_v.

Referenced by SetMCTruthModName().

525  {
526  std::vector<std::vector<unsigned int> > result;
527  result.push_back(_matched_uclusters_v);
528  result.push_back(_matched_vclusters_v);
529  result.push_back(_matched_wclusters_v);
530  return result;
531  }
std::vector< unsigned int > _matched_uclusters_v
U plane matched clusters&#39; index.
std::vector< unsigned int > _matched_wclusters_v
W plane matched clusters&#39; index.
std::vector< unsigned int > _matched_vclusters_v
V plane matched clusters&#39; index.
const std::vector<std::vector<recob::SpacePoint> >& cluster::ClusterMatchAlg::GetMatchedSpacePoints ( ) const
inline

Method to retrieve matched SpacePoint for each combinations.

Definition at line 139 of file ClusterMatchAlg.h.

References _matched_sps_v.

139 { return _matched_sps_v; };
std::vector< std::vector< recob::SpacePoint > > _matched_sps_v
Local SpacePoint vector container.
bool cluster::ClusterMatchAlg::Match_RoughTime ( const cluster_match_info ci1,
const cluster_match_info ci2 
)
protected

Checks min/max hit timing among two clusters and make sure there is an overlap.

Definition at line 404 of file ClusterMatchAlg.cxx.

References _overlay_tratio_cut, _uv_tratio_v, _vw_tratio_v, _wu_tratio_v, cluster::ClusterMatchAlg::cluster_match_info::end_time_max, geo::kU, geo::kV, geo::kW, max, min, cluster::ClusterMatchAlg::cluster_match_info::start_time_min, and cluster::ClusterMatchAlg::cluster_match_info::view.

Referenced by MatchThreePlanes(), MatchTwoPlanes(), and StoreSpacePoints().

406  {
407  //return (!(ci1.end_time_max < ci2.start_time_min || ci2.end_time_max < ci1.start_time_min));
408  double time_overlay = std::min(ci1.end_time_max,ci2.end_time_max) - std::max(ci1.start_time_min,ci2.start_time_min);
409 
410  //if(time_overlay <= 0 && !_debug_mode) return false;
411 
412  double overlay_tratio = time_overlay / (ci1.end_time_max - ci1.start_time_min + ci2.end_time_max - ci2.start_time_min) * 2.;
413 
414  if( (ci1.view==geo::kU && ci2.view==geo::kV) || (ci1.view==geo::kV && ci2.view==geo::kU) )
415  _uv_tratio_v.push_back(overlay_tratio);
416  else if( (ci1.view==geo::kV && ci2.view==geo::kW) || (ci1.view==geo::kW && ci2.view==geo::kV) )
417  _vw_tratio_v.push_back(overlay_tratio);
418  else if( (ci1.view==geo::kW && ci2.view==geo::kU) || (ci1.view==geo::kU && ci2.view==geo::kW) )
419  _wu_tratio_v.push_back(overlay_tratio);
420 
421  return (overlay_tratio > _overlay_tratio_cut);
422  }
std::vector< double > _vw_tratio_v
Planes which measure V.
Definition: geo_types.h:77
std::vector< double > _wu_tratio_v
double _overlay_tratio_cut
Minimum overlayed time fraction among two clusters used in Match_RoughTime method.
Planes which measure U.
Definition: geo_types.h:76
Int_t max
Definition: plot.C:27
std::vector< double > _uv_tratio_v
Int_t min
Definition: plot.C:26
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:78
bool cluster::ClusterMatchAlg::Match_RoughZ ( const cluster_match_info ci1,
const cluster_match_info ci2,
const geo::View_t  v1,
const geo::View_t  v2 
) const
protected

Match clusters based on min/max Z boundary information. It checks clusters' overlap along Z spatial coordinate based on 2 input cluster information.

Definition at line 391 of file ClusterMatchAlg.cxx.

References geo::GeometryCore::IntersectionPoint(), and y.

Referenced by MatchThreePlanes(), MatchTwoPlanes(), and StoreSpacePoints().

394  {
396  double y, z_min, z_max;
397  y = z_min = z_max = -1;
398  geo_h->IntersectionPoint(ci1.wire_min, ci2.wire_min, v1, v2, 0, 0, y, z_min);
399  geo_h->IntersectionPoint(ci1.wire_max, ci2.wire_max, v1, v2, 0, 0, y, z_max);
400  return (z_max > z_min);
401  }
Float_t y
Definition: compare.C:6
bool IntersectionPoint(geo::WireID const &wid1, geo::WireID const &wid2, double &y, double &z) const
Returns the intersection point of two wires.
bool cluster::ClusterMatchAlg::Match_SpacePoint ( const size_t  uindex,
const size_t  vindex,
const size_t  windex,
std::vector< recob::SpacePoint > &  sps_v 
)
protected

Cluster matching using space points. This can be slow as we run SpacePointFinder algorithm per cluster pair. Three clusters (U, V, W) are considerd to "match" if there found N spacepoints using hits in them and N > min_nsps where "min_nsps" is the cut value you can set in SetNSpacePointCut() method.

Definition at line 437 of file ClusterMatchAlg.cxx.

References _debug_mode, _nsps, _num_sps_cut, _sps_algo, _tot_planes, _u_nhits_v, _ucluster_v, _uhits_v, _v_nhits_v, _vcluster_v, _vhits_v, _w_nhits_v, _wcluster_v, _whits_v, trkf::SpacePointAlg::clearHitMap(), trkf::SpacePointAlg::makeSpacePoints(), max, trkf::SpacePointAlg::maxDT(), min, art::PtrVector< T >::push_back(), art::PtrVector< T >::reserve(), and art::PtrVector< T >::size().

Referenced by MatchThreePlanes(), MatchTwoPlanes(), and StoreSpacePoints().

442  {
443  bool use_wplane = _tot_planes > 2;
444 
445  if( uindex >= _ucluster_v.size() ||
446  vindex >= _vcluster_v.size() ||
447  (use_wplane && (windex >= _wcluster_v.size())) ) {
448 
449  mf::LogError("ClusterMatchAlg")
450  << std::endl
451  << Form("Requested to cluster-index (U,V,W) = (%zu,%zu,%zu) where max-length is (%zu,%zu,%zu)",
452  uindex, vindex, windex, _ucluster_v.size(), _vcluster_v.size(), _wcluster_v.size())
453  << std::endl;
454  return false;
455  }
456 
457  // Define a time range in which hits are used for spacepoint finding ... here "peak time" is the relevant one
458  double trange_min = std::min(_ucluster_v.at(uindex).peak_time_min,_vcluster_v.at(vindex).peak_time_min);
459  if(use_wplane) trange_min = std::min(trange_min, _wcluster_v.at(windex).peak_time_min);
460 
461  double trange_max = std::max(_ucluster_v.at(uindex).peak_time_max,_vcluster_v.at(vindex).peak_time_max);
462  if(use_wplane) trange_max = std::max(trange_max,_wcluster_v.at(windex).peak_time_max);
463 
464  // Space-point algorithm applies additional dT
465  trange_min -= _sps_algo->maxDT();
466  trange_max += _sps_algo->maxDT();
467 
468  // Make PtrVector<recob::Hit> for relevant Hits
469  art::PtrVector<recob::Hit> hit_group;
470  size_t max_size = _uhits_v.at(uindex).size() + _vhits_v.at(vindex).size();
471  if(use_wplane) max_size += _whits_v.at(windex).size();
472  hit_group.reserve(max_size);
473  // Loop over hits in U-plane
474  for(auto const hit : _uhits_v.at(uindex)) {
475  if(hit->PeakTime() < trange_min) continue;
476  if(hit->PeakTime() > trange_max) continue;
477  hit_group.push_back(hit);
478  }
479  // Check if any hit found in this plane
480  size_t u_nhits = hit_group.size();
481  if( !u_nhits && !_debug_mode) return false;
482  // Loop over hits in V-plane
483  for(auto const hit: _vhits_v.at(vindex)) {
484  if(hit->PeakTime() < trange_min) continue;
485  if(hit->PeakTime() > trange_max) continue;
486  hit_group.push_back(hit);
487  }
488  // Check if any hit found in this plane
489  size_t v_nhits = hit_group.size() - u_nhits;
490  if( !(v_nhits) && !_debug_mode) return false;
491 
492  // Loop over hits in W-plane
493  if(use_wplane) {
494  for(auto const hit: _whits_v.at(windex)) {
495  if(hit->PeakTime() < trange_min) continue;
496  if(hit->PeakTime() > trange_max) continue;
497  hit_group.push_back(hit);
498  }
499  }
500  // Check if any hit found in this plane
501  size_t w_nhits = hit_group.size() - u_nhits - v_nhits;
502  if( !(w_nhits) && use_wplane && !_debug_mode) return false;
503 
504  // Run SpacePoint finder algo
505  if(u_nhits && v_nhits &&
506  (!use_wplane || (w_nhits && use_wplane))) {
508  _sps_algo->makeSpacePoints(hit_group,sps_v);
509  }
510 
511  size_t nsps = sps_v.size();
512  _u_nhits_v.push_back(u_nhits);
513  _v_nhits_v.push_back(v_nhits);
514  if(use_wplane)
515  _w_nhits_v.push_back(w_nhits);
516  _nsps.push_back(nsps);
517 
518  if( nsps < _num_sps_cut ) return false;
519  return true;
520  }
std::vector< uint16_t > _w_nhits_v
void reserve(size_type n)
Definition: PtrVector.h:343
trkf::SpacePointAlg * _sps_algo
SpacePointFinder algorithm pointer.
std::vector< art::PtrVector< recob::Hit > > _vhits_v
Local Hit pointer vector container ... V-plane.
std::vector< art::PtrVector< recob::Hit > > _whits_v
Local Hit pointer vector container ... W-plane.
std::vector< cluster_match_info > _wcluster_v
Local cluster data container... W-plane.
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
Int_t max
Definition: plot.C:27
std::vector< uint16_t > _nsps
void push_back(Ptr< U > const &p)
Definition: PtrVector.h:441
double maxDT() const
Definition: SpacePointAlg.h:90
std::vector< art::PtrVector< recob::Hit > > _uhits_v
Local Hit pointer vector container ... U-plane.
std::vector< uint16_t > _u_nhits_v
std::vector< cluster_match_info > _vcluster_v
Local cluster data container... V-plane.
bool _debug_mode
Boolean to enable debug mode (call all enabled matching methods)
size_type size() const
Definition: PtrVector.h:308
Detector simulation of raw signals on wires.
void makeSpacePoints(const art::PtrVector< recob::Hit > &hits, std::vector< recob::SpacePoint > &spts) const
void clearHitMap() const
size_t _num_sps_cut
Number of SpacePoint used to cut in Match_SpacePoint method.
Int_t min
Definition: plot.C:26
std::vector< uint16_t > _v_nhits_v
std::vector< cluster_match_info > _ucluster_v
Local cluster data container... U-plane.
bool cluster::ClusterMatchAlg::Match_SumCharge ( const cluster_match_info uc,
const cluster_match_info vc 
)
protected

Checks min/max hit timing among three clusters and make sure there is an overlap. If _overlay_tratio_cut is set, then overlapped-time / cluster-timespan fraction is compared to the set cut value to claim a match. Checks the ratio of two clusters' summed charge. If the ratio is within 1 +/- set cut value, two clusters are considered to match.

Definition at line 425 of file ClusterMatchAlg.cxx.

References _qratio_cut, _qratio_v, and cluster::ClusterMatchAlg::cluster_match_info::sum_charge.

Referenced by MatchThreePlanes(), MatchTwoPlanes(), and StoreSpacePoints().

427  {
428  double qratio = (uc.sum_charge)/(vc.sum_charge);
429 
430  // For quality check log
431  _qratio_v.push_back(qratio);
432 
433  return ( (1 - _qratio_cut) < qratio && (qratio) < (1 + _qratio_cut) );
434  }
std::vector< double > _qratio_v
double _qratio_cut
Maximum difference among clusters&#39; charge sum used in Match_SumCharge method.
void cluster::ClusterMatchAlg::MatchThreePlanes ( )

Method to run matching algorithms for three planes. Event info must be provided prior to this function call through FillEventInfo() function call. If the function is called more than once w/o supplying the new art::Event object, it does not perform any new matching unless a user explicitly calls ClearEventInfo() and then fill event info again though FillEventInfo().

Clear TTree variables

Definition at line 637 of file ClusterMatchAlg.cxx.

References _cluster_tree, _debug_mode, _match_methods, _match_tree, _matched_sps_v, _matched_uclusters_v, _matched_vclusters_v, _matched_wclusters_v, _store_sps, _tot_pass_qsum, _tot_pass_sps, _tot_pass_t, _tot_pass_z, _tot_u, _tot_v, _tot_w, _ucluster_v, _uhits_v, _vcluster_v, _vhits_v, _wcluster_v, _whits_v, ClearMatchInputInfo(), ClearMatchOutputInfo(), ClearTTreeInfo(), kRoughT, kRoughZ, kSpacePoint, kSumCharge, geo::kU, geo::kV, Match_RoughTime(), Match_RoughZ(), Match_SpacePoint(), Match_SumCharge(), and PrepareTTree().

Referenced by SetMCTruthModName().

639  {
640  std::ostringstream msg;
641  msg << Form("Received (U,V,W) = (%zu,%zu,%zu) clusters...",
642  _uhits_v.size(),
643  _vhits_v.size(),
644  _whits_v.size())
645  << std::endl;
646  _tot_u = _ucluster_v.size();
647  _tot_v = _vcluster_v.size();
648  _tot_w = _wcluster_v.size();
649 
650  if(!(_tot_u + _tot_v + _tot_w)) {
651 
652  mf::LogError(__PRETTY_FUNCTION__)<<"No input cluster info found! Aborting the function call...";
653 
654  return;
655  }
656 
657  // Clear match information
658  PrepareTTree();
660 
661  bool overlay_2d=true;
662  bool overlay_3d=true;
663  // Loop over all possible u-v-w cluster combination
664  for(size_t uci_index=0; uci_index<_ucluster_v.size(); ++uci_index) {
665 
666  for(size_t vci_index=0; vci_index<_vcluster_v.size(); ++vci_index) {
667 
668  // Apply cuts that can be done with U&V planes here
669  overlay_2d = true;
670 
671  // Rough z-position overlay cut
672  if(_match_methods[kRoughZ]) {
673 
674  if(Match_RoughZ(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index), geo::kU, geo::kV))
675  _tot_pass_z++;
676  else if(!_debug_mode) continue;
677  else overlay_2d = false;
678  }
679 
680  // Sum charge cut
682 
683  if(Match_SumCharge(_ucluster_v.at(uci_index),_vcluster_v.at(vci_index)))
684  _tot_pass_qsum++;
685  else if(!_debug_mode) continue;
686  else overlay_2d = false;
687  }
688 
689  for(size_t wci_index=0; wci_index<_wcluster_v.size(); ++wci_index) {
690 
691  overlay_3d = overlay_2d;
692  // Apply cuts that requires 3 planes here
693 
694  // Rough time overlap cut
695  if(_match_methods[kRoughT]) {
696 
697  bool rough_time_match = Match_RoughTime(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index));
698  if(!_debug_mode && !rough_time_match) continue;
699 
700  rough_time_match = (Match_RoughTime(_vcluster_v.at(vci_index), _wcluster_v.at(wci_index)) && rough_time_match);
701  if(!_debug_mode && !rough_time_match) continue;
702 
703  rough_time_match = (Match_RoughTime(_wcluster_v.at(wci_index), _ucluster_v.at(uci_index)) && rough_time_match);
704 
705  overlay_3d = overlay_3d && rough_time_match;
706  if(rough_time_match) _tot_pass_t++;
707  else if(!_debug_mode) continue;
708  }
709 
710  // SpacePoint cut
711  std::vector<recob::SpacePoint> sps_v;
713 
714  if(Match_SpacePoint(uci_index, vci_index, wci_index, sps_v))
715  _tot_pass_sps++;
716  else if(!_debug_mode) continue;
717  else overlay_3d = false;
718  }
719 
720  if(overlay_3d) {
721  _matched_uclusters_v.push_back((unsigned int)(_ucluster_v[uci_index].cluster_index));
722  _matched_vclusters_v.push_back((unsigned int)(_vcluster_v[vci_index].cluster_index));
723  _matched_wclusters_v.push_back((unsigned int)(_wcluster_v[wci_index].cluster_index));
724  if(_store_sps)
725  _matched_sps_v.push_back(sps_v);
726  }
727  } // end of ... _wcluster_v loop
728  } // end of ... _vcluster_v loop
729  } // end of ... _ucluster_v loop
730 
731  // Report
732  msg << std::endl
733  << Form("Found %zu matched cluster pairs...",_matched_uclusters_v.size())
734  << std::endl;
735  for(size_t i=0; i<_matched_uclusters_v.size(); ++i){
736 
737  if(i==0) msg << "Listing matched clusters (U,V,W)..." << std::endl;
738 
739  msg << Form("Pair %-2zu: (%-3d, %-3d, %-3d)",
740  i,
743  _matched_wclusters_v[i]) << std::endl;
744 
745  }
746  msg << std::endl;
747  mf::LogWarning("ClusterMatchAlg")<<msg.str();
748 
749  if(_match_tree) _match_tree->Fill();
750  if(_cluster_tree) _cluster_tree->Fill();
751  // Clear input event data holders
754  ClearTTreeInfo();
755 
756  }
Use summed charge comparison ... see Match_SumCharge() description.
void ClearMatchInputInfo()
Method to clear input cluster information.
std::vector< art::PtrVector< recob::Hit > > _vhits_v
Local Hit pointer vector container ... V-plane.
bool Match_RoughTime(const cluster_match_info &ci1, const cluster_match_info &ci2)
Checks min/max hit timing among two clusters and make sure there is an overlap.
std::vector< art::PtrVector< recob::Hit > > _whits_v
Local Hit pointer vector container ... W-plane.
Planes which measure V.
Definition: geo_types.h:77
void ClearMatchOutputInfo()
Method to clear output matched cluster information.
bool _store_sps
Boolean to enable storage of SpacePoint vector.
bool Match_RoughZ(const cluster_match_info &ci1, const cluster_match_info &ci2, const geo::View_t v1, const geo::View_t v2) const
Use SpacePoint finder algorithm ... see Match_SpacePoint() description.
std::vector< cluster_match_info > _wcluster_v
Local cluster data container... W-plane.
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
unsigned short _tot_pass_sps
Planes which measure U.
Definition: geo_types.h:76
void PrepareTTree()
Internal method to create output TTree for quality checking of the algorithm.
Rough-Time comparison method ... see Match_RoughTime() description.
bool Match_SpacePoint(const size_t uindex, const size_t vindex, const size_t windex, std::vector< recob::SpacePoint > &sps_v)
std::vector< art::PtrVector< recob::Hit > > _uhits_v
Local Hit pointer vector container ... U-plane.
std::vector< cluster_match_info > _vcluster_v
Local cluster data container... V-plane.
bool _debug_mode
Boolean to enable debug mode (call all enabled matching methods)
void ClearTTreeInfo()
Method to clear TTree variables.
bool Match_SumCharge(const cluster_match_info &uc, const cluster_match_info &vc)
unsigned short _tot_pass_qsum
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
std::vector< std::vector< recob::SpacePoint > > _matched_sps_v
Local SpacePoint vector container.
std::vector< unsigned int > _matched_uclusters_v
U plane matched clusters&#39; index.
bool _match_methods[kMATCH_METHOD_MAX]
Boolean list for enabled algorithms.
std::vector< unsigned int > _matched_wclusters_v
W plane matched clusters&#39; index.
std::vector< unsigned int > _matched_vclusters_v
V plane matched clusters&#39; index.
Rough-Z comparison method ... see Match_RoughZ() description.
std::vector< cluster_match_info > _ucluster_v
Local cluster data container... U-plane.
void cluster::ClusterMatchAlg::MatchTwoPlanes ( )

Two plane version of cluster matching method.

Clear TTree variables

Definition at line 534 of file ClusterMatchAlg.cxx.

References _cluster_tree, _debug_mode, _match_methods, _match_tree, _matched_sps_v, _matched_uclusters_v, _matched_vclusters_v, _store_sps, _tot_pass_qsum, _tot_pass_sps, _tot_pass_t, _tot_pass_z, _tot_u, _tot_v, _tot_w, _ucluster_v, _uhits_v, _vcluster_v, _vhits_v, _wcluster_v, _whits_v, ClearMatchInputInfo(), ClearMatchOutputInfo(), ClearTTreeInfo(), kRoughT, kRoughZ, kSpacePoint, kSumCharge, geo::kU, geo::kV, Match_RoughTime(), Match_RoughZ(), Match_SpacePoint(), Match_SumCharge(), and PrepareTTree().

Referenced by SetMCTruthModName().

536  {
537  std::ostringstream msg;
538  msg << Form("Received (U,V,W) = (%zu,%zu,%zu) clusters...",
539  _uhits_v.size(),
540  _vhits_v.size(),
541  _whits_v.size())
542  << std::endl;
543  _tot_u = _ucluster_v.size();
544  _tot_v = _vcluster_v.size();
545  _tot_w = _wcluster_v.size();
546 
547  if(!(_tot_u + _tot_v + _tot_w)) {
548 
549  mf::LogError(__PRETTY_FUNCTION__)<<"No input cluster info found! Aborting the function call...";
550 
551  return;
552  }
553 
554  // Initialization
555  PrepareTTree();
557 
558  bool overlay_2d = false;
559  for(size_t uci_index=0; uci_index<_ucluster_v.size(); ++uci_index) {
560 
561  for(size_t vci_index=0; vci_index<_vcluster_v.size(); ++vci_index) {
562 
563  overlay_2d = true;
564 
565  // Apply cuts
566  // Rough z-position overlay cut
567  if(_match_methods[kRoughZ]) {
568 
569  if(Match_RoughZ(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index), geo::kU, geo::kV))
570  _tot_pass_z++;
571  else if(!_debug_mode) continue;
572  else overlay_2d = false;
573  }
574 
575 
576  // Sum charge cut
578 
579  if(Match_SumCharge(_ucluster_v.at(uci_index),_vcluster_v.at(vci_index)))
580  _tot_pass_qsum++;
581  else if(!_debug_mode) continue;
582  else overlay_2d = false;
583  }
584 
585  // Rough time overlap cut
586  if(_match_methods[kRoughT]) {
587 
588  if(Match_RoughTime(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index)))
589  _tot_pass_t++;
590  else if(!_debug_mode) continue;
591  else overlay_2d = false;
592  }
593 
594  // SpacePoint cut
595  std::vector<recob::SpacePoint> sps_v;
597 
598  if(Match_SpacePoint(uci_index, vci_index, 0, sps_v))
599  _tot_pass_sps++;
600  else if(!_debug_mode) continue;
601  else overlay_2d = false;
602  }
603 
604  if(overlay_2d) {
605  _matched_uclusters_v.push_back((unsigned int)(_ucluster_v[uci_index].cluster_index));
606  _matched_vclusters_v.push_back((unsigned int)(_vcluster_v[vci_index].cluster_index));
607  if(_store_sps)
608  _matched_sps_v.push_back(sps_v);
609  }
610  } // end of ... _vcluster_v loop
611  } // end of ... _ucluster_v loop
612 
613  // Report
614  msg << std::endl
615  << Form("Found %zu matched cluster pairs...",_matched_uclusters_v.size())
616  << std::endl;
617  for(size_t i=0; i<_matched_uclusters_v.size(); ++i){
618 
619  if(i==0) msg << "Listing matched clusters (U,V)..." << std::endl;
620 
621  msg << Form("Pair %-2zu: (%-3d, %-3d)",i,_matched_uclusters_v[i],_matched_vclusters_v[i]) << std::endl;
622 
623  }
624  msg << std::endl;
625  mf::LogWarning("ClusterMatchAlg")<<msg.str();
626 
627  if(_match_tree) _match_tree->Fill();
628  if(_cluster_tree) _cluster_tree->Fill();
629 
630  // Clear input event data holders
633  ClearTTreeInfo();
634  }
Use summed charge comparison ... see Match_SumCharge() description.
void ClearMatchInputInfo()
Method to clear input cluster information.
std::vector< art::PtrVector< recob::Hit > > _vhits_v
Local Hit pointer vector container ... V-plane.
bool Match_RoughTime(const cluster_match_info &ci1, const cluster_match_info &ci2)
Checks min/max hit timing among two clusters and make sure there is an overlap.
std::vector< art::PtrVector< recob::Hit > > _whits_v
Local Hit pointer vector container ... W-plane.
Planes which measure V.
Definition: geo_types.h:77
void ClearMatchOutputInfo()
Method to clear output matched cluster information.
bool _store_sps
Boolean to enable storage of SpacePoint vector.
bool Match_RoughZ(const cluster_match_info &ci1, const cluster_match_info &ci2, const geo::View_t v1, const geo::View_t v2) const
Use SpacePoint finder algorithm ... see Match_SpacePoint() description.
std::vector< cluster_match_info > _wcluster_v
Local cluster data container... W-plane.
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
unsigned short _tot_pass_sps
Planes which measure U.
Definition: geo_types.h:76
void PrepareTTree()
Internal method to create output TTree for quality checking of the algorithm.
Rough-Time comparison method ... see Match_RoughTime() description.
bool Match_SpacePoint(const size_t uindex, const size_t vindex, const size_t windex, std::vector< recob::SpacePoint > &sps_v)
std::vector< art::PtrVector< recob::Hit > > _uhits_v
Local Hit pointer vector container ... U-plane.
std::vector< cluster_match_info > _vcluster_v
Local cluster data container... V-plane.
bool _debug_mode
Boolean to enable debug mode (call all enabled matching methods)
void ClearTTreeInfo()
Method to clear TTree variables.
bool Match_SumCharge(const cluster_match_info &uc, const cluster_match_info &vc)
unsigned short _tot_pass_qsum
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
std::vector< std::vector< recob::SpacePoint > > _matched_sps_v
Local SpacePoint vector container.
std::vector< unsigned int > _matched_uclusters_v
U plane matched clusters&#39; index.
bool _match_methods[kMATCH_METHOD_MAX]
Boolean list for enabled algorithms.
std::vector< unsigned int > _matched_vclusters_v
V plane matched clusters&#39; index.
Rough-Z comparison method ... see Match_RoughZ() description.
std::vector< cluster_match_info > _ucluster_v
Local cluster data container... U-plane.
void cluster::ClusterMatchAlg::PrepareDetParams ( )
protected

Internal method, called only once, to fill detector-wise information.

Definition at line 247 of file ClusterMatchAlg.cxx.

References _det_params_prepared, _time_offset_uplane, _time_offset_vplane, _time_offset_wplane, _tot_planes, detinfo::DetectorProperties::GetXTicksOffset(), geo::kU, geo::kV, geo::kW, and geo::GeometryCore::Nplanes().

Referenced by AppendClusterInfo(), and StoreSpacePoints().

248  {
250  // Total number of planes
252  _tot_planes = geo->Nplanes();
253 
254  // Ask DetectorPrperties about time-offset among different wire planes ... used to correct timing
255  // difference among different wire planes in the following loop.
256  const detinfo::DetectorProperties* det_h = lar::providerFrom<detinfo::DetectorPropertiesService>();
260  if (_tot_planes >2 )
262  _det_params_prepared = true;
263  }
264  }
Planes which measure V.
Definition: geo_types.h:77
Planes which measure U.
Definition: geo_types.h:76
unsigned int Nplanes(unsigned int tpc=0, unsigned int cstat=0) const
Returns the total number of wire planes in the specified TPC.
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:78
Namespace collecting geometry-related classes utilities.
virtual double GetXTicksOffset(int p, int t, int c) const =0
void cluster::ClusterMatchAlg::PrepareTTree ( )
protected

Internal method to create output TTree for quality checking of the algorithm.

Definition at line 152 of file ClusterMatchAlg.cxx.

References _charge_v, _cluster_tree, _match_tree, _mc_E, _mc_Px, _mc_Py, _mc_Pz, _mc_Vx, _mc_Vy, _mc_Vz, _nhits_v, _nsps, _pdgid, _qratio_v, _save_cluster_info, _tend_max_v, _tend_min_v, _tot_pass_qsum, _tot_pass_sps, _tot_pass_t, _tot_pass_z, _tot_u, _tot_v, _tot_w, _tpeak_max_v, _tpeak_min_v, _tstart_max_v, _tstart_min_v, _u_nhits_v, _uv_tratio_v, _v_nhits_v, _view_v, _vw_tratio_v, _w_nhits_v, _wu_tratio_v, and art::TFileDirectory::make().

Referenced by MatchThreePlanes(), MatchTwoPlanes(), and StoreSpacePoints().

154  {
155  if(!_match_tree){
157  _match_tree = fileService->make<TTree>("match_tree","");
158  _match_tree->Branch("mc_E",&_mc_E,"mc_E/D");
159  _match_tree->Branch("mc_Px",&_mc_Px,"mc_Px/D");
160  _match_tree->Branch("mc_Py",&_mc_Py,"mc_Py/D");
161  _match_tree->Branch("mc_Pz",&_mc_Pz,"mc_Pz/D");
162  _match_tree->Branch("mc_Vx",&_mc_Vx,"mc_Vx/D");
163  _match_tree->Branch("mc_Vy",&_mc_Vy,"mc_Vy/D");
164  _match_tree->Branch("mc_Vz",&_mc_Vz,"mc_Vz/D");
165 
166  _match_tree->Branch("pdgid",&_pdgid,"pdgid/I");
167  _match_tree->Branch("tot_u",&_tot_u,"tot_u/s");
168  _match_tree->Branch("tot_v",&_tot_v,"tot_v/s");
169  _match_tree->Branch("tot_w",&_tot_w,"tot_w/s");
170  _match_tree->Branch("tot_pass_t",&_tot_pass_t,"tot_pass_t/s");
171  _match_tree->Branch("tot_pass_z",&_tot_pass_z,"tot_pass_z/s");
172  _match_tree->Branch("tot_pass_sps",&_tot_pass_sps,"tot_pass_sps/s");
173  _match_tree->Branch("tot_pass_qsum",&_tot_pass_qsum,"tot_pass_qsum/s");
174 
175  _match_tree->Branch("uv_tratio_v","std::vector<double>",&_uv_tratio_v);
176  _match_tree->Branch("vw_tratio_v","std::vector<double>",&_vw_tratio_v);
177  _match_tree->Branch("wu_tratio_v","std::vector<double>",&_wu_tratio_v);
178 
179  _match_tree->Branch("qratio_v", "std::vector<double>",&_qratio_v);
180  _match_tree->Branch("u_nhits_v", "std::vector<UShort_t>",&_u_nhits_v);
181  _match_tree->Branch("v_nhits_v", "std::vector<UShort_t>",&_v_nhits_v);
182  _match_tree->Branch("w_nhits_v", "std::vector<UShort_t>",&_w_nhits_v);
183  _match_tree->Branch("nsps", "std::vector<UShort_t>",&_nsps);
184  }
187  _cluster_tree = fileService->make<TTree>("cluster_tree","");
188  _cluster_tree->Branch("view_v","std::vector<uint16_t>", &_view_v);
189  _cluster_tree->Branch("charge_v","std::vector<double>", &_charge_v);
190  _cluster_tree->Branch("nhits_v","std::vector<uint16_t>",&_nhits_v);
191  _cluster_tree->Branch("tstart_min_v","std::vector<double>",&_tstart_min_v);
192  _cluster_tree->Branch("tstart_max_v","std::vector<double>",&_tstart_max_v);
193  _cluster_tree->Branch("tpeak_min_v","std::vector<double>",&_tpeak_min_v);
194  _cluster_tree->Branch("tpeak_max_v","std::vector<double>",&_tpeak_max_v);
195  _cluster_tree->Branch("tend_min_v","std::vector<double>",&_tend_min_v);
196  _cluster_tree->Branch("tend_max_v","std::vector<double>",&_tend_max_v);
197  }
198  }
std::vector< uint16_t > _w_nhits_v
std::vector< double > _vw_tratio_v
std::vector< double > _wu_tratio_v
std::vector< double > _qratio_v
unsigned short _tot_pass_sps
std::vector< double > _tpeak_max_v
std::vector< double > _charge_v
std::vector< uint16_t > _nhits_v
std::vector< double > _tend_max_v
std::vector< double > _tend_min_v
std::vector< uint16_t > _nsps
std::vector< uint16_t > _u_nhits_v
std::vector< double > _tstart_max_v
std::vector< double > _tstart_min_v
std::vector< double > _uv_tratio_v
T * make(ARGS...args) const
std::vector< uint16_t > _view_v
unsigned short _tot_pass_qsum
std::vector< uint16_t > _v_nhits_v
std::vector< double > _tpeak_min_v
void cluster::ClusterMatchAlg::ReportConfig ( ) const

Method to report the current configuration.

Definition at line 52 of file ClusterMatchAlg.cxx.

References _debug_mode, _match_methods, _num_sps_cut, _overlay_tratio_cut, _qratio_cut, kRoughT, kRoughZ, kSpacePoint, and kSumCharge.

Referenced by ClusterMatchAlg(), and ~ClusterMatchAlg().

54  {
55  std::ostringstream msg;
56  msg
57  << std::endl
58  << " ClusterMatchAlg Configuration: " << std::endl
59  << "---------------------------------------------" << std::endl;
60  msg << " Debug Mode ... " << (_debug_mode ? "enabled!" : "disabled!") << std::endl;
61  msg << " RoughZ ....... " << (_match_methods[kRoughZ] ? "enabled!" : "disabled!") << std::endl;
62  msg << " RoughT ....... " << (_match_methods[kRoughT] ? "enabled!" : "disabled!") << std::endl;
63  msg << " SpacePoint ... " << (_match_methods[kSpacePoint] ? "enabled!" : "disabled!") << std::endl;
64  msg << " SumCharge .... " << (_match_methods[kSumCharge] ? "enabled!" : "disabled!") << std::endl;
65  msg << std::endl;
66  msg
67  << " Overlay-Time Fraction Cut : " << _overlay_tratio_cut << std::endl
68  << " Charge-Ratio Diff. Cut : " << _qratio_cut << std::endl
69  << " Minimum # of SpacePoint : " << _num_sps_cut << std::endl
70  << std::endl;
71  msg
72  << "---------------------------------------------" << std::endl;
73 
74  mf::LogWarning("ClusterMatchAlg")<<msg.str();
75 
76  }
Use summed charge comparison ... see Match_SumCharge() description.
double _qratio_cut
Maximum difference among clusters&#39; charge sum used in Match_SumCharge method.
Use SpacePoint finder algorithm ... see Match_SpacePoint() description.
double _overlay_tratio_cut
Minimum overlayed time fraction among two clusters used in Match_RoughTime method.
Rough-Time comparison method ... see Match_RoughTime() description.
bool _debug_mode
Boolean to enable debug mode (call all enabled matching methods)
size_t _num_sps_cut
Number of SpacePoint used to cut in Match_SpacePoint method.
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
bool _match_methods[kMATCH_METHOD_MAX]
Boolean list for enabled algorithms.
Rough-Z comparison method ... see Match_RoughZ() description.
void cluster::ClusterMatchAlg::SetMCTruthModName ( std::string  name)
inline

Method to specify input MCTruth's module name (optional)

Definition at line 110 of file ClusterMatchAlg.h.

References _ModName_MCTruth, AppendClusterInfo(), FillMCInfo(), GetMatchedClusters(), MatchThreePlanes(), MatchTwoPlanes(), and lar::dump::vector().

111  {_ModName_MCTruth = name;}
std::string _ModName_MCTruth
MCTruth producer&#39;s module name.
bool cluster::ClusterMatchAlg::StoreSpacePoints ( ) const
inline

Method to check if it is configured to store SpacePoint.

Definition at line 142 of file ClusterMatchAlg.h.

References _store_sps, AppendClusterTreeVariables(), ClearEventInfo(), ClearMatchInputInfo(), ClearMatchOutputInfo(), ClearTTreeInfo(), FillHitInfo(), Match_RoughTime(), Match_RoughZ(), Match_SpacePoint(), Match_SumCharge(), PrepareDetParams(), PrepareTTree(), and lar::dump::vector().

142 { return _store_sps; }
bool _store_sps
Boolean to enable storage of SpacePoint vector.

Member Data Documentation

std::vector<double> cluster::ClusterMatchAlg::_charge_v
protected

Definition at line 276 of file ClusterMatchAlg.h.

Referenced by AppendClusterTreeVariables(), ClearTTreeInfo(), and PrepareTTree().

TTree* cluster::ClusterMatchAlg::_cluster_tree
protected
bool cluster::ClusterMatchAlg::_debug_mode
protected

Boolean to enable debug mode (call all enabled matching methods)

Definition at line 222 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), Match_SpacePoint(), MatchThreePlanes(), MatchTwoPlanes(), and ReportConfig().

bool cluster::ClusterMatchAlg::_det_params_prepared
protected

Definition at line 221 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), and PrepareDetParams().

bool cluster::ClusterMatchAlg::_match_methods[kMATCH_METHOD_MAX]
protected

Boolean list for enabled algorithms.

Definition at line 220 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), MatchThreePlanes(), MatchTwoPlanes(), and ReportConfig().

TTree* cluster::ClusterMatchAlg::_match_tree
protected

Definition at line 244 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), MatchThreePlanes(), MatchTwoPlanes(), and PrepareTTree().

std::vector<std::vector<recob::SpacePoint> > cluster::ClusterMatchAlg::_matched_sps_v
protected

Local SpacePoint vector container.

Definition at line 215 of file ClusterMatchAlg.h.

Referenced by ClearMatchOutputInfo(), GetMatchedSpacePoints(), MatchThreePlanes(), and MatchTwoPlanes().

std::vector<unsigned int> cluster::ClusterMatchAlg::_matched_uclusters_v
protected

U plane matched clusters' index.

Definition at line 212 of file ClusterMatchAlg.h.

Referenced by ClearMatchOutputInfo(), GetMatchedClusters(), MatchThreePlanes(), and MatchTwoPlanes().

std::vector<unsigned int> cluster::ClusterMatchAlg::_matched_vclusters_v
protected

V plane matched clusters' index.

Definition at line 213 of file ClusterMatchAlg.h.

Referenced by ClearMatchOutputInfo(), GetMatchedClusters(), MatchThreePlanes(), and MatchTwoPlanes().

std::vector<unsigned int> cluster::ClusterMatchAlg::_matched_wclusters_v
protected

W plane matched clusters' index.

Definition at line 214 of file ClusterMatchAlg.h.

Referenced by ClearMatchOutputInfo(), GetMatchedClusters(), and MatchThreePlanes().

double cluster::ClusterMatchAlg::_mc_E
protected

Definition at line 246 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), FillMCInfo(), and PrepareTTree().

double cluster::ClusterMatchAlg::_mc_Px
protected

Definition at line 247 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), FillMCInfo(), and PrepareTTree().

double cluster::ClusterMatchAlg::_mc_Py
protected

Definition at line 248 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), FillMCInfo(), and PrepareTTree().

double cluster::ClusterMatchAlg::_mc_Pz
protected

Definition at line 249 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), FillMCInfo(), and PrepareTTree().

double cluster::ClusterMatchAlg::_mc_Vx
protected

Definition at line 250 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), FillMCInfo(), and PrepareTTree().

double cluster::ClusterMatchAlg::_mc_Vy
protected

Definition at line 251 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), FillMCInfo(), and PrepareTTree().

double cluster::ClusterMatchAlg::_mc_Vz
protected

Definition at line 252 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), FillMCInfo(), and PrepareTTree().

std::string cluster::ClusterMatchAlg::_ModName_MCTruth
protected

MCTruth producer's module name.

Definition at line 229 of file ClusterMatchAlg.h.

Referenced by FillMCInfo(), and SetMCTruthModName().

std::vector<uint16_t> cluster::ClusterMatchAlg::_nhits_v
protected

Definition at line 277 of file ClusterMatchAlg.h.

Referenced by AppendClusterTreeVariables(), ClearTTreeInfo(), and PrepareTTree().

std::vector<uint16_t> cluster::ClusterMatchAlg::_nsps
protected

Definition at line 266 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), Match_SpacePoint(), and PrepareTTree().

size_t cluster::ClusterMatchAlg::_num_sps_cut
protected

Number of SpacePoint used to cut in Match_SpacePoint method.

Definition at line 205 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), Match_SpacePoint(), and ReportConfig().

double cluster::ClusterMatchAlg::_overlay_tratio_cut
protected

Minimum overlayed time fraction among two clusters used in Match_RoughTime method.

Definition at line 206 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), Match_RoughTime(), and ReportConfig().

int cluster::ClusterMatchAlg::_pdgid
protected

Definition at line 253 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), FillMCInfo(), and PrepareTTree().

double cluster::ClusterMatchAlg::_qratio_cut
protected

Maximum difference among clusters' charge sum used in Match_SumCharge method.

Definition at line 207 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), Match_SumCharge(), and ReportConfig().

std::vector<double> cluster::ClusterMatchAlg::_qratio_v
protected

Definition at line 267 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), Match_SumCharge(), and PrepareTTree().

bool cluster::ClusterMatchAlg::_save_cluster_info
protected

Definition at line 273 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), and PrepareTTree().

trkf::SpacePointAlg* cluster::ClusterMatchAlg::_sps_algo
protected

SpacePointFinder algorithm pointer.

Definition at line 239 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), and Match_SpacePoint().

bool cluster::ClusterMatchAlg::_store_sps
protected

Boolean to enable storage of SpacePoint vector.

Definition at line 223 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), MatchThreePlanes(), MatchTwoPlanes(), and StoreSpacePoints().

std::vector<double> cluster::ClusterMatchAlg::_tend_max_v
protected

Definition at line 283 of file ClusterMatchAlg.h.

Referenced by AppendClusterTreeVariables(), ClearTTreeInfo(), and PrepareTTree().

std::vector<double> cluster::ClusterMatchAlg::_tend_min_v
protected

Definition at line 282 of file ClusterMatchAlg.h.

Referenced by AppendClusterTreeVariables(), ClearTTreeInfo(), and PrepareTTree().

double cluster::ClusterMatchAlg::_time_offset_uplane
protected

Definition at line 225 of file ClusterMatchAlg.h.

Referenced by FillHitInfo(), and PrepareDetParams().

double cluster::ClusterMatchAlg::_time_offset_vplane
protected

Definition at line 226 of file ClusterMatchAlg.h.

Referenced by FillHitInfo(), and PrepareDetParams().

double cluster::ClusterMatchAlg::_time_offset_wplane
protected

Definition at line 227 of file ClusterMatchAlg.h.

Referenced by FillHitInfo(), and PrepareDetParams().

unsigned short cluster::ClusterMatchAlg::_tot_pass_qsum
protected

Definition at line 257 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), MatchThreePlanes(), MatchTwoPlanes(), and PrepareTTree().

unsigned short cluster::ClusterMatchAlg::_tot_pass_sps
protected

Definition at line 260 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), MatchThreePlanes(), MatchTwoPlanes(), and PrepareTTree().

unsigned short cluster::ClusterMatchAlg::_tot_pass_t
protected

Definition at line 258 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), MatchThreePlanes(), MatchTwoPlanes(), and PrepareTTree().

unsigned short cluster::ClusterMatchAlg::_tot_pass_z
protected

Definition at line 259 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), MatchThreePlanes(), MatchTwoPlanes(), and PrepareTTree().

unsigned int cluster::ClusterMatchAlg::_tot_planes
protected

Definition at line 224 of file ClusterMatchAlg.h.

Referenced by Match_SpacePoint(), and PrepareDetParams().

unsigned short cluster::ClusterMatchAlg::_tot_u
protected

Definition at line 254 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), MatchThreePlanes(), MatchTwoPlanes(), and PrepareTTree().

unsigned short cluster::ClusterMatchAlg::_tot_v
protected

Definition at line 255 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), MatchThreePlanes(), MatchTwoPlanes(), and PrepareTTree().

unsigned short cluster::ClusterMatchAlg::_tot_w
protected

Definition at line 256 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), MatchThreePlanes(), MatchTwoPlanes(), and PrepareTTree().

std::vector<double> cluster::ClusterMatchAlg::_tpeak_max_v
protected

Definition at line 281 of file ClusterMatchAlg.h.

Referenced by AppendClusterTreeVariables(), ClearTTreeInfo(), and PrepareTTree().

std::vector<double> cluster::ClusterMatchAlg::_tpeak_min_v
protected

Definition at line 280 of file ClusterMatchAlg.h.

Referenced by AppendClusterTreeVariables(), ClearTTreeInfo(), and PrepareTTree().

std::vector<double> cluster::ClusterMatchAlg::_tstart_max_v
protected

Definition at line 279 of file ClusterMatchAlg.h.

Referenced by AppendClusterTreeVariables(), ClearTTreeInfo(), and PrepareTTree().

std::vector<double> cluster::ClusterMatchAlg::_tstart_min_v
protected

Definition at line 278 of file ClusterMatchAlg.h.

Referenced by AppendClusterTreeVariables(), ClearTTreeInfo(), and PrepareTTree().

std::vector<uint16_t> cluster::ClusterMatchAlg::_u_nhits_v
protected

Definition at line 263 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), Match_SpacePoint(), and PrepareTTree().

std::vector<cluster_match_info> cluster::ClusterMatchAlg::_ucluster_v
protected

Local cluster data container... U-plane.

Definition at line 235 of file ClusterMatchAlg.h.

Referenced by AppendClusterInfo(), ClearMatchInputInfo(), Match_SpacePoint(), MatchThreePlanes(), and MatchTwoPlanes().

std::vector<art::PtrVector<recob::Hit> > cluster::ClusterMatchAlg::_uhits_v
protected

Local Hit pointer vector container ... U-plane.

Definition at line 231 of file ClusterMatchAlg.h.

Referenced by AppendClusterInfo(), ClearMatchInputInfo(), Match_SpacePoint(), MatchThreePlanes(), and MatchTwoPlanes().

std::vector<double> cluster::ClusterMatchAlg::_uv_tratio_v
protected

Definition at line 268 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), Match_RoughTime(), and PrepareTTree().

std::vector<uint16_t> cluster::ClusterMatchAlg::_v_nhits_v
protected

Definition at line 264 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), Match_SpacePoint(), and PrepareTTree().

std::vector<cluster_match_info> cluster::ClusterMatchAlg::_vcluster_v
protected

Local cluster data container... V-plane.

Definition at line 236 of file ClusterMatchAlg.h.

Referenced by AppendClusterInfo(), ClearMatchInputInfo(), Match_SpacePoint(), MatchThreePlanes(), and MatchTwoPlanes().

std::vector<art::PtrVector<recob::Hit> > cluster::ClusterMatchAlg::_vhits_v
protected

Local Hit pointer vector container ... V-plane.

Definition at line 232 of file ClusterMatchAlg.h.

Referenced by AppendClusterInfo(), ClearMatchInputInfo(), Match_SpacePoint(), MatchThreePlanes(), and MatchTwoPlanes().

std::vector<uint16_t> cluster::ClusterMatchAlg::_view_v
protected

Definition at line 275 of file ClusterMatchAlg.h.

Referenced by AppendClusterTreeVariables(), ClearTTreeInfo(), and PrepareTTree().

std::vector<double> cluster::ClusterMatchAlg::_vw_tratio_v
protected

Definition at line 269 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), Match_RoughTime(), and PrepareTTree().

std::vector<uint16_t> cluster::ClusterMatchAlg::_w_nhits_v
protected

Definition at line 265 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), Match_SpacePoint(), and PrepareTTree().

std::vector<cluster_match_info> cluster::ClusterMatchAlg::_wcluster_v
protected

Local cluster data container... W-plane.

Definition at line 237 of file ClusterMatchAlg.h.

Referenced by AppendClusterInfo(), ClearMatchInputInfo(), Match_SpacePoint(), MatchThreePlanes(), and MatchTwoPlanes().

std::vector<art::PtrVector<recob::Hit> > cluster::ClusterMatchAlg::_whits_v
protected

Local Hit pointer vector container ... W-plane.

Definition at line 233 of file ClusterMatchAlg.h.

Referenced by AppendClusterInfo(), ClearMatchInputInfo(), Match_SpacePoint(), MatchThreePlanes(), and MatchTwoPlanes().

std::vector<double> cluster::ClusterMatchAlg::_wu_tratio_v
protected

Definition at line 270 of file ClusterMatchAlg.h.

Referenced by ClearTTreeInfo(), Match_RoughTime(), and PrepareTTree().


The documentation for this class was generated from the following files: