Belle II Software development
IonPhysics Class Reference

Ion hadronic physics constructor for Belle II physics list. More...

#include <IonPhysics.h>

Inheritance diagram for IonPhysics:

Public Member Functions

virtual void ConstructParticle () override
 Build processes, models, cross sections used in physics list.
 
virtual void ConstructProcess () override
 Build all particle types used in physics list (empty in this class)
 

Private Attributes

G4TheoFSGenerator * m_ftfp
 Final state generator for QCD string models.
 
G4FTFModel * m_stringModel
 Fritiof string model.
 
G4ExcitedStringDecay * m_stringDecay
 Model to decay strings into hadrons.
 
G4LundStringFragmentation * m_fragModel
 Lund string fragmentation model.
 
G4GeneratorPrecompoundInterface * m_preCompoundModel
 Precompound model to deexcite post-collision nucleus.
 
G4VComponentCrossSection * m_theGGNuclNuclXS
 Cross section set for inelastic nucleus-nucleus collisions.
 
G4ComponentGGNuclNuclXsc * m_ionGGXS
 Cross section set for elastic nucleus-nucleus collisions.
 

Detailed Description

Ion hadronic physics constructor for Belle II physics list.

Definition at line 33 of file IonPhysics.h.

Constructor & Destructor Documentation

◆ IonPhysics()

Definition at line 35 of file IonPhysics.cc.

36 : m_ftfp(nullptr), m_stringModel(nullptr), m_stringDecay(nullptr),
37 m_fragModel(nullptr), m_preCompoundModel(nullptr)
38{}
G4GeneratorPrecompoundInterface * m_preCompoundModel
Precompound model to deexcite post-collision nucleus.
Definition: IonPhysics.h:58
G4TheoFSGenerator * m_ftfp
Final state generator for QCD string models.
Definition: IonPhysics.h:46
G4FTFModel * m_stringModel
Fritiof string model.
Definition: IonPhysics.h:49
G4ExcitedStringDecay * m_stringDecay
Model to decay strings into hadrons.
Definition: IonPhysics.h:52
G4LundStringFragmentation * m_fragModel
Lund string fragmentation model.
Definition: IonPhysics.h:55

◆ ~IonPhysics()

~IonPhysics ( )

Definition at line 41 of file IonPhysics.cc.

42{
43 delete m_stringDecay;
44 delete m_stringModel;
45 delete m_fragModel;
46 delete m_preCompoundModel;
47
48 delete m_theGGNuclNuclXS;
49 delete m_ionGGXS;
50}
G4VComponentCrossSection * m_theGGNuclNuclXS
Cross section set for inelastic nucleus-nucleus collisions.
Definition: IonPhysics.h:61
G4ComponentGGNuclNuclXsc * m_ionGGXS
Cross section set for elastic nucleus-nucleus collisions.
Definition: IonPhysics.h:64

Member Function Documentation

◆ ConstructParticle()

void ConstructParticle ( )
overridevirtual

Build processes, models, cross sections used in physics list.

Definition at line 53 of file IonPhysics.cc.

54{}

◆ ConstructProcess()

void ConstructProcess ( )
overridevirtual

Build all particle types used in physics list (empty in this class)

Definition at line 57 of file IonPhysics.cc.

