]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TGeant4/TG4PhysicsConstructorIon.h
Update to track display by Chuncheng
[u/mrichter/AliRoot.git] / TGeant4 / TG4PhysicsConstructorIon.h
1 // $Id$
2 // Category: physics
3 //
4 // Author: I. Hrivnacova
5 //
6 // Class TG4PhysicsConstructorIon
7 // -----------------------------
8 // Constructor of physics for ions.
9 // According to ExN04IonPhysics.hh, GEANT4 tag Name: geant4-03-02
10
11 #ifndef TG4_PHYSICS_CONSTRUCTOR_ION_H
12 #define TG4_PHYSICS_CONSTRUCTOR_ION_H
13
14 #include "TG4VPhysicsConstructor.h"
15
16 #include <G4HadronElasticProcess.hh>
17 #include <G4LElastic.hh>
18 #include <G4DeuteronInelasticProcess.hh>
19 #include <G4LEDeuteronInelastic.hh>
20 #include <G4TritonInelasticProcess.hh>
21 #include <G4LETritonInelastic.hh>
22 #include <G4AlphaInelasticProcess.hh>
23 #include <G4LEAlphaInelastic.hh>
24 #include <G4hIonisation.hh>
25 #include <G4MultipleScattering.hh>
26 #include <globals.hh>
27
28 class TG4PhysicsConstructorIon: public TG4VPhysicsConstructor
29 {
30   public:
31     TG4PhysicsConstructorIon(const G4String& name = "Ion");
32     TG4PhysicsConstructorIon(G4int verboseLevel, 
33                              G4bool setEM, G4bool setHadron,
34                              const G4String& name = "Ion");
35     // --> protected
36     // TG4PhysicsConstructorIon(const TG4PhysicsConstructorIon& right);
37     virtual ~TG4PhysicsConstructorIon();
38
39   protected:
40     TG4PhysicsConstructorIon(const TG4PhysicsConstructorIon& right);
41     
42     // operators
43     TG4PhysicsConstructorIon& operator=(const TG4PhysicsConstructorIon& right);
44     // methods
45           // construct particle and physics
46     virtual void ConstructParticle();
47     virtual void ConstructProcess();
48
49     // data members
50           // Elastic Process
51    G4HadronElasticProcess fElasticProcess;         //elastic process
52    G4LElastic*            fElasticModel;           //elastic model
53
54           // Generic Ion physics
55    G4MultipleScattering   fIonMultipleScattering;  //ion multiple scattering
56    G4hIonisation          fIonIonisation;          //ion ionisation
57
58           // Deuteron physics
59    G4MultipleScattering        fDeuteronMultipleScattering; //D msc
60    G4hIonisation               fDeuteronIonisation;//D ionisation
61    G4DeuteronInelasticProcess  fDeuteronProcess;   //D inelastic process
62    G4LEDeuteronInelastic*      fDeuteronModel;     //D LE inelastic model
63
64           // Triton physics
65    G4MultipleScattering        fTritonMultipleScattering; //T msc
66    G4hIonisation               fTritonIonisation;  //T ionisation
67    G4TritonInelasticProcess    fTritonProcess;     //T inelastic process
68    G4LETritonInelastic*        fTritonModel;       //T LE inelastic model
69   
70          // Alpha physics
71    G4MultipleScattering        fAlphaMultipleScattering; //alpha msc
72    G4hIonisation               fAlphaIonisation;   //alpha ionisation
73    G4AlphaInelasticProcess     fAlphaProcess;      //alpha inelastic process
74    G4LEAlphaInelastic*         fAlphaModel;        //alpha LE inelastic model
75
76         // He3 physics
77    G4MultipleScattering        fHe3MultipleScattering; //He3 msc
78    G4hIonisation               fHe3Ionisation;     //He3 ionisation
79     
80   private:
81     // methods
82
83     // Hadron processes
84     void ConstructHadProcessForGenericIon();    
85     void ConstructHadProcessForDeuteron();    
86     void ConstructHadProcessForTriton();    
87     void ConstructHadProcessForAlpha();    
88     void ConstructHadProcessForHe3();    
89
90     // EM processes
91     void ConstructEMProcessForGenericIon();    
92     void ConstructEMProcessForDeuteron();    
93     void ConstructEMProcessForTriton();    
94     void ConstructEMProcessForAlpha();    
95     void ConstructEMProcessForHe3();    
96
97     // data members
98     G4bool  fSetEM;    //if true - EM processes are constructed
99     G4bool  fSetHadron;//if true - hadron processes are constructed
100 };
101
102 #endif //TG4_PHYSICS_CONSTRUCTOR_ION_H
103