Belle II Software development
HyperonPhysics Class Reference

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

#include <HyperonPhysics.h>

Inheritance diagram for HyperonPhysics:

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.
 

Detailed Description

Hyperon hadronic physics constructor for Belle II physics list.

Definition at line 31 of file HyperonPhysics.h.

Constructor & Destructor Documentation

◆ HyperonPhysics()

Definition at line 32 of file HyperonPhysics.cc.

33 : m_ftfp(nullptr), m_stringModel(nullptr), m_stringDecay(nullptr),
34 m_fragModel(nullptr), m_preCompoundModel(nullptr)
35{}
G4GeneratorPrecompoundInterface * m_preCompoundModel
Precompound model to deexcite post-collision nucleus.
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.

◆ ~HyperonPhysics()

Definition at line 38 of file HyperonPhysics.cc.

39{
40 delete m_stringDecay;
41 delete m_stringModel;
42 delete m_fragModel;
43 delete m_preCompoundModel;
44}

Member Function Documentation

◆ ConstructParticle()

void ConstructParticle ( )
overridevirtual

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

Definition at line 47 of file HyperonPhysics.cc.

48{}

◆ ConstructProcess()

void ConstructProcess ( )
overridevirtual

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

Definition at line 51 of file HyperonPhysics.cc.

