8 #ifndef GARANA_FLATGENTREE_H_ 9 #define GARANA_FLATGENTREE_H_ 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;
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;
39 const int ScatterCode(
const UInt_t& igen)
const override;
40 const int InteractCode(
const UInt_t& igen)
const override;
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;
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;
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;
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;
69 void GetEntry(
const UInt_t& ientry)
override;
174 vector<UInt_t>*
fNFS =
nullptr;
181 vector<Float_t>*
fFST =
nullptr;
185 vector<Float_t>*
fFSE =
nullptr;
vector< double > fFShadSystEObj
vector< double > fTgtEObj
vector< double > * fFShadSystPz
vector< double > fTgtPyObj
vector< double > * fHitNucPy
vector< double > fFShadSystPyObj
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
vector< Float_t > fFSPosYObj
y-coordinate [cm]
vector< int > * fNumPiPlus
vector< Float_t > fFSPosXObj
x-coordinate [cm]
vector< double > fProbePzObj
vector< double > fFSleptonPxObj
const double Q2(const UInt_t &igen) const override
vector< double > fHitNucPyObj
vector< Float_t > fFSMomXObj
momentum, x-component [GeV/c]
const Int_t FSTrackId(const UInt_t &igen, const UInt_t &ifsp) const override
vector< double > fFShadSystPxObj
vector< double > * fFSleptonPz
vector< Float_t > fFSMomZObj
momentum, z-component [GeV/c]
vector< Float_t > fFSTObj
time [ns]
const int NumNuPiPlus(const UInt_t &igen) const override
number of pi pluses after reaction, before FSI
vector< double > fHitNucPosObj
const int HitNucPDG(const UInt_t &igen) const override
hit nucleon PDG code
const Float_t FSPDG(const UInt_t &igen, const UInt_t &ifsp) const override
const vector< Int_t > * fGIndex
vector< int > fHitNucPDGObj
vector< double > fWeightObj
vector< int > fGscatterObj
const int NumNuPiMinus(const UInt_t &igen) const override
number of pi minuses after reaction, before FSI
vector< double > fFShadSystPzObj
vector< UInt_t > fFSIndexObj
vector< double > fHitNucEObj
const Float_t FSEnergy(const UInt_t &igen, const UInt_t &ifsp) const override
vector< double > * fFSleptonPx
vector< Float_t > * fFSPosY
y-coordinate [cm]
vector< double > * fTgtPx
const UInt_t NGen() const override
vector< int > fNumNeutronObj
vector< int > fCharmHadronPDGObj
vector< double > * fProbability
const Float_t FSTotEnergy(const UInt_t &igen) const override
vector< double > * fHitNucPx
vector< double > fDiffXsecObj
const TLorentzVector * HitNucP4(const UInt_t &igen) const override
hit nucleon (initial) 4-momentum
vector< int > fStrangeHadronPDGObj
vector< bool > * fIsStrange
const int ScatterCode(const UInt_t &igen) const override
GENIE neutrino scattering code.
vector< int > fHitQrkPDGObj
vector< double > fTgtPzObj
vector< double > * fFSleptonE
vector< Float_t > * fFST
time [ns]
vector< double > * fFShadSystE
vector< double > fProbabilityObj
vector< double > fTgtPxObj
vector< Float_t > fFSPosZObj
z-coordinate [cm]
vector< double > * fProbePz
vector< double > fHitNucPzObj
const TLorentzVector * FSLeptonP4(const UInt_t &igen) const override
final state primary lepton 4-momentum (LAB frame)
vector< double > * fTgtPy
vector< Float_t > * fFSMomZ
momentum, z-component [GeV/c]
vector< double > * fDiffXsec
vector< double > fFSleptonPzObj
vector< int > * fDecayMode
vector< double > fProbePyObj
vector< UInt_t > fFSPdgObj
particle PDG code
const int TgtZ(const UInt_t &igen) const override
target Z
vector< int > * fGscatter
vector< double > fHitNucPxObj
const double q2(const UInt_t &igen) const override
const Bool_t IsGenie(const UInt_t &igen) const override
vector< Float_t > * fFSMomY
momentum, y-component [GeV/c]
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
vector< double > fNuXObj
GTruth (one or more per genTree entry) //.
vector< int > fNumProtonObj
const TLorentzVector * FSHadSystP4(const UInt_t &igen) const override
final state hadronic system 4-momentum(LAB frame)
vector< UInt_t > * fNFS
number of FSParticles for igen^th GTruth len=NGen
vector< double > fXsecObj
const int NumNuPi0(const UInt_t &igen) const override
number of pi0 after reaction, before FSI
vector< int > fGPhaseSpaceObj
vector< bool > * fIsCharm
vector< Float_t > * fFSMomX
momentum, x-component [GeV/c]
vector< std::pair< fsBegin, fsEnd > > fGenToFSLimits
const Int_t NuPDG(const UInt_t &igen) const override
neutrino PDG code
vector< double > * fFSleptonPy
vector< Float_t > fFSEObj
total energy [GeV]
vector< bool > fIsStrangeObj
const int TgtA(const UInt_t &igen) const override
target A
const double W(const UInt_t &igen) const override
vector< int > * fNuRegion
TBranch * b_StrangeHadronPDG
void GetEntry(const UInt_t &ientry) override
vector< double > * fNuX
GTruth (one or more per genTree entry) //.
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
vector< Float_t > fFSMomYObj
momentum, y-component [GeV/c]
const double T(const UInt_t &igen) const override
vector< UInt_t > * fFSIndex
const UInt_t NFSParticles(const UInt_t &igen) const override
vector< int > * fHitNucPDG
vector< Float_t > * fFSPosX
x-coordinate [cm]
vector< bool > fIsSeaQuarkObj
vector< double > * fTgtPz
vector< int > * fStrangeHadronPDG
vector< UInt_t > * fFSTrackId
particle generator track ID
vector< double > fFSleptonPyObj
const TLorentzVector * NuP(const UInt_t &igen) override
initial neutrino 4-momentum
vector< double > * fFShadSystPx
vector< int > * fNumProton
vector< int > * fNumPiMinus
bool SetBranchAddresses() override
vector< double > fProbePxObj
const double Y(const UInt_t &igen) const override
vector< bool > * fIsSeaQuark
vector< double > fProbeEObj
vector< double > * fProbePx
vector< int > fProbePDGObj
vector< int > * fProbePDG
TBranch * b_CharmHadronPDG
vector< bool > fIsCharmObj
const TLorentzVector * NuVertex(const UInt_t &igen) override
4-position of neutrino vertex
vector< int > fDecayModeObj
vector< UInt_t > * fFSPdg
particle PDG code
vector< int > * fNumNeutron
vector< double > * fProbePy
vector< Float_t > * fFSPosZ
z-coordinate [cm]
vector< Float_t > * fFSE
total energy [GeV]
vector< double > fFSleptonEObj
vector< int > fNumPiPlusObj
vector< double > * fHitNucPos
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< double > * fFShadSystPy
vector< double > * fWeight
vector< double > * fHitNucE
const Int_t TgtPDG(const UInt_t &igen) const override
PDG of Target Nucleus, nucleon only if free.
vector< double > * fHitNucPz
vector< double > * fProbeE
vector< int > * fCharmHadronPDG
vector< UInt_t > fNFSObj
number of FSParticles for igen^th GTruth len=NGen