GENIEGenerator
Loading...
Searching...
No Matches
INukeUtils.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\namespace genie::intranuke
5
6\brief INTRANUKE utilities
7
8\author Jim Dobson <j.dobson07 \at imperial.ac.uk>
9 Imperial College London
10
11 Costas Andreopoulos <c.andreopoulos \at cern.ch>
12 University of Liverpool
13
14 Aaron Meyer <asm58 \at pitt.edu>
15 Pittsburgh University
16
17\created Mar 03, 2009
18
19\cpright Copyright (c) 2003-2025, The GENIE Collaboration
20 For the full text of the license visit http://copyright.genie-mc.org
21
22*/
23//____________________________________________________________________________
24
25#ifndef _INTRANUKE_UTILS_H_
26#define _INTRANUKE_UTILS_H_
27
28#include <TGenPhaseSpace.h>
29
33
34class TLorentzVector;
35
36namespace genie {
37
38class GHepRecord;
39class GHepParticle;
40class PDGCodeList;
41
42namespace utils {
43namespace intranuke
44{
45 //! Hadron survival probability
46 double ProbSurvival(
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);
50
51 //! Mean free path (pions, nucleons)
52 double MeanFreePath(
53 int pdgc, const TLorentzVector & x4, const TLorentzVector & p4, double A,
54 double Z, double nRpi=0.5, double nRnuc=1.0);
55
56 //! Mean free path (Delta++ **test**)
57 double MeanFreePath_Delta(
58 int pdgc, const TLorentzVector & x4, const TLorentzVector & p4, double A);
59
60 //! Distance to exit
61 double Dist2Exit(
62 const TLorentzVector & x4, const TLorentzVector & p4,
63 double A, double NR=3, double R0=1.4);
64
65 //! Distance to exit
66 double Dist2ExitMFP(
67 int pdgc, const TLorentzVector & x4, const TLorentzVector & p4,
68 double A, double Z, double NR=3, double R0=1.4);
69
70 //! Step particle
71 void StepParticle(
72 GHepParticle * p, double step, double nuclear_radius=-1.);
73
74
75 //! Intranuke utility functions
76
78 GHepRecord* ev, int pcode, int tcode, int scode, int s2code, double C3CM, GHepParticle* p,
79 GHepParticle* t, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, EINukeMode mode=kIMdHA);
80
82 double M3, double M4, TLorentzVector tP1L, TLorentzVector tP2L,
83 TLorentzVector &tP3L, TLorentzVector &tP4L, double C3CM, TLorentzVector &RemnP4, double bindE=0);
84
86 GHepRecord* ev, GHepParticle* p, int tcode, GHepParticle* s1, GHepParticle* s2, GHepParticle* s3,
87 bool DoFermi=false, double FermiFac=0, double FermiMomentum=0, const NuclearModelI* Nuclmodel=(const NuclearModelI*)0);
88
89 bool PionProduction(
90 GHepRecord* ev, GHepParticle* p, GHepParticle* s1, GHepParticle* s2, GHepParticle* s3, int &RemnA, int &RemnZ,
91 TLorentzVector &RemnP4,bool DoFermi, double FermiFac, double FermiMomentum, const NuclearModelI* Nuclmodel);
92
93 double CalculateEta(
94 double Minc, double ke, double Mtarg, double Mtwopart, double Mpi);
95
96 void Equilibrium(
97 GHepRecord* ev, GHepParticle* p, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, bool DoFermi,
98 double FermiFac, const NuclearModelI* Nuclmodel, double NucRmvE, EINukeMode mode=kIMdHN);
99
100 void PreEquilibrium(
101 GHepRecord* ev, GHepParticle* p, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, bool DoFermi,
102 double FermiFac, const NuclearModelI* Nuclmodel, double NucRmvE, EINukeMode mode=kIMdHN);
103
104
105 //! general phase space decay method
106 bool PhaseSpaceDecay (
107 GHepRecord* ev, GHepParticle* p, const PDGCodeList & pdgv, TLorentzVector &RemnP4,
108 double NucRmvE, EINukeMode mode=kIMdHA);
109
110} // intranuke namespace
111} // utils namespace
112} // genie namespace
113
114
115#endif // _INTRANUKE_UTILS_H_
STDHEP-like event record entry that can fit a particle or a nucleus.
GENIE's GHEP MC event record.
Definition GHepRecord.h:45
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
A list of PDG codes.
Definition PDGCodeList.h:32
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)
bool TwoBodyKinematics(double M3, double M4, TLorentzVector tP1L, TLorentzVector tP2L, TLorentzVector &tP3L, TLorentzVector &tP4L, double C3CM, TLorentzVector &RemnP4, double bindE=0)
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 PhaseSpaceDecay(GHepRecord *ev, GHepParticle *p, const PDGCodeList &pdgv, TLorentzVector &RemnP4, double NucRmvE, EINukeMode mode=kIMdHA)
general phase space decay method
double Dist2Exit(const TLorentzVector &x4, const TLorentzVector &p4, double A, double NR=3, double R0=1.4)
Distance to exit.
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)
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.
void PreEquilibrium(GHepRecord *ev, GHepParticle *p, int &RemnA, int &RemnZ, TLorentzVector &RemnP4, bool DoFermi, double FermiFac, const NuclearModelI *Nuclmodel, double NucRmvE, EINukeMode mode=kIMdHN)
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)
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.
double CalculateEta(double Minc, double ke, double Mtarg, double Mtwopart, double Mpi)
double Dist2ExitMFP(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A, double Z, double NR=3, double R0=1.4)
Distance to exit.
double MeanFreePath_Delta(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A)
Mean free path (Delta++ test)
Root of GENIE utility namespaces.
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
EINukeMode
Definition INukeMode.h:29
@ kIMdHN
Definition INukeMode.h:32
@ kIMdHA
Definition INukeMode.h:33