52{
53 G4ProcessManager* procMan = 0;
54
55 // One elastic model for all hyperon energies
56 G4HadronElastic* elModel = new G4HadronElastic();
57
58 // Use Bertini cascade for low energies
59 G4CascadeInterface* loInelModel = new G4CascadeInterface;
60 loInelModel->SetMinEnergy(0.0);
61 loInelModel->SetMaxEnergy(6.0 * GeV);
62
63 // Use FTFP for high energies ==>> eventually replace this with new class FTFPInterface
64 m_ftfp = new G4TheoFSGenerator("FTFP");
65 m_stringModel = new G4FTFModel;
67 new G4ExcitedStringDecay(m_fragModel = new G4LundStringFragmentation);
68 m_stringModel->SetFragmentationModel(m_stringDecay);
69 m_preCompoundModel = new G4GeneratorPrecompoundInterface();
70
71 m_ftfp->SetHighEnergyGenerator(m_stringModel);
72 m_ftfp->SetTransport(m_preCompoundModel);
73 m_ftfp->SetMinEnergy(4 * GeV);
74 m_ftfp->SetMaxEnergy(100 * TeV);
75
76 // Cross section sets
77 G4ChipsHyperonElasticXS* chipsElastic = new G4ChipsHyperonElasticXS;
78 G4ChipsHyperonInelasticXS* chipsInelastic = new G4ChipsHyperonInelasticXS;
79
81 // Lambda //
83
84 procMan = G4Lambda::Lambda()->GetProcessManager();
85
86 // elastic
87 G4HadronElasticProcess* lamProcEl = new G4HadronElasticProcess;
88 lamProcEl->RegisterMe(elModel);
89 lamProcEl->AddDataSet(chipsElastic);
90 procMan->AddDiscreteProcess(lamProcEl);
91
92 // inelastic
93 G4HadronInelasticProcess* lamProcInel = new G4HadronInelasticProcess("lambdaInelastic", G4Lambda::Definition());
94 lamProcInel->RegisterMe(loInelModel);
95 lamProcInel->RegisterMe(m_ftfp);
96 lamProcInel->AddDataSet(chipsInelastic);
97 procMan->AddDiscreteProcess(lamProcInel);
98
100 // Sigma+ //
102
103 procMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
104
105 // elastic
106 G4HadronElasticProcess* spProcEl = new G4HadronElasticProcess;
107 spProcEl->RegisterMe(elModel);
108 spProcEl->AddDataSet(chipsElastic);
109 procMan->AddDiscreteProcess(spProcEl);
110
111 // inelastic
112 G4HadronInelasticProcess* spProcInel = new G4HadronInelasticProcess("sigma+Inelastic", G4SigmaPlus::Definition());
113 spProcInel->RegisterMe(loInelModel);
114 spProcInel->RegisterMe(m_ftfp);
115 spProcInel->AddDataSet(chipsInelastic);
116 procMan->AddDiscreteProcess(spProcInel);
117
119 // Sigma- //
121
122 procMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
123
124 // elastic
125 G4HadronElasticProcess* smProcEl = new G4HadronElasticProcess;
126 smProcEl->RegisterMe(elModel);
127 smProcEl->AddDataSet(chipsElastic);
128 procMan->AddDiscreteProcess(smProcEl);
129
130 // inelastic
131 G4HadronInelasticProcess* smProcInel = new G4HadronInelasticProcess("sigma-Inelastic", G4SigmaMinus::Definition());
132 smProcInel->RegisterMe(loInelModel);
133 smProcInel->RegisterMe(m_ftfp);
134 smProcInel->AddDataSet(chipsInelastic);
135 procMan->AddDiscreteProcess(smProcInel);
136
137 // stopping
138 G4HadronicAbsorptionBertini* smAbsorb = new G4HadronicAbsorptionBertini;
139 procMan->AddRestProcess(smAbsorb);
140
142 // Xi0 //
144
145 procMan = G4XiZero::XiZero()->GetProcessManager();
146
147 // elastic
148 G4HadronElasticProcess* xzProcEl = new G4HadronElasticProcess;
149 xzProcEl->RegisterMe(elModel);
150 xzProcEl->AddDataSet(chipsElastic);
151 procMan->AddDiscreteProcess(xzProcEl);
152
153 // inelastic
154 G4HadronInelasticProcess* xzProcInel = new G4HadronInelasticProcess("xi0Inelastic", G4XiZero::Definition());
155 xzProcInel->RegisterMe(loInelModel);
156 xzProcInel->RegisterMe(m_ftfp);
157 xzProcInel->AddDataSet(chipsInelastic);
158 procMan->AddDiscreteProcess(xzProcInel);
159
161 // Xi- //
163
164 procMan = G4XiMinus::XiMinus()->GetProcessManager();
165
166 // elastic
167 G4HadronElasticProcess* xmProcEl = new G4HadronElasticProcess;
168 xmProcEl->RegisterMe(elModel);
169 xmProcEl->AddDataSet(chipsElastic);
170 procMan->AddDiscreteProcess(xmProcEl);
171
172 // inelastic
173 G4HadronInelasticProcess* xmProcInel = new G4HadronInelasticProcess("xi-Inelastic", G4XiMinus::Definition());
174 xmProcInel->RegisterMe(loInelModel);
175 xmProcInel->RegisterMe(m_ftfp);
176 xmProcInel->AddDataSet(chipsInelastic);
177 procMan->AddDiscreteProcess(xmProcInel);
178
179 // stopping
180 G4HadronicAbsorptionBertini* xmAbsorb = new G4HadronicAbsorptionBertini;
181 procMan->AddRestProcess(xmAbsorb);
182
184 // Omega- //
186
187 procMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
188
189 // elastic
190 G4HadronElasticProcess* omProcEl = new G4HadronElasticProcess;
191 omProcEl->RegisterMe(elModel);
192 omProcEl->AddDataSet(chipsElastic);
193 procMan->AddDiscreteProcess(omProcEl);
194
195 // inelastic
196 G4HadronInelasticProcess* omProcInel = new G4HadronInelasticProcess("omega-Inelastic", G4OmegaMinus::Definition());
197 omProcInel->RegisterMe(loInelModel);
198 omProcInel->RegisterMe(m_ftfp);
199 omProcInel->AddDataSet(chipsInelastic);
200 procMan->AddDiscreteProcess(omProcInel);
201
202 // stopping
203 G4HadronicAbsorptionBertini* omAbsorb = new G4HadronicAbsorptionBertini;
204 procMan->AddRestProcess(omAbsorb);
205}

Member Data Documentation

◆ m_fragModel

G4LundStringFragmentation* m_fragModel
private

Lund string fragmentation model.

Definition at line 53 of file HyperonPhysics.h.

◆ m_ftfp

G4TheoFSGenerator* m_ftfp
private

Final state generator for QCD string models.

Definition at line 44 of file HyperonPhysics.h.

◆ m_preCompoundModel

G4GeneratorPrecompoundInterface* m_preCompoundModel
private

Precompound model to deexcite post-collision nucleus.

Definition at line 56 of file HyperonPhysics.h.

◆ m_stringDecay

G4ExcitedStringDecay* m_stringDecay
private

Model to decay strings into hadrons.

Definition at line 50 of file HyperonPhysics.h.

◆ m_stringModel

G4FTFModel* m_stringModel
private

Fritiof string model.

Definition at line 47 of file HyperonPhysics.h.


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