11 #include <TLorentzVector.h>
23 using namespace genie;
48 LOG(
"ISApp",
pINFO) <<
"Adding the initial state to the event record";
72 const TLorentzVector v4(0.,0.,0.,0.);
76 LOG(
"ISApp",
pINFO) <<
"Adding neutrino [pdgc = " << pdgc <<
"]";
92 <<
"Not an interaction with a nuclear target - no nucleus to add";
95 int A = init_state.
Tgt().
A();
96 int Z = init_state.
Tgt().
Z();
101 <<
"Adding nucleus [A = " << A <<
", Z = " << Z
102 <<
", pdg = " << pdgc <<
"]";
104 evrec->
AddParticle(pdgc,
kIStInitialState,-1,-1,-1,-1, 0,0,0,M, 0,0,0,0);
123 const TLorentzVector p4(0,0,0, mass);
124 const TLorentzVector v4(0.,0.,0.,0.);
126 LOG(
"ISApp",
pINFO) <<
"Adding struck electron";
138 int imom1 = (is_nucleus) ? 1 : -1;
141 const TLorentzVector p4(init_state.
Tgt().
HitNucP4());
142 const TLorentzVector v4(0.,0.,0.,0.);
144 LOG(
"ISApp",
pINFO)<<
"Adding struck nucleon [pdgc = " << pdgc <<
"]";
146 evrec->
AddParticle(pdgc, ist, imom1, imom2, -1, -1, p4, v4);
void AddNeutrino(GHepRecord *event_rec) const
void ProcessEventRecord(GHepRecord *event_rec) const
bool IsDarkMatterElectronElastic(void) const
virtual Interaction * Summary(void) const
int HitNucPdg(void) const
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the 'Visito...
bool IsInverseMuDecay(void) const
bool IsNucleus(void) const
bool IsIMDAnnihilation(void) const
void AddNucleus(GHepRecord *event_rec) const
Summary information for an interaction.
const TLorentzVector & HitNucP4(void) const
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
void AddStruckParticle(GHepRecord *event_rec) const
bool IsNuElectronElastic(void) const
static constexpr double A
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
bool IsPhotonCoherent(void) const
static PDGLibrary * Instance(void)
int IonPdgCode(int A, int Z)
virtual void AddParticle(const GHepParticle &p)
const InitialState & InitState(void) const
const ProcessInfo & ProcInfo(void) const
TParticlePDG * Find(int pdgc, bool must_exist=true)
const Target & Tgt(void) const
bool IsGlashowResonance(void) const
GENIE's GHEP MC event record.
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
TLorentzVector * GetProbeP4(RefFrame_t rf=kRfHitNucRest) const
enum genie::EGHepStatus GHepStatus_t
Initial State information.