24 #ifndef _INTERACTION_H_
25 #define _INTERACTION_H_
97 void Print (ostream & stream)
const;
105 static Interaction *
DISCC (
int tgt,
int nuc,
int qrk,
bool sea,
int probe,
double E=0);
106 static Interaction *
DISCC (
int tgt,
int nuc,
int qrk,
bool sea,
int fqrk,
int probe,
double E=0);
107 static Interaction *
DISCC (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
108 static Interaction *
DISCC (
int tgt,
int nuc,
int qrk,
bool sea,
int probe,
const TLorentzVector & p4probe);
110 static Interaction *
DISNC (
int tgt,
int nuc,
int qrk,
bool sea,
int probe,
double E=0);
111 static Interaction *
DISNC (
int tgt,
int nuc,
int qrk,
bool sea,
int fqrk,
int probe,
double E=0);
112 static Interaction *
DISNC (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
113 static Interaction *
DISNC (
int tgt,
int nuc,
int qrk,
bool sea,
int probe,
const TLorentzVector & p4probe);
115 static Interaction *
DISEM (
int tgt,
int nuc,
int qrk,
bool sea,
int probe,
double E=0);
116 static Interaction *
DISEM (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
117 static Interaction *
DISEM (
int tgt,
int nuc,
int qrk,
bool sea,
int probe,
const TLorentzVector & p4probe);
119 static Interaction *
QELCC (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
121 static Interaction *
QELNC (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
123 static Interaction *
QELEM (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
124 static Interaction *
IBD (
int tgt,
int nuc,
int probe,
double E=0);
125 static Interaction *
IBD (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
127 static Interaction *
RESCC (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
129 static Interaction *
RESNC (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
131 static Interaction *
RESEM (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
133 static Interaction *
DFRCC (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
134 static Interaction *
COHCC (
int tgt,
int probe,
unsigned int prod_pdg,
double E=0);
136 const TLorentzVector & p4probe);
137 static Interaction *
COHNC (
int tgt,
int probe,
unsigned int prod_pdg,
double E=0);
139 const TLorentzVector & p4probe);
141 static Interaction *
CEvNS (
int tgt,
int probe,
const TLorentzVector & p4probe);
143 static Interaction *
IMD (
int tgt,
const TLorentzVector & p4probe);
146 static Interaction *
MECCC (
int tgt,
int nuccluster,
int probe,
double E=0);
147 static Interaction *
MECCC (
int tgt,
int nuccluster,
int probe,
const TLorentzVector & p4probe);
149 static Interaction *
MECCC (
int tgt,
int probe,
const TLorentzVector & p4probe);
150 static Interaction *
MECNC (
int tgt,
int nuccluster,
int probe,
double E=0);
151 static Interaction *
MECNC (
int tgt,
int nuccluster,
int probe,
const TLorentzVector & p4probe);
152 static Interaction *
MECEM (
int tgt,
int nuccluster,
int probe,
double E=0);
154 static Interaction *
MECEM (
int tgt,
int nuccluster,
int probe,
const TLorentzVector & p4probe);
156 static Interaction *
GLR (
int tgt,
const TLorentzVector & p4probe);
157 static Interaction *
NDecay (
int tgt,
int decay_mode=-1,
int decayed_nucleon = 0);
160 static Interaction *
ASK (
int tgt,
int probe,
const TLorentzVector & p4probe);
161 static Interaction *
DME (
int tgt,
int nuc,
int probe,
double E=0);
162 static Interaction *
DME (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
164 static Interaction *
DMDI (
int tgt,
int nuc,
int qrk,
bool sea,
int probe,
double E=0);
165 static Interaction *
DMDI (
int tgt,
int nuc,
int probe,
const TLorentzVector & p4probe);
166 static Interaction *
DMDI (
int tgt,
int nuc,
int qrk,
bool sea,
int probe,
const TLorentzVector & p4probe);
167 static Interaction *
HNL (
int probe,
double E=0,
int decayed_mode=-1);
190 #endif // _INTERACTION_H_
const KPhaseSpace & PhaseSpace(void) const
static Interaction * IMD(int tgt, double E=0)
static Interaction * DME(int tgt, int nuc, int probe, double E=0)
ProcessInfo * ProcInfoPtr(void) const
static Interaction * GLR(int tgt, double E=0)
Kinematics * KinePtr(void) const
TParticlePDG * RecoilNucleon(void) const
recoil nucleon
int RecoilNucleonPdg(void) const
recoil nucleon pdg
InitialState * fInitialState
Initial State info.
static Interaction * CEvNS(int tgt, int probe, double E=0)
Generated/set kinematical variables for an event.
static Interaction * IBD(int tgt, int nuc, int probe, double E=0)
static Interaction * NDecay(int tgt, int decay_mode=-1, int decayed_nucleon=0)
void SetKine(const Kinematics &kine)
XclsTag * fExclusiveTag
Additional info for exclusive channels.
static Interaction * QELCC(int tgt, int nuc, int probe, double E=0)
static Interaction * MECNC(int tgt, int nuccluster, int probe, double E=0)
string AsString(void) const
friend ostream & operator<<(ostream &stream, const Interaction &i)
print
static Interaction * RESNC(int tgt, int nuc, int probe, double E=0)
static Interaction * COHCC(int tgt, int probe, unsigned int prod_pdg, double E=0)
Contains minimal information for tagging exclusive processes.
int FSPrimLeptonPdg(void) const
final state primary lepton pdg
KPhaseSpace * PhaseSpacePtr(void) const
Summary information for an interaction.
static Interaction * DMDI(int tgt, int nuc, int probe, double E=0)
static Interaction * RESEM(int tgt, int nuc, int probe, double E=0)
const UInt_t kINoNuclearCorrection
if set, inhibit nuclear corrections
static Interaction * MECEM(int tgt, int nuccluster, int probe, double E=0)
static Interaction * QELNC(int tgt, int nuc, int probe, double E=0)
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
const Kinematics & Kine(void) const
void Copy(const Interaction &i)
const UInt_t kISkipKinematicChk
if set, skip kinematic validity checks
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
XclsTag * ExclTagPtr(void) const
void SetExclTag(const XclsTag &xcls)
Kinematics * fKinematics
kinematical variables
static Interaction * ASK(int tgt, int probe, double E=0)
void Print(ostream &stream) const
static Interaction * QELEM(int tgt, int nuc, int probe, double E=0)
enum genie::EScatteringType ScatteringType_t
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)
const UInt_t kIAssumeFreeNucleon
const XclsTag & ExclTag(void) const
static Interaction * DISCC(int tgt, int nuc, int probe, double E=0)
static Interaction * DFRCC(int tgt, int nuc, int probe, double E=0)
InitialState * InitStatePtr(void) const
const InitialState & InitState(void) const
const ProcessInfo & ProcInfo(void) const
Interaction & operator=(const Interaction &i)
copy
ProcessInfo * fProcInfo
Process info (scattering, weak current,...)
static Interaction * RESCC(int tgt, int nuc, int probe, double E=0)
static Interaction * MECCC(int tgt, int nuccluster, int probe, double E=0)
static Interaction * COHNC(int tgt, int probe, unsigned int prod_pdg, double E=0)
static Interaction * DISEM(int tgt, int nuc, int probe, double E=0)
static Interaction * Create(int tgt, int probe, ScatteringType_t st, InteractionType_t it)
enum genie::EInteractionType InteractionType_t
void SetInitState(const InitialState &init)
static Interaction * AMNuGamma(int tgt, int nuc, int probe, double E=0)
void SetProcInfo(const ProcessInfo &proc)
KPhaseSpace * fKinePhSp
Kinematic phase space.
const UInt_t kISkipProcessChk
if set, skip process validity checks
static Interaction * NOsc(int tgt, int annihilation_mode=-1)
static Interaction * DISNC(int tgt, int nuc, int probe, double E=0)
Initial State information.
static Interaction * HNL(int probe, double E=0, int decayed_mode=-1)
const UInt_t kIAssumeFreeElectron