8 #ifndef GARANA_FLATG4TREE_H_ 9 #define GARANA_FLATG4TREE_H_ 29 const UInt_t
NSim()
const override;
30 const UInt_t
NPoints(
const UInt_t& iparticle)
const override;
31 const UInt_t
NRegions(
const UInt_t& iparticle)
const override;
32 const Int_t
Region(
const UInt_t& iparticle,
const UInt_t& iregion)
const override;
33 const vector<const TLorentzVector*>*
SimMomEnter(
const UInt_t& iparticle)
const override;
34 const vector<const TLorentzVector*>*
SimMomExit(
const UInt_t& iparticle)
const override;
35 const vector<const TLorentzVector*>*
SimPosEnter(
const UInt_t& iparticle)
const override;
36 const vector<const TLorentzVector*>*
SimPosExit(
const UInt_t& iparticle)
const override;
37 const TLorentzVector*
SimMomEnter(
const UInt_t& iparticle,
const UInt_t& iregion)
const override;
38 const TLorentzVector*
SimMomExit(
const UInt_t& iparticle,
const UInt_t& iregion)
const override;
39 const TLorentzVector*
SimPosEnter(
const UInt_t& iparticle,
const UInt_t& iregion)
const override;
40 const TLorentzVector*
SimPosExit(
const UInt_t& iparticle,
const UInt_t& iregion)
const override;
41 const bool IsPrimary(
const UInt_t& iparticle)
const override;
42 const Int_t
PDG(
const UInt_t& iparticle)
const override;
43 const int ParentPDG(
const UInt_t& iparticle)
const override;
44 const int ProgenitorPDG(
const UInt_t& iparticle)
const override;
45 const int TrackID(
const UInt_t& iparticle)
const override;
46 const int ParentTrackID(
const UInt_t& iparticle)
const override;
48 const Int_t
ProcessI(
const UInt_t& iparticle)
const override;
49 const Int_t
ProcessF(
const UInt_t& iparticle)
const override;
51 void GetEntry(
const UInt_t& ientry)
override;
64 std::map<UInt_t, std::pair<UInt_t,UInt_t>>
fLimits;
73 vector<UInt_t>*
fNPts =
nullptr;
77 vector<Int_t>*
fPDG =
nullptr;
84 vector<Float_t>*
fX =
nullptr;
85 vector<Float_t>*
fY =
nullptr;
86 vector<Float_t>*
fZ =
nullptr;
87 vector<Float_t>*
fT =
nullptr;
88 vector<Float_t>*
fPx =
nullptr;
89 vector<Float_t>*
fPy =
nullptr;
90 vector<Float_t>*
fPz =
nullptr;
91 vector<Float_t>*
fE =
nullptr;
vector< Int_t > * fTrkID
particle's G4 trackID
const UInt_t LocalToGlobalIndex(const UInt_t &iparticle) const
const Int_t ProcessI(const UInt_t &iparticle) const override
code for process that created this one
TBranch * b_ProgenitorTrackId
const UInt_t NSim() const override
number of particles
vector< Int_t > * fParentPdg
particle parent's PDG code
vector< Float_t > * fPy
particle's y-momentum in lab frame [GeV/c]
std::map< UInt_t, std::pair< UInt_t, UInt_t > > fLimits
for each array for a given particle
vector< Int_t > * fProcessI
process that produced the particle
const vector< const TLorentzVector * > * SimPosEnter(const UInt_t &iparticle) const override
particle 4-position at entry point, all regions
vector< Int_t > * fRegions
region IDs
TBranch * b_ParentTrackId
const Int_t ProcessF(const UInt_t &iparticle) const override
code for process that killed this one
const UInt_t NRegions(const UInt_t &iparticle) const override
number of regions traversed by particle
const int ParentTrackID(const UInt_t &iparticle) const override
G4 track ID of parent particle.
vector< UInt_t > * fNRegions
number of regions of interest cross by the particle
vector< UInt_t > * fNPts
number of 4-vector "snapshots" (G4 steps)
TBranch * b_ProgenitorPdg
const int TrackID(const UInt_t &iparticle) const override
G4 track ID (can be <0 if it fell below trking threshold)
const UInt_t NSubEntries() const
const int ProgenitorPDG(const UInt_t &iparticle) const override
PDG of primary that led this one.
const vector< const TLorentzVector * > * SimMomExit(const UInt_t &iparticle) const override
particle 4-momentum at exit point, all regions
const int ParentPDG(const UInt_t &iparticle) const override
parent particle's PDG code
const vector< const TLorentzVector * > * SimMomEnter(const UInt_t &iparticle) const override
particle 4-momentum at entry point, all regions
const Int_t Region(const UInt_t &iparticle, const UInt_t &iregion) const override
region number
vector< Float_t > * fE
particle's total energy in lab frame [GeV]
vector< Float_t > * fT
particle's time in lab frame [ns]
const Int_t PDG(const UInt_t &iparticle) const override
particle PDG code
vector< Int_t > * fProgenitorPdg
FS particle from gen stage that led to this one.
vector< Int_t > * fParentTrackId
particle's parent's trackID
const vector< const TLorentzVector * > * SimPosExit(const UInt_t &iparticle) const override
particle 4-position at exit point, all regions
UInt_t fNSim
number of G4 particles per event
vector< Float_t > * fY
particle's y-position in lab frame [cm]
vector< Float_t > * fZ
particle's z-position in lab frame [cm]
vector< Float_t > * fPz
particle's z-momentum in lab frame [GeV/c]
void GetEntry(const UInt_t &ientry) override
const int ProgenitorTrackID(const UInt_t &iparticle) const override
G4 track ID of primary that led this one.
vector< Int_t > * fProcessF
process that killed the particle
std::map< UInt_t, UInt_t > fLocalToGlobalIndex
vector< Int_t > * fProgenitorTrackId
FS particle from gen stage that led to this one.
const UInt_t NPoints(const UInt_t &iparticle) const override
number of G4 steps (i.e. trajectory points)
vector< Int_t > * fPDG
particle's PDG code
const bool IsPrimary(const UInt_t &iparticle) const override
did particle come from generator?
vector< Float_t > * fPx
particle's x-momentum in lab frame [GeV/c]
vector< Float_t > * fX
particle's x-position in lab frame [cm]
bool SetBranchAddresses() override