FlatGenTree.h
Go to the documentation of this file.
1 /*
2  * FlatGenTree.h
3  *
4  * Created on: Feb 9, 2021
5  * Author: chilgenb
6  */
7 
8 #ifndef GARANA_FLATGENTREE_H_
9 #define GARANA_FLATGENTREE_H_
10 
11 #include "garana/Base/GenTree.h"
12 
13 #include <utility>
14 
15 
16 using std::vector;
17 
18 namespace garana {
19 
20  class FlatGenTree : public GenTree {
21 
22  public:
23 
25  FlatGenTree(TTree* tree);
26  FlatGenTree(TTree* tree, char opt);
27 
28  //accessors inherited from GenTree
29  const UInt_t NGen() const override;
30  const UInt_t NFSParticles(const UInt_t& igen ) const override;
31  const Bool_t IsGenie(const UInt_t& igen ) const override;
32 
33  const int NuRegion(const UInt_t& igen ) const override;
34  const Bool_t IsCC(const UInt_t& igen ) const override;
35  const Int_t NuPDG(const UInt_t& igen ) const override;
36  const TLorentzVector* NuP(const UInt_t& igen) override;
37  const TLorentzVector* NuVertex(const UInt_t& igen) override;
38 
39  const int ScatterCode(const UInt_t& igen) const override;
40  const int InteractCode(const UInt_t& igen) const override;
41 
42  const Int_t TgtPDG(const UInt_t& igen ) const override;
43  const TLorentzVector* TgtP4(const UInt_t& igen) const override;
44  const int TgtZ(const UInt_t& igen ) const override;
45  const int TgtA(const UInt_t& igen ) const override;
46  const int HitNucPDG(const UInt_t& igen ) const override;
47  const TLorentzVector* HitNucP4(const UInt_t& igen ) const override;
48 
49  const double Q2(const UInt_t& igen ) const override;
50  const double q2(const UInt_t& igen ) const override;
51  const double W(const UInt_t& igen ) const override;
52  const double T(const UInt_t& igen ) const override;
53  const double X(const UInt_t& igen ) const override;
54  const double Y(const UInt_t& igen ) const override;
55  const TLorentzVector* FSLeptonP4(const UInt_t& igen ) const override;
56  const TLorentzVector* FSHadSystP4(const UInt_t& igen ) const override;
57 
58  const int NumNuProton(const UInt_t& igen) const override;
59  const int NumNuNeutron(const UInt_t& igen) const override;
60  const int NumNuPi0(const UInt_t& igen) const override;
61  const int NumNuPiPlus(const UInt_t& igen) const override;
62  const int NumNuPiMinus(const UInt_t& igen) const override;
63 
64  const Float_t FSTotEnergy(const UInt_t& igen) const override;
65  const Float_t FSEnergy(const UInt_t& igen, const UInt_t& ifsp) const override;
66  const Float_t FSPDG(const UInt_t& igen, const UInt_t& ifsp) const override;
67  const Int_t FSTrackId(const UInt_t& igen, const UInt_t& ifsp) const override;
68 
69  void GetEntry(const UInt_t& ientry) override;
70 
71  //private:
72  protected:
73 
74  bool SetBranchAddresses() override;
75  void FindFSLimits();
76  std::pair<UInt_t,UInt_t> FSParticlesFromGTruth(size_t igen) const;
77  void SetVecs();
78  void ClearVecs();
79 
80  typedef UInt_t fsLimit;
81  typedef fsLimit fsBegin;
82  typedef fsLimit fsEnd;
83  vector< std::pair< fsBegin, fsEnd > > fGenToFSLimits;
84 
85  TLorentzVector fNuP;
86  TLorentzVector fNuVertex;
87 
88  // leaves
89  Int_t fNGen = -1;
90  const vector<Int_t>* fGIndex = nullptr;
91 
92  //vector objects (used only if fOpt == 'w')
93  vector<UInt_t> fNFSObj; ///< number of FSParticles for igen^th GTruth len=NGen
94  vector<UInt_t> fFSIndexObj; ///<
95  vector<UInt_t> fFSPdgObj; ///< particle PDG code
96  vector<Float_t> fFSPosXObj; ///< x-coordinate [cm]
97  vector<Float_t> fFSPosYObj; ///< y-coordinate [cm]
98  vector<Float_t> fFSPosZObj; ///< z-coordinate [cm]
99  vector<Float_t> fFSTObj; ///< time [ns]
100  vector<Float_t> fFSMomXObj; ///< momentum, x-component [GeV/c]
101  vector<Float_t> fFSMomYObj; ///< momentum, y-component [GeV/c]
102  vector<Float_t> fFSMomZObj; ///< momentum, z-component [GeV/c]
103  vector<Float_t> fFSEObj; ///< total energy [GeV]
104 
105  /// GTruth (one or more per genTree entry) //
110 
117 
122 
127 
134 
140 
149 
154 
159 
171 
172  //vector pointers
173  //final state particles
174  vector<UInt_t>* fNFS = nullptr; ///< number of FSParticles for igen^th GTruth len=NGen
175  vector<UInt_t>* fFSIndex = nullptr; ///<
176  vector<UInt_t>* fFSTrackId = nullptr; ///< particle generator track ID
177  vector<UInt_t>* fFSPdg = nullptr; ///< particle PDG code
178  vector<Float_t>* fFSPosX = nullptr; ///< x-coordinate [cm]
179  vector<Float_t>* fFSPosY = nullptr; ///< y-coordinate [cm]
180  vector<Float_t>* fFSPosZ = nullptr; ///< z-coordinate [cm]
181  vector<Float_t>* fFST = nullptr; ///< time [ns]
182  vector<Float_t>* fFSMomX = nullptr; ///< momentum, x-component [GeV/c]
183  vector<Float_t>* fFSMomY = nullptr; ///< momentum, y-component [GeV/c]
184  vector<Float_t>* fFSMomZ = nullptr; ///< momentum, z-component [GeV/c]
185  vector<Float_t>* fFSE = nullptr; ///< total energy [GeV]
186 
187  /// GTruth (one or more per genTree entry) //
188  vector<double>* fNuX = nullptr; ///<
189  vector<double>* fNuY = nullptr; ///<
190  vector<double>* fNuZ = nullptr; ///<
191  vector<double>* fNuT = nullptr; ///<
192  vector<int>* fNuRegion = nullptr;
193 
194  vector<double>* fWeight = nullptr; ///<
195  vector<double>* fProbability = nullptr; ///<
196  vector<double>* fXsec = nullptr; ///<
197  vector<double>* fDiffXsec = nullptr; ///<
198  vector<int>* fGPhaseSpace = nullptr; ///<
199  vector<int>* fProbePDG = nullptr; ///<
200 
201  vector<double>* fProbePx = nullptr; ///<
202  vector<double>* fProbePy = nullptr; ///<
203  vector<double>* fProbePz = nullptr; ///<
204  vector<double>* fProbeE = nullptr; ///<
205 
206  vector<double>* fTgtPx = nullptr; ///<
207  vector<double>* fTgtPy = nullptr; ///<
208  vector<double>* fTgtPz = nullptr; ///<
209  vector<double>* fTgtE = nullptr; ///<
210 
211  vector<int>* fTgtZ = nullptr; ///<
212  vector<int>* fTgtA = nullptr; ///<
213  vector<int>* fTgtPDG = nullptr; ///<
214  vector<int>* fHitNucPDG = nullptr; ///<
215  vector<int>* fHitQrkPDG = nullptr; ///<
216  vector<bool>* fIsSeaQuark = nullptr; ///<
217 
218  vector<double>* fHitNucPx = nullptr; ///<
219  vector<double>* fHitNucPy = nullptr; ///<
220  vector<double>* fHitNucPz = nullptr; ///<
221  vector<double>* fHitNucE = nullptr; ///<
222  vector<double>* fHitNucPos = nullptr; ///<
223 
224  vector<int>* fGscatter = nullptr; ///<
225  vector<int>* fGint = nullptr; ///<
226  vector<double>* fGQ2 = nullptr; ///<
227  vector<double>* fGq2 = nullptr; ///<
228  vector<double>* fGW = nullptr; ///<
229  vector<double>* fGT = nullptr; ///<
230  vector<double>* fGX = nullptr; ///<
231  vector<double>* fGY = nullptr; ///<
232 
233  vector<double>* fFSleptonPx = nullptr; ///<
234  vector<double>* fFSleptonPy = nullptr; ///<
235  vector<double>* fFSleptonPz = nullptr; ///<
236  vector<double>* fFSleptonE = nullptr; ///<
237 
238  vector<double>* fFShadSystPx = nullptr; ///<
239  vector<double>* fFShadSystPy = nullptr; ///<
240  vector<double>* fFShadSystPz = nullptr; ///<
241  vector<double>* fFShadSystE = nullptr; ///<
242 
243  vector<bool>* fIsCharm = nullptr; ///<
244  vector<int>* fCharmHadronPDG = nullptr; ///<
245  vector<bool>* fIsStrange = nullptr; ///<
247  vector<int>* fNumProton = nullptr; ///<
248  vector<int>* fNumNeutron = nullptr; ///<
249  vector<int>* fNumPi0 = nullptr; ///<
250  vector<int>* fNumPiPlus = nullptr; ///<
251  vector<int>* fNumPiMinus = nullptr; ///<
252  vector<int>* fResNum = nullptr; ///<
253  vector<int>* fDecayMode = nullptr; ///<
254 
255  //branches
256  TBranch* b_NGen = nullptr;
257  TBranch* b_GIndex = nullptr;
258 
259  TBranch* b_NFS = nullptr;
260  TBranch* b_FSIndex = nullptr;
261  TBranch* b_FSPdg = nullptr;
262  TBranch* b_FSPosX = nullptr;
263  TBranch* b_FSPosY = nullptr;
264  TBranch* b_FSPosZ = nullptr;
265  TBranch* b_FST = nullptr;
266  TBranch* b_FSMomX = nullptr;
267  TBranch* b_FSMomY = nullptr;
268  TBranch* b_FSMomZ = nullptr;
269  TBranch* b_FSE = nullptr;
270 
271  TBranch* b_NuX = nullptr; ///<
272  TBranch* b_NuY = nullptr; ///<
273  TBranch* b_NuZ = nullptr; ///<
274  TBranch* b_NuT = nullptr; ///<
275  TBranch* b_NuRegion = nullptr;
276 
277  TBranch* b_Weight = nullptr; ///<
278  TBranch* b_Probability = nullptr; ///<
279  TBranch* b_Xsec = nullptr; ///<
280  TBranch* b_DiffXsec = nullptr; ///<
281  TBranch* b_GPhaseSpace = nullptr; ///<
282  TBranch* b_ProbePDG = nullptr; ///<
283 
284  TBranch* b_ProbePx = nullptr; ///<
285  TBranch* b_ProbePy = nullptr; ///<
286  TBranch* b_ProbePz = nullptr; ///<
287  TBranch* b_ProbeE = nullptr; ///<
288 
289  TBranch* b_TgtPx = nullptr; ///<
290  TBranch* b_TgtPy = nullptr; ///<
291  TBranch* b_TgtPz = nullptr; ///<
292  TBranch* b_TgtE = nullptr; ///<
293 
294  TBranch* b_TgtZ = nullptr; ///<
295  TBranch* b_TgtA = nullptr; ///<
296  TBranch* b_TgtPDG = nullptr; ///<
297  TBranch* b_HitNucPDG = nullptr; ///<
298  TBranch* b_HitQrkPDG = nullptr; ///<
299  TBranch* b_IsSeaQuark = nullptr; ///<
300 
301  TBranch* b_HitNucPx = nullptr; ///<
302  TBranch* b_HitNucPy = nullptr; ///<
303  TBranch* b_HitNucPz = nullptr; ///<
304  TBranch* b_HitNucE = nullptr; ///<
305  TBranch* b_HitNucPos = nullptr; ///<
306 
307  TBranch* b_Gscatter = nullptr; ///<
308  TBranch* b_Gint = nullptr; ///<
309  TBranch* b_GQ2 = nullptr; ///<
310  TBranch* b_Gq2 = nullptr; ///<
311  TBranch* b_GW = nullptr; ///<
312  TBranch* b_GT = nullptr; ///<
313  TBranch* b_GX = nullptr; ///<
314  TBranch* b_GY = nullptr; ///<
315 
316  TBranch* b_FSleptonPx = nullptr; ///<
317  TBranch* b_FSleptonPy = nullptr; ///<
318  TBranch* b_FSleptonPz = nullptr; ///<
319  TBranch* b_FSleptonE = nullptr; ///<
320 
321  TBranch* b_FShadSystPx = nullptr; ///<
322  TBranch* b_FShadSystPy = nullptr; ///<
323  TBranch* b_FShadSystPz = nullptr; ///<
324  TBranch* b_FShadSystE = nullptr; ///<
325 
326  TBranch* b_IsCharm = nullptr;
327  TBranch* b_CharmHadronPDG = nullptr;
328  TBranch* b_IsStrange = nullptr;
329  TBranch* b_StrangeHadronPDG = nullptr;
330  TBranch* b_NumProton = nullptr;
331  TBranch* b_NumNeutron = nullptr;
332  TBranch* b_NumPi0 = nullptr;
333  TBranch* b_NumPiPlus = nullptr;
334  TBranch* b_NumPiMinus = nullptr;
335  TBranch* b_ResNum = nullptr;
336  TBranch* b_DecayMode = nullptr;
337  // \GTruth
338 
339 
340  };//class
341 }//namespace
342 
343 #endif /* FLATGENTREE_H_ */
vector< double > fFShadSystEObj
Definition: FlatGenTree.h:158
vector< double > fTgtEObj
Definition: FlatGenTree.h:126
vector< int > fTgtZObj
Definition: FlatGenTree.h:128
vector< double > * fFShadSystPz
Definition: FlatGenTree.h:240
vector< double > fTgtPyObj
Definition: FlatGenTree.h:124
vector< double > * fHitNucPy
Definition: FlatGenTree.h:219
vector< double > fFShadSystPyObj
Definition: FlatGenTree.h:156
vector< int > fResNumObj
Definition: FlatGenTree.h:169
const double X(const UInt_t &igen) const override
const int NumNuNeutron(const UInt_t &igen) const override
number of neutrons after reaction, before FSI
vector< int > fNumPiMinusObj
Definition: FlatGenTree.h:168
vector< Float_t > fFSPosYObj
y-coordinate [cm]
Definition: FlatGenTree.h:97
vector< double > * fTgtE
Definition: FlatGenTree.h:209
vector< int > * fNumPiPlus
Definition: FlatGenTree.h:250
vector< Float_t > fFSPosXObj
x-coordinate [cm]
Definition: FlatGenTree.h:96
TBranch * b_NumProton
Definition: FlatGenTree.h:330
vector< double > fProbePzObj
Definition: FlatGenTree.h:120
TBranch * b_HitNucPy
Definition: FlatGenTree.h:302
TBranch * b_HitNucPos
Definition: FlatGenTree.h:305
vector< double > fFSleptonPxObj
Definition: FlatGenTree.h:150
const double Q2(const UInt_t &igen) const override
vector< double > * fGq2
Definition: FlatGenTree.h:227
vector< double > fHitNucPyObj
Definition: FlatGenTree.h:136
vector< Float_t > fFSMomXObj
momentum, x-component [GeV/c]
Definition: FlatGenTree.h:100
TBranch * b_Gscatter
Definition: FlatGenTree.h:307
const Int_t FSTrackId(const UInt_t &igen, const UInt_t &ifsp) const override
vector< double > fFShadSystPxObj
Definition: FlatGenTree.h:155
vector< double > fGWObj
Definition: FlatGenTree.h:145
vector< double > * fFSleptonPz
Definition: FlatGenTree.h:235
vector< Float_t > fFSMomZObj
momentum, z-component [GeV/c]
Definition: FlatGenTree.h:102
vector< double > * fGY
Definition: FlatGenTree.h:231
vector< Float_t > fFSTObj
time [ns]
Definition: FlatGenTree.h:99
const int NumNuPiPlus(const UInt_t &igen) const override
number of pi pluses after reaction, before FSI
vector< double > fHitNucPosObj
Definition: FlatGenTree.h:139
const int HitNucPDG(const UInt_t &igen) const override
hit nucleon PDG code
TBranch * b_FSleptonPz
Definition: FlatGenTree.h:318
const Float_t FSPDG(const UInt_t &igen, const UInt_t &ifsp) const override
TBranch * b_FShadSystPx
Definition: FlatGenTree.h:321
const vector< Int_t > * fGIndex
Definition: FlatGenTree.h:90
vector< int > fHitNucPDGObj
Definition: FlatGenTree.h:131
vector< double > fWeightObj
Definition: FlatGenTree.h:111
opt
Definition: train.py:196
vector< int > fGscatterObj
Definition: FlatGenTree.h:141
const int NumNuPiMinus(const UInt_t &igen) const override
number of pi minuses after reaction, before FSI
vector< int > fGintObj
Definition: FlatGenTree.h:142
vector< double > fFShadSystPzObj
Definition: FlatGenTree.h:157
vector< UInt_t > fFSIndexObj
Definition: FlatGenTree.h:94
vector< double > fHitNucEObj
Definition: FlatGenTree.h:138
struct vector vector
const Float_t FSEnergy(const UInt_t &igen, const UInt_t &ifsp) const override
vector< double > * fFSleptonPx
Definition: FlatGenTree.h:233
vector< Float_t > * fFSPosY
y-coordinate [cm]
Definition: FlatGenTree.h:179
vector< double > * fTgtPx
Definition: FlatGenTree.h:206
vector< double > * fGQ2
Definition: FlatGenTree.h:226
const UInt_t NGen() const override
TBranch * b_HitNucPz
Definition: FlatGenTree.h:303
vector< int > * fTgtZ
Definition: FlatGenTree.h:211
vector< int > fNumNeutronObj
Definition: FlatGenTree.h:165
vector< int > fCharmHadronPDGObj
Definition: FlatGenTree.h:161
vector< double > * fProbability
Definition: FlatGenTree.h:195
const Float_t FSTotEnergy(const UInt_t &igen) const override
vector< double > fNuYObj
Definition: FlatGenTree.h:107
vector< double > * fHitNucPx
Definition: FlatGenTree.h:218
vector< double > fGYObj
Definition: FlatGenTree.h:148
TBranch * b_FSleptonPx
Definition: FlatGenTree.h:316
vector< double > fDiffXsecObj
Definition: FlatGenTree.h:114
const TLorentzVector * HitNucP4(const UInt_t &igen) const override
hit nucleon (initial) 4-momentum
vector< int > fStrangeHadronPDGObj
Definition: FlatGenTree.h:163
vector< bool > * fIsStrange
Definition: FlatGenTree.h:245
const int ScatterCode(const UInt_t &igen) const override
GENIE neutrino scattering code.
TBranch * b_IsStrange
Definition: FlatGenTree.h:328
vector< double > fGq2Obj
Definition: FlatGenTree.h:144
vector< int > fHitQrkPDGObj
Definition: FlatGenTree.h:132
TLorentzVector fNuVertex
Definition: FlatGenTree.h:86
vector< double > fTgtPzObj
Definition: FlatGenTree.h:125
vector< double > * fFSleptonE
Definition: FlatGenTree.h:236
TBranch * b_FShadSystE
Definition: FlatGenTree.h:324
vector< Float_t > * fFST
time [ns]
Definition: FlatGenTree.h:181
vector< double > * fFShadSystE
Definition: FlatGenTree.h:241
TBranch * b_HitQrkPDG
Definition: FlatGenTree.h:298
vector< double > fProbabilityObj
Definition: FlatGenTree.h:112
vector< double > fTgtPxObj
Definition: FlatGenTree.h:123
vector< double > * fGT
Definition: FlatGenTree.h:229
vector< Float_t > fFSPosZObj
z-coordinate [cm]
Definition: FlatGenTree.h:98
vector< double > * fProbePz
Definition: FlatGenTree.h:203
vector< double > fHitNucPzObj
Definition: FlatGenTree.h:137
vector< double > fGTObj
Definition: FlatGenTree.h:146
const TLorentzVector * FSLeptonP4(const UInt_t &igen) const override
final state primary lepton 4-momentum (LAB frame)
vector< double > * fTgtPy
Definition: FlatGenTree.h:207
TBranch * b_NumNeutron
Definition: FlatGenTree.h:331
vector< Float_t > * fFSMomZ
momentum, z-component [GeV/c]
Definition: FlatGenTree.h:184
vector< double > * fDiffXsec
Definition: FlatGenTree.h:197
vector< double > * fGW
Definition: FlatGenTree.h:228
vector< int > * fResNum
Definition: FlatGenTree.h:252
vector< double > fFSleptonPzObj
Definition: FlatGenTree.h:152
vector< int > * fDecayMode
Definition: FlatGenTree.h:253
vector< double > fProbePyObj
Definition: FlatGenTree.h:119
vector< UInt_t > fFSPdgObj
particle PDG code
Definition: FlatGenTree.h:95
const int TgtZ(const UInt_t &igen) const override
target Z
vector< int > * fGscatter
Definition: FlatGenTree.h:224
vector< double > fHitNucPxObj
Definition: FlatGenTree.h:135
const double q2(const UInt_t &igen) const override
TBranch * b_NumPiPlus
Definition: FlatGenTree.h:333
const Bool_t IsGenie(const UInt_t &igen) const override
vector< Float_t > * fFSMomY
momentum, y-component [GeV/c]
Definition: FlatGenTree.h:183
vector< int > * fGint
Definition: FlatGenTree.h:225
const int InteractCode(const UInt_t &igen) const override
GENIE interaction code.
std::pair< UInt_t, UInt_t > FSParticlesFromGTruth(size_t igen) const
vector< int > * fGPhaseSpace
Definition: FlatGenTree.h:198
vector< int > fTgtAObj
Definition: FlatGenTree.h:129
vector< int > * fNumPi0
Definition: FlatGenTree.h:249
vector< double > fNuXObj
GTruth (one or more per genTree entry) //.
Definition: FlatGenTree.h:106
vector< int > fNumProtonObj
Definition: FlatGenTree.h:164
TBranch * b_GPhaseSpace
Definition: FlatGenTree.h:281
const TLorentzVector * FSHadSystP4(const UInt_t &igen) const override
final state hadronic system 4-momentum(LAB frame)
TBranch * b_FSleptonE
Definition: FlatGenTree.h:319
vector< UInt_t > * fNFS
number of FSParticles for igen^th GTruth len=NGen
Definition: FlatGenTree.h:174
vector< int > fTgtPDGObj
Definition: FlatGenTree.h:130
TBranch * b_DecayMode
Definition: FlatGenTree.h:336
vector< double > fXsecObj
Definition: FlatGenTree.h:113
const int NumNuPi0(const UInt_t &igen) const override
number of pi0 after reaction, before FSI
vector< int > fGPhaseSpaceObj
Definition: FlatGenTree.h:115
vector< bool > * fIsCharm
Definition: FlatGenTree.h:243
vector< Float_t > * fFSMomX
momentum, x-component [GeV/c]
Definition: FlatGenTree.h:182
vector< std::pair< fsBegin, fsEnd > > fGenToFSLimits
Definition: FlatGenTree.h:83
const Int_t NuPDG(const UInt_t &igen) const override
neutrino PDG code
vector< double > * fFSleptonPy
Definition: FlatGenTree.h:234
vector< Float_t > fFSEObj
total energy [GeV]
Definition: FlatGenTree.h:103
vector< double > * fNuZ
Definition: FlatGenTree.h:190
vector< bool > fIsStrangeObj
Definition: FlatGenTree.h:162
const int TgtA(const UInt_t &igen) const override
target A
const double W(const UInt_t &igen) const override
vector< int > * fNuRegion
Definition: FlatGenTree.h:192
TBranch * b_StrangeHadronPDG
Definition: FlatGenTree.h:329
void GetEntry(const UInt_t &ientry) override
Definition: FlatGenTree.cxx:39
TBranch * b_FSleptonPy
Definition: FlatGenTree.h:317
vector< double > fGQ2Obj
Definition: FlatGenTree.h:143
vector< double > * fNuX
GTruth (one or more per genTree entry) //.
Definition: FlatGenTree.h:188
const TLorentzVector * TgtP4(const UInt_t &igen) const override
target 4-momentum
const Bool_t IsCC(const UInt_t &igen) const override
whether interaction is CC or not
vector< int > * fHitQrkPDG
Definition: FlatGenTree.h:215
vector< double > fGXObj
Definition: FlatGenTree.h:147
vector< Float_t > fFSMomYObj
momentum, y-component [GeV/c]
Definition: FlatGenTree.h:101
TBranch * b_HitNucPx
Definition: FlatGenTree.h:301
vector< int > * fTgtPDG
Definition: FlatGenTree.h:213
const double T(const UInt_t &igen) const override
vector< UInt_t > * fFSIndex
Definition: FlatGenTree.h:175
const UInt_t NFSParticles(const UInt_t &igen) const override
vector< int > * fHitNucPDG
Definition: FlatGenTree.h:214
vector< Float_t > * fFSPosX
x-coordinate [cm]
Definition: FlatGenTree.h:178
vector< bool > fIsSeaQuarkObj
Definition: FlatGenTree.h:133
vector< double > * fTgtPz
Definition: FlatGenTree.h:208
TBranch * b_DiffXsec
Definition: FlatGenTree.h:280
vector< int > * fStrangeHadronPDG
Definition: FlatGenTree.h:246
vector< UInt_t > * fFSTrackId
particle generator track ID
Definition: FlatGenTree.h:176
TBranch * b_Probability
Definition: FlatGenTree.h:278
vector< double > fFSleptonPyObj
Definition: FlatGenTree.h:151
const TLorentzVector * NuP(const UInt_t &igen) override
initial neutrino 4-momentum
TBranch * b_NuRegion
Definition: FlatGenTree.h:275
vector< double > * fFShadSystPx
Definition: FlatGenTree.h:238
vector< int > * fNumProton
Definition: FlatGenTree.h:247
vector< int > * fNumPiMinus
Definition: FlatGenTree.h:251
bool SetBranchAddresses() override
Definition: FlatGenTree.cxx:45
vector< double > fNuTObj
Definition: FlatGenTree.h:109
vector< double > fProbePxObj
Definition: FlatGenTree.h:118
const double Y(const UInt_t &igen) const override
vector< bool > * fIsSeaQuark
Definition: FlatGenTree.h:216
vector< double > fProbeEObj
Definition: FlatGenTree.h:121
vector< double > * fProbePx
Definition: FlatGenTree.h:201
vector< int > fProbePDGObj
Definition: FlatGenTree.h:116
TBranch * b_HitNucPDG
Definition: FlatGenTree.h:297
TLorentzVector fNuP
Definition: FlatGenTree.h:85
vector< double > * fNuY
Definition: FlatGenTree.h:189
vector< int > * fProbePDG
Definition: FlatGenTree.h:199
TBranch * b_CharmHadronPDG
Definition: FlatGenTree.h:327
vector< bool > fIsCharmObj
Definition: FlatGenTree.h:160
const TLorentzVector * NuVertex(const UInt_t &igen) override
4-position of neutrino vertex
TBranch * b_FShadSystPz
Definition: FlatGenTree.h:323
vector< double > * fXsec
Definition: FlatGenTree.h:196
vector< int > fDecayModeObj
Definition: FlatGenTree.h:170
vector< UInt_t > * fFSPdg
particle PDG code
Definition: FlatGenTree.h:177
vector< int > * fNumNeutron
Definition: FlatGenTree.h:248
vector< double > * fGX
Definition: FlatGenTree.h:230
vector< double > * fProbePy
Definition: FlatGenTree.h:202
vector< Float_t > * fFSPosZ
z-coordinate [cm]
Definition: FlatGenTree.h:180
vector< double > fNuZObj
Definition: FlatGenTree.h:108
vector< Float_t > * fFSE
total energy [GeV]
Definition: FlatGenTree.h:185
vector< double > fFSleptonEObj
Definition: FlatGenTree.h:153
vector< double > * fNuT
Definition: FlatGenTree.h:191
vector< int > fNumPiPlusObj
Definition: FlatGenTree.h:167
vector< double > * fHitNucPos
Definition: FlatGenTree.h:222
const int NuRegion(const UInt_t &igen) const override
region code where the vertex is located
const int NumNuProton(const UInt_t &igen) const override
number of protons after reaction, before FSI
vector< int > fNumPi0Obj
Definition: FlatGenTree.h:166
vector< double > * fFShadSystPy
Definition: FlatGenTree.h:239
vector< double > * fWeight
Definition: FlatGenTree.h:194
vector< int > * fTgtA
Definition: FlatGenTree.h:212
TBranch * b_ProbePDG
Definition: FlatGenTree.h:282
TBranch * b_FShadSystPy
Definition: FlatGenTree.h:322
vector< double > * fHitNucE
Definition: FlatGenTree.h:221
const Int_t TgtPDG(const UInt_t &igen) const override
PDG of Target Nucleus, nucleon only if free.
vector< double > * fHitNucPz
Definition: FlatGenTree.h:220
TBranch * b_NumPiMinus
Definition: FlatGenTree.h:334
TBranch * b_IsSeaQuark
Definition: FlatGenTree.h:299
vector< double > * fProbeE
Definition: FlatGenTree.h:204
vector< int > * fCharmHadronPDG
Definition: FlatGenTree.h:244
vector< UInt_t > fNFSObj
number of FSParticles for igen^th GTruth len=NGen
Definition: FlatGenTree.h:93