DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Geant4Processes.cpp
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 
14 // Framework include files
15 #include <DDG4/Factories.h>
16 
17 // Geant4 physics lists
18 #include <G4Version.hh>
19 
20 #if G4VERSION_NUMBER>=960
21 #define GEANT4_9_6
22 #endif
23 
24 // ======================================================================
25 // Predefined physics processes to be attached to particles
26 //
27 // Usage:
28 //
29 // <physicslist name="Geant4PhysicsList/MyPhysics.0">
30 // <processes>
31 // <particle name="e[+-]" cut="1*mm">
32 // <process name="G4eMultipleScattering" ordAtRestDoIt="-1" ordAlongSteptDoIt="1" ordPostStepDoIt="1"/>
33 // <process name="G4eIonisation" ordAtRestDoIt="-1" ordAlongSteptDoIt="2" ordPostStepDoIt="2"/>
34 // </particle>
35 // </processes>
36 // </physicslist>
37 //
38 //
39 // ======================================================================
40 
41 // Fast simulation
42 #include <G4FastSimulationManagerProcess.hh>
43 DECLARE_GEANT4_PROCESS(G4FastSimulationManagerProcess)
44 
45 // Photon Processes:
46 #include <G4GammaConversion.hh>
47 DECLARE_GEANT4_PROCESS(G4GammaConversion)
48 #include <G4PhotoElectricEffect.hh>
49 DECLARE_GEANT4_PROCESS(G4PhotoElectricEffect)
50 #include <G4ComptonScattering.hh>
51 DECLARE_GEANT4_PROCESS(G4ComptonScattering)
52 #include <G4RayleighScattering.hh>
53 DECLARE_GEANT4_PROCESS(G4RayleighScattering)
54 #include <G4GammaConversionToMuons.hh>
55 DECLARE_GEANT4_PROCESS(G4GammaConversionToMuons)
56 
57 // Electron/positron processes
58 #include <G4eIonisation.hh>
59 DECLARE_GEANT4_PROCESS(G4eIonisation)
60 #include <G4eBremsstrahlung.hh>
61 DECLARE_GEANT4_PROCESS(G4eBremsstrahlung)
62 #include <G4eMultipleScattering.hh>
63 DECLARE_GEANT4_PROCESS(G4eMultipleScattering)
64 #include <G4eplusAnnihilation.hh>
65 DECLARE_GEANT4_PROCESS(G4eplusAnnihilation)
66 #include <G4AnnihiToMuPair.hh>
67 DECLARE_GEANT4_PROCESS(G4AnnihiToMuPair)
68 #include <G4eeToHadrons.hh>
69 DECLARE_GEANT4_PROCESS(G4eeToHadrons)
70 
71 // Muon processes
72 #include <G4MuIonisation.hh>
73 DECLARE_GEANT4_PROCESS(G4MuIonisation)
74 #include <G4MuBremsstrahlung.hh>
75 DECLARE_GEANT4_PROCESS(G4MuBremsstrahlung)
76 #include <G4MuPairProduction.hh>
77 DECLARE_GEANT4_PROCESS(G4MuPairProduction)
78 #include <G4MuMultipleScattering.hh>
79 DECLARE_GEANT4_PROCESS(G4MuMultipleScattering)
80 
81 // Hadron/ion processes
82 #include <G4hIonisation.hh>
83 DECLARE_GEANT4_PROCESS(G4hIonisation)
84 #include <G4ionIonisation.hh>
85 DECLARE_GEANT4_PROCESS(G4ionIonisation)
86 #include <G4hhIonisation.hh>
87 DECLARE_GEANT4_PROCESS(G4hhIonisation)
88 #include <G4mplIonisation.hh>
89 DECLARE_GEANT4_PROCESS(G4mplIonisation)
90 #include <G4hMultipleScattering.hh>
91 DECLARE_GEANT4_PROCESS(G4hMultipleScattering)
92 #include <G4hBremsstrahlung.hh>
93 DECLARE_GEANT4_PROCESS(G4hBremsstrahlung)
94 #include <G4hPairProduction.hh>
95 DECLARE_GEANT4_PROCESS(G4hPairProduction)
96 
97 // Coulomb scattering
98 #include <G4CoulombScattering.hh>
99 DECLARE_GEANT4_PROCESS(G4CoulombScattering)
100 
101 // Processes for simulation of polarized electron and gamma beams
102 #include <G4PolarizedCompton.hh>
103 DECLARE_GEANT4_PROCESS(G4PolarizedCompton)
104 #include <G4PolarizedGammaConversion.hh>
105 DECLARE_GEANT4_PROCESS(G4PolarizedGammaConversion)
106 #include <G4ePairProduction.hh>
107 DECLARE_GEANT4_PROCESS(G4ePairProduction)
108 
109 #if G4VERSION_NUMBER < 1100
110 #include <G4PolarizedPhotoElectricEffect.hh>
111 DECLARE_GEANT4_PROCESS(G4PolarizedPhotoElectricEffect)
112 #include <G4ePolarizedBremsstrahlung.hh>
113 DECLARE_GEANT4_PROCESS(G4ePolarizedBremsstrahlung)
114 #include <G4ePolarizedIonisation.hh>
115 DECLARE_GEANT4_PROCESS(G4ePolarizedIonisation)
116 #include <G4eplusPolarizedAnnihilation.hh>
117 DECLARE_GEANT4_PROCESS(G4eplusPolarizedAnnihilation)
118 
119 #else
120 #include <G4PolarizedAnnihilation.hh>
121 DECLARE_GEANT4_PROCESS(G4PolarizedAnnihilation)
122 #include <G4PolarizedAnnihilationXS.hh>
123 DECLARE_GEANT4_PROCESS(G4PolarizedAnnihilationXS)
124 #include <G4PolarizedBremsstrahlung.hh>
125 DECLARE_GEANT4_PROCESS(G4PolarizedBremsstrahlung)
126 #include <G4PolarizedCompton.hh>
127 DECLARE_GEANT4_PROCESS(G4PolarizedCompton)
128 #include <G4PolarizedComptonXS.hh>
129 DECLARE_GEANT4_PROCESS(G4PolarizedComptonXS)
130 #include <G4PolarizedGammaConversion.hh>
131 DECLARE_GEANT4_PROCESS(G4PolarizedGammaConversion)
132 #include <G4PolarizedGammaConversionXS.hh>
133 DECLARE_GEANT4_PROCESS(G4PolarizedGammaConversionXS)
134 #include <G4PolarizedIonisation.hh>
135 DECLARE_GEANT4_PROCESS(G4PolarizedIonisation)
136 #include <G4PolarizedIonisationBhabhaXS.hh>
137 DECLARE_GEANT4_PROCESS(G4PolarizedIonisationBhabhaXS)
138 #include <G4PolarizedIonisationMollerXS.hh>
139 DECLARE_GEANT4_PROCESS(G4PolarizedIonisationMollerXS)
140 #include <G4PolarizedPhotoElectric.hh>
141 DECLARE_GEANT4_PROCESS(G4PolarizedPhotoElectric)
142 #include <G4PolarizedPhotoElectricXS.hh>
143 DECLARE_GEANT4_PROCESS(G4PolarizedPhotoElectricXS)
144 #endif
145 
146 // Processes for simulation of X-rays and optical protons production by charged particles
147 #include <G4SynchrotronRadiation.hh>
148 DECLARE_GEANT4_PROCESS(G4SynchrotronRadiation)
149 #include <G4TransitionRadiation.hh>
150 //DECLARE_GEANT4_PROCESS(G4TransitionRadiation) !!virtual abstract!!
151 #include <G4Cerenkov.hh>
152 DECLARE_GEANT4_PROCESS(G4Cerenkov)
153 #include <G4Scintillation.hh>
154 DECLARE_GEANT4_PROCESS(G4Scintillation)
155 
156 // Others
157 #include <G4PAIModel.hh>
158 DECLARE_GEANT4_PROCESS(G4PAIModel)
159 #include <G4BraggIonGasModel.hh>
160 DECLARE_GEANT4_PROCESS(G4BraggIonGasModel)
161 #include <G4BetheBlochIonGasModel.hh>
162 DECLARE_GEANT4_PROCESS(G4BetheBlochIonGasModel)
163 #include <G4WentzelVIModel.hh>
164 DECLARE_GEANT4_PROCESS(G4WentzelVIModel)
165 
166 #if G4VERSION_NUMBER < 1000
167 #include <G4UrbanMscModel93.hh>
168 DECLARE_GEANT4_PROCESS(G4UrbanMscModel93)
169 #endif
170 
171 #include <G4hImpactIonisation.hh>
172 DECLARE_GEANT4_PROCESS(G4hImpactIonisation)
173 
174 //#include <G4InversePEEffect.hh>
175 //DECLARE_GEANT4_PROCESS(G4InversePEEffect)
176 //#include <G4hInverseIonisation.hh>
177 //DECLARE_GEANT4_PROCESS(G4hInverseIonisation)
178 //#include <G4IonInverseIonisation.hh>
179 //DECLARE_GEANT4_PROCESS(G4IonInverseIonisation)
180 
181 // ==================================================================================
182 #if G4VERSION_NUMBER>=960 and G4VERSION_NUMBER<1000
183 #include <G4UrbanMscModel93.hh>
184 DECLARE_GEANT4_PROCESS(G4UrbanMscModel93)
185 // ==================================================================================
186 #elif G4VERSION_NUMBER>=1000
187 
188 // Stuff commented cannot be instantiated!!
189 
190 #include <G4AdjointBremsstrahlungModel.hh>
191 DECLARE_GEANT4_PROCESS(G4AdjointBremsstrahlungModel)
192 #include <G4AdjointComptonModel.hh>
193 DECLARE_GEANT4_PROCESS(G4AdjointComptonModel)
194 #include <G4AdjointeIonisationModel.hh>
195 DECLARE_GEANT4_PROCESS(G4AdjointeIonisationModel)
196 #include <G4AdjointIonIonisationModel.hh>
197 DECLARE_GEANT4_PROCESS(G4AdjointIonIonisationModel)
198 #include <G4AdjointPhotoElectricModel.hh>
199 DECLARE_GEANT4_PROCESS(G4AdjointPhotoElectricModel)
200 #include <G4BetheBlochModel.hh>
201 DECLARE_GEANT4_PROCESS(G4BetheBlochModel)
202 #include <G4BetheBlochNoDeltaModel.hh>
203 DECLARE_GEANT4_PROCESS(G4BetheBlochNoDeltaModel)
204 #include <G4BetheHeitlerModel.hh>
205 DECLARE_GEANT4_PROCESS(G4BetheHeitlerModel)
206 #include <G4BoldyshevTripletModel.hh>
207 DECLARE_GEANT4_PROCESS(G4BoldyshevTripletModel)
208 #include <G4BraggIonModel.hh>
209 DECLARE_GEANT4_PROCESS(G4BraggIonModel)
210 #include <G4BraggModel.hh>
211 DECLARE_GEANT4_PROCESS(G4BraggModel)
212 #include <G4BraggNoDeltaModel.hh>
213 DECLARE_GEANT4_PROCESS(G4BraggNoDeltaModel)
214 #include <G4ChipsElasticModel.hh>
215 DECLARE_GEANT4_PROCESS(G4ChipsElasticModel)
216 #include <G4DNABornExcitationModel.hh>
217 DECLARE_GEANT4_PROCESS(G4DNABornExcitationModel)
218 
219 #include <G4eBremParametrizedModel.hh>
220 DECLARE_GEANT4_PROCESS(G4eBremParametrizedModel)
221 #include <G4eBremsstrahlungRelModel.hh>
222 DECLARE_GEANT4_PROCESS(G4eBremsstrahlungRelModel)
223 #include <G4ecpssrBaseKxsModel.hh>
224 DECLARE_GEANT4_PROCESS(G4ecpssrBaseKxsModel)
225 #include <G4ecpssrBaseLixsModel.hh>
226 DECLARE_GEANT4_PROCESS(G4ecpssrBaseLixsModel)
227 #include <G4ecpssrFormFactorKxsModel.hh>
228 DECLARE_GEANT4_PROCESS(G4ecpssrFormFactorKxsModel)
229 //#include <G4ee2KChargedModel.hh>
230 //DECLARE_GEANT4_PROCESS(G4ee2KChargedModel)
231 //#include <G4ee2KNeutralModel.hh>
232 //DECLARE_GEANT4_PROCESS(G4ee2KNeutralModel)
233 //#include <G4eeTo3PiModel.hh>
234 //DECLARE_GEANT4_PROCESS(G4eeTo3PiModel)
235 //#include <G4eeToHadronsModel.hh>
236 //DECLARE_GEANT4_PROCESS(G4eeToHadronsModel)
237 #include <G4ecpssrFormFactorLixsModel.hh>
238 DECLARE_GEANT4_PROCESS(G4ecpssrFormFactorLixsModel)
239 #include <G4ecpssrFormFactorMixsModel.hh>
240 DECLARE_GEANT4_PROCESS(G4ecpssrFormFactorMixsModel)
241 #include <G4EmMultiModel.hh>
242 DECLARE_GEANT4_PROCESS(G4EmMultiModel)
243 
244 #if G4VERSION_NUMBER < 1100
245 #include <G4ePolarizedBremsstrahlungModel.hh>
246 DECLARE_GEANT4_PROCESS(G4ePolarizedBremsstrahlungModel)
247 #else
248 #include <G4PolarizedBremsstrahlungModel.hh>
249 DECLARE_GEANT4_PROCESS(G4PolarizedBremsstrahlungModel)
250 #endif
251 
252 #include <G4FTFModel.hh>
253 DECLARE_GEANT4_PROCESS(G4FTFModel)
254 #include <G4GoudsmitSaundersonMscModel.hh>
255 DECLARE_GEANT4_PROCESS(G4GoudsmitSaundersonMscModel)
256 #include <G4hBremsstrahlungModel.hh>
257 DECLARE_GEANT4_PROCESS(G4hBremsstrahlungModel)
258 #include <G4hCoulombScatteringModel.hh>
259 DECLARE_GEANT4_PROCESS(G4hCoulombScatteringModel)
260 //#include <G4hNuclearStoppingModel.hh>
261 //DECLARE_GEANT4_PROCESS(G4hNuclearStoppingModel)
262 #include <G4hPairProductionModel.hh>
263 DECLARE_GEANT4_PROCESS(G4hPairProductionModel)
264 //#include <G4hParametrisedLossModel.hh>
265 //DECLARE_GEANT4_PROCESS(G4hParametrisedLossModel)
266 #include <G4ICRU49NuclearStoppingModel.hh>
267 DECLARE_GEANT4_PROCESS(G4ICRU49NuclearStoppingModel)
268 #include <G4ICRU73NoDeltaModel.hh>
269 DECLARE_GEANT4_PROCESS(G4ICRU73NoDeltaModel)
270 #include <G4ICRU73QOModel.hh>
271 DECLARE_GEANT4_PROCESS(G4ICRU73QOModel)
272 //#include <G4INCLIClusteringModel.hh>
273 //DECLARE_GEANT4_PROCESS(G4INCLIClusteringModel)
274 //#include <G4INCLIPropagationModel.hh>
275 //DECLARE_GEANT4_PROCESS(G4INCLIPropagationModel)
276 //#include <G4INCLStandardPropagationModel.hh>
277 //DECLARE_GEANT4_PROCESS(G4INCLStandardPropagationModel)
278 //#include <G4IonChuFluctuationModel.hh>
279 //DECLARE_GEANT4_PROCESS(G4IonChuFluctuationModel)
280 
281 #endif
282 
283 #if 0
284 #include <.hh>
286 #endif
287 
Factories.h
DECLARE_GEANT4_PROCESS
#define DECLARE_GEANT4_PROCESS(name)
Plugin definition to create Geant4 physics processes (G4VProcess)
Definition: Factories.h:218