25 #ifndef _INTRANUKE_UTILS_2018_H_
26 #define _INTRANUKE_UTILS_2018_H_
28 #include <TGenPhaseSpace.h>
45 namespace intranuke2018
49 int pdgc,
const TLorentzVector & x4,
const TLorentzVector & p4,
double A,
50 double Z,
double mfp_scale_factor,
const Intranuke2018& fsi_model );
54 int pdgc,
const TLorentzVector & x4,
const TLorentzVector & p4,
double A,
55 double Z,
double nRpi=0.5,
double nRnuc=1.0,
const bool useOset =
false,
const bool altOset =
false,
const bool xsecNNCorr =
false,
string INukeMode =
"XX2018");
59 int pdgc,
const TLorentzVector & x4,
const TLorentzVector & p4,
double A );
63 const TLorentzVector & x4,
const TLorentzVector & p4,
64 double A,
double NR=3,
double R0=1.4);
68 int pdgc,
const TLorentzVector & x4,
const TLorentzVector & p4,
69 double A,
double Z,
double NR=3,
double R0=1.4);
73 GHepParticle * p,
double step,
double nuclear_radius=-1.);
83 double M3,
double M4, TLorentzVector tP1L, TLorentzVector tP2L,
84 TLorentzVector &tP3L, TLorentzVector &tP4L,
double C3CM, TLorentzVector &RemnP4,
double bindE=0);
92 TLorentzVector &RemnP4,
bool DoFermi,
double FermiFac,
double FermiMomentum,
const NuclearModelI* Nuclmodel);
95 double Minc,
double ke,
double Mtarg,
double Mtwopart,
double Mpi);
113 double sigmaTotalOset (
const double &pionKineticEnergy,
const double &density,
114 const int &pionPDG,
const double &protonFraction,
115 const bool &isTableChosen =
true
123 #endif // _INTRANUKE_UTILS_2018_H_
double MeanFreePath_Delta(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A)
Mean free path (Delta++ test)
void PreEquilibrium(GHepRecord *ev, GHepParticle *p, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, bool DoFermi, double FermiFac, const NuclearModelI *Nuclmodel, double NucRmvE, EINukeMode mode=kIMdHN)
bool PhaseSpaceDecay(GHepRecord *ev, GHepParticle *p, const PDGCodeList &pdgv, TLorentzVector &RemnP4, double NucRmvE, EINukeMode mode=kIMdHA)
general phase space decay method
void StepParticle(GHepParticle *p, double step, double nuclear_radius=-1.)
Step particle.
bool ThreeBodyKinematics(GHepRecord *ev, GHepParticle *p, int tcode, GHepParticle *s1, GHepParticle *s2, GHepParticle *s3, bool DoFermi=false, double FermiFac=0, double FermiMomentum=0, const NuclearModelI *Nuclmodel=(const NuclearModelI *) 0)
bool PionProduction(GHepRecord *ev, GHepParticle *p, GHepParticle *s1, GHepParticle *s2, GHepParticle *s3, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, bool DoFermi, double FermiFac, double FermiMomentum, const NuclearModelI *Nuclmodel)
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
double Dist2Exit(const TLorentzVector &x4, const TLorentzVector &p4, double A, double NR=3, double R0=1.4)
Distance to exit.
static constexpr double A
bool TwoBodyKinematics(double M3, double M4, TLorentzVector tP1L, TLorentzVector tP2L, TLorentzVector &tP3L, TLorentzVector &tP4L, double C3CM, TLorentzVector &RemnP4, double bindE=0)
bool TwoBodyCollision(GHepRecord *ev, int pcode, int tcode, int scode, int s2code, double C3CM, GHepParticle *p, GHepParticle *t, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, EINukeMode mode=kIMdHA)
Intranuke utility functions.
double CalculateEta(double Minc, double ke, double Mtarg, double Mtwopart, double Mpi)
double MeanFreePath(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A, double Z, double nRpi=0.5, double nRnuc=1.0, const bool useOset=false, const bool altOset=false, const bool xsecNNCorr=false, string INukeMode="XX2018")
Mean free path (pions, nucleons)
void Equilibrium(GHepRecord *ev, GHepParticle *p, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, bool DoFermi, double FermiFac, const NuclearModelI *Nuclmodel, double NucRmvE, EINukeMode mode=kIMdHN)
double ProbSurvival(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A, double Z, double mfp_scale_factor, const Intranuke2018 &fsi_model)
Hadron survival probability.
double sigmaTotalOset(const double &pionKineticEnergy, const double &density, const int &pionPDG, const double &protonFraction, const bool &isTableChosen=true)
GENIE's GHEP MC event record.
STDHEP-like event record entry that can fit a particle or a nucleus.
double Dist2ExitMFP(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A, double Z, double NR=3, double R0=1.4)
Distance to exit.