BOSS 7.1.1
BESIII Offline Software System
Loading...
Searching...
No Matches
BesHadronPhysics.hh
Go to the documentation of this file.
1
2#ifndef BesHadronPhysics_h
3#define BesHadronPhysics_h 1
4
5#include "globals.hh"
6#include "G4ios.hh"
7#include <vector>
8
9#include "G4VPhysicsConstructor.hh"
10
11//#include "G4MultipleScattering.hh"
12#include "G4hIonisation.hh"
13
14#include "G4HadronElasticProcess.hh"
15#include "G4HadronFissionProcess.hh"
16#include "G4HadronCaptureProcess.hh"
17
18#include "G4PionPlusInelasticProcess.hh"
19#include "G4PionMinusInelasticProcess.hh"
20#include "G4KaonPlusInelasticProcess.hh"
21#include "G4KaonZeroSInelasticProcess.hh"
22#include "G4KaonZeroLInelasticProcess.hh"
23#include "G4KaonMinusInelasticProcess.hh"
24#include "G4ProtonInelasticProcess.hh"
25#include "G4AntiProtonInelasticProcess.hh"
26#include "G4NeutronInelasticProcess.hh"
27#include "G4AntiNeutronInelasticProcess.hh"
28#include "G4LambdaInelasticProcess.hh"
29#include "G4AntiLambdaInelasticProcess.hh"
30#include "G4SigmaPlusInelasticProcess.hh"
31#include "G4SigmaMinusInelasticProcess.hh"
32#include "G4AntiSigmaPlusInelasticProcess.hh"
33#include "G4AntiSigmaMinusInelasticProcess.hh"
34#include "G4XiZeroInelasticProcess.hh"
35#include "G4XiMinusInelasticProcess.hh"
36#include "G4AntiXiZeroInelasticProcess.hh"
37#include "G4AntiXiMinusInelasticProcess.hh"
38#include "G4DeuteronInelasticProcess.hh"
39#include "G4TritonInelasticProcess.hh"
40#include "G4AlphaInelasticProcess.hh"
41#include "G4OmegaMinusInelasticProcess.hh"
42#include "G4AntiOmegaMinusInelasticProcess.hh"
43
44// Low-energy Models
45//#include "G4LElastic.hh"
46//#include "G4LFission.hh"
47//#include "G4LCapture.hh"
48
49/*#include "G4LEPionPlusInelastic.hh"
50#include "G4LEPionMinusInelastic.hh"
51#include "G4LEKaonPlusInelastic.hh"
52#include "G4LEKaonZeroSInelastic.hh"
53#include "G4LEKaonZeroLInelastic.hh"
54#include "G4LEKaonMinusInelastic.hh"
55#include "G4LEProtonInelastic.hh"
56#include "G4LEAntiProtonInelastic.hh"
57#include "G4LENeutronInelastic.hh"
58#include "G4LEAntiNeutronInelastic.hh"
59#include "G4LELambdaInelastic.hh"
60#include "G4LEAntiLambdaInelastic.hh"
61#include "G4LESigmaPlusInelastic.hh"
62#include "G4LESigmaMinusInelastic.hh"
63#include "G4LEAntiSigmaPlusInelastic.hh"
64#include "G4LEAntiSigmaMinusInelastic.hh"
65#include "G4LEXiZeroInelastic.hh"
66#include "G4LEXiMinusInelastic.hh"
67#include "G4LEAntiXiZeroInelastic.hh"
68#include "G4LEAntiXiMinusInelastic.hh"
69#include "G4LEDeuteronInelastic.hh"
70#include "G4LETritonInelastic.hh"
71#include "G4LEAlphaInelastic.hh"
72#include "G4LEOmegaMinusInelastic.hh"
73#include "G4LEAntiOmegaMinusInelastic.hh"
74
75// High-energy Models
76
77#include "G4HEPionPlusInelastic.hh"
78#include "G4HEPionMinusInelastic.hh"
79#include "G4HEKaonPlusInelastic.hh"
80#include "G4HEKaonZeroInelastic.hh"
81#include "G4HEKaonZeroInelastic.hh"
82#include "G4HEKaonMinusInelastic.hh"
83#include "G4HEProtonInelastic.hh"
84#include "G4HEAntiProtonInelastic.hh"
85#include "G4HENeutronInelastic.hh"
86#include "G4HEAntiNeutronInelastic.hh"
87#include "G4HELambdaInelastic.hh"
88#include "G4HEAntiLambdaInelastic.hh"
89#include "G4HESigmaPlusInelastic.hh"
90#include "G4HESigmaMinusInelastic.hh"
91#include "G4HEAntiSigmaPlusInelastic.hh"
92#include "G4HEAntiSigmaMinusInelastic.hh"
93#include "G4HEXiZeroInelastic.hh"
94#include "G4HEXiMinusInelastic.hh"
95#include "G4HEAntiXiZeroInelastic.hh"
96#include "G4HEAntiXiMinusInelastic.hh"
97#include "G4HEOmegaMinusInelastic.hh"
98#include "G4HEAntiOmegaMinusInelastic.hh"
99
100// Stopping processes
101#include "G4AntiProtonAnnihilationAtRest.hh"
102#include "G4AntiNeutronAnnihilationAtRest.hh"
103
104#ifdef TRIUMF_STOP_PIMINUS
105#include "G4PionMinusAbsorptionAtRest.hh"
106#else
107#include "G4PiMinusAbsorptionAtRest.hh"
108#endif
109#ifdef TRIUMF_STOP_KMINUS
110#include "G4KaonMinusAbsorption.hh"
111#else
112#include "G4KaonMinusAbsorptionAtRest.hh"
113#endif
114*/
115 // quark gluon string model with chips afterburner.
116#include "G4TheoFSGenerator.hh"
117#include "G4ExcitationHandler.hh"
118#include "G4PreCompoundModel.hh"
119#include "G4GeneratorPrecompoundInterface.hh"
120/* AZ #include "G4QGSModel.hh"
121#include "G4QGSParticipants.hh"
122#include "G4QGSMFragmentation.hh"
123#include "G4ExcitedStringDecay.hh"
124*/
125class BesHadronPhysics : public G4VPhysicsConstructor
126{
127 public:
128 BesHadronPhysics(const G4String& name ="hadron");
129 virtual ~BesHadronPhysics();
130
131 public:
132 // This method will be invoked in the Construct() method.
133 // each particle type will be instantiated
134 virtual void ConstructParticle();
135
136 // This method will be invoked in the Construct() method.
137 // each physics process will be instantiated and
138 // registered to the process manager of each particle type
139 virtual void ConstructProcess();
140
141 protected:
142/* // Elastic Process
143 G4HadronElasticProcess theElasticProcess;
144 G4LElastic* theElasticModel;
145
146 // Pi +
147 G4PionPlusInelasticProcess thePionPlusInelastic;
148 G4LEPionPlusInelastic* theLEPionPlusModel;
149 G4MultipleScattering thePionPlusMult;
150 G4hIonisation thePionPlusIonisation;
151
152 // Pi -
153 G4PionMinusInelasticProcess thePionMinusInelastic;
154 G4LEPionMinusInelastic* theLEPionMinusModel;
155 G4MultipleScattering thePionMinusMult;
156 G4hIonisation thePionMinusIonisation;
157#ifdef TRIUMF_STOP_PIMINUS
158 G4PionMinusAbsorptionAtRest thePionMinusAbsorption;
159#else
160 G4PiMinusAbsorptionAtRest thePionMinusAbsorption;
161#endif
162*/
163 // pi+ and pi-
164
165/* AZ G4TheoFSGenerator theTheoModel;
166*/
167 // G4ExcitationHandler theHandler;
168 // G4PreCompoundModel * thePreEquilib;
169 // G4GeneratorPrecompoundInterface theCascade;
170/* AZ G4QGSModel< G4QGSParticipants >* theStringModel;
171 G4QGSMFragmentation theFragmentation;
172 G4ExcitedStringDecay * theStringDecay;
173*/
174 /*
175 // K +
176 G4KaonPlusInelasticProcess theKaonPlusInelastic;
177 G4LEKaonPlusInelastic* theLEKaonPlusModel;
178 G4HEKaonPlusInelastic* theHEKaonPlusModel;
179 G4MultipleScattering theKaonPlusMult;
180 G4hIonisation theKaonPlusIonisation;
181
182 // K -
183 G4KaonMinusInelasticProcess theKaonMinusInelastic;
184 G4LEKaonMinusInelastic* theLEKaonMinusModel;
185 G4HEKaonMinusInelastic* theHEKaonMinusModel;
186 G4MultipleScattering theKaonMinusMult;
187 G4hIonisation theKaonMinusIonisation;
188#ifdef TRIUMF_STOP_KMINUS
189 G4KaonMinusAbsorption theKaonMinusAbsorption;
190#else
191 G4PiMinusAbsorptionAtRest theKaonMinusAbsorption;
192#endif
193
194 // K0L
195 G4KaonZeroLInelasticProcess theKaonZeroLInelastic;
196 G4LEKaonZeroLInelastic* theLEKaonZeroLModel;
197 G4HEKaonZeroInelastic* theHEKaonZeroLModel;
198// K0Regeneration theK0LRegeneration;
199
200 // K0S
201 G4KaonZeroSInelasticProcess theKaonZeroSInelastic;
202 G4LEKaonZeroSInelastic* theLEKaonZeroSModel;
203 G4HEKaonZeroInelastic* theHEKaonZeroSModel;
204
205 // Proton
206 G4ProtonInelasticProcess theProtonInelastic;
207 G4LEProtonInelastic* theLEProtonModel;
208 G4HEProtonInelastic* theHEProtonModel;
209 G4MultipleScattering theProtonMult;
210 G4hIonisation theProtonIonisation;
211
212 // anti-proton
213 G4AntiProtonInelasticProcess theAntiProtonInelastic;
214 G4LEAntiProtonInelastic* theLEAntiProtonModel;
215 G4HEAntiProtonInelastic* theHEAntiProtonModel;
216 G4MultipleScattering theAntiProtonMult;
217 G4hIonisation theAntiProtonIonisation;
218 G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation;
219
220 // neutron
221 G4NeutronInelasticProcess theNeutronInelastic;
222 G4LENeutronInelastic* theLENeutronModel;
223 G4HENeutronInelastic* theHENeutronModel;
224 G4HadronFissionProcess theNeutronFission;
225 G4LFission* theNeutronFissionModel;
226 G4HadronCaptureProcess theNeutronCapture;
227 G4LCapture* theNeutronCaptureModel;
228
229
230 // anti-neutron
231 G4AntiNeutronInelasticProcess theAntiNeutronInelastic;
232 G4LEAntiNeutronInelastic* theLEAntiNeutronModel;
233 G4HEAntiNeutronInelastic* theHEAntiNeutronModel;
234 G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation;
235
236 // Lambda
237 G4LambdaInelasticProcess theLambdaInelastic;
238 G4LELambdaInelastic* theLELambdaModel;
239 G4HELambdaInelastic* theHELambdaModel;
240
241 // AntiLambda
242 G4AntiLambdaInelasticProcess theAntiLambdaInelastic;
243 G4LEAntiLambdaInelastic* theLEAntiLambdaModel;
244 G4HEAntiLambdaInelastic* theHEAntiLambdaModel;
245
246 // SigmaMinus
247 G4SigmaMinusInelasticProcess theSigmaMinusInelastic;
248 G4LESigmaMinusInelastic* theLESigmaMinusModel;
249 G4HESigmaMinusInelastic* theHESigmaMinusModel;
250 G4MultipleScattering theSigmaMinusMult;
251 G4hIonisation theSigmaMinusIonisation;
252
253 // AntiSigmaMinus
254 G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic;
255 G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel;
256 G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel;
257 G4MultipleScattering theAntiSigmaMinusMult;
258 G4hIonisation theAntiSigmaMinusIonisation;
259
260 // SigmaPlus
261 G4SigmaPlusInelasticProcess theSigmaPlusInelastic;
262 G4LESigmaPlusInelastic* theLESigmaPlusModel;
263 G4HESigmaPlusInelastic* theHESigmaPlusModel;
264 G4MultipleScattering theSigmaPlusMult;
265 G4hIonisation theSigmaPlusIonisation;
266
267 // AntiSigmaPlus
268 G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic;
269 G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel;
270 G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel;
271 G4MultipleScattering theAntiSigmaPlusMult;
272 G4hIonisation theAntiSigmaPlusIonisation;
273
274 // XiZero
275 G4XiZeroInelasticProcess theXiZeroInelastic;
276 G4LEXiZeroInelastic* theLEXiZeroModel;
277 G4HEXiZeroInelastic* theHEXiZeroModel;
278
279 // AntiXiZero
280 G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic;
281 G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel;
282 G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel;
283
284 // XiMinus
285 G4XiMinusInelasticProcess theXiMinusInelastic;
286 G4LEXiMinusInelastic* theLEXiMinusModel;
287 G4HEXiMinusInelastic* theHEXiMinusModel;
288 G4MultipleScattering theXiMinusMult;
289 G4hIonisation theXiMinusIonisation;
290
291 // AntiXiMinus
292 G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic;
293 G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel;
294 G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel;
295 G4MultipleScattering theAntiXiMinusMult;
296 G4hIonisation theAntiXiMinusIonisation;
297
298 // OmegaMinus
299 G4OmegaMinusInelasticProcess theOmegaMinusInelastic;
300 G4LEOmegaMinusInelastic* theLEOmegaMinusModel;
301 G4HEOmegaMinusInelastic* theHEOmegaMinusModel;
302 G4MultipleScattering theOmegaMinusMult;
303 G4hIonisation theOmegaMinusIonisation;
304
305 // AntiOmegaMinus
306 G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic;
307 G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel;
308 G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel;
309 G4MultipleScattering theAntiOmegaMinusMult;
310 G4hIonisation theAntiOmegaMinusIonisation;
311
312 */
313};
314
315
316#endif
317
virtual ~BesHadronPhysics()
virtual void ConstructProcess()
BesHadronPhysics(const G4String &name="hadron")
virtual void ConstructParticle()