46 std::cerr <<
"WARNING(MillGenTree::MillTrees): " 47 <<
"trying to mill trees that have not been verified" 71 for(
size_t igen=0; igen<
fGenIn->
NGen(); igen++){
77 fNFS->push_back(particles->size());
78 std::cout <<
"MillGenTree: igen->" << igen <<
" NFSP->" 107 std::cout <<
"got ObjArray of branches from fTreeIn" <<
std::endl;
109 if(!branches || branches->GetEntries()==0 )
112 catch(TObjArray* branches){
113 std::cerr <<
"ERROR(MillGenTree::VerifyBranches): no branches found in passed input tree" 119 std::cout <<
"WARNING(MillGenTree::VerifyBranches): Mismatch in number of branches (expected " 120 <<
nameToGenBranch.size() <<
" but found " << branches->GetEntriesFast()
123 std::cout <<
"found genTree with " << branches->GetEntriesFast() <<
" branches" <<
std::endl;
126 TIter next(branches);
127 TBranch* branch =
nullptr;
128 while( (branch=(TBranch*)next())) {
133 std::cout <<
" chopping branch '" << branch->GetFullName() <<
"'" <<
std::endl;
150 std::cout <<
"WARNING(MillGenTree): ignoring unknown branch '" 151 << branch->GetFullName() <<
"'" <<
std::endl;
200 fGW->push_back(truth->
fgW);
201 fGT->push_back(truth->
fgT);
202 fGX->push_back(truth->
fgX);
203 fGY->push_back(truth->
fgY);
293 for(
auto const& fsp : *fsps ) {
295 fFSPdg->push_back(fsp.PDG());
299 fFST->push_back(fsp.T());
303 fFSE->push_back(fsp.E());
311 v->push_back(DBL_MAX);
315 v->push_back(INT_MAX);
bool fIsCharm
did the interaction produce a charmed hadron?
vector< double > * fFShadSystPz
vector< double > * fHitNucPy
const std::vector< Int_t > * GetGIndex() const
whether or not subentry is GENIE interaction, index of GENIE interaction
std::map< GenBranch, bool > branchToDrawOpt
vector< int > * fNumPiPlus
const GTruth * GetGTruth(const UInt_t &igen) const
StructuredGenTree * fGenIn
void MillTrees() override
vector< double > * fFSleptonPz
int fNumPiMinus
number of pi minuses after reaction, before FSI
bool VerifyBranches() override
const vector< Int_t > * fGIndex
double fweight
event interaction weight (genie internal)
vector< double > * fFSleptonPx
vector< Float_t > * fFSPosY
y-coordinate [cm]
vector< double > * fTgtPx
int fNumProton
number of protons after reaction, before FSI
vector< double > * fProbability
vector< double > * fHitNucPx
TTree * fTreeIn
pointer to the analyzed TTree or TChain
int fGscatter
neutrino scattering code
vector< bool > * fIsStrange
TLorentzVector fFSleptonP4
generated final state primary lepton (LAB frame) // added version 13
vector< double > * fFSleptonE
vector< Float_t > * fFST
time [ns]
vector< double > * fFShadSystE
int fNumNeutron
number of neutrons after reaction, before FSI
int fResNum
resonance number
vector< double > * fProbePz
void FillFSParticle(const vector< FSParticle > *fsp)
vector< double > * fTgtPy
vector< Float_t > * fFSMomZ
momentum, z-component [GeV/c]
vector< double > * fDiffXsec
vector< int > * fDecayMode
const vector< FSParticle > * GetParticles(const UInt_t &igen) const
vector< int > * fGscatter
std::map< std::string, GenBranch > nameToGenBranch
double fprobability
interaction probability
vector< Float_t > * fFSMomY
momentum, y-component [GeV/c]
vector< int > * fGPhaseSpace
std::string CharStarToString(const char *cstr)
int ftgtPDG
PDG of Target Nucleus, nucleon only if free.
vector< UInt_t > * fNFS
number of FSParticles for igen^th GTruth len=NGen
double fXsec
cross section of interaction
vector< bool > * fIsCharm
vector< Float_t > * fFSMomX
momentum, x-component [GeV/c]
vector< double > * fFSleptonPy
int fNumPi0
number of pi0 after reaction, before FSI
vector< double > * fNuX
GTruth (one or more per genTree entry) //.
vector< int > * fHitQrkPDG
int fGPhaseSpace
phase space system of DiffXSec
vector< int > * fHitNucPDG
vector< Float_t > * fFSPosX
x-coordinate [cm]
double fDiffXsec
differential cross section of interaction
vector< double > * fTgtPz
vector< int > * fStrangeHadronPDG
int fNumPiPlus
number of pi pluses after reaction, before FSI
vector< double > * fFShadSystPx
vector< int > * fNumProton
vector< int > * fNumPiMinus
bool SetBranchAddresses() override
vector< bool > * fIsSeaQuark
vector< double > * fProbePx
int fHitNucPDG
hit nucleon PDG code
vector< int > * fProbePDG
const TObjArray * GetBranchList() const
int fGint
interaction code
vector< UInt_t > * fFSPdg
particle PDG code
vector< int > * fNumNeutron
vector< double > * fProbePy
int fHitQrkPDG
hit quark PDG code
bool fIsStrange
strange production // added version 13
vector< Float_t > * fFSPosZ
z-coordinate [cm]
virtual void GetEntry(const UInt_t &ientry)
void FillGTruth(const GTruth *truth)
TLorentzVector fFShadSystP4
generated final state hadronic system (LAB frame)
vector< Float_t > * fFSE
total energy [GeV]
vector< double > * fHitNucPos
vector< double > * fFShadSystPy
double fgQ2
< these are for the internal (on shell) genie kinematics
vector< double > * fWeight
vector< double > * fHitNucE
QTextStream & endl(QTextStream &s)
vector< double > * fHitNucPz
const UInt_t NGen() const override
vector< double > * fProbeE
vector< int > * fCharmHadronPDG