58{
59 G4ProcessManager* procMan = 0;
60
61 // Elastic model for generic ions (z > 2)
62 G4NuclNuclDiffuseElastic* ionElastic = new G4NuclNuclDiffuseElastic;
63 ionElastic->SetMinEnergy(0.0);
64
65 // FTFP ==>> eventually replace this with new class FTFPInterface
66 m_ftfp = new G4TheoFSGenerator("FTFP");
67 m_stringModel = new G4FTFModel;
69 new G4ExcitedStringDecay(m_fragModel = new G4LundStringFragmentation);
70 m_stringModel->SetFragmentationModel(m_stringDecay);
71 m_preCompoundModel = new G4GeneratorPrecompoundInterface();
72
73 m_ftfp->SetHighEnergyGenerator(m_stringModel);
74 m_ftfp->SetTransport(m_preCompoundModel);
75 m_ftfp->SetMinEnergy(10.01 * GeV);
76 m_ftfp->SetMaxEnergy(1.0 * TeV);
77
78 // QMD model
79 G4QMDReaction* qmd = new G4QMDReaction;
80 qmd->SetMinEnergy(100.0 * MeV);
81 qmd->SetMaxEnergy(10.0 * GeV);
82
83 // BIC ion model
84 G4HadronicInteraction* p =
85 G4HadronicInteractionRegistry::Instance()->FindModel("PRECO");
86 G4PreCompoundModel* thePreCompound = static_cast<G4PreCompoundModel*>(p);
87 if (!thePreCompound) { thePreCompound = new G4PreCompoundModel; }
88
89 G4BinaryLightIonReaction* ionBC = new G4BinaryLightIonReaction(thePreCompound);
90 ionBC->SetMinEnergy(0.0 * MeV);
91 ionBC->SetMaxEnergy(110.0 * MeV);
92
93 // Elastic cross section set
94 m_ionGGXS = new G4ComponentGGNuclNuclXsc;
95 G4VCrossSectionDataSet* ionElasticXS = new G4CrossSectionElastic(m_ionGGXS);
96 ionElasticXS->SetMinKinEnergy(0.0);
97
98 // Inelastic cross section set
99 m_theGGNuclNuclXS = new G4ComponentGGNuclNuclXsc();
100 G4VCrossSectionDataSet* nuclNuclXS =
101 new G4CrossSectionInelastic(m_theGGNuclNuclXS);
102
104 // Deuteron //
106
107 procMan = G4Deuteron::Deuteron()->GetProcessManager();
108
109 // elastic
110 // no model available
111
112 // inelastic
113 G4HadronInelasticProcess* deutProcInel =
114 new G4HadronInelasticProcess("DeuteronInelProcess", G4Deuteron::Deuteron());
115 deutProcInel->RegisterMe(ionBC);
116 deutProcInel->RegisterMe(qmd);
117 deutProcInel->RegisterMe(m_ftfp);
118 deutProcInel->AddDataSet(nuclNuclXS);
119 procMan->AddDiscreteProcess(deutProcInel);
120
122 // Triton //
124
125 procMan = G4Triton::Triton()->GetProcessManager();
126
127 // elastic
128 // no model available
129
130 // inelastic
131 G4HadronInelasticProcess* tritProcInel =
132 new G4HadronInelasticProcess("TritonInelProcess", G4Triton::Triton());
133 tritProcInel->RegisterMe(ionBC);
134 tritProcInel->RegisterMe(qmd);
135 tritProcInel->RegisterMe(m_ftfp);
136 tritProcInel->AddDataSet(nuclNuclXS);
137 procMan->AddDiscreteProcess(tritProcInel);
138
140 // He3 //
142
143 procMan = G4He3::He3()->GetProcessManager();
144
145 // elastic
146 // no model available
147
148 // inelastic
149 G4HadronInelasticProcess* he3ProcInel =
150 new G4HadronInelasticProcess("He3InelProcess", G4He3::He3());
151 he3ProcInel->RegisterMe(ionBC);
152 he3ProcInel->RegisterMe(qmd);
153 he3ProcInel->RegisterMe(m_ftfp);
154 he3ProcInel->AddDataSet(nuclNuclXS);
155 procMan->AddDiscreteProcess(he3ProcInel);
156
158 // Alpha //
160
161 procMan = G4Alpha::Alpha()->GetProcessManager();
162
163 // elastic
164 // no model available
165
166 // inelastic
167 G4HadronInelasticProcess* alphProcInel =
168 new G4HadronInelasticProcess("AlphaInelProcess", G4Alpha::Alpha());
169 alphProcInel->RegisterMe(ionBC);
170 alphProcInel->RegisterMe(qmd);
171 alphProcInel->RegisterMe(m_ftfp);
172 alphProcInel->AddDataSet(nuclNuclXS);
173 procMan->AddDiscreteProcess(alphProcInel);
174
176 // Generic ion //
178
179 procMan = G4GenericIon::GenericIon()->GetProcessManager();
180
181 // elastic
182 G4HadronElasticProcess* ionProcEl = new G4HadronElasticProcess;
183 ionProcEl->RegisterMe(ionElastic);
184 ionProcEl->AddDataSet(ionElasticXS);
185 procMan->AddDiscreteProcess(ionProcEl);
186
187 // inelastic
188 G4HadronInelasticProcess* genIonProcInel =
189 new G4HadronInelasticProcess("IonInelProcess", G4GenericIon::GenericIon());
190 genIonProcInel->RegisterMe(ionBC);
191 genIonProcInel->RegisterMe(qmd);
192 genIonProcInel->RegisterMe(m_ftfp);
193 genIonProcInel->AddDataSet(nuclNuclXS);
194 procMan->AddDiscreteProcess(genIonProcInel);
195
196}

Member Data Documentation

◆ m_fragModel

G4LundStringFragmentation* m_fragModel
private

Lund string fragmentation model.

Definition at line 55 of file IonPhysics.h.

◆ m_ftfp

G4TheoFSGenerator* m_ftfp
private

Final state generator for QCD string models.

Definition at line 46 of file IonPhysics.h.

◆ m_ionGGXS

G4ComponentGGNuclNuclXsc* m_ionGGXS
private

Cross section set for elastic nucleus-nucleus collisions.

Definition at line 64 of file IonPhysics.h.

◆ m_preCompoundModel

G4GeneratorPrecompoundInterface* m_preCompoundModel
private

Precompound model to deexcite post-collision nucleus.

Definition at line 58 of file IonPhysics.h.

◆ m_stringDecay

G4ExcitedStringDecay* m_stringDecay
private

Model to decay strings into hadrons.

Definition at line 52 of file IonPhysics.h.

◆ m_stringModel

G4FTFModel* m_stringModel
private

Fritiof string model.

Definition at line 49 of file IonPhysics.h.

◆ m_theGGNuclNuclXS

G4VComponentCrossSection* m_theGGNuclNuclXS
private

Cross section set for inelastic nucleus-nucleus collisions.

Definition at line 61 of file IonPhysics.h.


The documentation for this class was generated from the following files: