1 #ifndef CreateFlatTree_h 2 #define CreateFlatTree_h 4 #include "SimpleLoopBase.hxx" 5 #include "DataClassesIO.hxx" 6 #include "InputManager.hxx" 7 #include "RooTrackerVtxManager.hxx" 30 virtual void FillSpillVariables();
32 virtual bool CheckTruthFillFlatTree(
const AnaSpill& spill);
33 virtual bool CheckReconFillFlatTree(
const AnaBunch& bunch);
34 virtual bool CheckReconFillFlatTreeOutOfBunch(
const AnaBunch& bunch);
36 virtual bool CheckTrueVertexReaction(
const AnaTrueVertex& vtx);
37 virtual bool CheckTrueVertexDetector(
unsigned long det);
38 virtual void CreateListOfTrueParticlesToSave();
41 virtual void FillFlatTree();
43 virtual void DefineSpill (
AnaSpillIO* spill ){spill ->Define(*
this,
"s" );}
44 virtual void DefineTrueVertex (
AnaTrueVertexIO* trueVertex ){trueVertex ->Define(*
this,
"sNTrueVertices",
"sTrueVertex" );}
45 virtual void DefineTrueParticle (
AnaTrueParticleIO* trueParticle){trueParticle ->Define(*
this,
"sNTrueTracks",
"sTrueTrack" );}
46 virtual void DefineFgdTimeBin (
AnaFgdTimeBinIO* fgdTimeBin ){fgdTimeBin ->Define(*
this,
"sNFgdTimeBins",
"sFgdTimeBin" );}
47 virtual void DefineBunch (
AnaBunchIO* bunch ){bunch ->Define(*
this,
"" );}
48 virtual void DefineTrack (
AnaTrackIO* track ){track ->Define(*
this,
"NTracks",
"tr" );}
49 virtual void DefineVertex (
AnaVertexIO* vertex ){vertex ->Define(*
this,
"NVertices",
"v" );}
50 virtual void DefineTPCParticle (
AnaTPCParticleIO* tpc ){tpc ->Define(*
this,
"NTracks",
"trTpc" );}
51 virtual void DefineFGDParticle (
AnaFGDParticleIO* fgd ){fgd ->Define(*
this,
"NTracks",
"trFgd" );}
52 virtual void DefineECALParticle (
AnaECALParticleIO* ecal ){ecal ->Define(*
this,
"NTracks",
"trECAL" );}
53 virtual void DefineSMRDParticle (
AnaSMRDParticleIO* smrd ){smrd ->Define(*
this,
"NTracks",
"trSMRD" );}
54 virtual void DefineP0DParticle (
AnaP0DParticleIO* p0d ){p0d ->Define(*
this,
"NTracks",
"trP0D" );}
55 virtual void DefineTrackerTrack (
AnaTrackerTrackIO* tracker ){tracker ->Define(*
this,
"NTracks",
"trTRACKER" );}
56 virtual void DefineTECALReconObject (
AnaTECALReconObjectIO* tecal ){tecal ->Define(*
this,
"tecalReconCounter",
"tecalRecon" );}
57 virtual void DefineTECALUnmatchedObject(
AnaTECALUnmatchedObjectIO* tecal ){tecal ->Define(*
this,
"tecalUnmatchedCounter",
"tecalUnmatched");}
58 virtual void DefineP0DReconVertex (
AnaP0DReconVertexIO* p0dVertex ){p0dVertex ->Define(*
this,
"p0dVertexCounter",
"p0dVertex" );}
59 virtual void DefineP0DReconParticle (
AnaP0DReconParticleIO* p0dParticle){p0dParticle->Define(*
this,
"p0dParticleCounter",
"p0dParticle" );}
61 virtual void WriteTrueParticle(
AnaTrueParticleIO *trueParticle,
int trueVertexIndex ){trueParticle->Write(*
this, trueVertexIndex,
"sTrueTrack");}
62 virtual void WriteVertex (
AnaVertexIO *vertex,
const std::vector<int> trueVertexIndices){vertex ->Write(*
this, trueVertexIndices,
"v" );}
64 virtual void WriteTrueVertex (
AnaTrueVertexIO *trueVertex ){trueVertex ->Write(*
this,
"sTrueVertex" );}
65 virtual void WriteFgdTimeBin (
AnaFgdTimeBinIO *fgdTimeBin ){fgdTimeBin ->Write(*
this,
"sFgdTimeBin" );}
66 virtual void WriteBunch (
AnaBunchIO *bunch ){bunch ->Write(*
this,
"" );}
67 virtual void WriteTrack (
AnaTrackIO *track ){track ->Write(*
this,
"tr" );}
68 virtual void WriteTPCParticle (
AnaTPCParticleIO *tpc ){tpc ->Write(*
this,
"trTpc" );}
69 virtual void WriteFGDParticle (
AnaFGDParticleIO *fgd ){fgd ->Write(*
this,
"trFgd" );}
70 virtual void WriteECALParticle (
AnaECALParticleIO *ecal ){ecal ->Write(*
this,
"trECAL" );}
71 virtual void WriteSMRDParticle (
AnaSMRDParticleIO *smrd ){smrd ->Write(*
this,
"trSMRD" );}
72 virtual void WriteP0DParticle (
AnaP0DParticleIO *p0d ){p0d ->Write(*
this,
"trP0D" );}
73 virtual void WriteTrackerTrack (
AnaTrackerTrackIO *tracker,
int j ){tracker ->Write(*
this,
"trTRACKER", -1, j );}
74 virtual void WriteTECALReconObject (
AnaTECALReconObjectIO *tecal ){tecal ->Write(*
this,
"tecalRecon" );}
76 virtual void WriteP0DReconVertex (
AnaP0DReconVertexIO *p0dVertex ){p0dVertex ->Write(*
this,
"p0dVertex" );}
77 virtual void WriteP0DReconParticle (
AnaP0DReconParticleIO *p0dParticle ){p0dParticle ->Write(*
this,
"p0dParticle" );}
82 void ResetCheckWriteSegment();
86 sPOTSincePreviousSpill = TreeVars::TreeVarsLast+1
90 flattree = OutputManager::enumSpecialTreesLast+1
98 bool _saveTruthWithRecon;
106 bool _saveTrackerInfo;
110 bool _saveReconDirTECALInfo;
111 bool _saveReconDirPECALInfo;
112 bool _saveReconDirP0DInfo;
113 bool _saveReconDirFGDOnlyInfo;
126 bool _useTPC1outOfBunch;
127 bool _useTPC2outOfBunch;
128 bool _useTPC3outOfBunch;
129 bool _useFGD1outOfBunch;
130 bool _useFGD2outOfBunch;
131 bool _useP0DoutOfBunch;
132 bool _useDsECaloutOfBunch;
133 bool _useTrECaloutOfBunch;
134 bool _useP0DECaloutOfBunch;
135 bool _useSMRDoutOfBunch;
138 bool _saveTrueAntiNuNC;
139 bool _saveTrueNumuCC;
140 bool _saveTrueAntiNumuCC;
142 bool _saveTrueAntiNueCC;
144 double _POTSincePreviousSpill;
148 std::set<int> _trueParticleIDs;
150 std::vector<SubDetId::SubDetEnum> _saveTrueVertexInDet;
152 std::vector<AnaTrueVertex*> _savedTrueVertices;
154 Int_t _max_nodes[10];
Representation of a true Monte Carlo trajectory/particle.
Representation of an ECAL segment of a global track.
Representation of a true Monte Carlo vertex.
Representation of a true Monte Carlo vertex.
Representation of an SMRD segment of a global track.
virtual void FinalizeSpill()
Finalize each spill, including cleaning up data read from the input file.
Representation of a true Monte Carlo vertex.
Representation of a true Monte Carlo trajectory/particle.
virtual bool InitializeSpill()
SubDetEnum
Enumeration of all detector systems and subdetectors.
Representation of a Tracker segment of a global track.
Representation of a FGD segment of a global track.
Representation of a P0D segment of a global track.
virtual bool Initialize()
Representation of a global track.
Representation of a reconstructed particle (track or shower).
virtual void DefineOutputTree()
Define the tree that should be written to the output file.
Representation of a TPC segment of a global particle.
Representation of a global vertex.