LArSoft  v09_90_00
Liquid Argon Software toolkit - https://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...
 
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 (detinfo::DetectorPropertiesData const &det_prop, 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 MatchThreePlanes (detinfo::DetectorClocksData const &clock_data, detinfo::DetectorPropertiesData const &det_prop)
 
void MatchTwoPlanes (detinfo::DetectorClocksData const &clock_data, detinfo::DetectorPropertiesData const &det_prop)
 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 (detinfo::DetectorPropertiesData const &clockData)
 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 (detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, 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
 
double _overlay_tratio_cut
 
double _qratio_cut
 
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 48 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 52 of file ClusterMatchAlg.h.

52  {
53  kRoughZ = 0,
54  kRoughT,
55  kSpacePoint,
56  kSumCharge,
58  };
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 31 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().

31  : _ModName_MCTruth("")
32  {
33  _debug_mode = pset.get<bool>("DebugMode");
34  _store_sps = pset.get<bool>("StoreSpacePoint");
35  _num_sps_cut = pset.get<size_t>("CutParam_NumSpacePoint");
36  _overlay_tratio_cut = pset.get<double>("CutParam_OverlayTimeFraction");
37  _qratio_cut = pset.get<double>("CutParam_SumChargeRatio");
38  std::vector<size_t> algo_list = pset.get<std::vector<size_t>>("MatchAlgoList");
39 
40  _sps_algo = new trkf::SpacePointAlg(pset.get<fhicl::ParameterSet>("SpacePointAlg"));
41  _match_tree = 0;
42  _cluster_tree = 0;
43  _save_cluster_info = true;
44  _det_params_prepared = false;
45 
46  for (size_t i = 0; i < (size_t)(kMATCH_METHOD_MAX); ++i)
47 
48  _match_methods[i] = false;
49 
50  for (auto const v : algo_list) {
51 
52  if (v >= (size_t)(kMATCH_METHOD_MAX))
53 
54  mf::LogError("ClusterMatchAlg") << Form("Invalid algorithm enum: %zu", v);
55 
56  else
57  _match_methods[v] = true;
58  }
59 
60  ReportConfig();
61 
63  }
trkf::SpacePointAlg * _sps_algo
SpacePointFinder algorithm pointer.
void ClearEventInfo()
Method to clear event-wise information.
bool _store_sps
Boolean to enable storage of SpacePoint vector.
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
std::string _ModName_MCTruth
MCTruth producer&#39;s module name.
bool _debug_mode
Boolean to enable debug mode (call all enabled matching methods)
bool _match_methods[kMATCH_METHOD_MAX]
Boolean list for enabled algorithms.
void ReportConfig() const
Method to report the current configuration.

Member Function Documentation

void cluster::ClusterMatchAlg::AppendClusterInfo ( detinfo::DetectorPropertiesData const &  det_prop,
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 260 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().

263  {
264  PrepareDetParams(det_prop);
265  cluster_match_info ci(in_cluster.ID());
266  ci.view = in_cluster.View();
267 
269  FillHitInfo(ci, hit_ptrv, in_hit_v);
270 
271  // Save created art::PtrVector & cluster_match_info struct object
272  switch (ci.view) {
273  case geo::kU:
274  _uhits_v.push_back(hit_ptrv);
275  _ucluster_v.push_back(ci);
277  break;
278  case geo::kV:
279  _vhits_v.push_back(hit_ptrv);
280  _vcluster_v.push_back(ci);
282  break;
283  case geo::kW:
284  _whits_v.push_back(hit_ptrv);
285  _wcluster_v.push_back(ci);
287  break;
288  default:
289  mf::LogError("ClusterMatchAlg") << Form("Found an invalid plane ID: %d", in_cluster.View());
290  }
291  }
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:136
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:135
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:714
ID_t ID() const
Identifier of this cluster.
Definition: Cluster.h:711
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:137
void PrepareDetParams(detinfo::DetectorPropertiesData const &clockData)
Internal method, called only once, to fill detector-wise information.
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 > _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 335 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().

336  {
337  if (_cluster_tree) {
338  _view_v.push_back(ci.view);
339  _charge_v.push_back(ci.sum_charge);
340  _nhits_v.push_back(ci.nhits);
341  _tstart_min_v.push_back(ci.start_time_min);
342  _tstart_max_v.push_back(ci.start_time_max);
343  _tpeak_min_v.push_back(ci.peak_time_min);
344  _tpeak_max_v.push_back(ci.peak_time_max);
345  _tend_min_v.push_back(ci.end_time_min);
346  _tend_max_v.push_back(ci.end_time_max);
347  }
348  }
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.

Definition at line 145 of file ClusterMatchAlg.cxx.

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

Referenced by ClusterMatchAlg().

146  {
149  ClearTTreeInfo();
150  }
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 88 of file ClusterMatchAlg.cxx.

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

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

89  {
90  _ucluster_v.clear();
91  _vcluster_v.clear();
92  _wcluster_v.clear();
93 
94  _uhits_v.clear();
95  _vhits_v.clear();
96  _whits_v.clear();
97  }
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 99 of file ClusterMatchAlg.cxx.

References _matched_sps_v, _matched_uclusters_v, _matched_vclusters_v, and _matched_wclusters_v.

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

100  {
101  _matched_uclusters_v.clear();
102  _matched_vclusters_v.clear();
103  _matched_wclusters_v.clear();
104  _matched_sps_v.clear();
105  }
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 107 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(), and MatchTwoPlanes().

108  {
109 
110  _mc_E = 0;
111  _mc_Px = 0;
112  _mc_Py = 0;
113  _mc_Pz = 0;
114  _mc_Vx = 0;
115  _mc_Vy = 0;
116  _mc_Vz = 0;
117  _pdgid = 0;
118  _tot_u = 0;
119  _tot_v = 0;
120  _tot_w = 0;
121  _tot_pass_z = 0;
122  _tot_pass_t = 0;
123  _tot_pass_sps = 0;
124  _tot_pass_qsum = 0;
125  _qratio_v.clear();
126  _uv_tratio_v.clear();
127  _vw_tratio_v.clear();
128  _wu_tratio_v.clear();
129  _u_nhits_v.clear();
130  _v_nhits_v.clear();
131  _w_nhits_v.clear();
132  _nsps.clear();
133 
134  _view_v.clear();
135  _charge_v.clear();
136  _nhits_v.clear();
137  _tstart_min_v.clear();
138  _tstart_max_v.clear();
139  _tpeak_min_v.clear();
140  _tpeak_max_v.clear();
141  _tend_min_v.clear();
142  _tend_max_v.clear();
143  }
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 293 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().

296  {
297 
298  out_hit_v.reserve(in_hit_v.size());
299 
300  double time_offset = 0;
301  if (ci.view == geo::kU)
302  time_offset = _time_offset_uplane;
303  else if (ci.view == geo::kV)
304  time_offset = _time_offset_vplane;
305  else if (ci.view == geo::kW)
306  time_offset = _time_offset_wplane;
307 
308  // Loop over hits in this cluster
309  for (auto const hit : in_hit_v) {
310 
311  unsigned int wire = hit->WireID().Wire;
312  double tstart = hit->PeakTimePlusRMS(-1.) - time_offset;
313  double tpeak = hit->PeakTime() - time_offset;
314  double tend = hit->PeakTimePlusRMS(+1.) - time_offset;
315 
316  ci.sum_charge += hit->Integral();
317 
318  ci.wire_max = (ci.wire_max < wire) ? wire : ci.wire_max;
319  ci.wire_min = (ci.wire_min > wire) ? wire : ci.wire_min;
320 
321  ci.start_time_max = (ci.start_time_max < tstart) ? tstart : ci.start_time_max;
322  ci.peak_time_max = (ci.peak_time_max < tpeak) ? tpeak : ci.peak_time_max;
323  ci.end_time_max = (ci.end_time_max < tend) ? tend : ci.end_time_max;
324 
325  ci.start_time_min = (ci.start_time_min > tstart) ? tstart : ci.start_time_min;
326  ci.peak_time_min = (ci.peak_time_min > tpeak) ? tpeak : ci.peak_time_min;
327  ci.end_time_min = (ci.end_time_min > tend) ? tend : ci.end_time_min;
328 
329  out_hit_v.push_back(hit);
330  }
331 
332  ci.nhits = in_hit_v.size();
333  }
void reserve(size_type n)
Definition: PtrVector.h:337
Planes which measure V.
Definition: geo_types.h:136
Planes which measure U.
Definition: geo_types.h:135
void push_back(Ptr< U > const &p)
Definition: PtrVector.h:435
Detector simulation of raw signals on wires.
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:137
void cluster::ClusterMatchAlg::FillMCInfo ( const art::Event evt)

Internal method to fill MCTruth information when available.

Definition at line 199 of file ClusterMatchAlg.cxx.

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

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

References _matched_uclusters_v, _matched_vclusters_v, and _matched_wclusters_v.

494  {
495  std::vector<std::vector<unsigned int>> result;
496  result.push_back(_matched_uclusters_v);
497  result.push_back(_matched_vclusters_v);
498  result.push_back(_matched_wclusters_v);
499  return result;
500  }
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 136 of file ClusterMatchAlg.h.

137  {
138  return _matched_sps_v;
139  };
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 369 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, cluster::ClusterMatchAlg::cluster_match_info::start_time_min, and cluster::ClusterMatchAlg::cluster_match_info::view.

Referenced by MatchThreePlanes(), and MatchTwoPlanes().

371  {
372  double time_overlay = std::min(ci1.end_time_max, ci2.end_time_max) -
373  std::max(ci1.start_time_min, ci2.start_time_min);
374 
375  double overlay_tratio =
376  time_overlay /
377  (ci1.end_time_max - ci1.start_time_min + ci2.end_time_max - ci2.start_time_min) * 2.;
378 
379  if ((ci1.view == geo::kU && ci2.view == geo::kV) ||
380  (ci1.view == geo::kV && ci2.view == geo::kU))
381  _uv_tratio_v.push_back(overlay_tratio);
382  else if ((ci1.view == geo::kV && ci2.view == geo::kW) ||
383  (ci1.view == geo::kW && ci2.view == geo::kV))
384  _vw_tratio_v.push_back(overlay_tratio);
385  else if ((ci1.view == geo::kW && ci2.view == geo::kU) ||
386  (ci1.view == geo::kU && ci2.view == geo::kW))
387  _wu_tratio_v.push_back(overlay_tratio);
388 
389  return (overlay_tratio > _overlay_tratio_cut);
390  }
std::vector< double > _vw_tratio_v
Planes which measure V.
Definition: geo_types.h:136
std::vector< double > _wu_tratio_v
Planes which measure U.
Definition: geo_types.h:135
std::vector< double > _uv_tratio_v
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:137
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 351 of file ClusterMatchAlg.cxx.

References geo::GeometryCore::IntersectionPoint(), cluster::ClusterMatchAlg::cluster_match_info::wire_max, cluster::ClusterMatchAlg::cluster_match_info::wire_min, and y.

Referenced by MatchThreePlanes(), and MatchTwoPlanes().

355  {
357  double y, z_min, z_max;
358  y = z_min = z_max = -1;
359  constexpr geo::TPCID tpcid{0, 0};
360  geo::PlaneID const plane_1{tpcid, v1};
361  geo::PlaneID const plane_2{tpcid, v2};
362  geo_h->IntersectionPoint(
363  geo::WireID{plane_1, ci1.wire_min}, geo::WireID{plane_2, ci2.wire_min}, y, z_min);
364  geo_h->IntersectionPoint(
365  geo::WireID{plane_1, ci1.wire_max}, geo::WireID{plane_2, ci2.wire_max}, y, z_max);
366  return z_max > z_min;
367  }
Float_t y
Definition: compare.C:6
The data type to uniquely identify a Plane.
Definition: geo_types.h:463
The data type to uniquely identify a TPC.
Definition: geo_types.h:381
bool IntersectionPoint(WireID const &wid1, WireID const &wid2, double &y, double &z) const
Returns the intersection point of two wires.
bool cluster::ClusterMatchAlg::Match_SpacePoint ( detinfo::DetectorClocksData const &  clockData,
detinfo::DetectorPropertiesData const &  detProp,
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 402 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(), trkf::SpacePointAlg::maxDT(), art::PtrVector< T >::push_back(), art::PtrVector< T >::reserve(), and art::PtrVector< T >::size().

Referenced by MatchThreePlanes(), and MatchTwoPlanes().

408  {
409  bool use_wplane = _tot_planes > 2;
410 
411  if (uindex >= _ucluster_v.size() || vindex >= _vcluster_v.size() ||
412  (use_wplane && (windex >= _wcluster_v.size()))) {
413 
414  mf::LogError("ClusterMatchAlg")
415  << std::endl
416  << Form(
417  "Requested to cluster-index (U,V,W) = (%zu,%zu,%zu) where max-length is (%zu,%zu,%zu)",
418  uindex,
419  vindex,
420  windex,
421  _ucluster_v.size(),
422  _vcluster_v.size(),
423  _wcluster_v.size())
424  << std::endl;
425  return false;
426  }
427 
428  // Define a time range in which hits are used for spacepoint finding ... here "peak time" is the relevant one
429  double trange_min =
430  std::min(_ucluster_v.at(uindex).peak_time_min, _vcluster_v.at(vindex).peak_time_min);
431  if (use_wplane) trange_min = std::min(trange_min, _wcluster_v.at(windex).peak_time_min);
432 
433  double trange_max =
434  std::max(_ucluster_v.at(uindex).peak_time_max, _vcluster_v.at(vindex).peak_time_max);
435  if (use_wplane) trange_max = std::max(trange_max, _wcluster_v.at(windex).peak_time_max);
436 
437  // Space-point algorithm applies additional dT
438  trange_min -= _sps_algo->maxDT();
439  trange_max += _sps_algo->maxDT();
440 
441  // Make PtrVector<recob::Hit> for relevant Hits
442  art::PtrVector<recob::Hit> hit_group;
443  size_t max_size = _uhits_v.at(uindex).size() + _vhits_v.at(vindex).size();
444  if (use_wplane) max_size += _whits_v.at(windex).size();
445  hit_group.reserve(max_size);
446  // Loop over hits in U-plane
447  for (auto const hit : _uhits_v.at(uindex)) {
448  if (hit->PeakTime() < trange_min) continue;
449  if (hit->PeakTime() > trange_max) continue;
450  hit_group.push_back(hit);
451  }
452  // Check if any hit found in this plane
453  size_t u_nhits = hit_group.size();
454  if (!u_nhits && !_debug_mode) return false;
455  // Loop over hits in V-plane
456  for (auto const hit : _vhits_v.at(vindex)) {
457  if (hit->PeakTime() < trange_min) continue;
458  if (hit->PeakTime() > trange_max) continue;
459  hit_group.push_back(hit);
460  }
461  // Check if any hit found in this plane
462  size_t v_nhits = hit_group.size() - u_nhits;
463  if (!(v_nhits) && !_debug_mode) return false;
464 
465  // Loop over hits in W-plane
466  if (use_wplane) {
467  for (auto const hit : _whits_v.at(windex)) {
468  if (hit->PeakTime() < trange_min) continue;
469  if (hit->PeakTime() > trange_max) continue;
470  hit_group.push_back(hit);
471  }
472  }
473  // Check if any hit found in this plane
474  size_t w_nhits = hit_group.size() - u_nhits - v_nhits;
475  if (!(w_nhits) && use_wplane && !_debug_mode) return false;
476 
477  // Run SpacePoint finder algo
478  if (u_nhits && v_nhits && (!use_wplane || (w_nhits && use_wplane))) {
480  _sps_algo->makeSpacePoints(clock_data, det_prop, hit_group, sps_v);
481  }
482 
483  size_t nsps = sps_v.size();
484  _u_nhits_v.push_back(u_nhits);
485  _v_nhits_v.push_back(v_nhits);
486  if (use_wplane) _w_nhits_v.push_back(w_nhits);
487  _nsps.push_back(nsps);
488 
489  if (nsps < _num_sps_cut) return false;
490  return true;
491  }
std::vector< uint16_t > _w_nhits_v
void reserve(size_type n)
Definition: PtrVector.h:337
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
std::vector< uint16_t > _nsps
void push_back(Ptr< U > const &p)
Definition: PtrVector.h:435
void makeSpacePoints(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const art::PtrVector< recob::Hit > &hits, std::vector< recob::SpacePoint > &spts) const
std::vector< art::PtrVector< recob::Hit > > _uhits_v
Local Hit pointer vector container ... U-plane.
double maxDT() const noexcept
Definition: SpacePointAlg.h:88
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:302
Detector simulation of raw signals on wires.
void clearHitMap() const
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 392 of file ClusterMatchAlg.cxx.

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

Referenced by MatchThreePlanes(), and MatchTwoPlanes().

393  {
394  double qratio = (uc.sum_charge) / (vc.sum_charge);
395 
396  // For quality check log
397  _qratio_v.push_back(qratio);
398 
399  return ((1 - _qratio_cut) < qratio && (qratio) < (1 + _qratio_cut));
400  }
std::vector< double > _qratio_v
void cluster::ClusterMatchAlg::MatchThreePlanes ( detinfo::DetectorClocksData const &  clock_data,
detinfo::DetectorPropertiesData const &  det_prop 
)

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().

Definition at line 610 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().

612  {
613  std::ostringstream msg;
614  msg << Form("Received (U,V,W) = (%zu,%zu,%zu) clusters...",
615  _uhits_v.size(),
616  _vhits_v.size(),
617  _whits_v.size())
618  << std::endl;
619  _tot_u = _ucluster_v.size();
620  _tot_v = _vcluster_v.size();
621  _tot_w = _wcluster_v.size();
622 
623  if (!(_tot_u + _tot_v + _tot_w)) {
624 
625  mf::LogError(__PRETTY_FUNCTION__)
626  << "No input cluster info found! Aborting the function call...";
627 
628  return;
629  }
630 
631  // Clear match information
632  PrepareTTree();
634 
635  bool overlay_2d = true;
636  bool overlay_3d = true;
637  // Loop over all possible u-v-w cluster combination
638  for (size_t uci_index = 0; uci_index < _ucluster_v.size(); ++uci_index) {
639 
640  for (size_t vci_index = 0; vci_index < _vcluster_v.size(); ++vci_index) {
641 
642  // Apply cuts that can be done with U&V planes here
643  overlay_2d = true;
644 
645  // Rough z-position overlay cut
646  if (_match_methods[kRoughZ]) {
647 
648  if (Match_RoughZ(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index), geo::kU, geo::kV))
649  _tot_pass_z++;
650  else if (!_debug_mode)
651  continue;
652  else
653  overlay_2d = false;
654  }
655 
656  // Sum charge cut
657  if (_match_methods[kSumCharge]) {
658 
659  if (Match_SumCharge(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index)))
660  _tot_pass_qsum++;
661  else if (!_debug_mode)
662  continue;
663  else
664  overlay_2d = false;
665  }
666 
667  for (size_t wci_index = 0; wci_index < _wcluster_v.size(); ++wci_index) {
668 
669  overlay_3d = overlay_2d;
670  // Apply cuts that requires 3 planes here
671 
672  // Rough time overlap cut
673  if (_match_methods[kRoughT]) {
674 
675  bool rough_time_match =
676  Match_RoughTime(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index));
677  if (!_debug_mode && !rough_time_match) continue;
678 
679  rough_time_match =
680  (Match_RoughTime(_vcluster_v.at(vci_index), _wcluster_v.at(wci_index)) &&
681  rough_time_match);
682  if (!_debug_mode && !rough_time_match) continue;
683 
684  rough_time_match =
685  (Match_RoughTime(_wcluster_v.at(wci_index), _ucluster_v.at(uci_index)) &&
686  rough_time_match);
687 
688  overlay_3d = overlay_3d && rough_time_match;
689  if (rough_time_match)
690  _tot_pass_t++;
691  else if (!_debug_mode)
692  continue;
693  }
694 
695  // SpacePoint cut
696  std::vector<recob::SpacePoint> sps_v;
698 
699  if (Match_SpacePoint(clock_data, det_prop, uci_index, vci_index, wci_index, sps_v))
700  _tot_pass_sps++;
701  else if (!_debug_mode)
702  continue;
703  else
704  overlay_3d = false;
705  }
706 
707  if (overlay_3d) {
708  _matched_uclusters_v.push_back((unsigned int)(_ucluster_v[uci_index].cluster_index));
709  _matched_vclusters_v.push_back((unsigned int)(_vcluster_v[vci_index].cluster_index));
710  _matched_wclusters_v.push_back((unsigned int)(_wcluster_v[wci_index].cluster_index));
711  if (_store_sps) _matched_sps_v.push_back(sps_v);
712  }
713  } // end of ... _wcluster_v loop
714  } // end of ... _vcluster_v loop
715  } // end of ... _ucluster_v loop
716 
717  // Report
718  msg << std::endl
719  << Form("Found %zu matched cluster pairs...", _matched_uclusters_v.size()) << std::endl;
720  for (size_t i = 0; i < _matched_uclusters_v.size(); ++i) {
721 
722  if (i == 0) msg << "Listing matched clusters (U,V,W)..." << std::endl;
723 
724  msg << Form("Pair %-2zu: (%-3d, %-3d, %-3d)",
725  i,
729  << std::endl;
730  }
731  msg << std::endl;
732  mf::LogWarning("ClusterMatchAlg") << msg.str();
733 
734  if (_match_tree) _match_tree->Fill();
735  if (_cluster_tree) _cluster_tree->Fill();
736 
738  ClearTTreeInfo();
739  }
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:136
bool Match_SpacePoint(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const size_t uindex, const size_t vindex, const size_t windex, std::vector< recob::SpacePoint > &sps_v)
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:135
void PrepareTTree()
Internal method to create output TTree for quality checking of the algorithm.
Rough-Time comparison method ... see Match_RoughTime() description.
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 ( detinfo::DetectorClocksData const &  clock_data,
detinfo::DetectorPropertiesData const &  det_prop 
)

Two plane version of cluster matching method.

Clear TTree variables

Definition at line 502 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().

504  {
505  std::ostringstream msg;
506  msg << Form("Received (U,V,W) = (%zu,%zu,%zu) clusters...",
507  _uhits_v.size(),
508  _vhits_v.size(),
509  _whits_v.size())
510  << std::endl;
511  _tot_u = _ucluster_v.size();
512  _tot_v = _vcluster_v.size();
513  _tot_w = _wcluster_v.size();
514 
515  if (!(_tot_u + _tot_v + _tot_w)) {
516 
517  mf::LogError(__PRETTY_FUNCTION__)
518  << "No input cluster info found! Aborting the function call...";
519 
520  return;
521  }
522 
523  // Initialization
524  PrepareTTree();
526 
527  bool overlay_2d = false;
528  for (size_t uci_index = 0; uci_index < _ucluster_v.size(); ++uci_index) {
529 
530  for (size_t vci_index = 0; vci_index < _vcluster_v.size(); ++vci_index) {
531 
532  overlay_2d = true;
533 
534  // Apply cuts
535  // Rough z-position overlay cut
536  if (_match_methods[kRoughZ]) {
537 
538  if (Match_RoughZ(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index), geo::kU, geo::kV))
539  _tot_pass_z++;
540  else if (!_debug_mode)
541  continue;
542  else
543  overlay_2d = false;
544  }
545 
546  // Sum charge cut
547  if (_match_methods[kSumCharge]) {
548 
549  if (Match_SumCharge(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index)))
550  _tot_pass_qsum++;
551  else if (!_debug_mode)
552  continue;
553  else
554  overlay_2d = false;
555  }
556 
557  // Rough time overlap cut
558  if (_match_methods[kRoughT]) {
559 
560  if (Match_RoughTime(_ucluster_v.at(uci_index), _vcluster_v.at(vci_index)))
561  _tot_pass_t++;
562  else if (!_debug_mode)
563  continue;
564  else
565  overlay_2d = false;
566  }
567 
568  // SpacePoint cut
569  std::vector<recob::SpacePoint> sps_v;
571 
572  if (Match_SpacePoint(clockData, detProp, uci_index, vci_index, 0, sps_v))
573  _tot_pass_sps++;
574  else if (!_debug_mode)
575  continue;
576  else
577  overlay_2d = false;
578  }
579 
580  if (overlay_2d) {
581  _matched_uclusters_v.push_back((unsigned int)(_ucluster_v[uci_index].cluster_index));
582  _matched_vclusters_v.push_back((unsigned int)(_vcluster_v[vci_index].cluster_index));
583  if (_store_sps) _matched_sps_v.push_back(sps_v);
584  }
585  } // end of ... _vcluster_v loop
586  } // end of ... _ucluster_v loop
587 
588  // Report
589  msg << std::endl
590  << Form("Found %zu matched cluster pairs...", _matched_uclusters_v.size()) << std::endl;
591  for (size_t i = 0; i < _matched_uclusters_v.size(); ++i) {
592 
593  if (i == 0) msg << "Listing matched clusters (U,V)..." << std::endl;
594 
595  msg << Form("Pair %-2zu: (%-3d, %-3d)", i, _matched_uclusters_v[i], _matched_vclusters_v[i])
596  << std::endl;
597  }
598  msg << std::endl;
599  mf::LogWarning("ClusterMatchAlg") << msg.str();
600 
601  if (_match_tree) _match_tree->Fill();
602  if (_cluster_tree) _cluster_tree->Fill();
603 
604  // Clear input event data holders
607  ClearTTreeInfo();
608  }
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:136
bool Match_SpacePoint(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const size_t uindex, const size_t vindex, const size_t windex, std::vector< recob::SpacePoint > &sps_v)
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:135
void PrepareTTree()
Internal method to create output TTree for quality checking of the algorithm.
Rough-Time comparison method ... see Match_RoughTime() description.
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 ( detinfo::DetectorPropertiesData const &  clockData)
protected

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

