LArSoft  v10_04_05
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:132
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:131
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:133
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:132
Planes which measure U.
Definition: geo_types.h:131
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:133
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 496 of file ClusterMatchAlg.cxx.

References _matched_uclusters_v, _matched_vclusters_v, and _matched_wclusters_v.

497  {
498  std::vector<std::vector<unsigned int>> result;
499  result.push_back(_matched_uclusters_v);
500  result.push_back(_matched_vclusters_v);
501  result.push_back(_matched_wclusters_v);
502  return result;
503  }
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 372 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().

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

Referenced by MatchThreePlanes(), and MatchTwoPlanes().

355  {
356  auto const& wireReadoutGeom = art::ServiceHandle<geo::WireReadout>()->Get();
357  double z_min{-1}, z_max{-1};
358  constexpr geo::TPCID tpcid{0, 0};
359  geo::PlaneID const plane_1{tpcid, v1};
360  geo::PlaneID const plane_2{tpcid, v2};
361  if (auto intersection = wireReadoutGeom.WireIDsIntersect(geo::WireID{plane_1, ci1.wire_min},
362  geo::WireID{plane_2, ci2.wire_min})) {
363  z_min = intersection->z;
364  }
365  if (auto intersection = wireReadoutGeom.WireIDsIntersect(geo::WireID{plane_1, ci1.wire_max},
366  geo::WireID{plane_2, ci2.wire_max})) {
367  z_max = intersection->z;
368  }
369  return z_max > z_min;
370  }
The data type to uniquely identify a Plane.
Definition: geo_types.h:364
cout<< "Opened file "<< fin<< " ixs= "<< ixs<< endl;if(ixs==0) hhh=(TH1F *) fff-> Get("h1")
Definition: AddMC.C:8
The data type to uniquely identify a TPC.
Definition: geo_types.h:306
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 405 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().

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

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

Referenced by MatchThreePlanes(), and MatchTwoPlanes().

396  {
397  double qratio = (uc.sum_charge) / (vc.sum_charge);
398 
399  // For quality check log
400  _qratio_v.push_back(qratio);
401 
402  return ((1 - _qratio_cut) < qratio && (qratio) < (1 + _qratio_cut));
403  }
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 613 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().

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

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

Referenced by AppendClusterInfo().

244  {
245  if (!_det_params_prepared) {
246  // Total number of planes
247  auto const& wireReadoutGeom = art::ServiceHandle<geo::WireReadout>()->Get();
248  _tot_planes = wireReadoutGeom.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:132
cout<< "Opened file "<< fin<< " ixs= "<< ixs<< endl;if(ixs==0) hhh=(TH1F *) fff-> Get("h1")
Definition: AddMC.C:8
Planes which measure U.
Definition: geo_types.h:131
Planes which measure W (third view for Bo, MicroBooNE, etc).
Definition: geo_types.h:133
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: