source: trunk/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh @ 1282

Last change on this file since 1282 was 1230, checked in by garnier, 14 years ago

update to geant4.9.3

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