Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
examples
advanced
gammaray_telescope
include
GammaRayTelHadronPhysics.hh
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// $Id$
27
//
28
// ------------------------------------------------------------
29
// GEANT 4 class header file
30
//
31
// This class is an derived class of G4VPhysicsConstructor
32
//
33
// ------------------------------------------------------------
34
#ifndef GammaRayTelHadronPhysics_h
35
#define GammaRayTelHadronPhysics_h 1
36
37
#include "
globals.hh
"
38
#include "
G4ios.hh
"
39
#include <vector>
40
41
#include "
G4VPhysicsConstructor.hh
"
42
43
#include "
G4hMultipleScattering.hh
"
44
#include "
G4hIonisation.hh
"
45
46
#include "
G4HadronElasticProcess.hh
"
47
#include "
G4HadronFissionProcess.hh
"
48
#include "
G4HadronCaptureProcess.hh
"
49
50
#include "
G4PionPlusInelasticProcess.hh
"
51
#include "
G4PionMinusInelasticProcess.hh
"
52
#include "
G4KaonPlusInelasticProcess.hh
"
53
#include "
G4KaonZeroSInelasticProcess.hh
"
54
#include "
G4KaonZeroLInelasticProcess.hh
"
55
#include "
G4KaonMinusInelasticProcess.hh
"
56
#include "
G4ProtonInelasticProcess.hh
"
57
#include "
G4AntiProtonInelasticProcess.hh
"
58
#include "
G4NeutronInelasticProcess.hh
"
59
#include "
G4AntiNeutronInelasticProcess.hh
"
60
#include "
G4LambdaInelasticProcess.hh
"
61
#include "
G4AntiLambdaInelasticProcess.hh
"
62
#include "
G4SigmaPlusInelasticProcess.hh
"
63
#include "
G4SigmaMinusInelasticProcess.hh
"
64
#include "
G4AntiSigmaPlusInelasticProcess.hh
"
65
#include "
G4AntiSigmaMinusInelasticProcess.hh
"
66
#include "
G4XiZeroInelasticProcess.hh
"
67
#include "
G4XiMinusInelasticProcess.hh
"
68
#include "
G4AntiXiZeroInelasticProcess.hh
"
69
#include "
G4AntiXiMinusInelasticProcess.hh
"
70
#include "
G4DeuteronInelasticProcess.hh
"
71
#include "
G4TritonInelasticProcess.hh
"
72
#include "
G4AlphaInelasticProcess.hh
"
73
#include "
G4OmegaMinusInelasticProcess.hh
"
74
#include "
G4AntiOmegaMinusInelasticProcess.hh
"
75
76
// Low-energy Models
77
#include "
G4LElastic.hh
"
78
#include "
G4LFission.hh
"
79
#include "
G4LCapture.hh
"
80
81
#include "
G4LEPionPlusInelastic.hh
"
82
#include "
G4LEPionMinusInelastic.hh
"
83
#include "
G4LEKaonPlusInelastic.hh
"
84
#include "
G4LEKaonZeroSInelastic.hh
"
85
#include "
G4LEKaonZeroLInelastic.hh
"
86
#include "
G4LEKaonMinusInelastic.hh
"
87
#include "
G4LEProtonInelastic.hh
"
88
#include "
G4LEAntiProtonInelastic.hh
"
89
#include "
G4LENeutronInelastic.hh
"
90
#include "
G4LEAntiNeutronInelastic.hh
"
91
#include "
G4LELambdaInelastic.hh
"
92
#include "
G4LEAntiLambdaInelastic.hh
"
93
#include "
G4LESigmaPlusInelastic.hh
"
94
#include "
G4LESigmaMinusInelastic.hh
"
95
#include "
G4LEAntiSigmaPlusInelastic.hh
"
96
#include "
G4LEAntiSigmaMinusInelastic.hh
"
97
#include "
G4LEXiZeroInelastic.hh
"
98
#include "
G4LEXiMinusInelastic.hh
"
99
#include "
G4LEAntiXiZeroInelastic.hh
"
100
#include "
G4LEAntiXiMinusInelastic.hh
"
101
#include "
G4LEDeuteronInelastic.hh
"
102
#include "
G4LETritonInelastic.hh
"
103
#include "
G4LEAlphaInelastic.hh
"
104
#include "
G4LEOmegaMinusInelastic.hh
"
105
#include "
G4LEAntiOmegaMinusInelastic.hh
"
106
107
// High-energy Models
108
109
#include "
G4HEPionPlusInelastic.hh
"
110
#include "
G4HEPionMinusInelastic.hh
"
111
#include "
G4HEKaonPlusInelastic.hh
"
112
#include "
G4HEKaonZeroInelastic.hh
"
113
#include "
G4HEKaonZeroInelastic.hh
"
114
#include "
G4HEKaonMinusInelastic.hh
"
115
#include "
G4HEProtonInelastic.hh
"
116
#include "
G4HEAntiProtonInelastic.hh
"
117
#include "
G4HENeutronInelastic.hh
"
118
#include "
G4HEAntiNeutronInelastic.hh
"
119
#include "
G4HELambdaInelastic.hh
"
120
#include "
G4HEAntiLambdaInelastic.hh
"
121
#include "
G4HESigmaPlusInelastic.hh
"
122
#include "
G4HESigmaMinusInelastic.hh
"
123
#include "
G4HEAntiSigmaPlusInelastic.hh
"
124
#include "
G4HEAntiSigmaMinusInelastic.hh
"
125
#include "
G4HEXiZeroInelastic.hh
"
126
#include "
G4HEXiMinusInelastic.hh
"
127
#include "
G4HEAntiXiZeroInelastic.hh
"
128
#include "
G4HEAntiXiMinusInelastic.hh
"
129
#include "
G4HEOmegaMinusInelastic.hh
"
130
#include "
G4HEAntiOmegaMinusInelastic.hh
"
131
132
// Stopping processes
133
#include "
G4AntiProtonAnnihilationAtRest.hh
"
134
#include "
G4AntiNeutronAnnihilationAtRest.hh
"
135
136
#ifdef TRIUMF_STOP_PIMINUS
137
#include "
G4PionMinusAbsorptionAtRest.hh
"
138
#else
139
#include "
G4PiMinusAbsorptionAtRest.hh
"
140
#endif
141
#ifdef TRIUMF_STOP_KMINUS
142
#include "
G4KaonMinusAbsorption.hh
"
143
#else
144
#include "
G4KaonMinusAbsorptionAtRest.hh
"
145
#endif
146
147
// quark gluon string model with chips afterburner.
148
#include "
G4TheoFSGenerator.hh
"
149
#include "
G4ExcitationHandler.hh
"
150
#include "
G4PreCompoundModel.hh
"
151
#include "
G4GeneratorPrecompoundInterface.hh
"
152
#include "
G4QGSModel.hh
"
153
#include "
G4QGSParticipants.hh
"
154
#include "
G4QGSMFragmentation.hh
"
155
#include "
G4ExcitedStringDecay.hh
"
156
157
158
class
GammaRayTelHadronPhysics
:
public
G4VPhysicsConstructor
159
{
160
public
:
161
GammaRayTelHadronPhysics
(
const
G4String
&
name
=
"hadron"
);
162
virtual
~GammaRayTelHadronPhysics
();
163
164
public
:
165
// This method will be invoked in the Construct() method.
166
// each particle type will be instantiated
167
void
ConstructParticle
(){};
168
169
// This method will be invoked in the Construct() method.
170
// each physics process will be instantiated and
171
// registered to the process manager of each particle type
172
void
ConstructProcess
();
173
174
protected
:
175
// Elastic Process
176
G4HadronElasticProcess
theElasticProcess
;
177
G4LElastic
*
theElasticModel
;
178
179
// Pi +
180
G4PionPlusInelasticProcess
thePionPlusInelastic
;
181
G4LEPionPlusInelastic
*
theLEPionPlusModel
;
182
G4hMultipleScattering
thePionPlusMult
;
183
G4hIonisation
thePionPlusIonisation
;
184
185
// Pi -
186
G4PionMinusInelasticProcess
thePionMinusInelastic
;
187
G4LEPionMinusInelastic
*
theLEPionMinusModel
;
188
G4hMultipleScattering
thePionMinusMult
;
189
G4hIonisation
thePionMinusIonisation
;
190
#ifdef TRIUMF_STOP_PIMINUS
191
G4PionMinusAbsorptionAtRest
thePionMinusAbsorption
;
192
#else
193
G4PiMinusAbsorptionAtRest
thePionMinusAbsorption
;
194
#endif
195
196
// pi+ and pi-
197
198
G4TheoFSGenerator
*
theModel
;
199
G4ExcitationHandler
theHandler
;
200
G4PreCompoundModel
*
thePreEquilib
;
201
G4GeneratorPrecompoundInterface
*
theCascade
;
202
G4QGSModel<G4QGSParticipants>
*
theStringModel
;
203
G4QGSMFragmentation
theFragmentation
;
204
G4ExcitedStringDecay
*
theStringDecay
;
205
206
// K +
207
G4KaonPlusInelasticProcess
theKaonPlusInelastic
;
208
G4LEKaonPlusInelastic
*
theLEKaonPlusModel
;
209
G4HEKaonPlusInelastic
*
theHEKaonPlusModel
;
210
G4hMultipleScattering
theKaonPlusMult
;
211
G4hIonisation
theKaonPlusIonisation
;
212
213
// K -
214
G4KaonMinusInelasticProcess
theKaonMinusInelastic
;
215
G4LEKaonMinusInelastic
*
theLEKaonMinusModel
;
216
G4HEKaonMinusInelastic
*
theHEKaonMinusModel
;
217
G4hMultipleScattering
theKaonMinusMult
;
218
G4hIonisation
theKaonMinusIonisation
;
219
#ifdef TRIUMF_STOP_KMINUS
220
G4KaonMinusAbsorption
theKaonMinusAbsorption
;
221
#else
222
G4PiMinusAbsorptionAtRest
theKaonMinusAbsorption
;
223
#endif
224
225
// K0L
226
G4KaonZeroLInelasticProcess
theKaonZeroLInelastic
;
227
G4LEKaonZeroLInelastic
*
theLEKaonZeroLModel
;
228
G4HEKaonZeroInelastic
*
theHEKaonZeroLModel
;
229
230
// K0S
231
G4KaonZeroSInelasticProcess
theKaonZeroSInelastic
;
232
G4LEKaonZeroSInelastic
*
theLEKaonZeroSModel
;
233
G4HEKaonZeroInelastic
*
theHEKaonZeroSModel
;
234
235
// Proton
236
G4ProtonInelasticProcess
theProtonInelastic
;
237
G4LEProtonInelastic
*
theLEProtonModel
;
238
G4HEProtonInelastic
*
theHEProtonModel
;
239
G4hMultipleScattering
theProtonMult
;
240
G4hIonisation
theProtonIonisation
;
241
242
// anti-proton
243
G4AntiProtonInelasticProcess
theAntiProtonInelastic
;
244
G4LEAntiProtonInelastic
*
theLEAntiProtonModel
;
245
G4HEAntiProtonInelastic
*
theHEAntiProtonModel
;
246
G4hMultipleScattering
theAntiProtonMult
;
247
G4hIonisation
theAntiProtonIonisation
;
248
G4AntiProtonAnnihilationAtRest
theAntiProtonAnnihilation
;
249
250
// neutron
251
G4NeutronInelasticProcess
theNeutronInelastic
;
252
G4LENeutronInelastic
*
theLENeutronModel
;
253
G4HENeutronInelastic
*
theHENeutronModel
;
254
G4HadronFissionProcess
theNeutronFission
;
255
G4LFission
*
theNeutronFissionModel
;
256
G4HadronCaptureProcess
theNeutronCapture
;
257
G4LCapture
*
theNeutronCaptureModel
;
258
259
260
// anti-neutron
261
G4AntiNeutronInelasticProcess
theAntiNeutronInelastic
;
262
G4LEAntiNeutronInelastic
*
theLEAntiNeutronModel
;
263
G4HEAntiNeutronInelastic
*
theHEAntiNeutronModel
;
264
G4AntiNeutronAnnihilationAtRest
theAntiNeutronAnnihilation
;
265
266
// Lambda
267
G4LambdaInelasticProcess
theLambdaInelastic
;
268
G4LELambdaInelastic
*
theLELambdaModel
;
269
G4HELambdaInelastic
*
theHELambdaModel
;
270
271
// AntiLambda
272
G4AntiLambdaInelasticProcess
theAntiLambdaInelastic
;
273
G4LEAntiLambdaInelastic
*
theLEAntiLambdaModel
;
274
G4HEAntiLambdaInelastic
*
theHEAntiLambdaModel
;
275
276
// SigmaMinus
277
G4SigmaMinusInelasticProcess
theSigmaMinusInelastic
;
278
G4LESigmaMinusInelastic
*
theLESigmaMinusModel
;
279
G4HESigmaMinusInelastic
*
theHESigmaMinusModel
;
280
G4hMultipleScattering
theSigmaMinusMult
;
281
G4hIonisation
theSigmaMinusIonisation
;
282
283
// AntiSigmaMinus
284
G4AntiSigmaMinusInelasticProcess
theAntiSigmaMinusInelastic
;
285
G4LEAntiSigmaMinusInelastic
*
theLEAntiSigmaMinusModel
;
286
G4HEAntiSigmaMinusInelastic
*
theHEAntiSigmaMinusModel
;
287
G4hMultipleScattering
theAntiSigmaMinusMult
;
288
G4hIonisation
theAntiSigmaMinusIonisation
;
289
290
// SigmaPlus
291
G4SigmaPlusInelasticProcess
theSigmaPlusInelastic
;
292
G4LESigmaPlusInelastic
*
theLESigmaPlusModel
;
293
G4HESigmaPlusInelastic
*
theHESigmaPlusModel
;
294
G4hMultipleScattering
theSigmaPlusMult
;
295
G4hIonisation
theSigmaPlusIonisation
;
296
297
// AntiSigmaPlus
298
G4AntiSigmaPlusInelasticProcess
theAntiSigmaPlusInelastic
;
299
G4LEAntiSigmaPlusInelastic
*
theLEAntiSigmaPlusModel
;
300
G4HEAntiSigmaPlusInelastic
*
theHEAntiSigmaPlusModel
;
301
G4hMultipleScattering
theAntiSigmaPlusMult
;
302
G4hIonisation
theAntiSigmaPlusIonisation
;
303
304
// XiZero
305
G4XiZeroInelasticProcess
theXiZeroInelastic
;
306
G4LEXiZeroInelastic
*
theLEXiZeroModel
;
307
G4HEXiZeroInelastic
*
theHEXiZeroModel
;
308
309
// AntiXiZero
310
G4AntiXiZeroInelasticProcess
theAntiXiZeroInelastic
;
311
G4LEAntiXiZeroInelastic
*
theLEAntiXiZeroModel
;
312
G4HEAntiXiZeroInelastic
*
theHEAntiXiZeroModel
;
313
314
// XiMinus
315
G4XiMinusInelasticProcess
theXiMinusInelastic
;
316
G4LEXiMinusInelastic
*
theLEXiMinusModel
;
317
G4HEXiMinusInelastic
*
theHEXiMinusModel
;
318
G4hMultipleScattering
theXiMinusMult
;
319
G4hIonisation
theXiMinusIonisation
;
320
321
// AntiXiMinus
322
G4AntiXiMinusInelasticProcess
theAntiXiMinusInelastic
;
323
G4LEAntiXiMinusInelastic
*
theLEAntiXiMinusModel
;
324
G4HEAntiXiMinusInelastic
*
theHEAntiXiMinusModel
;
325
G4hMultipleScattering
theAntiXiMinusMult
;
326
G4hIonisation
theAntiXiMinusIonisation
;
327
328
// OmegaMinus
329
G4OmegaMinusInelasticProcess
theOmegaMinusInelastic
;
330
G4LEOmegaMinusInelastic
*
theLEOmegaMinusModel
;
331
G4HEOmegaMinusInelastic
*
theHEOmegaMinusModel
;
332
G4hMultipleScattering
theOmegaMinusMult
;
333
G4hIonisation
theOmegaMinusIonisation
;
334
335
// AntiOmegaMinus
336
G4AntiOmegaMinusInelasticProcess
theAntiOmegaMinusInelastic
;
337
G4LEAntiOmegaMinusInelastic
*
theLEAntiOmegaMinusModel
;
338
G4HEAntiOmegaMinusInelastic
*
theHEAntiOmegaMinusModel
;
339
G4hMultipleScattering
theAntiOmegaMinusMult
;
340
G4hIonisation
theAntiOmegaMinusIonisation
;
341
};
342
343
344
#endif
345
Generated on Sat May 25 2013 14:32:09 for Geant4 by
1.8.4