source: trunk/examples/advanced/cosmicray_charging/include/LISAPhysicsList.hh @ 1309

Last change on this file since 1309 was 807, checked in by garnier, 16 years ago

update

File size: 14.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// ********************************************************************
27// *                                                                  *
28// * cosmicray_charging advanced example for Geant4                   *
29// * (adapted simulation of test-mass charging in the LISA mission)   *
30// *                                                                  *
31// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass           *
32// * Imperial College London                                          *
33// *                                                                  *
34// ********************************************************************
35
36#ifndef LISAPhysicsList_h
37#define LISAPhysicsList_h 1
38
39#include "G4VUserPhysicsList.hh"
40#include "globals.hh"
41
42// Hadronics
43#include "G4HadronElasticProcess.hh"
44#include "G4HadronInelasticProcess.hh"
45#include "G4HadronCaptureProcess.hh"
46#include "G4HadronFissionProcess.hh"
47
48// Inelastic Processes
49#include "G4ProtonInelasticProcess.hh"
50#include "G4AntiProtonInelasticProcess.hh"
51#include "G4NeutronInelasticProcess.hh"
52#include "G4AntiNeutronInelasticProcess.hh"
53#include "G4PionPlusInelasticProcess.hh"
54#include "G4PionMinusInelasticProcess.hh"
55#include "G4KaonPlusInelasticProcess.hh"
56#include "G4KaonZeroSInelasticProcess.hh"
57#include "G4KaonZeroLInelasticProcess.hh"
58#include "G4KaonMinusInelasticProcess.hh"
59#include "G4DeuteronInelasticProcess.hh"
60#include "G4TritonInelasticProcess.hh"
61#include "G4AlphaInelasticProcess.hh"
62#include "G4LambdaInelasticProcess.hh"
63#include "G4AntiLambdaInelasticProcess.hh"
64#include "G4OmegaMinusInelasticProcess.hh"
65#include "G4AntiOmegaMinusInelasticProcess.hh"
66#include "G4SigmaMinusInelasticProcess.hh"
67#include "G4AntiSigmaMinusInelasticProcess.hh"
68#include "G4SigmaPlusInelasticProcess.hh"
69#include "G4AntiSigmaPlusInelasticProcess.hh"
70#include "G4XiZeroInelasticProcess.hh"
71#include "G4AntiXiZeroInelasticProcess.hh"
72#include "G4XiMinusInelasticProcess.hh"
73#include "G4AntiXiMinusInelasticProcess.hh"
74
75// Low-energy Parameterised Models: 1 to 25 GeV
76#include "G4LElastic.hh"
77#include "G4LEPionPlusInelastic.hh"
78#include "G4LEPionMinusInelastic.hh"
79#include "G4LEKaonPlusInelastic.hh"
80#include "G4LEKaonZeroSInelastic.hh"
81#include "G4LEKaonZeroLInelastic.hh"
82#include "G4LEKaonMinusInelastic.hh"
83// #include "G4LEProtonInelastic.hh"
84#include "G4LEAntiProtonInelastic.hh"
85// #include "G4LENeutronInelastic.hh"
86#include "G4LEAntiNeutronInelastic.hh"
87#include "G4LEDeuteronInelastic.hh"
88#include "G4LETritonInelastic.hh"
89#include "G4LEAlphaInelastic.hh"
90#include "G4LELambdaInelastic.hh"
91#include "G4LEAntiLambdaInelastic.hh"
92#include "G4LEOmegaMinusInelastic.hh"
93#include "G4LEAntiOmegaMinusInelastic.hh"
94#include "G4LESigmaMinusInelastic.hh"
95#include "G4LEAntiSigmaMinusInelastic.hh"
96#include "G4LESigmaPlusInelastic.hh"
97#include "G4LEAntiSigmaPlusInelastic.hh"
98#include "G4LEXiZeroInelastic.hh"
99#include "G4LEAntiXiZeroInelastic.hh"
100#include "G4LEXiMinusInelastic.hh"
101#include "G4LEAntiXiMinusInelastic.hh"
102// neutrons
103#include "G4LCapture.hh"
104#include "G4LFission.hh"
105
106// High-energy Parameterised Models: 25 GeV to 10 TeV
107//  #include "G4HEPionPlusInelastic.hh"
108//  #include "G4HEPionMinusInelastic.hh"
109//  #include "G4HEKaonPlusInelastic.hh"
110//  #include "G4HEKaonZeroInelastic.hh"
111//  #include "G4HEKaonZeroInelastic.hh"
112//  #include "G4HEKaonMinusInelastic.hh"
113//  #include "G4HEProtonInelastic.hh"
114//  #include "G4HENeutronInelastic.hh"
115#include "G4HEAntiProtonInelastic.hh"
116#include "G4HEAntiNeutronInelastic.hh"
117#include "G4HELambdaInelastic.hh"
118#include "G4HEAntiLambdaInelastic.hh"
119#include "G4HEOmegaMinusInelastic.hh"
120#include "G4HEAntiOmegaMinusInelastic.hh"
121#include "G4HESigmaMinusInelastic.hh"
122#include "G4HEAntiSigmaMinusInelastic.hh"
123#include "G4HESigmaPlusInelastic.hh"
124#include "G4HEAntiSigmaPlusInelastic.hh"
125#include "G4HEXiZeroInelastic.hh"
126#include "G4HEAntiXiZeroInelastic.hh"
127#include "G4HEXiMinusInelastic.hh"
128#include "G4HEAntiXiMinusInelastic.hh"
129
130// // Neutron HP Models: Thermal to 19 MeV
131// #include "G4NeutronHPElastic.hh"
132// #include "G4NeutronHPElasticData.hh"
133// #include "G4NeutronHPCapture.hh"
134// #include "G4NeutronHPCaptureData.hh"
135// #include "G4NeutronHPInelastic.hh"
136// #include "G4NeutronHPInelasticData.hh"
137
138// Stopping processes
139#include "G4PiMinusAbsorptionAtRest.hh"
140#include "G4KaonMinusAbsorptionAtRest.hh"
141#include "G4AntiProtonAnnihilationAtRest.hh"
142#include "G4AntiNeutronAnnihilationAtRest.hh"
143
144// Generator models: HE
145#include "G4TheoFSGenerator.hh"
146#include "G4Evaporation.hh"
147#include "G4CompetitiveFission.hh"
148#include "G4FermiBreakUp.hh"
149#include "G4StatMF.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// Kinetic Model
159#include "G4BinaryCascade.hh"
160#include "G4BinaryLightIonReaction.hh"
161#include "G4TripathiCrossSection.hh"
162#include "G4IonsShenCrossSection.hh"
163
164
165///////////////////////////
166// ElectroNuclear Physics
167
168// photonuclear and electronuclear reaction
169#include "G4PhotoNuclearProcess.hh"
170#include "G4ElectronNuclearProcess.hh"
171#include "G4PositronNuclearProcess.hh"
172#include "G4GammaNuclearReaction.hh"
173#include "G4ElectroNuclearReaction.hh"
174
175// CHIPS fragmentation model
176#include "G4TheoFSGenerator.hh"
177#include "G4StringChipsParticleLevelInterface.hh"
178#include "G4QGSModel.hh"
179#include "G4GammaParticipants.hh"
180#include "G4QGSMFragmentation.hh"
181#include "G4ExcitedStringDecay.hh"
182
183// muon photonuclear reaction
184#include "G4MuNuclearInteraction.hh"
185
186
187
188//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
189
190class LISAPhysicsList: public G4VUserPhysicsList {
191
192  public:
193    LISAPhysicsList();
194    virtual ~LISAPhysicsList();
195
196  public:
197    virtual void SetCuts();
198
199  protected:
200    // particles and physics
201    virtual void ConstructParticle();
202    virtual void ConstructProcess();
203   
204    // physics processes
205    virtual void AddTransportation();
206    virtual void ElectromagneticPhysics();
207    virtual void HadronicPhysics();
208    virtual void ElectroNuclearPhysics();
209    virtual void GeneralPhysics();
210
211  private:
212    G4int VerboseLevel;
213  protected:
214
215  // PhotoNuclear *************************************************
216
217  G4PhotoNuclearProcess thePhotoNuclearProcess;
218  G4GammaNuclearReaction* theGammaReaction;     
219  G4TheoFSGenerator* theHEModel_PN;
220  G4StringChipsParticleLevelInterface* theCascade_PN;
221  G4QGSModel<G4GammaParticipants>* theStringModel_PN;
222  G4QGSMFragmentation theFragmentation_PN;
223  G4ExcitedStringDecay* theStringDecay_PN;
224  // ElectronNuclear
225  G4ElectronNuclearProcess theElectronNuclearProcess;
226  G4ElectroNuclearReaction* theElectroReaction;
227  // PositronNuclear
228  G4PositronNuclearProcess thePositronNuclearProcess;
229  // MuNucleus
230  G4MuNuclearInteraction theMuMinusNuclearInteraction;
231  G4MuNuclearInteraction theMuPlusNuclearInteraction;
232 
233
234   // Hadronics  *************************************************
235 
236  // Binary Cascade
237  G4TheoFSGenerator* theHEModel;
238  G4Evaporation* theEvaporation;
239  G4FermiBreakUp* theFermiBreakUp;
240  G4StatMF* theMF;
241  G4ExcitationHandler* theHandler;
242  G4PreCompoundModel* thePreEquilib;
243  G4GeneratorPrecompoundInterface* theCascade;
244  G4VPartonStringModel* theStringModel;
245  G4BinaryCascade* theCasc;
246  G4VLongitudinalStringDecay* theFragmentation;
247  G4ExcitedStringDecay* theStringDecay;
248  G4BinaryCascade* theCascForPi;
249  // Cascade for light ions
250  G4BinaryLightIonReaction* theIonCascade;
251  G4TripathiCrossSection* theTripathiCrossSection;
252  G4IonsShenCrossSection* theShenCrossSection;
253  G4BinaryLightIonReaction* theGenIonCascade;
254 
255 
256   // Elastic Process
257  G4HadronElasticProcess theElasticProcess;
258  G4LElastic* theElasticModel;
259
260  // pi+
261  G4PionPlusInelasticProcess thePionPlusInelasticProcess;
262  G4LEPionPlusInelastic* theLEPionPlusInelasticModel;
263
264  // pi-
265  G4PionMinusInelasticProcess thePionMinusInelasticProcess;
266  G4LEPionMinusInelastic* theLEPionMinusInelasticModel;
267  G4PiMinusAbsorptionAtRest thePiMinusAbsorptionAtRest;
268 
269  // kaon+
270  G4KaonPlusInelasticProcess theKaonPlusInelasticProcess;
271  G4LEKaonPlusInelastic* theLEKaonPlusInelasticModel;
272
273  // kaon0S
274  G4KaonZeroSInelasticProcess theKaonZeroSInelasticProcess;
275  G4LEKaonZeroSInelastic* theLEKaonZeroSInelasticModel;
276
277  // kaon0L
278  G4KaonZeroLInelasticProcess theKaonZeroLInelasticProcess;
279  G4LEKaonZeroLInelastic* theLEKaonZeroLInelasticModel;
280
281  // kaon-
282  G4KaonMinusInelasticProcess theKaonMinusInelasticProcess;
283  G4LEKaonMinusInelastic* theLEKaonMinusInelasticModel;
284  G4KaonMinusAbsorptionAtRest theKaonMinusAbsorptionAtRest;
285 
286  // proton
287  G4ProtonInelasticProcess theProtonInelasticProcess;
288
289  // anti-proton
290  G4AntiProtonInelasticProcess theAntiProtonInelasticProcess;
291  G4LEAntiProtonInelastic* theLEAntiProtonInelasticModel;
292  G4HEAntiProtonInelastic* theHEAntiProtonInelasticModel;
293  G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilationAtRest;
294
295  // neutron
296  G4HadronElasticProcess theNeutronElasticProcess;
297  G4LElastic* theNeutronElasticModel1;
298  //   G4NeutronHPElastic* theNeutronElasticModel2;
299  //   G4NeutronHPElasticData* theNeutronElasticData;
300  G4NeutronInelasticProcess theNeutronInelasticProcess;
301  //   G4NeutronHPInelastic* theNeutronInelasticModel1;
302  //   G4NeutronHPInelasticData* theNeutronInelasticData1;
303  G4HadronCaptureProcess theNeutronCaptureProcess;
304  G4LCapture* theNeutronCaptureModel1;
305  //   G4NeutronHPCapture* theNeutronCaptureModel2;
306  //   G4NeutronHPCaptureData* theNeutronCaptureData;
307  G4HadronFissionProcess theNeutronFissionProcess;
308  G4LFission* theNeutronFissionModel;
309
310  // anti-neutron
311  G4AntiNeutronInelasticProcess theAntiNeutronInelasticProcess;
312  G4LEAntiNeutronInelastic* theLEAntiNeutronInelasticModel;
313  G4HEAntiNeutronInelastic* theHEAntiNeutronInelasticModel;
314  G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilationAtRest;
315
316  // deuteron
317  G4DeuteronInelasticProcess* theDeuteronInelasticProcess;
318  G4LEDeuteronInelastic* theLEDeuteronInelasticModel;
319
320  // triton
321  G4TritonInelasticProcess* theTritonInelasticProcess;
322  G4LETritonInelastic* theLETritonInelasticModel;
323
324  // alpha
325  G4AlphaInelasticProcess* theAlphaInelasticProcess;
326  G4LEAlphaInelastic* theLEAlphaInelasticModel;
327
328  // He-3
329  G4HadronInelasticProcess* theHe3InelasticProcess;
330
331  // Generic Ion
332  G4HadronInelasticProcess* theGenericIonInelasticProcess;
333
334  // lambda
335  G4LambdaInelasticProcess theLambdaInelasticProcess;
336  G4LELambdaInelastic* theLELambdaInelasticModel;
337  G4HELambdaInelastic* theHELambdaInelasticModel;
338
339  // anti-lambda
340  G4AntiLambdaInelasticProcess theAntiLambdaInelasticProcess;
341  G4LEAntiLambdaInelastic* theLEAntiLambdaInelasticModel;
342  G4HEAntiLambdaInelastic* theHEAntiLambdaInelasticModel;
343
344  // omega-
345  G4OmegaMinusInelasticProcess theOmegaMinusInelasticProcess;
346  G4LEOmegaMinusInelastic* theLEOmegaMinusInelasticModel;
347  G4HEOmegaMinusInelastic* theHEOmegaMinusInelasticModel;
348
349  // anti-omega-
350  G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelasticProcess;
351  G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusInelasticModel;
352  G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusInelasticModel;
353
354  // sigma-
355  G4SigmaMinusInelasticProcess theSigmaMinusInelasticProcess;
356  G4LESigmaMinusInelastic* theLESigmaMinusInelasticModel;
357  G4HESigmaMinusInelastic* theHESigmaMinusInelasticModel;
358
359  // anti-sigma-
360  G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelasticProcess;
361  G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusInelasticModel;
362  G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusInelasticModel;
363
364  // sigma+
365  G4SigmaPlusInelasticProcess theSigmaPlusInelasticProcess;
366  G4LESigmaPlusInelastic* theLESigmaPlusInelasticModel;
367  G4HESigmaPlusInelastic* theHESigmaPlusInelasticModel;
368
369  // anti-sigma+
370  G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelasticProcess;
371  G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusInelasticModel;
372  G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusInelasticModel;
373
374  // xi0
375  G4XiZeroInelasticProcess theXiZeroInelasticProcess;
376  G4LEXiZeroInelastic* theLEXiZeroInelasticModel;
377  G4HEXiZeroInelastic* theHEXiZeroInelasticModel;
378
379  // anti-xi0
380  G4AntiXiZeroInelasticProcess theAntiXiZeroInelasticProcess;
381  G4LEAntiXiZeroInelastic* theLEAntiXiZeroInelasticModel;
382  G4HEAntiXiZeroInelastic* theHEAntiXiZeroInelasticModel;
383
384  // xi-
385  G4XiMinusInelasticProcess theXiMinusInelasticProcess;
386  G4LEXiMinusInelastic* theLEXiMinusInelasticModel;
387  G4HEXiMinusInelastic* theHEXiMinusInelasticModel;
388
389  // anti-xi-
390  G4AntiXiMinusInelasticProcess theAntiXiMinusInelasticProcess;
391  G4LEAntiXiMinusInelastic* theLEAntiXiMinusInelasticModel;
392  G4HEAntiXiMinusInelastic* theHEAntiXiMinusInelasticModel;
393
394
395};
396
397#endif
Note: See TracBrowser for help on using the repository browser.