eventAnalysis  7.0-49-g0ac7482
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TSFGReconModule.hxx
Go to the documentation of this file.
1 #ifndef TSFGReconModule_hxx_seen
2 #define TSFGReconModule_hxx_seen
3 
4 #include <string>
5 
6 #include <TClonesArray.h>
7 #include <TLorentzVector.h>
8 #include <TNamed.h>
9 #include <TPRegexp.h>
10 #include <TTree.h>
11 #include <TVector3.h>
12 
13 #include <TND280Event.hxx>
14 #include <TReconCluster.hxx>
15 #include <TReconPID.hxx>
16 #include <TReconShower.hxx>
17 #include <TReconTrack.hxx>
18 #include <TReconVertex.hxx>
19 
20 #include <TG4VHit.hxx>
21 #include <TMCDigit.hxx>
22 #include <TMCHit.hxx>
23 
24 #include <TG4VHit.hxx>
25 #include <TG4HitSegment.hxx>
26 #include <retrieveHitTruthInfo.hxx>
27 #include <TG4Trajectory.hxx>
28 
30 
31 namespace ND {
32  class TSFGReconModule;
33 };
34 
35 /// Used to fill a TTree of summary information for the SFG reconstruction
36 /// algorithms. This defines branches for the ReconDir/SFG tree.
38 public:
39  TSFGReconModule(const char *name = "SFG",
40  const char *title = "SFG Recon Module");
41  virtual ~TSFGReconModule();
42 
43  /// Override the parent method to return the type of this tree. This MUST
44  /// be provided.
45  virtual EType GetTreeType() const {return kRecon;}
46 
47  /// This gets called on the first event to let the main event loop know if
48  /// the first event in the file should be processed. Always return true.
49  virtual Bool_t ProcessFirstEvent(ND::TND280Event &) {return true;}
50 
51  /// An internal Id and object type for each Reconstruction object.
52  struct ObjectId {
53  /// The reconstruction object type that this internal Id refers to.
54  /// Not explicitly stored in output TTree. It's used by
55  /// FillReconObject to determine which Fill<type>() Method to call.
56  enum OType_t {
57  kBlank = 0,
64  };
66 
67  /// An internal Id for each Reconstruction object. These Ids are
68  /// sequential from 0 for each object type within each event and
69  /// correspond to their position within the respective containers.
70  int id;
71 
72  /// The default constructor.
73  ObjectId(): type(kBlank), id(-1) { }
74  };
75 
76  /// The representation of the information store in each SFG
77  /// TAlgorithmResult object. This is used to track which vertices,
78  /// particles, tracks, showers, clusters and hits are associated with the
79  /// particular reconstruction result. The path in the event for this
80  /// result is saved in AlgorithmName.
81  class TSFGAlgoRes : public TObject {
82  public:
83  virtual ~TSFGAlgoRes();
84 
85  //###################################################
86  // These items are used by templated code, and must be the same
87  // for all of: SFGAlgoRes, SFGVertex, SFGParticle, SFGTrack,
88  // SFGShower and SFGCluster.
89  //###################################################
90 
91  std::string AlgorithmName; ///< The name of the algorithm that generated this object.
92 
93 
94  std::vector<int> Vertices; ///< Holds index of the TSFGVertex objects that are pertinent to this algorithm result.
95  ///Holds index of the TSFGVertex objects that are pertinent to this algorithm result.
96  /// The associated objects are saved inside the
97  /// fVertices field. The fVertices field is attached to the
98  /// "Vertices" branch.
99 
100 
101  std::vector<int> Particles;///< Holds index of the TSFGParticle objects that are pertinent to this algorithm result.
102  ///Holds index of the TSFGParticle objects that are pertinent to this algorithm result.
103  /// The associated objects are saved inside the
104  /// fParticles field which is attached to the "Particles" branch.
105 
106  std::vector<int> Tracks; ///< Holds index of the TSFGTrack objects that are pertinent to this algorithm result.
107  /// Holds index of the TSFGTrack objects that are pertinent to this algorithm result.
108  /// The associated objects are saved inside the
109  /// fTracks field which is attached to the "Tracks" branch.
110 
111  std::vector<int> Showers;///< Holds index of the TSFGShower objects that are pertinent to this algorithm result.
112  ///Holds index of the TSFGShower objects that are pertinent to this algorithm result.
113  /// The associated objects are saved inside the
114  /// fShowers field which is attached to the "Showers" branch.
115 
116  std::vector<int> Clusters; ///< Holds index of the TSFGCluster objects that are pertinent to this algorithm result.
117  ///Holds index of the TSFGCluster objects that are pertinent to this algorithm result.
118  ///The associated objects are saved inside the
119  /// fClusters field which is attached to the "Clusters" branch.
120 
121  std::vector<int> Nodes; ///< Holds index of the TSFGNode objects that are pertinent to this algorithm result.
122  ///Holds index of the TSFGNode objects that are pertinent to this algorithm result.
123  /// The associated objects are saved inside the
124  /// fNodes field which is attached to the "Nodes" branch.
125 
126  std::vector<int> Hits; ///< Holds index of the TSFGHit objects that are pertinent to this algorithm result.
127  /// Holds index of the TSFGHit objects that are pertinent to this algorithm result.
128  /// The associated objects are saved inside the
129  /// fHits field which is attached to the "Hits" branch. The hits are
130  /// only saved for some of the files that are intended for special
131  /// studies. For full productions, this will probably be empty.
132 
133  int NHits;///< A count of the Hits associated with this object.
134  ///A count of the Hits associated with this object.
135  /// This is not the
136  /// count of entries in the Hits vector (above). It is filled even
137  /// with the Hits vector is not.
138 
139  UInt_t UniqueId;///< A unique Id used for reconstruction objects
140  /// A unique Id used for reconstruction objects.
141  /// It is not used for
142  /// the TSFGAlgoRes object but is used for the other TSFGVertex (&c)
143  /// objects.
144 
145  //###################################################
146  // Objects below here are unique to the TSFGAlgoRes class.
147  //###################################################
148 
149  std::string FullName; ///< The path to the result inside the event. This is also the string
150  /// The path to the result inside the event. This is also the string
151  /// that would be passed to TND280Event::GetFit() to find the result.
152  /// For example, if the result is saved in "~/fit/TSFGRecon", this
153  /// string will contain "TSFGRecon".
154 
155  std::vector<int> AlgoResults; ///< The index of the daughter algorithms for this algorithm result.
156 
157  int Parent; ///< The index of the parent algorithm for this algorithm result. This will be -1 if this doesn't have a parent.
158 
159  int UsedHitCluster; ///< The index of the cluster that contains all of the hits used by this algorithm result. This is -1 if the hits are not saved.
160 
161  int UnusedHitCluster; ///< The index of the cluster that contains all of the hits not used by this algorithm result. This is -1 if the hits are not saved.
162 
164  };
165 
166  /// The representation of the information store in each SFG TReconVertex
167  /// object.
168  class TSFGVertex : public TObject {
169  public:
170  virtual ~TSFGVertex();
171 
172  /// @{ The indices of the objects contained by the current object.
173  /// See the documentation in TSFGAlgoRes for details.
174  std::string AlgorithmName; ///< The name of the algorithm which produced this object
175  std::vector<int> Vertices; ///<The indices of the vertices contained by the current object.
176  std::vector<int> Particles; ///<The indices of the particles contained by the current object.
177  std::vector<int> Tracks; ///<The indices of the tracks contained by the current object.
178  std::vector<int> Showers;///<The indices of the showers contained by the current object.
179  std::vector<int> Clusters;///<The indices of the clusters contained by the current object.
180  std::vector<int> Nodes;///<The indices of the nodes contained by the current object.
181  std::vector<int> Hits;///<The indices of the hits contained by the current object.
182  int NHits; ///< Number of hits
183  UInt_t UniqueId; ///< A unique Id used for reconstruction objects.
184  /// @}
185 
186  int Status; ///< The reported status of the corresponding object. Use ND::TReconBase::StateBits to check the which status flags are set.
187 
188  float Quality; ///< The reported reconstruction 'quality' of the vertex. Retrieved from ND::TReconBase::GetQuality
189 
190  int NDOF; ///< The Number of Degrees of Freedom in the vertex. Retrieved from ND::TReconBase::GetNDOF
191 
192  TLorentzVector Position; ///< Position of the correspponding object.
193 
194  TLorentzVector PosVariance; ///< Variance on the position of the corresponding object.
195 
196  // Truth level hit information. For the MC hits in an object we
197  // store: the true trajectory Ids, the number of hits contributed
198  // by each and the charge share.
199 
200  std::vector<int> Truth_PrimaryTrajIds; ///< The vector of primary true trajectory Ids which contribute to the ND::THits which are constituents of this vertex.
201  /// The vector of primary true trajectory Ids which contribute to the ND::THits which are constituents of this vertex.
202  ///These are
203  /// 'pseudo-primaries', which may or may not be primaries for a
204  /// vertex. It is the 'interesting' primary that is defined by
205  /// nd280Geant4Sim, and can include particles such as photons from
206  /// pi0 decay and michel electrons from muon decay. If you want to
207  /// be sure of finding a vertex, use the TSFGVertex::Truth_TrajIds
208  /// list and get primary Id from the trajectories. See
209  /// HitTruthPrimaryInfo for how they are
210  /// calculated.
211 
212  std::vector<int> Truth_TrajIds;///< The vector of true trajectory Ids which contribute to the ND::THits which are constituents of this vertex.
213  /// The vector of true trajectory Ids which contribute to the ND::THits which are constituents of this vertex.
214  /// The index of a
215  /// given trajectory id within this vector is used as the index for
216  /// the corresponding information held in TSFGVertex::Truth_HitCount
217  /// and TSFGVertex::Truth_ChargeShare. See
218  /// HitTruthInfo for how they are calculated.
219 
220  std::vector<int> Truth_HitCount; ///< The number of THits that each truth trajectory contributed to.
221  /// The number of THits that each truth trajectory contributed to.
222  /// This doesn't have to equal the number of hits, hits can be shared
223  /// and some hits may not have associated trajectories. Indexed by
224  /// the position of the relevant trajectory Id in
225  /// TSFGVertex::Truth_TrajIds. See HitTruthInfo
226  /// for how they are calculated.
227 
228  std::vector<float> Truth_ChargeShare; ///< The weighted reconstructed charge deposited by each truth
229  /// The weighted reconstructed charge deposited by each truth
230  /// trajectory. For each THit, a trajectory will receive a
231  /// proportional share of the charge, based on the total true charge
232  /// deposited by all contributing trajectories. Indexed by the
233  /// position of the relevant trajectory Id in
234  /// TSFGVertex::Truth_TrajIds. See HitTruthInfo
235  /// for how they are calculated.
236 
238  };
239 
240  /// A summary of the reconstruction information in a TReconPID.
241  class TSFGParticle : public TObject {
242  public:
243  virtual ~TSFGParticle();
244 
245  /// @{ The indices of the objects contained by the current object.
246  /// See the documentation in TSFGAlgoRes for details.
247  std::string AlgorithmName; ///< The name of the algorithm which produced this object
248  std::vector<int> Vertices; ///<The indices of the vertices contained by the current object.
249  std::vector<int> Particles; ///<The indices of the particles contained by the current object.
250  std::vector<int> Tracks; ///<The indices of the tracks contained by the current object.
251  std::vector<int> Showers;///<The indices of the showers contained by the current object.
252  std::vector<int> Clusters;///<The indices of the clusters contained by the current object.
253  std::vector<int> Nodes;///<The indices of the nodes contained by the current object.
254  std::vector<int> Hits;///<The indices of the hits contained by the current object.
255 
256  int NHits; ///< Number of hits
257  UInt_t UniqueId; ///< A unique Id used for reconstruction objects.
258  /// @}
259 
260  int Status; ///< The reported Status of the corresponding ND::TReconPID. Use
261  /// ND::TReconBase::StateBits to check the which status flags are set.
262 
263  float Quality; ///< The reported reconstruction 'quality' of the corresponding
264  /// object. Uses ND::TReconBase::GetQuality
265 
266  int NDOF; ///< The Number of Degrees of Freedom in the reconstruction of the
267  /// corresponding object. Retrieved from
268  /// ND::TReconBase::GetNDOF
269 
270  TLorentzVector Position; ///< Position of the correspponding object.
271 
272  TLorentzVector PosVariance; ///< Variance on the position of the corresponding object.
273 
274  TVector3 Direction; ///< Direction of the corresponding object.
275 
276  TVector3 DirVariance; ///< Direction variance of the corresponding object.
277 
278  float Momentum; ///< The reconstructed momentum of the corresponding TReconPID.
279 
280  float Charge; ///< The reconstructed particle charge of the corresponding TReconPID.
281 
282  std::vector<int> PID; ///< Potential PIDs (ND::TReconPID::ParticleId) matching with TSFGParticle::PID_Weight values.
283 
284  std::vector<float> PID_weight; ///< PID weights for each PID in TSFGParticle::PID.
285 
286  int TrueParticleID; ///< True G4 particle associated to a TSFGParticle
287  int TrueParticlePur; ///< Purity of the True G4 particle associated to a TSFGParticle
288  int TrueParticleEff; ///< Efficiency of the True G4 particle associated to a TSFGParticle
289 
290  ///@{ Truth level hit information. For the MC hits in an object we
291  /// store: the true trajectory Ids, the number of hits contributed by
292  /// each and the charge share. See the TSFGVertex object for
293  /// documentation.
294  std::vector<int> Truth_PrimaryTrajIds; ///< Primary Ids of truth trajectories
295  std::vector<int> Truth_TrajIds; ///< True trajectory Ids
296  std::vector<int> Truth_HitCount; ///< Nmber of hits contributed by each true trajectory
297  std::vector<float> Truth_ChargeShare; ///< Carge share o true trajectory
298  /// @}
299 
301  };
302 
303  /// Contains a summary of the reconstruction information in a TReconTrack.
304  class TSFGTrack : public TObject {
305  public:
306  virtual ~TSFGTrack();
307 
308  /// @{ The indices of the objects contained by the current object.
309  /// See the documentation in TSFGAlgoRes for details.
310  std::string AlgorithmName; ///< The name of the algorithm which produced this object
311  std::vector<int> Vertices; ///<The indices of the vertices contained by the current object.
312  std::vector<int> Particles; ///<The indices of the particles contained by the current object.
313  std::vector<int> Tracks; ///<The indices of the tracks contained by the current object.
314  std::vector<int> Showers;///<The indices of the showers contained by the current object.
315  std::vector<int> Clusters;///<The indices of the clusters contained by the current object.
316  std::vector<int> Nodes;///<The indices of the nodes contained by the current object.
317  std::vector<int> Hits;///<The indices of the hits contained by the current object.
318 
319  int NHits; ///< Number of hits
320  UInt_t UniqueId; ///< A unique Id used for reconstruction objects.
321  /// @}
322 
323  int Status; ///< The reported Status of the corresponding object. Use ND::TReconBase::StateBits to check the which status flags are set.
324 
325  float Quality; ///< The reported reconstruction 'quality' of the corresponding object. Uses ND::TReconBase::GetQuality
326 
327  int NDOF; ///< The Number of Degrees of Freedom in the reconstruction of the corresponding object. Retrieved from ND::TReconBase::GetNDOF
328 
329  float EDeposit;///< The total reconstructed energy deposit of the corresponding track. This is usually just the sum of the charge for all of the hits.
330 
331  TLorentzVector Position;///< Position of the corresponding object.
332 
333  TLorentzVector PosVariance; ///< Variance on the position of the corresponding object.
334 
335  TVector3 Direction;///< Direction of the corresponding object.
336 
337  TVector3 DirVariance; ///< Direction variance of the corresponding object.
338 
339  float Length; ///< The length of the track calculated by summing over the distances between the constituent TReconNodes.
340 
341  // True G4 particle associated to a TSFGTrack
342  int TrueParticleID; ///< True Geant4 particle associated to a TSFGTrack
343  int TrueParticlePur; ///< Purity of Geant4 particle associated to a TSFGTrack
344  int TrueParticleEff; ///< Efficiency of Geant4 particle associated to a TSFGTrack
345 
346  ///@{ Truth level hit information. For the MC hits in an object we
347  /// store: the true trajectory Ids, the number of hits contributed by
348  /// each and the charge share. See the TSFGVertex object for
349  /// documentation.
350 
351  std::vector<int> Truth_PrimaryTrajIds; ///< Primary Ids of truth trajectories
352  std::vector<int> Truth_TrajIds; ///< True trajectory Ids
353  std::vector<int> Truth_HitCount; ///< Nmber of hits contributed by each true trajectory
354  std::vector<float> Truth_ChargeShare; ///< Carge share o true trajectory
355  /// @}
356 
358  };
359 
360  /// Contains a summary of the reconstruction information in a TReconShower.
361  class TSFGShower : public TObject {
362  public:
363  virtual ~TSFGShower();
364 
365  /// @{ The indices of the objects contained by the current object.
366  /// See the documentation in TSFGAlgoRes for details.
367  std::string AlgorithmName; ///< The name of the algorithm which produced this object
368  std::vector<int> Vertices; ///<The indices of the vertices contained by the current object.
369  std::vector<int> Particles; ///<The indices of the particles contained by the current object.
370  std::vector<int> Tracks; ///<The indices of the tracks contained by the current object.
371  std::vector<int> Showers;///<The indices of the showers contained by the current object.
372  std::vector<int> Clusters;///<The indices of the clusters contained by the current object.
373  std::vector<int> Nodes;///<The indices of the nodes contained by the current object.
374  std::vector<int> Hits;///<The indices of the hits contained by the current object.
375  int NHits; ///< Number of hits
376  UInt_t UniqueId; ///< A unique Id used for reconstruction objects.
377 
378  /// @}
379 
380  int Status; ///< The reported Status of the corresponding object. Use ND::TReconBase::StateBits to check the which status flags are set.
381 
382  float Quality; ///< The reported reconstruction 'quality' of the corresponding object. Uses ND::TReconBase::GetQuality
383 
384  int NDOF; ///< The Number of Degrees of Freedom in the reconstruction of the corresponding object. Retrieved from ND::TReconBase::GetNDOF
385 
386  float EDeposit;///< The total reconstructed energy deposit of the corresponding track. This is usually just the sum of the charge for all of the hits.
387 
388  TLorentzVector Position;///< Position of the corresponding object.
389 
390  TLorentzVector PosVariance; ///< Variance on the position of the corresponding object.
391 
392  TVector3 Direction;///< Direction of the corresponding object.
393 
394  TVector3 DirVariance; ///< Direction variance of the corresponding object.
395 
396 
397  // True G4 particle associated to a TSFGTrack
398  int TrueParticleID; ///< True Geant4 particle associated to a TSFGTrack
399  int TrueParticlePur; ///< Purity of Geant4 particle associated to a TSFGTrack
400  int TrueParticleEff; ///< Efficiency of Geant4 particle associated to a TSFGTrack
401 
402  float Cone; ///< The opening angle of the TShowerState cone of the corresponding TReconShower.
403 
404  float Width;///< The 'width' of the shower, the extent perpendicular to the direction.
405  /// The 'width' of the shower, the extent perpendicular to the direction.
406  /// This is calculated here. Each of the THits, within the
407  /// TReconShower, contributes to the width based on it's, charged
408  /// weighted, perpendicular distance from the TReconShower's
409  /// position. This is done in 2D.
410 
411  float Length;///< The RMS length of the shower, the extent parallel to the direction.
412  ///The RMS length of the shower, the extent parallel to the direction.
413  /// This is calculated here. Each of the THits, within the
414  /// TReconShower, contributes to the width based on it's, charged
415  /// weighted, perpendicular distance from the TReconShower's
416  /// position. This is done in 2D.
417 
418  ///@{ Truth level hit information. For the MC hits in an object we
419  /// store: the true trajectory Ids, the number of hits contributed by
420  /// each and the charge share. See the TSFGVertex object for
421  /// documentation.
422 
423  std::vector<int> Truth_PrimaryTrajIds; ///< Primary Ids of truth trajectories
424  std::vector<int> Truth_TrajIds; ///< True trajectory Ids
425  std::vector<int> Truth_HitCount; ///< Nmber of hits contributed by each true trajectory
426  std::vector<float> Truth_ChargeShare; ///< Carge share o true trajectory
427  /// @}
428 
430  };
431 
432  /// Contains a summary of the reconstruction information in a TReconCluster.
433  class TSFGCluster : public TObject {
434  public:
435  virtual ~TSFGCluster();
436 
437  /// @{ The indices of the objects contained by the current object.
438  /// See the documentation in TSFGAlgoRes for details.
439 
440  std::string AlgorithmName; ///< The name of the algorithm which produced this object
441  std::vector<int> Vertices; ///<The indices of the vertices contained by the current object.
442  std::vector<int> Particles; ///<The indices of the particles contained by the current object.
443  std::vector<int> Tracks; ///<The indices of the tracks contained by the current object.
444  std::vector<int> Showers;///<The indices of the showers contained by the current object.
445  std::vector<int> Clusters;///<The indices of the clusters contained by the current object.
446  std::vector<int> Nodes;///<The indices of the nodes contained by the current object.
447  std::vector<int> Hits;///<The indices of the hits contained by the current object.
448 
449  int NHits; ///< Number of hits
450  UInt_t UniqueId; ///< A unique Id used for reconstruction objects.
451  /// @}
452 
453 
454  float EDeposit;///< The total reconstructed energy deposit of the corresponding track. This is usually just the sum of the charge for all of the hits.
455 
456  TLorentzVector Position;///< Position of the corresponding object.
457 
458  TLorentzVector PosVariance; ///< Variance on the position of the corresponding object.
459 
460 
461  static const int arraySize = 9; ///< Size of the TSFGCluster::Moments array.
462 
463  float Moments[arraySize]; ///< Moments of the cluster stored as a flat 3x3 matrix.
464 
465  // True G4 particle associated to a TSFGTrack
466  int TrueParticleID; ///< True Geant4 particle associated to a TSFGTrack
467  int TrueParticlePur; ///< Purity of Geant4 particle associated to a TSFGTrack
468  int TrueParticleEff; ///< Efficiency of Geant4 particle associated to a TSFGTrack
469 
470  ///@{ Truth level hit information. For the MC hits in an object we
471  /// store: the true trajectory Ids, the number of hits contributed by
472  /// each and the charge share. See the TSFGVertex object for
473  /// documentation.
474 
475  std::vector<int> Truth_PrimaryTrajIds; ///< Primary Ids of truth trajectories
476  std::vector<int> Truth_TrajIds; ///< True trajectory Ids
477  std::vector<int> Truth_HitCount; ///< Nmber of hits contributed by each true trajectory
478  std::vector<float> Truth_ChargeShare; ///< Carge share o true trajectory
479 
480  /// @}
481 
483  };
484 
485  /// Contains a summary of the reconstruction information in a TReconNode.
486  class TSFGNode : public TObject {
487  public:
488  virtual ~TSFGNode();
489 
490  std::vector<int> Hits; ///< Holds internal Ids of Hits pertinent to this reconstruction node.
491  /// Holds internal Ids of Hits pertinent to this reconstruction node.
492  /// Holds ObjectId::id of
493  /// TSFGHit objects which are equivalent to
494  /// indicies of fHits which hold Hits related to
495  /// this reconstruction node.
496 
497  float EDeposit; ///< The total reconstructed energy deposit of the corresponding track.
498 
499  double EDeposit_fit; ///< Fitted energy deposit for each node
500 
501 
502  TLorentzVector Position;///< Position of the corresponding object.
503 
504  TLorentzVector PosVariance; ///< Variance on the position of the corresponding object.
505 
506  TVector3 Direction;///< Direction of the corresponding object.
507 
508  TVector3 DirVariance; ///< Direction variance of the corresponding object.
509 
510 
511 
512  ///@{ Truth level hit information. For the MC hits in an object we
513  /// store: the true trajectory Ids, the number of hits contributed by
514  /// each and the charge share. See the TSFGVertex object for
515  /// documentation.
516  std::vector<int> Truth_PrimaryTrajIds; ///< Primary Ids of truth trajectories See the TSFGVertex object for documentation
517  std::vector<int> Truth_TrajIds; ///< True trajectory Ids See the TSFGVertex object for documentation
518  std::vector<int> Truth_HitCount; ///< Nmber of hits contributed by each true trajectory See the TSFGVertex object for documentation
519  std::vector<float> Truth_ChargeShare; ///< Carge share o true trajectory See the TSFGVertex object for documentation
520 
521  /// @}
522 
524  };
525 
526  /// Contains a summary of the reconstruction information for each cube.
527  class TSFGHit : public TObject {
528  public:
529  virtual ~TSFGHit();
530 
531  UInt_t GeomId; ///< Geometry Id of the TSingleHit.
532 
533  float Charge; ///< Reconstructed hit charge without attenuation correction from thE corresponding TSingleHit.
534 
535  float Time; ///< Reconstructed hit time from the corresponding TSingleHit.
536 
537  TVector3 Position; ///< Hit position
538 
539  int TrkHitTag; ///< Single/multiple track hit tagging Notation: 1 = multiple track hits, 2 = single track hits, 3 = other (xtalk or ghost)
540 
541  std::vector<TLorentzVector> HitSegPosition; ///< True hit segments inside the cube position (3D + time)
542  std::vector<TVector3> HitSegDirection; ///< True hit segments inside the cube direction (3D)
543 
544  std::vector<int> HitSegTruePDG;///< True particle PDG of the track contributing to the hit segment
545  std::vector<float> HitSegTrueP; ///< True momentum of the track contributing to the hit segment
546  std::vector<float> HitSegTrueEdepo; ///< True energy loss of the current hit segment
547 
549  };
550 
551  typedef TClonesArray TSFGAlgoResContainer;
552  typedef TClonesArray TSFGVertexContainer;
553  typedef TClonesArray TSFGPartContainer;
554  typedef TClonesArray TSFGTrackContainer;
555  typedef TClonesArray TSFGShowerContainer;
556  typedef TClonesArray TSFGClusterContainer;
557  typedef TClonesArray TSFGNodeContainer;
558  typedef TClonesArray TSFGHitContainer;
559 
560  /// The TSFGAlgoRes vector of results. These are attached to the
561  /// NAlgoResults, and the AlgoResults branches.
563  /// The TSFGAlgoRes vector of results. These are attached to the
564  /// NAlgoResults, and the AlgoResults branches.
566 
567  /// The TSFGVertex vector of results. These are attached to the
568  /// NVertices, and the Vertices branches.
570  /// The TSFGVertex vector of results. These are attached to the
571  /// NVertices, and the Vertices branches.
573 
574  /// The TSFGParticle vector of results. These are attached to the
575  /// NParticles, and the Particles branches.
577  /// The TSFGParticle vector of results. These are attached to the
578  /// NParticles, and the Particles branches.
580 
581  /// The TSFGTrack vector of results. These are attached to the
582  /// NTracks, and the Tracks branches.
583  int fNTracks;
584  /// The TSFGTrack vector of results. These are attached to the
585  /// NTracks, and the Tracks branches.
587 
588  /// The TSFGShower vector of results. These are attached to the
589  /// NShowers, and the Showers branches.
591  /// The TSFGShower vector of results. These are attached to the
592  /// NShowers, and the Showers branches.
594 
595  /// The TSFGCluster vector of results. These are attached to the
596  /// NClusters, and the Clusters branches.
598  /// The TSFGCluster vector of results. These are attached to the
599  /// NClusters, and the Clusters branches.
601 
602  /// The TSFGNode vector of results. These are attached to the
603  /// NNodes, and the Nodes branches.
604  int fNNodes;
605  /// The TSFGNode vector of results. These are attached to the
606  /// NNodes, and the Nodes branches.
608 
609  /// The TSFGHit vector of hits. These are attached to the
610  /// NHits, and the Hits branches.
611  int fNHits;
612  /// The TSFGHit vector of hits. These are attached to the
613  /// NHits, and the Hits branches.
615 
616  /// The TSFGHit vector of hits for each fiber. These are attached to the
617  /// NFibers, and the Fibers branches. This is usually only filled for
618  /// debugging.
619  int fNFibers;
620  /// The TSFGHit vector of hits for each fiber. These are attached to the
621  /// NFibers, and the Fibers branches. This is usually only filled for
622  /// debugging.
624 
625  /// The TSFGHit vector of hits based on the number of photons generated in
626  /// each cube. These are attached to the NTrueHits, and the TrueHits
627  /// branches. This is usually only filled for debugging (and only for
628  /// MC).
631 
632 protected:
633  /// Called before anything else to allow the module to initialize.
634  /// Nothing to do here.
635  virtual void InitializeModule() {}
636 
637  /// Called to let the module setup the appropriate branches.
638  virtual void InitializeBranches();
639 
640  /// Called by the main loop to fill an event.
641  virtual bool FillTree(ND::TND280Event &);
642 
643 private:
644  /// Fill an algorithm result and all of it's subsidiary reconstruction
645  /// objects.
646  virtual int FillAlgorithmResult(const ND::THandle<ND::TAlgorithmResult>,
647  int);
648 
649  /// Fill the header for TSFGAlgoRes, TSFGVertex, TSFGParticle, TSFGTrack,
650  /// TSFGVertex, and TSFGCluster. All of these classes have the same
651  /// "header" information layout, so they are handled by the same template
652  /// code.
653  template <class T>
654  void FillBaseObject(T basePtr, ND::THandle<ND::TReconBase> baseObject,
655  bool saveHits);
656 
657  /// This is a switch yard to take any sort of reconstruction object, and
658  /// farm it out to the right specific filling method. This fills the next
659  /// entry from the reconstruction object.
660  virtual ObjectId FillReconObject(const ND::THandle<ND::TReconBase>,
661  bool saveHits);
662 
663  /// Fill the next TSFGVertex entry from a TReconVertex.
664  virtual ObjectId FillVertexObject(const ND::THandle<ND::TReconVertex>,
665  bool saveHits);
666 
667  /// Fill the next TSFGParticle entry from a TReconPID.
668  virtual ObjectId FillParticleObject(const ND::THandle<ND::TReconPID>,
669  bool saveHits);
670 
671  /// Fill the next TSFGTrack entry from a TReconTrack.
672  virtual ObjectId FillTrackObject(const ND::THandle<ND::TReconTrack>,
673  bool saveHits);
674 
675  /// Fill the next TSFGShower entry from a TReconShower
676  virtual ObjectId FillShowerObject(const ND::THandle<ND::TReconShower>,
677  bool saveHits);
678 
679  /// Fill the next TSFGCluster entry from a TReconCluster
680  virtual ObjectId FillClusterObject(const ND::THandle<ND::TReconCluster>,
681  bool saveHits);
682 
683  /// Fill the next node for any type of object. The saved node has fields
684  /// for position and direction, but the direction isn't filled for a
685  /// cluster.
686  virtual int FillNode(const ND::THandle<ND::TReconNode>, bool saveHits);
687 
688  /// Fill the Hits container and return the index of the new hit. These are
689  /// the hits that are used in the reconstruction.
690  int FillHit(const ND::THandle<ND::THit>);
691 
692  /// Add a hit to the destination container and return the index. This is
693  /// used to fill both the hits in the reconstruction, and the true hits
694  /// that were saved by the detector response simulation.
695  int AddHit(const ND::THandle<ND::THit>,
696  int& nDest,
698 
699  /// For each hit, go through and find the energy generated for each
700  /// trajectory.
701  virtual std::map<int, std::pair<int, float> >
702  HitTruthInfo(const ND::THandle<ND::THitSelection>);
703 
704  /// For each hit, go through and find the primary particles that are
705  /// depositing energy.
706  virtual std::vector<int>
707  HitTruthPrimaryInfo(const ND::THandle<ND::THitSelection>);
708 
709  /// If an incoming TAlgorithmResult's name matches a pattern within this
710  /// vector it will not be summarised and stored.
711  std::vector<TPRegexp> fRejectAlgoResultList;
712 
713  /// Scratch space to keep track of already summarised THits.
714  typedef std::map<ND::THandle<ND::THit>, int> HitMap;
716 
717  // ---- To get the true G4 particle ----
718 
719  // Get the G4 trajectory associated with the recon object
720  template <class T>
721  ND::THandle<ND::TG4Trajectory> GetG4Trajectory(const T& object,
722  double& pur, double& eff);
723 
724  // ---- For neural network study ----
725 
726  // True trajectories container
727  ND::THandle<ND::TG4TrajectoryContainer> fTrueTraj;
728 
729  // Check whether the hit segment is inside the cube
730  bool checkHitSegInCube(ND::THandle<ND::THit> hit, ND::TG4HitSegment* HitSeg);
731 
732  // Check the nearby cubes to see if the center cube is multiple track hit
733  bool checkNearbyMultiTrk(ND::THandle<ND::THit> hit, std::vector<ND::TG4HitSegment*> HitSegAllPlanes, ND::THandle<ND::TG4TrajectoryContainer> true_traj);
734 
735  // Fill true trajectory information for the hit
736  void FillTrueTrajInfoForHit(ND::TG4HitSegment*, TSFGHit*);
737 
738  // The main function that adds information to each hit
739  void FillHitInfoNeededForNN(const ND::THandle<ND::THit>, TSFGHit*);
740 
741 };
742 
743 #endif
std::vector< int > Truth_TrajIds
The vector of primary true trajectory Ids which contribute to the ND::THits which are constituents of...
ClassDef(ND::TSFGReconModule::TSFGCluster, 1)
std::vector< int > Showers
The indices of the showers contained by the current object.
std::vector< int > Truth_HitCount
The vector of true trajectory Ids which contribute to the ND::THits which are constituents of this ve...
std::vector< int > Truth_TrajIds
True trajectory Ids See the TSFGVertex object for documentation.
virtual int FillNode(const ND::THandle< ND::TReconNode >, bool saveHits)
Fill the next node for any type of object.
virtual std::map< int, std::pair< int, float > > HitTruthInfo(const ND::THandle< ND::THitSelection >)
For each hit, go through and find the energy generated for each trajectory.
int TrueParticleID
True Geant4 particle associated to a TSFGTrack.
std::vector< int > Hits
The indices of the hits contained by the current object.
float EDeposit
The total reconstructed energy deposit of the corresponding track. This is usually just the sum of th...
float Charge
The reconstructed particle charge of the corresponding TReconPID.
std::vector< int > Tracks
The indices of the tracks contained by the current object.
std::vector< float > Truth_ChargeShare
Carge share o true trajectory.
TLorentzVector PosVariance
Variance on the position of the corresponding object.
virtual ObjectId FillParticleObject(const ND::THandle< ND::TReconPID >, bool saveHits)
Fill the next TSFGParticle entry from a TReconPID.
std::vector< float > HitSegTrueEdepo
True energy loss of the current hit segment.
std::vector< float > Truth_ChargeShare
Carge share o true trajectory.
std::vector< int > Showers
The indices of the showers contained by the current object.
std::vector< int > Truth_HitCount
Nmber of hits contributed by each true trajectory.
std::string AlgorithmName
The name of the algorithm which produced this object.
std::vector< int > Vertices
The indices of the vertices contained by the current object.
bool checkHitSegInCube(ND::THandle< ND::THit > hit, ND::TG4HitSegment *HitSeg)
int TrueParticleEff
Efficiency of Geant4 particle associated to a TSFGTrack.
int FillHit(const ND::THandle< ND::THit >)
Fill the Hits container and return the index of the new hit.
std::vector< int > Particles
The indices of the particles contained by the current object.
int TrueParticlePur
Purity of Geant4 particle associated to a TSFGTrack.
std::vector< int > Clusters
The indices of the clusters contained by the current object.
int fNTracks
The TSFGTrack vector of results.
TSFGClusterContainer * fClusters
The TSFGCluster vector of results.
std::vector< int > Clusters
The indices of the clusters contained by the current object.
int NDOF
The Number of Degrees of Freedom in the reconstruction of the corresponding object. Retrieved from ND::TReconBase::GetNDOF.
virtual void InitializeModule()
Called before anything else to allow the module to initialize.
std::vector< int > Particles
The indices of the particles contained by the current object.
TVector3 Direction
Direction of the corresponding object.
int fNNodes
The TSFGNode vector of results.
std::vector< int > Truth_TrajIds
True trajectory Ids.
float Quality
ND::TReconBase::StateBits to check the which status flags are set.
TSFGAlgoResContainer * fAlgoResults
The TSFGAlgoRes vector of results.
int TrueParticleID
True Geant4 particle associated to a TSFGTrack.
ClassDef(ND::TSFGReconModule::TSFGAlgoRes, 1)
int fNShowers
The TSFGShower vector of results.
virtual ObjectId FillShowerObject(const ND::THandle< ND::TReconShower >, bool saveHits)
Fill the next TSFGShower entry from a TReconShower.
int TrueParticleID
True Geant4 particle associated to a TSFGTrack.
TVector3 Position
Hit position.
TVector3 Direction
Direction of the corresponding object.
Contains a summary of the reconstruction information in a TReconShower.
std::vector< int > Nodes
The indices of the nodes contained by the current object.
int Status
The reported status of the corresponding object. Use ND::TReconBase::StateBits to check the which sta...
TLorentzVector Position
Position of the corresponding object.
static const int arraySize
Size of the TSFGCluster::Moments array.
std::vector< int > Truth_TrajIds
True trajectory Ids.
TSFGHitContainer * fTrueHits
std::vector< int > Hits
The indices of the hits contained by the current object.
int TrueParticleID
True G4 particle associated to a TSFGParticle.
std::vector< int > Tracks
The indices of the tracks contained by the current object.
int TrueParticlePur
Purity of the True G4 particle associated to a TSFGParticle.
int fNAlgoResults
The TSFGAlgoRes vector of results.
void FillTrueTrajInfoForHit(ND::TG4HitSegment *, TSFGHit *)
UInt_t UniqueId
A unique Id used for reconstruction objects.
int fNVertices
The TSFGVertex vector of results.
void FillBaseObject(T basePtr, ND::THandle< ND::TReconBase > baseObject, bool saveHits)
Fill the header for TSFGAlgoRes, TSFGVertex, TSFGParticle, TSFGTrack, TSFGVertex, and TSFGCluster...
ClassDef(ND::TSFGReconModule::TSFGVertex, 1)
The weighted reconstructed charge deposited by each truth.
std::vector< int > Tracks
The indices of the tracks contained by the current object.
TLorentzVector Position
Position of the corresponding object.
std::vector< float > Truth_ChargeShare
Carge share o true trajectory See the TSFGVertex object for documentation.
virtual ObjectId FillClusterObject(const ND::THandle< ND::TReconCluster >, bool saveHits)
Fill the next TSFGCluster entry from a TReconCluster.
ND::THandle< ND::TG4Trajectory > GetG4Trajectory(const T &object, double &pur, double &eff)
UInt_t UniqueId
A unique Id used for reconstruction objects.
std::vector< int > Nodes
The indices of the nodes contained by the current object.
bool checkNearbyMultiTrk(ND::THandle< ND::THit > hit, std::vector< ND::TG4HitSegment * > HitSegAllPlanes, ND::THandle< ND::TG4TrajectoryContainer > true_traj)
std::vector< int > Truth_HitCount
Nmber of hits contributed by each true trajectory.
TVector3 Direction
Direction of the corresponding object.
UInt_t UniqueId
A count of the Hits associated with this object.
void FillHitInfoNeededForNN(const ND::THandle< ND::THit >, TSFGHit *)
virtual EType GetTreeType() const
Override the parent method to return the type of this tree.
TClonesArray TSFGAlgoResContainer
TLorentzVector PosVariance
Variance on the position of the corresponding object.
Used to fill a TTree of summary information for the SFG reconstruction algorithms.
UInt_t UniqueId
A unique Id used for reconstruction objects.
TClonesArray TSFGPartContainer
TClonesArray TSFGVertexContainer
virtual std::vector< int > HitTruthPrimaryInfo(const ND::THandle< ND::THitSelection >)
For each hit, go through and find the primary particles that are depositing energy.
float Quality
The reported reconstruction &#39;quality&#39; of the corresponding object. Uses ND::TReconBase::GetQuality.
int NHits
Holds index of the TSFGHit objects that are pertinent to this algorithm result.
std::vector< int > Vertices
The indices of the vertices contained by the current object.
std::vector< int > Hits
The indices of the hits contained by the current object.
std::vector< int > Clusters
Holds index of the TSFGShower objects that are pertinent to this algorithm result.
std::vector< int > Showers
The indices of the showers contained by the current object.
std::vector< int > Vertices
The indices of the vertices contained by the current object.
virtual ObjectId FillTrackObject(const ND::THandle< ND::TReconTrack >, bool saveHits)
Fill the next TSFGTrack entry from a TReconTrack.
TLorentzVector Position
Position of the corresponding object.
float Time
Reconstructed hit time from the corresponding TSingleHit.
UInt_t UniqueId
A unique Id used for reconstruction objects.
ObjectId()
The default constructor.
std::vector< TPRegexp > fRejectAlgoResultList
If an incoming TAlgorithmResult&#39;s name matches a pattern within this vector it will not be summarised...
std::vector< int > Tracks
The indices of the tracks contained by the current object.
virtual bool FillTree(ND::TND280Event &)
Called by the main loop to fill an event.
std::vector< int > Particles
The indices of the particles contained by the current object.
std::vector< int > Hits
The indices of the hits contained by the current object.
std::vector< int > Clusters
The indices of the clusters contained by the current object.
std::vector< int > Nodes
The indices of the nodes contained by the current object.
float EDeposit
The total reconstructed energy deposit of the corresponding track. This is usually just the sum of th...
std::vector< int > Tracks
The indices of the tracks contained by the current object.
std::vector< int > Particles
The indices of the particles contained by the current object.
int UsedHitCluster
The index of the cluster that contains all of the hits used by this algorithm result. This is -1 if the hits are not saved.
TLorentzVector Position
corresponding object.
TClonesArray TSFGClusterContainer
virtual Bool_t ProcessFirstEvent(ND::TND280Event &)
This gets called on the first event to let the main event loop know if the first event in the file sh...
std::vector< int > Truth_PrimaryTrajIds
Primary Ids of truth trajectories.
float Quality
The reported reconstruction &#39;quality&#39; of the vertex. Retrieved from ND::TReconBase::GetQuality.
float EDeposit
The total reconstructed energy deposit of the corresponding track. This is usually just the sum of th...
virtual ObjectId FillVertexObject(const ND::THandle< ND::TReconVertex >, bool saveHits)
Fill the next TSFGVertex entry from a TReconVertex.
TSFGReconModule(const char *name="SFG", const char *title="SFG Recon Module")
std::string AlgorithmName
The name of the algorithm which produced this object.
TLorentzVector Position
Position of the correspponding object.
TSFGHitContainer * fHits
The TSFGHit vector of hits.
std::vector< int > Showers
The indices of the showers contained by the current object.
TLorentzVector PosVariance
Variance on the position of the corresponding object.
std::vector< TLorentzVector > HitSegPosition
True hit segments inside the cube position (3D + time)
TLorentzVector PosVariance
Variance on the position of the corresponding object.
std::vector< int > Truth_HitCount
Nmber of hits contributed by each true trajectory.
int fNTrueHits
The TSFGHit vector of hits based on the number of photons generated in each cube. ...
std::vector< int > Vertices
The indices of the vertices contained by the current object.
Contains a summary of the reconstruction information for each cube.
virtual ObjectId FillReconObject(const ND::THandle< ND::TReconBase >, bool saveHits)
This is a switch yard to take any sort of reconstruction object, and farm it out to the right specifi...
int Status
The reported Status of the corresponding object. Use ND::TReconBase::StateBits to check the which sta...
std::vector< int > Truth_TrajIds
True trajectory Ids.
std::vector< float > Truth_ChargeShare
Carge share o true trajectory.
int TrueParticleEff
Efficiency of Geant4 particle associated to a TSFGTrack.
TVector3 Direction
Direction of the corresponding object.
TVector3 DirVariance
Direction variance of the corresponding object.
std::vector< int > Truth_HitCount
Nmber of hits contributed by each true trajectory.
TVector3 DirVariance
Direction variance of the corresponding object.
std::vector< int > Particles
The indices of the particles contained by the current object.
float Cone
The opening angle of the TShowerState cone of the corresponding TReconShower.
A summary of the reconstruction information in a TReconPID.
std::string FullName
A unique Id used for reconstruction objects.
virtual void InitializeBranches()
Called to let the module setup the appropriate branches.
std::string AlgorithmName
The name of the algorithm which produced this object.
Contains a summary of the reconstruction information in a TReconTrack.
int fNClusters
The TSFGCluster vector of results.
std::vector< int > Hits
Holds internal Ids of Hits pertinent to this reconstruction node.
OType_t
The reconstruction object type that this internal Id refers to.
TLorentzVector PosVariance
Variance on the position of the corresponding object.
std::vector< int > Clusters
The indices of the clusters contained by the current object.
int Parent
The index of the parent algorithm for this algorithm result. This will be -1 if this doesn&#39;t have a p...
TSFGPartContainer * fParticles
The TSFGParticle vector of results.
Contains a summary of the reconstruction information in a TReconNode.
std::string AlgorithmName
The name of the algorithm which produced this object.
int TrueParticlePur
Purity of Geant4 particle associated to a TSFGTrack.
std::vector< int > Clusters
The indices of the clusters contained by the current object.
virtual int FillAlgorithmResult(const ND::THandle< ND::TAlgorithmResult >, int)
Fill an algorithm result and all of it&#39;s subsidiary reconstruction objects.
float Width
The &#39;width&#39; of the shower, the extent perpendicular to the direction.
TSFGNodeContainer * fNodes
The TSFGNode vector of results.
std::map< ND::THandle< ND::THit >, int > HitMap
Scratch space to keep track of already summarised THits.
std::vector< int > HitSegTruePDG
True particle PDG of the track contributing to the hit segment.
std::vector< int > Hits
The indices of the hits contained by the current object.
int id
An internal Id for each Reconstruction object.
int Status
The reported Status of the corresponding ND::TReconPID.
float EDeposit
Holds internal Ids of Hits pertinent to this reconstruction node.
int NDOF
object. Uses ND::TReconBase::GetQuality
Contains a summary of the reconstruction information in a TReconCluster.
std::vector< float > HitSegTrueP
True momentum of the track contributing to the hit segment.
std::vector< float > Truth_ChargeShare
The number of THits that each truth trajectory contributed to.
std::vector< int > Hits
Holds index of the TSFGNode objects that are pertinent to this algorithm result.
UInt_t UniqueId
A unique Id used for reconstruction objects.
The representation of the information store in each SFG TReconVertex object.
std::vector< int > Vertices
Holds index of the TSFGVertex objects that are pertinent to this algorithm result.
ND::THandle< ND::TG4TrajectoryContainer > fTrueTraj
std::vector< int > Particles
Holds index of the TSFGVertex objects that are pertinent to this algorithm result.
std::vector< int > Truth_PrimaryTrajIds
The vector of primary true trajectory Ids which contribute to the ND::THits which are constituents of...
std::vector< float > PID_weight
PID weights for each PID in TSFGParticle::PID.
int NDOF
The Number of Degrees of Freedom in the reconstruction of the corresponding object. Retrieved from ND::TReconBase::GetNDOF.
std::vector< int > Nodes
The indices of the nodes contained by the current object.
std::string AlgorithmName
The name of the algorithm that generated this object.
int Status
The reported Status of the corresponding object. Use ND::TReconBase::StateBits to check the which sta...
int NDOF
The Number of Degrees of Freedom in the vertex. Retrieved from ND::TReconBase::GetNDOF.
std::vector< int > Nodes
Holds index of the TSFGCluster objects that are pertinent to this algorithm result.
TVector3 DirVariance
Direction variance of the corresponding object.
UInt_t GeomId
Geometry Id of the TSingleHit.
float Quality
The reported reconstruction &#39;quality&#39; of the corresponding object. Uses ND::TReconBase::GetQuality.
TClonesArray TSFGShowerContainer
TLorentzVector Position
Position of the corresponding object.
float Charge
Reconstructed hit charge without attenuation correction from thE corresponding TSingleHit.
int TrueParticleEff
Efficiency of Geant4 particle associated to a TSFGTrack.
std::vector< int > PID
Potential PIDs (ND::TReconPID::ParticleId) matching with TSFGParticle::PID_Weight values...
std::vector< TVector3 > HitSegDirection
True hit segments inside the cube direction (3D)
int fNHits
The TSFGHit vector of hits.
TVector3 DirVariance
Direction variance of the corresponding object.
An internal Id and object type for each Reconstruction object.
TClonesArray TSFGNodeContainer
std::vector< int > Truth_PrimaryTrajIds
Primary Ids of truth trajectories See the TSFGVertex object for documentation.
int TrueParticleEff
Efficiency of the True G4 particle associated to a TSFGParticle.
TLorentzVector PosVariance
Variance on the position of the corresponding object.
std::vector< int > Truth_PrimaryTrajIds
Primary Ids of truth trajectories.
std::vector< int > Showers
Holds index of the TSFGTrack objects that are pertinent to this algorithm result. ...
TSFGHitContainer * fFibers
The TSFGHit vector of hits for each fiber.
ClassDef(ND::TSFGReconModule::TSFGParticle, 1)
std::vector< int > Truth_TrajIds
True trajectory Ids.
TSFGTrackContainer * fTracks
The TSFGTrack vector of results.
std::vector< int > AlgoResults
The path to the result inside the event.
int UnusedHitCluster
The index of the cluster that contains all of the hits not used by this algorithm result...
float Moments[arraySize]
Moments of the cluster stored as a flat 3x3 matrix.
TClonesArray TSFGTrackContainer
std::vector< float > Truth_ChargeShare
Carge share o true trajectory.
TSFGVertexContainer * fVertices
The TSFGVertex vector of results.
std::vector< int > Tracks
Holds index of the TSFGParticle objects that are pertinent to this algorithm result.
std::vector< int > Truth_PrimaryTrajIds
Primary Ids of truth trajectories.
float Length
The &#39;width&#39; of the shower, the extent perpendicular to the direction.
float Length
The length of the track calculated by summing over the distances between the constituent TReconNodes...
float Momentum
The reconstructed momentum of the corresponding TReconPID.
std::vector< int > Vertices
The indices of the vertices contained by the current object.
TClonesArray TSFGHitContainer
int TrkHitTag
Single/multiple track hit tagging Notation: 1 = multiple track hits, 2 = single track hits...
std::vector< int > Nodes
The indices of the nodes contained by the current object.
TSFGShowerContainer * fShowers
The TSFGShower vector of results.
int fNFibers
The TSFGHit vector of hits for each fiber.
ClassDef(ND::TSFGReconModule::TSFGNode, 1)
std::string AlgorithmName
The name of the algorithm which produced this object.
The representation of the information store in each SFG TAlgorithmResult object.
int AddHit(const ND::THandle< ND::THit >, int &nDest, ND::TSFGReconModule::TSFGHitContainer *dest)
Add a hit to the destination container and return the index.
std::vector< int > Truth_HitCount
Nmber of hits contributed by each true trajectory See the TSFGVertex object for documentation.
std::vector< int > Showers
The indices of the showers contained by the current object.
ClassDef(ND::TSFGReconModule::TSFGHit, 1)
std::vector< int > Truth_PrimaryTrajIds
The RMS length of the shower, the extent parallel to the direction.
double EDeposit_fit
Fitted energy deposit for each node.
ClassDef(ND::TSFGReconModule::TSFGShower, 1)
int fNParticles
The TSFGParticle vector of results.
A base class for analysis output modules which contain reconstructed event information.
ClassDef(ND::TSFGReconModule::TSFGTrack, 1)
int TrueParticlePur
Purity of Geant4 particle associated to a TSFGTrack.

Package Summary
Package Name: eventAnalysis
Package Version: 7.0-49-g0ac7482
Package Manager:

Generated on Mon Mar 25 2024 14:43:59 for eventAnalysis by doxygen 1.8.5