HighLAND
DataClassesIO.hxx
1 #ifndef DataClassesIO_hxx
2 #define DataClassesIO_hxx
3 
4 #include "DataClasses.hxx"
5 #include "P0DDataClasses.hxx"
6 #include "OutputManager.hxx"
7 #include "TreeConverterUtils.hxx"
8 
9 extern Int_t prefix_index;
10 extern Int_t counter_index;
11 
12 const UInt_t NSubDet = 6;
13 
14 
15 /// A base method for all subdetector-level constituents of global tracks.
16 /// Provides filling methods for the variables common for all sub-detectors
17 namespace AnaSubTrackIO{
18  void Define(OutputManager& man, const std::string& counter, const Int_t size2, const std::string& prefix);
19  void Write(OutputManager& man,const AnaParticleB& seg, const std::string& prefix, Int_t indx1=-1, Int_t indx2=0);
20 }
21 
22 /// Representation of a detector crossing info for a trajectory/track.
24  public :
25 
26  ///
28  virtual ~AnaDetCrossingIO(){}
29 
30  /// A constructor from the corresponding base class
32 
33  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
34  virtual void Write(OutputManager& man, const std::string& prefix="", Int_t indx1=-1, Int_t indx2=0) const;
35 };
36 
37 /// Representation of a true Monte Carlo vertex.
39  public :
40 
41  AnaTrueVertexIO(){}
42  virtual ~AnaTrueVertexIO(){}
43 
44  /// A constructor from the corresponding base class
45  // Consider copying only the relevant (flat-tree) info (i.e. accum_level not need, nor the particle arrays),
46  // although it should be minor, and the code is smaller the current way
47  AnaTrueVertexIO(const AnaTrueVertex& vertex): AnaTrueVertex(vertex){
48 
49  // The vectors of "NReconTracks", "NReconVertices" should be filled with NULL to at least keep the size
50  // this is stored in the flat-trees
51  ReconParticles = std::vector<AnaParticleB*>(vertex.ReconParticles.size(), NULL);
52  ReconVertices = std::vector<AnaVertexB*>(vertex.ReconVertices.size(), NULL);
53  }
54  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
55  virtual void Write(OutputManager& man, const std::string& prefix="") const;
56 };
57 
58 /// Representation of a true Monte Carlo trajectory/particle.
60  public :
61 
63  virtual ~AnaTrueParticleIO(){}
64 
65  /// A constructor from the corresponding base class
67 
68 
69  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
70  virtual void Write(OutputManager& man, const Int_t trueVertexIndex, const std::string& prefix="") const;
71 
72 };
73 
74 /// Representation of a TPC segment of a global particle.
76  public :
77 
79  virtual ~AnaTPCParticleIO(){}
80 
81  /// A constructor from the corresponding base class
82  AnaTPCParticleIO(const AnaTPCParticle& particle): AnaTPCParticle(particle){}
83 
84  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
85  virtual void Write(OutputManager& man, const std::string& prefix="", Int_t indx1=-1, Int_t indx2=0) const;
86 };
87 
88 /// Representation of a FGD segment of a global track.
90  public :
91 
93  virtual ~AnaFGDParticleIO(){}
94 
95  /// A constructor from the corresponding base class
96  AnaFGDParticleIO(const AnaFGDParticle& particle): AnaFGDParticle(particle){}
97 
98  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
99  virtual void Write(OutputManager& man, const std::string& prefix="", Int_t indx1=-1, Int_t indx2=0) const;
100 };
101 
102 /// Representation of an ECAL segment of a global track.
104  public :
105 
107  virtual ~AnaECALParticleIO(){}
108 
109  /// A constructor from the corresponding base class
110  AnaECALParticleIO(const AnaECALParticle& particle): AnaECALParticle(particle){}
111 
112  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
113  virtual void Write(OutputManager& man, const std::string& prefix="", Int_t indx1=-1, Int_t indx2=0) const;
114 };
115 
116 /// Representation of an SMRD segment of a global track.
118  public :
119 
121  virtual ~AnaSMRDParticleIO(){}
122 
123  /// A constructor from the corresponding base class
124  AnaSMRDParticleIO(const AnaSMRDParticle& particle): AnaSMRDParticle(particle){}
125 
126  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
127  virtual void Write(OutputManager& man, const std::string& prefix="", Int_t indx1=-1, Int_t indx2=0) const;
128 };
129 
130 /// Representation of a P0D segment of a global track.
132  public :
133 
134  AnaP0DParticleIO(){}
135  virtual ~AnaP0DParticleIO(){}
136 
137  /// A constructor from the corresponding base class
138  AnaP0DParticleIO(const AnaP0DParticle& particle): AnaP0DParticle(particle){}
139 
140  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
141  virtual void Write(OutputManager& man, const std::string& prefix="", Int_t indx1=-1, Int_t indx2=0) const;
142 };
143 
144 /// Representation of a Tracker segment of a global track.
146  public :
147 
149  virtual ~AnaTrackerTrackIO(){}
150 
151  /// A constructor from the corresponding base class
153 
154  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
155  virtual void Write(OutputManager& man, const std::string& prefix="", Int_t indx1=-1, Int_t indx2=0) const;
156 };
157 
158 
159 /// Representation of a global track.
160 class AnaTrackIO: public AnaTrack{
161  public :
162 
163  AnaTrackIO(){}
164  virtual ~AnaTrackIO(){}
165 
166  /// A constructor from the corresponding base clasAnaTrackIO(const AnaTrack& track): AnaTrack(track){}
167  AnaTrackIO(const AnaTrack& track);
168 
169  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
170  virtual void Write(OutputManager& man, const std::string& prefix="") const;
171 };
172 
173 /// Representation of a global vertex.
174 class AnaVertexIO: public AnaVertex{
175  public :
176 
177  AnaVertexIO(){}
178  virtual ~AnaVertexIO(){}
179 
180  /// A constructor from the corresponding base class
181  AnaVertexIO(const AnaVertex& vertex): AnaVertex(vertex){}
182 
183  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
184  virtual void Write(OutputManager& man, const std::vector<int> trueVertexIndices, const std::string& prefix="") const;
185 };
186 
187 /// Representation of the beam information, including POT and quality.
188 class AnaBeamIO: public AnaBeam{
189  public :
190 
191  AnaBeamIO(){}
192  virtual ~AnaBeamIO(){}
193 
194  /// A constructor from the corresponding base class
195  AnaBeamIO(const AnaBeam& beam): AnaBeam(beam){}
196 
197  virtual void Define(OutputManager& man,const std::string& prefix="") const;
198  virtual void Write(OutputManager& man,const std::string& prefix="") const;
199 };
200 
201 /// Representation of the ND280 data quality flags.
203  public:
204 
205  AnaDataQualityIO(){}
206  virtual ~AnaDataQualityIO() {}
207 
208  /// A constructor from the corresponding base class
210 
211  virtual void Define(OutputManager& man,const std::string& prefix="") const;
212  virtual void Write(OutputManager& man,const std::string& prefix="") const;
213 };
214 
215 
216 
217 /// An AnaBunch contains all the reconstructed objects in a given time window.
218 /// The normal bunches are indexed from 0-7.
219 ///
220 /// The bunch windows for each run period are defined in the text file
221 /// $HIGHLEVELANALYSISIOROOT/data/BunchPosition.dat, where the run period of -1
222 /// means Monte Carlo.
223 ///
224 /// Each bunch has a weighting associated with it, to allow for flux
225 /// re-weighting.
226 class AnaBunchIO: public AnaBunch{
227  public :
228 
229  AnaBunchIO(){}
230  virtual ~AnaBunchIO(){}
231 
232  /// A constructor from the corresponding base class
233  AnaBunchIO(const AnaBunch& bunch);
234 
235  virtual void Define(OutputManager& man,const std::string& prefix="") const;
236  virtual void Write(OutputManager& man,const std::string& prefix="") const;
237 };
238 
240  public :
241 
242  AnaFgdTimeBinIO(){}
243  virtual ~AnaFgdTimeBinIO(){}
244 
245  /// A constructor from the corresponding base class
247 
248  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
249  virtual void Write(OutputManager& man,const std::string& prefix="") const;
250 };
251 
253  public :
254 
255  AnaEventInfoIO(){}
256  virtual ~AnaEventInfoIO(){}
257 
258  /// A constructor from the corresponding base class
260 
261  virtual void Define(OutputManager& man,const std::string& prefix="") const;
262  virtual void Write(OutputManager& man,const std::string& prefix="") const;
263 };
264 
265 
266 /// Representation of the ND280 trigger bits
267 class AnaTriggerIO: public AnaTrigger {
268 public:
269 
270  AnaTriggerIO(){}
271  virtual ~AnaTriggerIO() {}
272 
273  /// A constructor from the corresponding base class
274  AnaTriggerIO(const AnaTrigger& trigger): AnaTrigger(trigger){}
275 
276  /// Add the variables for representing an AnaTriggerIO object to the OutputManager.
277  virtual void Define(OutputManager& man, const std::string& prefix="") const;
278 
279  /// Fill the current state of the AnaTriggerIO object into the OutputManager.
280  virtual void Write(OutputManager& man, const std::string& prefix="") const;
281 };
282 
283 
284 /// The top-level object for representing information from the input files.
285 /// A single AnaSpillB contains information from an entire ND280 event.
286 /// The reconstructed objects are separated into bunches based on their time
287 /// information.
288 ///
289 /// There are multiple copies of each spill available through the InputManager
290 /// [ND::input()], showing the raw state of the spill after reading it in from
291 /// the input files; after applying corrections; and after applying corrections
292 /// and systematics.
293 class AnaSpillIO: public AnaSpill{
294  public :
295 
296  AnaSpillIO(){
297  TriggerIO = NULL;
298  }
299  virtual ~AnaSpillIO(){
300  if (TriggerIO)
301  delete TriggerIO;
302 
303  TriggerIO = NULL;
304  }
305 
306  /// A constructor from the corresponding base class
307  AnaSpillIO(const AnaSpill& spill);
308 
309  virtual void Define(OutputManager& man,const std::string& prefix="") const;
310  virtual void Write(OutputManager& man,const std::string& prefix="") const;
311 
312  AnaTriggerIO* TriggerIO;
313 
314 };
315 
316 class AnaEventIO: public AnaEvent{
317  public :
318 
319  AnaEventIO(){}
320  virtual ~AnaEventIO(){}
321 
322  /// A constructor from the corresponding base class
323  AnaEventIO(const AnaEvent& event): AnaEvent(event){}
324 
325  virtual void Define(OutputManager& man,const std::string& prefix="") const;
326  virtual void Write(OutputManager& man,const std::string& prefix="") const;
327 };
328 
329 
330 /// Representation of detector time info
332 public :
333 
334  AnaTimeNodeIO(){}
335  virtual ~AnaTimeNodeIO(){}
336 
337  /// A constructor from the corresponding base class
338  AnaTimeNodeIO(const AnaTimeNode& node): AnaTimeNode(node){}
339 
340  /// Add the variables for representing an AnaDetTimeInfo to the OutputManager.
341  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix="") const;
342 
343  /// Fill the current state of the AnaDetTimeInfo into the OutputManager.
344  virtual void Write(OutputManager& man, const std::string& prefix="", Int_t indx1=-1, Int_t indx2=0) const;
345 };
346 
347 
349 
350 public :
351 
353  virtual ~AnaTECALReconObjectIO(){}
354 
355  /// A constructor from the corresponding base class
357 
358  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix) const;
359  virtual void Write (OutputManager& man, const std::string& prefix ) const;
360 
361 };
362 
363 
365 
366 public :
367 
369  virtual ~AnaTECALUnmatchedObjectIO(){}
370 
371  /// A constructor from the corresponding base class
373 
374  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix) const;
375  virtual void Write (OutputManager& man, const std::string& prefix ) const;
376 };
377 
379 
380 public :
381 
383  virtual ~AnaP0DReconObjectIO(){}
384 
385  /// A constructor from the corresponding base class
387 
388  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix) const;
389  virtual void Write (OutputManager& man, const std::string& prefix ) const;
390 
391 };
392 
393 
394 
396 
397 public :
398 
400  virtual ~AnaP0DReconVertexIO(){}
401 
402  /// A constructor from the corresponding base class
404 
405  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix) const;
406  virtual void Write (OutputManager& man, const std::string& prefix ) const;
407 
408 };
409 
411 
412 public :
413 
415  virtual ~AnaP0DReconParticleIO(){}
416 
417  /// A constructor from the corresponding base class
419 
420  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix) const;
421  virtual void Write (OutputManager& man, const std::string& prefix ) const;
422 
423 };
424 
426 
427 public :
428 
430  virtual ~AnaP0DReconClusterIO(){}
431 
432  /// A constructor from the corresponding base class
434 
435  virtual void Define(OutputManager& man, const std::string& counter, const std::string& prefix) const;
436  virtual void Write (OutputManager& man, const std::string& prefix ) const;
437 };
438 
439 
441 public :
442 
444  virtual ~AnaLocalReconBunchIO(){}
445 
446  /// A constructor from the corresponding base class
448 
449  /// Add the variables for representing an AnaBunch to the OutputManager.
450  virtual void Define(OutputManager& man,const std::string& prefix="") const;
451 
452  /// Fill the current state of the AnaBunch into the OutputManager.
453  virtual void Write(OutputManager& man, const std::string& prefix="") const;
454 
455 };
456 
457 
458 
459 // Note! should keep unique indexes!
460 class TreeVars{
461 
462 public:
463 
464  enum enumVar{
465  // sub-detector related variables
466  // have in total five sub-detectors: TPC, FGD, ECal, SMRD and P0D
467  // so to have unique indexes then define offsets
468  subDetector=0,
469  subNNodes,
470  subDirectionStart,
471  subPositionStart,
472  subPositionEnd,
473  subDirectionEnd,
474  subLength,
475  subNHits,
476  subUniqueID,
477 
478  // TPC
479  tpcCharge = (subUniqueID + 1) * NSubDet,
480  tpcMomentum,
481  tpcMomentumError,
482  tpcRefitMomentum,
483  tpcEFieldRefitMomentum,
484  tpcdEdxMeas,
485  tpcdEdxExpMu,
486  tpcdEdxExpEle,
487  tpcdEdxExpP,
488  tpcdEdxExpPi,
489  tpcRawdEdxMeas,
490  tpcRawdEdxExpMu,
491  tpcRawdEdxExpEle,
492  tpcRawdEdxExpP,
493  tpcRawdEdxExpPi,
494  tpcdEdxSigmaMu,
495  tpcdEdxSigmaEle,
496  tpcdEdxSigmaP,
497  tpcdEdxSigmaPi,
498  tpcTrueTrackID,
499  // FGD
500  fgdX,
501  fgdPullmu,
502  fgdPullp,
503  fgdPullpi,
504  fgdPullno,
505  fgdContainment,
506 
507  // ECal
508  ecalTrShVal,
509  ecalPIDMipEm,
510  ecalEMEnergy,
511  ecalEDeposit,
512  ecalIsShowerLike,
513  ecalAvgTime,
514  ecalShowerPosition,
515 
516  // SMRD
517  smrdAvgTime,
518  smrdEDeposit,
519 
520  // P0D
521  // TRACKER
522  trackerCharge,
523  trackerMomentum,
524  trackerMomentumEnd,
525 
526  // globalPID (AnaTrackB)
527  globalUniqueID,
528  globalDetUsed,
529  globalNTPCs,
530  globalNFGDs,
531  globalNECALs,
532  globalNSMRDs,
533  globalNP0Ds,
534  globalNHits,
535  globalCharge,
536  globalMomentum,
537  globalDirectionStart,
538  globalPositionStart,
539  globalPositionEnd,
540  globalDirectionEnd,
541  globalTrueTrackID,
542  globalRangeMomentumMuon,
543  globalMomentumFlip,
544  globalDirectionStartFlip,
545  globalToFFGD1_FGD2,
546  globalToFP0D_FGD1,
547  globalToFECal_FGD1,
548  globalToFECal_FGD2,
549  globalToFFlag_FGD1_FGD2,
550  globalToFFlag_P0D_FGD1,
551  globalToFFlag_ECal_FGD1,
552  globalToFFlag_ECal_FGD2,
553 
554  // AnaDetCrossingB
555  detCrossInActive,
556  detCrossDetector,
557  detCrossEntrancePosition,
558  detCrossExitPosition,
559  detCrossEntranceMomentum,
560  detCrossExitMomentum,
561 
562  // AnaTrueParticleB
563  trueTrackID,
564  trueTrackPDG,
565  trueTrackParentPDG,
566  trueTrackGParentPDG,
567  trueTrackParentID,
568  trueTrackMomentum,
569  trueTrackCharge,
570  trueTrackPosition,
571  trueTrackPositionEnd,
572  trueTrackDirection,
573  trueTrackTruthVertexID,
574  trueTrackNDetCrossings,
575 
576  // AnaTrueVertexB
577  trueVertexID,
578  trueVertexNuPDG,
579  trueVertexNuEnergy,
580  trueVertexBunch,
581  trueVertexPosition,
582  trueVertexNTrueTracks,
583  trueVertexDetector,
584 
585  // AnaBunchB
586  bunchBunch,
587  bunchWeight,
588 
589  // AnaFgdTimeBin
590  fgdBinMinTime,
591  fgdBinNHits1,
592  fgdBinNHits2,
593  fgdBinRawChargeSum1,
594  fgdBinRawChargeSum2,
595 
596  // AnaSpillB
597  spillNBunches,
598  spillNTotalTrueVertices,
599  spillNTotalTrueTracks,
600 
601  spillInputFileIndex,
602  spillRooVtxEntry,
603 
604  // AnaEventInfoB
605  eventInfoIsMC,
606  eventInfoIsSand,
607  eventInfoRun,
608  eventInfoSubRun,
609  eventInfoEvt,
610 
611  // AnaDataQuality
612  dqGoodDaq,
613 
614  // AnaBeam
615  beamGoodSpill,
616 
617  // AnaVertexB
618  vertexPosition,
619  vertexPrimaryIndex,
620  vertexNReconTracks,
621  vertexNTrueVerticesMatch,
622  vertexTracksUniqueID,
623  vertexTrueVertexIndex,
624  vertexTrueVerticesClean,
625  vertexTrueVerticesCompl,
626 
627  // AnaEvent
628  eventBunch,
629 
630  // All sub segments
631 
632 
633  // TPC
634  tpcBackMomentum,
635  tpcRefitCharge,
636  tpcRefitPosition,
637  tpcRefitDirection,
638  tpcPullmu,
639  tpcPullele,
640  tpcPullp,
641  tpcPullpi,
642  tpcPullk,
643  tpcdEdxExpK,
644  tpcdEdxSigmaK,
645  tpcRawdEdxExpK,
646  tpcPurity,
647 
648  // FGD
649  fgdE,
650  fgdAvgTime,
651 #if VERSION_HAS_FGD_VERTEX_AND_END_ACTIVITY
652  fgdHasFgdVA,
653  fgdHasFgdVA_fmode,
654  fgdTypeVA,
655 #endif
656  fgdVertex1x1,
657  fgdVertex3x3,
658  fgdVertex5x5,
659  fgdVertex7x7,
660  fgdVertexLayer,
661 #if VERSION_HAS_FGD_VERTEX_AND_END_ACTIVITY
662  fgdHasFgdEA,
663  fgdHasFgdEA_fmode,
664  fgdTypeEA,
665  fgdEnd0x0,
666  fgdEnd1x1,
667  fgdEnd3x3,
668  fgdEnd5x5,
669  fgdEnd7x7,
670 #endif
671 
672  // ECAL
673  ecalPIDMipPion,
674  ecalPIDEmHip,
675  ecalContainment,
676  ecalMostUpStreamLayerHit,
677 
678  //SMRD
679 
680  // P0D
681  p0dAvgTime,
682 
683  // Tracker
684 
685  // globalPID (AnaTrack)
686  globalStatus,
687  globalDetectors,
688  globalNNodes,
689  globalMomentumError,
690  globalNDOF,
691  globalChi2,
692  globalReconPDG,
693  globalBunch,
694  globalMomentumMuon,
695  globalMomentumErrorMuon,
696  globalMomentumProton,
697  globalMomentumErrorProton,
698  globalMomentumEle,
699  globalMomentumErrorEle,
700 #if VERSION_HAS_REVERSED_REFITS
701  globalPositionStartFlip,
702  globalDirectionEndFlip,
703 #endif
704 
705 #if VERSION_HAS_PRANGE_ESTIMATES
706  globalRangeMomentumEle,
707  globalRangeMomentumProton,
708  globalRangeMomentumMuonFlip,
709  globalRangeMomentumProtonFlip,
710 #endif
711  globalNReconVertices,
712  globalMomentumAtVertex,
713  globalDirectionAtVertex,
714  globalLength,
715  globalNTRACKERs,
716 
717  // AnaTimeNode
718  globalNTimeNodes,
719  globalTimeNodeDetector,
720  globalTimeNodeTimeStart,
721  globalTimeNodeTimeEnd,
722 
723  // AnaBunch
724  // AnaFgdTimeBin
725  fgdBinMaxTime,
726  fgdBinG4ID,
727 
728  // AnaSpill
729  // AnaEventInfo
730  eventInfoEventTime,
731 
732  // AnaBeam
733  beamPOT,
734  beamPOTCT4,
735  beamSpill,
736  beamSpillNumber,
737  beamBeamRunNumber,
738 
739  // AnaDataQuality
740  dqND280Flag,
741  dqDetFlag,
742 
743  // AnaTrigger
744  triggerFGDCosmic,
745  triggerTripTCosmic,
746 
747  // AnaTrueVertex
748  trueVertexRooVtxIndex,
749  trueVertexRooVtxEntry,
750  trueVertexReacCode,
751  trueVertexTargetPDG,
752  trueVertexNuDir,
753  trueVertexNuParentPDG,
754  trueVertexNuParentDecPoint,
755  trueVertexNBaryons,
756  trueVertexLeptonPDG,
757  trueVertexQ2,
758  trueVertexTargetDir,
759  trueVertexLeptonDir,
760  trueVertexProtonDir,
761  trueVertexPionDir,
762  trueVertexTargetMom,
763  trueVertexLeptonMom,
764  trueVertexProtonMom,
765  trueVertexPionMom,
766  trueVertexNReconTracks,
767  trueVertexNReconVertices,
768  trueVertexIsPauliBlocked,
769  trueVertexIsCohOnH,
770  trueVertexNPrimaryParticles,
771 
772  // AnaTrueParticle
773  trueTrackPrimaryID,
774  trueTrackPurity,
775  trueTrackBunch,
776  trueTrackNReconTracks,
777  trueTrackVertexIndex,
778  trueTrackIsTruePrimaryPi0DecayPhoton,
779  trueTrackIsTruePrimaryPi0DecayPhotonChild,
780 
781 
782  // AnaVertex
783  vertexVariance,
784  vertexBunch,
785  vertexChi2,
786  vertexNDOF,
787 
788  // ReconDir/TrackerECal (AnaTCEALReconObject)
789  tecalReconAverageHitTime,
790  tecalReconAverageZPos,
791  tecalReconContainment,
792  tecalReconEFitResult,
793  tecalReconEFitUncertainty,
794  tecalReconFirstLayer,
795  tecalReconIsShowerLike,
796  tecalReconIsTrackLike,
797  tecalReconLastLayer,
798  tecalReconLikeMIPEM,
799  tecalReconLikeMIPPion,
800  tecalReconLikeEMHIP,
801  tecalReconLikeMIPEMLow,
802  tecalReconMatchingLike,
803  tecalReconMichelTagNDelayedCluster,
804  tecalReconModule,
805  tecalReconMostDownStreamLayerHit,
806  tecalReconMostUpStreamLayerHit,
807  tecalReconNHits,
808  tecalReconNLayersHit,
809  tecalReconObjectLength,
810  tecalReconPIDAMR,
811  tecalReconPIDAngle,
812  tecalReconPIDAsymmetry,
813  tecalReconPIDCircularity,
814  tecalReconPIDFBR,
815  tecalReconPIDMaxRatio,
816  tecalReconPIDMeanPos,
817  tecalReconPIDShowerAngle,
818  tecalReconPIDShowerWidth,
819  tecalReconPIDTransverseChargeRatio,
820  tecalReconPIDTruncatedMaxRatio,
821  tecalReconPointing,
822  tecalReconThrust,
823  tecalReconThrustAxis,
824  tecalReconThrustOrigin,
825  tecalReconTimeBunch,
826  tecalReconTotalHitCharge,
827  tecalReconTrueID,
828  tecalReconTrueIDPrimary,
829  tecalReconTrueIDRecursive,
830  tecalReconTrueIDSingle,
831  tecalReconUniqueID,
832  tecalReconBunch,
833 
834  // ReconDir/TrackerECal (AnaTECALUnmatchedObject)
835  tecalUnmatchedAverageHitTime,
836  tecalUnmatchedBackPos,
837  tecalUnmatchedFrontPos,
838  tecalUnmatchedMostDownStreamLayerHit,
839  tecalUnmatchedMostUpStreamLayerHit,
840  tecalUnmatchedNHits,
841  tecalUnmatchedTotalHitCharge,
842  tecalUnmatchedTrueID,
843  tecalUnmatchedTrueIDPrimary,
844  tecalUnmatchedTrueIDRecursive,
845  tecalUnmatchedTrueIDSingle,
846  tecalUnmatchedView,
847  tecalUnmatchedBunch,
848 
849  // ReconDir/P0D (AnaP0DReconVertex)
850  p0dVertexAlgorithmName,
851  p0dVertexCycle,
852  p0dVertexNHits,
853  p0dVertexUniqueID,
854  p0dVertexBunch,
855  p0dVertexVertices,
856  p0dVertexParticles,
857  p0dVertexTracks,
858  p0dVertexShowers,
859  p0dVertexClusters,
860  p0dVertexNodes,
861  p0dVertexHits,
862  p0dVertexStatus,
863  p0dVertexQuality,
864  p0dVertexNDOF,
865  p0dVertexTruth_PrimaryTrajIDs,
866  p0dVertexTruth_TrajIDs,
867  p0dVertexTruth_HitCount,
868  p0dVertexTruth_ChargeShare,
869  p0dVertexPosition,
870  p0dVertexPosVariance,
871  p0dVertexValidDimensions,
872  p0dVertexFiducial,
873 
874  // ReconDir/P0D (AnaP0DReconVertex)
875  p0dParticleAlgorithmName,
876  p0dParticleCycle,
877  p0dParticleNHits,
878  p0dParticleUniqueID,
879  p0dParticleBunch,
880  p0dParticleVertices,
881  p0dParticleParticles,
882  p0dParticleTracks,
883  p0dParticleShowers,
884  p0dParticleClusters,
885  p0dParticleNodes,
886  p0dParticleHits,
887  p0dParticleStatus,
888  p0dParticleQuality,
889  p0dParticleNDOF,
890  p0dParticleTruth_PrimaryTrajIDs,
891  p0dParticleTruth_TrajIDs,
892  p0dParticleTruth_HitCount,
893  p0dParticleTruth_ChargeShare,
894  p0dParticleEDeposit, // Only in showers
895  p0dParticleSideDeposit,
896  p0dParticleEndDeposit,
897  p0dParticlePosition,
898  p0dParticlePosVariance,
899  p0dParticleValidDimensions,
900  p0dParticleDirection,
901  p0dParticleDirVariance,
902  p0dParticleMomentum,
903  p0dParticleCharge,
904  p0dParticleLength, // Only in Tracks
905 
906  // ReconDir/P0D (AnaP0DReconCluster)
907  p0dClusterAlgorithmName,
908  p0dClusterCycle,
909  p0dClusterNHits,
910  p0dClusterUniqueID,
911  p0dClusterBunch,
912  p0dClusterVertices,
913  p0dClusterParticles,
914  p0dClusterTracks,
915  p0dClusterShowers,
916  p0dClusterClusters,
917  p0dClusterNodes,
918  p0dClusterHits,
919  p0dClusterTruth_PrimaryTrajIDs,
920  p0dClusterTruth_TrajIDs,
921  p0dClusterTruth_HitCount,
922  p0dClusterTruth_ChargeShare,
923  p0dClusterNFiducialHits,
924  p0dClusterEDeposit,
925  p0dClusterPosition,
926  p0dClusterPosVariance,
927  p0dClusterValidDimensions,
928  //p0dClusterMoments,
929 
930 
931  TreeVarsLast
932  };
933 
934 
935  //offsets
936  static unsigned int offsetTPC;
937  static unsigned int offsetFGD;
938  static unsigned int offsetECAL;
939  static unsigned int offsetSMRD;
940  static unsigned int offsetP0D;
941  static unsigned int offsetTRACKER;
942 
943 };
944 
945 #endif
Representation of a true Monte Carlo trajectory/particle.
AnaEventIO(const AnaEvent &event)
A constructor from the corresponding base class.
Representation of a global track.
Representation of an ECAL segment of a global track.
Representation of the ND280 data quality flags.
Representation of detector time info.
AnaEventInfoIO(const AnaEventInfo &info)
A constructor from the corresponding base class.
Representation of the beam information, including POT and quality.
P0DRecon Vertex.
Representation of the ND280 trigger bits.
Representation of a true Monte Carlo vertex.
Representation of an SMRD segment of a global track.
AnaBeamIO(const AnaBeam &beam)
A constructor from the corresponding base class.
AnaP0DReconVertexIO(const AnaP0DReconVertex &vertex)
A constructor from the corresponding base class.
AnaTPCParticleIO(const AnaTPCParticle &particle)
A constructor from the corresponding base class.
AnaTrueVertexIO(const AnaTrueVertex &vertex)
A constructor from the corresponding base class.
P0DRecon Particle.
AnaDataQualityIO(const AnaDataQualityB &dq)
A constructor from the corresponding base class.
AnaP0DParticleIO(const AnaP0DParticle &particle)
A constructor from the corresponding base class.
This Ana* object is used to flatten TECALReconObjects from ReconDir/TrackerECal.
AnaP0DReconClusterIO(const AnaP0DReconCluster &cluster)
A constructor from the corresponding base class.
Representation of detector time info.
Definition: DataClasses.hxx:11
AnaDetCrossingIO(const AnaDetCrossingB &cross)
A constructor from the corresponding base class.
AnaFgdTimeBinIO(const AnaFgdTimeBin &bin)
A constructor from the corresponding base class.
Representation of a true Monte Carlo vertex.
Definition: DataClasses.hxx:50
AnaTrackerTrackIO(const AnaTrackerTrack &track)
A constructor from the corresponding base class.
std::vector< AnaVertexB * > ReconVertices
Vector of pointers to AnaVertexB (global vertices) associated with this true vertex.
Representation of a detector crossing info for a true particle (G4 trajectory).
AnaFGDParticleIO(const AnaFGDParticle &particle)
A constructor from the corresponding base class.
Representation of a Tracker segment of a global track.
AnaVertexIO(const AnaVertex &vertex)
A constructor from the corresponding base class.
AnaTriggerIO(const AnaTrigger &trigger)
A constructor from the corresponding base class.
Representation of the ND280 data quality flags.
AnaECALParticleIO(const AnaECALParticle &particle)
A constructor from the corresponding base class.
Representation of a FGD segment of a global track.
Representation of a P0D segment of a global track.
This is a base P0D object that shares the common attributes of Vertex, Particle, Track, Shower, Cluster, Hit.
Representation of the ND280 trigger bits.
This Ana* object is used to flatten TECALUnmatchedObjects from ReconDir/TrackerECal.
Representation of a detector crossing info for a trajectory/track.
AnaTimeNodeIO(const AnaTimeNode &node)
A constructor from the corresponding base class.
AnaLocalReconBunchIO(const AnaLocalReconBunch &bunch)
A constructor from the corresponding base class.
AnaP0DReconObjectIO(const AnaP0DReconObject &object)
A constructor from the corresponding base class.
Representation of a global track.
Representation of a TPC segment of a global track.
AnaSMRDParticleIO(const AnaSMRDParticle &particle)
A constructor from the corresponding base class.
AnaTECALUnmatchedObjectIO(const AnaTECALUnmatchedObject &object)
A constructor from the corresponding base class.
Representation of a reconstructed particle (track or shower).
Representation of a TPC segment of a global particle.
Representation of a true Monte Carlo trajectory/particle.
Representation of the beam information, including POT and quality.
AnaP0DReconParticleIO(const AnaP0DReconParticle &particle)
A constructor from the corresponding base class.
std::vector< AnaParticleB * > ReconParticles
Representation of a global vertex.
AnaTECALReconObjectIO(const AnaTECALReconObject &object)
A constructor from the corresponding base class.