25 #ifndef _INTRANUKE_UTILS_H_
26 #define _INTRANUKE_UTILS_H_
28 #include <TGenPhaseSpace.h>
47 int pdgc,
const TLorentzVector & x4,
const TLorentzVector & p4,
double A,
48 double Z,
double mfp_scale_factor=1.0,
49 double nRpi=0.5,
double nRnuc=1.0,
double NR=3,
double R0=1.4);
53 int pdgc,
const TLorentzVector & x4,
const TLorentzVector & p4,
double A,
54 double Z,
double nRpi=0.5,
double nRnuc=1.0);
58 int pdgc,
const TLorentzVector & x4,
const TLorentzVector & p4,
double A);
62 const TLorentzVector & x4,
const TLorentzVector & p4,
63 double A,
double NR=3,
double R0=1.4);
67 int pdgc,
const TLorentzVector & x4,
const TLorentzVector & p4,
68 double A,
double Z,
double NR=3,
double R0=1.4);
72 GHepParticle * p,
double step,
double nuclear_radius=-1.);
82 double M3,
double M4, TLorentzVector tP1L, TLorentzVector tP2L,
83 TLorentzVector &tP3L, TLorentzVector &tP4L,
double C3CM, TLorentzVector &RemnP4,
double bindE=0);
91 TLorentzVector &RemnP4,
bool DoFermi,
double FermiFac,
double FermiMomentum,
const NuclearModelI* Nuclmodel);
94 double Minc,
double ke,
double Mtarg,
double Mtwopart,
double Mpi);
115 #endif // _INTRANUKE_UTILS_H_
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)
double MeanFreePath_Delta(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A)
Mean free path (Delta++ test)
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
double Dist2ExitMFP(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A, double Z, double NR=3, double R0=1.4)
Distance to exit.
static constexpr double A
bool PhaseSpaceDecay(GHepRecord *ev, GHepParticle *p, const PDGCodeList &pdgv, TLorentzVector &RemnP4, double NucRmvE, EINukeMode mode=kIMdHA)
general phase space decay method
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)
double ProbSurvival(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A, double Z, double mfp_scale_factor=1.0, double nRpi=0.5, double nRnuc=1.0, double NR=3, double R0=1.4)
Hadron survival probability.
bool TwoBodyKinematics(double M3, double M4, TLorentzVector tP1L, TLorentzVector tP2L, TLorentzVector &tP3L, TLorentzVector &tP4L, double C3CM, TLorentzVector &RemnP4, double bindE=0)
double MeanFreePath(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A, double Z, double nRpi=0.5, double nRnuc=1.0)
Mean free path (pions, nucleons)
double CalculateEta(double Minc, double ke, double Mtarg, double Mtwopart, double Mpi)
double Dist2Exit(const TLorentzVector &x4, const TLorentzVector &p4, double A, double NR=3, double R0=1.4)
Distance to exit.
void StepParticle(GHepParticle *p, double step, double nuclear_radius=-1.)
Step particle.
void Equilibrium(GHepRecord *ev, GHepParticle *p, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, bool DoFermi, double FermiFac, const NuclearModelI *Nuclmodel, double NucRmvE, EINukeMode mode=kIMdHN)
GENIE's GHEP MC event record.
void PreEquilibrium(GHepRecord *ev, GHepParticle *p, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, bool DoFermi, double FermiFac, const NuclearModelI *Nuclmodel, double NucRmvE, EINukeMode mode=kIMdHN)
STDHEP-like event record entry that can fit a particle or a nucleus.
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.