]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TGeant4/TG4PhysicsConstructorIon.h
Initial version
[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 <G4VPhysicsConstructor.hh>
15 #include <G4HadronElasticProcess.hh>
16 #include <G4LElastic.hh>
17 #include <G4DeuteronInelasticProcess.hh>
18 #include <G4LEDeuteronInelastic.hh>
19 #include <G4TritonInelasticProcess.hh>
20 #include <G4LETritonInelastic.hh>
21 #include <G4AlphaInelasticProcess.hh>
22 #include <G4LEAlphaInelastic.hh>
23 #include <G4hIonisation.hh>
24 #include <G4MultipleScattering.hh>
25 #include <globals.hh>
26
27 class TG4PhysicsConstructorIon: public G4VPhysicsConstructor
28 {
29   public:
30     TG4PhysicsConstructorIon(const G4String& name = "Ion");
31     // --> protected
32     // TG4PhysicsConstructorIon(const TG4PhysicsConstructorIon& right);
33     virtual ~TG4PhysicsConstructorIon();
34
35   protected:
36     TG4PhysicsConstructorIon(const TG4PhysicsConstructorIon& right);
37     
38     // operators
39     TG4PhysicsConstructorIon& operator=(const TG4PhysicsConstructorIon& right);
40     // methods
41           // construct particle and physics
42     virtual void ConstructParticle();
43     virtual void ConstructProcess();
44
45     // data members
46           // Elastic Process
47    G4HadronElasticProcess fElasticProcess;
48    G4LElastic*            fElasticModel;
49
50           // Generic Ion physics
51    G4MultipleScattering   fIonMultipleScattering;
52    G4hIonisation          fIonIonisation;
53
54           // Deuteron physics
55    G4MultipleScattering        fDeuteronMultipleScattering;
56    G4hIonisation               fDeuteronIonisation;
57    G4DeuteronInelasticProcess  fDeuteronProcess;
58    G4LEDeuteronInelastic*      fDeuteronModel;
59
60           // Triton physics
61    G4MultipleScattering        fTritonMultipleScattering;
62    G4hIonisation               fTritonIonisation;
63    G4TritonInelasticProcess    fTritonProcess;
64    G4LETritonInelastic*        fTritonModel;
65   
66          // Alpha physics
67    G4MultipleScattering        fAlphaMultipleScattering;
68    G4hIonisation               fAlphaIonisation;
69    G4AlphaInelasticProcess     fAlphaProcess;
70    G4LEAlphaInelastic*         fAlphaModel;
71
72         // He3 physics
73    G4MultipleScattering        fHe3MultipleScattering;
74    G4hIonisation               fHe3Ionisation;
75     
76   private:
77     // methods
78     void ConstructProcessForGenericIon();    
79     void ConstructProcessForDeuteron();    
80     void ConstructProcessForTriton();    
81     void ConstructProcessForAlpha();    
82     void ConstructProcessForHe3();    
83 };
84
85 #endif //TG4_PHYSICS_CONSTRUCTOR_ION_H
86