GENIEGenerator
Loading...
Searching...
No Matches
Intranuke.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::Intranuke
5
6\brief The INTRANUKE intranuclear hadron transport MC.
7 Is a concrete implementation of the EventRecordVisitorI interface.
8
9\ref R.Merenyi et al., Phys.Rev.D45 (1992)
10 R.D.Ransome, Nucl.Phys.B 139 (2005)
11
12 Current INTRANUKE development is led by S.Dytman and H.Gallagher.
13 The original INTRANUKE cascade MC was developed (in fortran) for the
14 NeuGEN MC by R.Edgecock, G.F.Pearce, W.A.Mann, R.Merenyi and others.
15
16\author Steve Dytman <dytman+@pitt.edu>, Pittsburgh University
17 Aaron Meyer <asm58@pitt.edu>, Pittsburgh University
18 Alex Bell, Pittsburgh University
19 Hugh Gallagher <gallag@minos.phy.tufts.edu>, Tufts University
20 Costas Andreopoulos <c.andreopoulos \at cern.ch> STFC, Rutherford Lab
21
22\created September 20, 2005
23
24\cpright Copyright (c) 2003-2025, The GENIE Collaboration
25 For the full text of the license visit http://copyright.genie-mc.org
26
27*/
28//____________________________________________________________________________
29
30#ifndef _INTRANUKE_H_
31#define _INTRANUKE_H_
32
33#include <TGenPhaseSpace.h>
34
36
42
43class TLorentzVector;
44class TVector3;
45
46namespace genie {
47
48class GHepParticle;
49class INukeHadroData;
50class PDGCodeList;
51class HNIntranuke;
52class HAIntranuke;
53
55
56friend class IntranukeTester;
57
58public :
59 Intranuke();
60 Intranuke(string name);
61 Intranuke(string name, string config);
62 ~Intranuke();
63
64 // implement the EventRecordVisitorI interface
65 virtual void ProcessEventRecord(GHepRecord * event_rec) const;
66
67 // override the Algorithm::Configure methods to load configuration
68 // data to protected data members
69 void Configure (const Registry & config);
70 void Configure (string param_set);
71
72protected:
73
74 // methods for loading configuration
75 virtual void LoadConfig (void)=0;
76
77 // general methods for the cascade mc structure
78 void TransportHadrons (GHepRecord * ev) const;
79 void GenerateVertex (GHepRecord * ev) const;
80 bool NeedsRescattering (const GHepParticle* p) const;
81 bool CanRescatter (const GHepParticle* p) const;
82 bool IsInNucleus (const GHepParticle* p) const;
83 void SetTrackingRadius (const GHepParticle* p) const;
84 double GenerateStep (GHepRecord* ev, GHepParticle* p) const;
85
86 // virtual functions for individual modes
87 virtual void SimulateHadronicFinalState(GHepRecord* ev, GHepParticle* p) const = 0;
88 virtual bool HandleCompoundNucleus(GHepRecord* ev, GHepParticle* p, int mom) const = 0;
89
90 // utility objects & params
91 mutable double fTrackingRadius;///< tracking radius for the nucleus in the current event
92 mutable TGenPhaseSpace fGenPhaseSpace; ///< a phase space generator
93 INukeHadroData * fHadroData; ///< a collection of h+N,h+A data & calculations
94 AlgFactory * fAlgf; ///< algorithm factory instance
95 const NuclearModelI * fNuclmodel; ///< nuclear model used to generate fermi momentum
96 mutable int fRemnA; ///< remnant nucleus A
97 mutable int fRemnZ; ///< remnant nucleus Z
98 mutable TLorentzVector fRemnP4; ///< P4 of remnant system
99 mutable GEvGenMode_t fGMode; ///< event generation mode (lepton+A, hadron+A, ...)
100
101 // configuration parameters
102 double fR0; ///< effective nuclear size param
103 double fNR; ///< param multiplying the nuclear radius, determining how far to track hadrons beyond the "nuclear boundary"
104 double fNucRmvE; ///< binding energy to subtract from cascade nucleons
105 double fDelRPion; ///< factor by which Pion Compton wavelength gets multiplied to become nuclear size enhancement
106 double fDelRNucleon; ///< factor by which Nucleon Compton wavelength gets multiplied to become nuclear size enhancement
107 double fHadStep; ///< step size for intranuclear hadron transport
108 double fNucAbsFac; ///< absorption xsec correction factor (hN Mode)
109 double fNucCEXFac; ///< charge exchange xsec correction factor (hN Mode)
110 double fEPreEq; ///< threshold for pre-equilibrium reaction
111 double fFermiFac; ///< testing parameter to modify fermi momentum
112 double fFermiMomentum; ///< whether or not particle collision is pauli blocked
113 bool fDoFermi; ///< whether or not to do fermi mom.
114 bool fDoMassDiff; ///< whether or not to do mass diff. mode
115 bool fDoCompoundNucleus; ///< whether or not to do compound nucleus considerations
116
117 double fChPionMFPScale; ///< tweaking factors for tuning
130
131};
132
133} // genie namespace
134
135#endif // _INTRANUKE_H_
The GENIE Algorithm Factory.
Definition AlgFactory.h:39
STDHEP-like event record entry that can fit a particle or a nucleus.
GENIE's GHEP MC event record.
Definition GHepRecord.h:45
Singleton class to load & serve hadron x-section splines used by GENIE's version of the INTRANUKE cas...
double fR0
effective nuclear size param
Definition Intranuke.h:102
bool fDoCompoundNucleus
whether or not to do compound nucleus considerations
Definition Intranuke.h:115
double fPionFracPiProdScale
Definition Intranuke.h:123
virtual bool HandleCompoundNucleus(GHepRecord *ev, GHepParticle *p, int mom) const =0
AlgFactory * fAlgf
algorithm factory instance
Definition Intranuke.h:94
int fRemnZ
remnant nucleus Z
Definition Intranuke.h:97
void Configure(const Registry &config)
void GenerateVertex(GHepRecord *ev) const
double fPionFracCExScale
Definition Intranuke.h:119
const NuclearModelI * fNuclmodel
nuclear model used to generate fermi momentum
Definition Intranuke.h:95
double fHadStep
step size for intranuclear hadron transport
Definition Intranuke.h:107
virtual void ProcessEventRecord(GHepRecord *event_rec) const
double fNucleonFracInelScale
Definition Intranuke.h:127
double fNucleonFracElasScale
Definition Intranuke.h:126
double fNucAbsFac
absorption xsec correction factor (hN Mode)
Definition Intranuke.h:108
double fTrackingRadius
tracking radius for the nucleus in the current event
Definition Intranuke.h:91
void SetTrackingRadius(const GHepParticle *p) const
double fFermiMomentum
whether or not particle collision is pauli blocked
Definition Intranuke.h:112
double fPionFracInelScale
Definition Intranuke.h:121
double fNucleonFracAbsScale
Definition Intranuke.h:128
double fChPionMFPScale
tweaking factors for tuning
Definition Intranuke.h:117
double fNucleonFracPiProdScale
Definition Intranuke.h:129
bool fDoFermi
whether or not to do fermi mom.
Definition Intranuke.h:113
int fRemnA
remnant nucleus A
Definition Intranuke.h:96
virtual void SimulateHadronicFinalState(GHepRecord *ev, GHepParticle *p) const =0
TGenPhaseSpace fGenPhaseSpace
a phase space generator
Definition Intranuke.h:92
TLorentzVector fRemnP4
P4 of remnant system.
Definition Intranuke.h:98
double fPionFracAbsScale
Definition Intranuke.h:122
double fDelRPion
factor by which Pion Compton wavelength gets multiplied to become nuclear size enhancement
Definition Intranuke.h:105
double fNucleonMFPScale
Definition Intranuke.h:124
double fPionFracElasScale
Definition Intranuke.h:120
void TransportHadrons(GHepRecord *ev) const
double fEPreEq
threshold for pre-equilibrium reaction
Definition Intranuke.h:110
friend class IntranukeTester
Definition Intranuke.h:56
double fNucleonFracCExScale
Definition Intranuke.h:125
double fNR
param multiplying the nuclear radius, determining how far to track hadrons beyond the "nuclear bounda...
Definition Intranuke.h:103
virtual void LoadConfig(void)=0
double fNeutralPionMFPScale
Definition Intranuke.h:118
bool fDoMassDiff
whether or not to do mass diff. mode
Definition Intranuke.h:114
bool IsInNucleus(const GHepParticle *p) const
double fNucRmvE
binding energy to subtract from cascade nucleons
Definition Intranuke.h:104
bool NeedsRescattering(const GHepParticle *p) const
GEvGenMode_t fGMode
event generation mode (lepton+A, hadron+A, ...)
Definition Intranuke.h:99
INukeHadroData * fHadroData
a collection of h+N,h+A data & calculations
Definition Intranuke.h:93
double fNucCEXFac
charge exchange xsec correction factor (hN Mode)
Definition Intranuke.h:109
double GenerateStep(GHepRecord *ev, GHepParticle *p) const
double fDelRNucleon
factor by which Nucleon Compton wavelength gets multiplied to become nuclear size enhancement
Definition Intranuke.h:106
double fFermiFac
testing parameter to modify fermi momentum
Definition Intranuke.h:111
bool CanRescatter(const GHepParticle *p) const
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
A list of PDG codes.
Definition PDGCodeList.h:32
A registry. Provides the container for algorithm configuration parameters.
Definition Registry.h:65
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
enum genie::EGEvGenMode GEvGenMode_t