Definition at line 243 of file ClusterMatchAlg.cxx.

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

Referenced by AppendClusterInfo().

244  {
245  if (!_det_params_prepared) {
246  // Total number of planes
248  _tot_planes = geo->Nplanes();
249 
250  // Ask DetectorPrperties about time-offset among different wire planes ... used to correct timing
251  // difference among different wire planes in the following loop.
252  _time_offset_uplane = det_prop.GetXTicksOffset(geo::kU, 0, 0);
253  _time_offset_vplane = det_prop.GetXTicksOffset(geo::kV, 0, 0);
255  if (_tot_planes > 2) _time_offset_wplane = det_prop.GetXTicksOffset(geo::kW, 0, 0);
256  _det_params_prepared = true;
257  }
258  }
Planes which measure V.
Definition: geo_types.h:136
Planes which measure U.
Definition: geo_types.h:135
unsigned int Nplanes(TPCID const &tpcid=tpc_zero) const
Returns the total number of planes in the specified TPC.
Definition: GeometryCore.h:977
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:137
Namespace collecting geometry-related classes utilities.
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, and _wu_tratio_v.

Referenced by MatchThreePlanes(), and MatchTwoPlanes().

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

Method to report the current configuration.

Definition at line 65 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().

66  {
67  std::ostringstream msg;
68  msg << std::endl
69  << " ClusterMatchAlg Configuration: " << std::endl
70  << "---------------------------------------------" << std::endl;
71  msg << " Debug Mode ... " << (_debug_mode ? "enabled!" : "disabled!") << std::endl;
72  msg << " RoughZ ....... " << (_match_methods[kRoughZ] ? "enabled!" : "disabled!") << std::endl;
73  msg << " RoughT ....... " << (_match_methods[kRoughT] ? "enabled!" : "disabled!") << std::endl;
74  msg << " SpacePoint ... " << (_match_methods[kSpacePoint] ? "enabled!" : "disabled!")
75  << std::endl;
76  msg << " SumCharge .... " << (_match_methods[kSumCharge] ? "enabled!" : "disabled!")
77  << std::endl;
78  msg << std::endl;
79  msg << " Overlay-Time Fraction Cut : " << _overlay_tratio_cut << std::endl
80  << " Charge-Ratio Diff. Cut : " << _qratio_cut << std::endl
81  << " Minimum # of SpacePoint : " << _num_sps_cut << std::endl
82  << std::endl;
83  msg << "---------------------------------------------" << std::endl;
84 
85  mf::LogWarning("ClusterMatchAlg") << msg.str();
86  }
Use summed charge comparison ... see Match_SumCharge() description.
Use SpacePoint finder algorithm ... see Match_SpacePoint() description.
Rough-Time comparison method ... see Match_RoughTime() description.
bool _debug_mode
Boolean to enable debug mode (call all enabled matching methods)
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 108 of file ClusterMatchAlg.h.

