16 #include "TLorentzVector.h" 22 #include "EVGCore/EventRecord.h" 25 #include "ReWeight/GReWeightI.h" 26 #include "ReWeight/GSystSet.h" 27 #include "ReWeight/GSyst.h" 28 #include "ReWeight/GReWeight.h" 29 #include "ReWeight/GReWeightNuXSecNCEL.h" 30 #include "ReWeight/GReWeightNuXSecCCQE.h" 31 #include "ReWeight/GReWeightNuXSecCCRES.h" 32 #include "ReWeight/GReWeightNuXSecCOH.h" 33 #include "ReWeight/GReWeightNonResonanceBkg.h" 34 #include "ReWeight/GReWeightFGM.h" 35 #include "ReWeight/GReWeightDISNuclMod.h" 36 #include "ReWeight/GReWeightResonanceDecay.h" 37 #include "ReWeight/GReWeightFZone.h" 38 #include "ReWeight/GReWeightINuke.h" 39 #include "ReWeight/GReWeightAGKY.h" 40 #include "ReWeight/GReWeightNuXSecCCQEvec.h" 41 #include "ReWeight/GReWeightNuXSecNCRES.h" 42 #include "ReWeight/GReWeightNuXSecDIS.h" 43 #include "ReWeight/GReWeightNuXSecNC.h" 44 #include "ReWeight/GSystUncertainty.h" 45 #include "ReWeight/GReWeightUtils.h" 59 #include "PDG/PDGCodeList.h" 64 #include "GENIE/Framework/Messenger/Messenger.h" 65 #include "GENIE/Framework/Conventions/Units.h" 66 #include "GENIE/Framework/Conventions/Constants.h" 67 #include "GENIE/Framework/GHEP/GHepUtils.h" 68 #include "GENIE/Framework/EventGen/EventRecord.h" 82 #include "GENIE/Framework/GHEP/GHepParticle.h" 84 #include "RwFramework/GReWeightI.h" 85 #include "RwFramework/GSystSet.h" 86 #include "RwFramework/GSyst.h" 87 #include "RwFramework/GReWeight.h" 88 #include "RwFramework/GSystUncertainty.h" 89 #include "RwCalculators/GReWeightNuXSecNCEL.h" 90 #include "RwCalculators/GReWeightNuXSecCCQE.h" 91 #include "RwCalculators/GReWeightNuXSecCCRES.h" 92 #include "RwCalculators/GReWeightNuXSecCOH.h" 93 #include "RwCalculators/GReWeightNonResonanceBkg.h" 94 #include "RwCalculators/GReWeightFGM.h" 95 #include "RwCalculators/GReWeightDISNuclMod.h" 96 #include "RwCalculators/GReWeightResonanceDecay.h" 97 #include "RwCalculators/GReWeightFZone.h" 98 #include "RwCalculators/GReWeightINuke.h" 99 #include "RwCalculators/GReWeightAGKY.h" 100 #include "RwCalculators/GReWeightNuXSecCCQEvec.h" 101 #include "RwCalculators/GReWeightNuXSecNCRES.h" 102 #include "RwCalculators/GReWeightNuXSecDIS.h" 103 #include "RwCalculators/GReWeightNuXSecNC.h" 104 #include "RwCalculators/GReWeightUtils.h" 113 #include "nutools/NuReweight/art/NuReweight.h" 144 TLorentzVector vtx = gtruth.
fVertex;
152 int gmmo = mcpart.
Mother();
159 if(ndaughters == 1) {
162 else if(ndaughters >1) {
163 fdtrkid = mcpart.
Daughter(ndaughters-1);
172 if(temp.
TrackId() == fdtrkid) {
175 if(temp.
TrackId() == ldtrkid) {
180 double gmpx = mcpart.
Px(0);
181 double gmpy = mcpart.
Py(0);
182 double gmpz = mcpart.
Pz(0);
183 double gme = mcpart.
E(0);
184 double gmvx = mcpart.
Gvx();
185 double gmvy = mcpart.
Gvy();
186 double gmvz = mcpart.
Gvz();
187 double gmvt = mcpart.
Gvt();
190 genie::GHepParticle gpart(gmid, gmst, gmmo, -1, gmfd, gmld, gmpx, gmpy, gmpz, gme, gmvx, gmvy, gmvz, gmvt);
193 if(polz.x() !=0 || polz.y() !=0 || polz.z() !=0) {
204 proc_info.
Set(gscty,ginty);
246 int targetNucleon = nu.
HitNuc();
257 std::unique_ptr<TLorentzVector> p4hitnucleon(hitnucleon->
GetP4());
261 TLorentzVector
dummy(0.,0.,0.,0.);
266 std::unique_ptr<TLorentzVector> p4probe(probe->
GetP4());
270 std::unique_ptr<TLorentzVector> p4target(target->
GetP4());
273 TLorentzVector
dummy(0.,0.,0.,0.);
double E(const int i=0) const
int fGint
interaction code
const TVector3 & Polarization() const
void SetTgtP4(const TLorentzVector &P4)
virtual void SetXSec(double xsec)
void SetNPions(int npi_plus, int npi_0, int npi_minus)
virtual void SetWeight(double wght)
const simb::MCNeutrino & GetNeutrino() const
double Py(const int i=0) const
void SetProbeP4(const TLorentzVector &P4)
void SetQ2(double Q2, bool selected=false)
void Setq2(double q2, bool selected=false)
enum genie::EGHepStatus GHepStatus_t
virtual void SetProbability(double prob)
int fGPhaseSpace
phase space system of DiffXSec
double Px(const int i=0) const
int fNumNeutron
number of neutrons after reaction, before FSI
void SetHitNucP4(const TLorentzVector &p4)
Generated/set kinematical variables for an event.
double CalculateWeight(const genie::EventRecord &evr) const
void SetHitQrkPdg(int pdgc)
virtual int HitNucleonPosition(void) const
double fXsec
cross section of interaction
void SetHitNucPosition(double r)
int fNumPiPlus
number of pi pluses after reaction, before FSI
int fNumPiMinus
number of pi minuses after reaction, before FSI
void SetKine(const Kinematics &kine)
void SetPolarization(double theta, double phi)
enum genie::EKinePhaseSpace KinePhaseSpace_t
enum genie::EResonance Resonance_t
void SetResonance(Resonance_t res)
void Set(ScatteringType_t sc_type, InteractionType_t int_type)
bool fIsStrange
strange production // added version 13
int NumberDaughters() const
virtual void AttachSummary(Interaction *interaction)
Contains minimal information for tagging exclusive processes.
int Daughter(const int i) const
void SetCharm(int charm_pdgc=0)
virtual GHepParticle * Probe(void) const
int fResNum
resonance number
Summary information for an interaction.
int fNumProton
number of protons after reaction, before FSI
double fprobability
interaction probability
const simb::MCParticle & Lepton() const
void SetFSLeptonP4(const TLorentzVector &p4)
int fGscatter
neutrino scattering code
void SetStrange(int strange_pdgc=0)
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
void SetRescatterCode(int code)
int fNumPi0
number of pi0 after reaction, before FSI
TLorentzVector * GetP4(void) const
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
void Sett(double t, bool selected=false)
bool fIsCharm
did the interaction produce a charmed hadron?
double fweight
event interaction weight (genie internal)
virtual GHepParticle * TargetNucleus(void) const
void SetPdgs(int tgt_pdgc, int probe_pdgc)
void SetDecayMode(int decay_mode)
const simb::MCParticle & GetParticle(int i) const
Generated Event Record. It is a GHepRecord object that can accept / be visited by EventRecordVisitorI...
void Setx(double x, bool selected=false)
void SetExclTag(const XclsTag &xcls)
void SetW(double W, bool selected=false)
void SetNNucleons(int np, int nn)
enum genie::EScatteringType ScatteringType_t
int ftgtPDG
PDG of Target Nucleus, nucleon only if free.
void SetHitNucPdg(int pdgc)
void Sety(double y, bool selected=false)
virtual GHepParticle * HitNucleon(void) const
Target * TgtPtr(void) const
virtual void SetVertex(double x, double y, double z, double t)
TLorentzVector fFShadSystP4
generated final state hadronic system (LAB frame)
double Pz(const int i=0) const
genie::EventRecord RetrieveGHEP(const simb::MCTruth &truth, const simb::GTruth >ruth) const
void SetHadSystP4(const TLorentzVector &p4)
cet::LibraryManager dummy("noplugin")
InitialState * InitStatePtr(void) const
virtual void AddParticle(const GHepParticle &p)
Event generator information.
void SetHitSeaQrk(bool tf)
Event generator information.
double CalcWeight(const simb::MCTruth &truth, const simb::GTruth >ruth) const
enum genie::EInteractionType InteractionType_t
STDHEP-like event record entry that can fit a particle or a nucleus.
double fDiffXsec
differential cross section of interaction
void SetProcInfo(const ProcessInfo &proc)
virtual int TargetNucleusPosition(void) const
virtual void SetDiffXSec(double xsec, KinePhaseSpace_t ps)
Initial State information.