References tca::evt, and lar::dump::vector().

108 { _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 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 289 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 232 of file ClusterMatchAlg.h.

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

bool cluster::ClusterMatchAlg::_det_params_prepared
protected

Definition at line 231 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 230 of file ClusterMatchAlg.h.

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

TTree* cluster::ClusterMatchAlg::_match_tree
protected

Definition at line 257 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 225 of file ClusterMatchAlg.h.

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

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

U plane matched clusters' index.

Definition at line 221 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 222 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 223 of file ClusterMatchAlg.h.

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

double cluster::ClusterMatchAlg::_mc_E
protected

Definition at line 259 of file ClusterMatchAlg.h.

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

double cluster::ClusterMatchAlg::_mc_Px
protected

Definition at line 260 of file ClusterMatchAlg.h.

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

double cluster::ClusterMatchAlg::_mc_Py
protected

Definition at line 261 of file ClusterMatchAlg.h.

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

double cluster::ClusterMatchAlg::_mc_Pz
protected

Definition at line 262 of file ClusterMatchAlg.h.

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

double cluster::ClusterMatchAlg::_mc_Vx
protected

Definition at line 263 of file ClusterMatchAlg.h.

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

double cluster::ClusterMatchAlg::_mc_Vy
protected

Definition at line 264 of file ClusterMatchAlg.h.

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

double cluster::ClusterMatchAlg::_mc_Vz
protected

Definition at line 265 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 239 of file ClusterMatchAlg.h.

Referenced by FillMCInfo().

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

Definition at line 290 of file ClusterMatchAlg.h.

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

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

Definition at line 279 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 211 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 213 of file ClusterMatchAlg.h.

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

int cluster::ClusterMatchAlg::_pdgid
protected

Definition at line 266 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 215 of file ClusterMatchAlg.h.

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

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

Definition at line 280 of file ClusterMatchAlg.h.

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

bool cluster::ClusterMatchAlg::_save_cluster_info
protected

Definition at line 286 of file ClusterMatchAlg.h.

Referenced by ClusterMatchAlg(), and PrepareTTree().

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

SpacePointFinder algorithm pointer.

Definition at line 252 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 233 of file ClusterMatchAlg.h.

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

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

Definition at line 296 of file ClusterMatchAlg.h.

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

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

Definition at line 295 of file ClusterMatchAlg.h.

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

double cluster::ClusterMatchAlg::_time_offset_uplane
protected

Definition at line 235 of file ClusterMatchAlg.h.

Referenced by FillHitInfo(), and PrepareDetParams().

double cluster::ClusterMatchAlg::_time_offset_vplane
protected

Definition at line 236 of file ClusterMatchAlg.h.

Referenced by FillHitInfo(), and PrepareDetParams().

double cluster::ClusterMatchAlg::_time_offset_wplane
protected

Definition at line 237 of file ClusterMatchAlg.h.

Referenced by FillHitInfo(), and PrepareDetParams().

unsigned short cluster::ClusterMatchAlg::_tot_pass_qsum
protected

Definition at line 270 of file ClusterMatchAlg.h.

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

unsigned short cluster::ClusterMatchAlg::_tot_pass_sps
protected

Definition at line 273 of file ClusterMatchAlg.h.

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

unsigned short cluster::ClusterMatchAlg::_tot_pass_t
protected

Definition at line 271 of file ClusterMatchAlg.h.

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

unsigned short cluster::ClusterMatchAlg::_tot_pass_z
protected

Definition at line 272 of file ClusterMatchAlg.h.

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

unsigned int cluster::ClusterMatchAlg::_tot_planes
protected

Definition at line 234 of file ClusterMatchAlg.h.

Referenced by Match_SpacePoint(), and PrepareDetParams().

unsigned short cluster::ClusterMatchAlg::_tot_u
protected

Definition at line 267 of file ClusterMatchAlg.h.

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

unsigned short cluster::ClusterMatchAlg::_tot_v
protected

Definition at line 268 of file ClusterMatchAlg.h.

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

unsigned short cluster::ClusterMatchAlg::_tot_w
protected

Definition at line 269 of file ClusterMatchAlg.h.

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

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

Definition at line 294 of file ClusterMatchAlg.h.

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

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

Definition at line 293 of file ClusterMatchAlg.h.

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

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

Definition at line 292 of file ClusterMatchAlg.h.

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

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

Definition at line 291 of file ClusterMatchAlg.h.

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

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

Definition at line 276 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 248 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 242 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 281 of file ClusterMatchAlg.h.

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

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

Definition at line 277 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 249 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 244 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 288 of file ClusterMatchAlg.h.

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

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

Definition at line 282 of file ClusterMatchAlg.h.

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

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

Definition at line 278 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 250 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 246 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 283 of file ClusterMatchAlg.h.

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


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