4 // Author: I. Hrivnacova
6 // Class TG4PhysicsConstructorIon
7 // -----------------------------
8 // Constructor of physics for ions.
9 // According to ExN04IonPhysics.hh, GEANT4 tag Name: geant4-03-02
11 #ifndef TG4_PHYSICS_CONSTRUCTOR_ION_H
12 #define TG4_PHYSICS_CONSTRUCTOR_ION_H
14 #include "TG4VPhysicsConstructor.h"
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>
28 class TG4PhysicsConstructorIon: public TG4VPhysicsConstructor
31 TG4PhysicsConstructorIon(const G4String& name = "Ion");
32 TG4PhysicsConstructorIon(G4int verboseLevel,
33 G4bool setEM, G4bool setHadron,
34 const G4String& name = "Ion");
36 // TG4PhysicsConstructorIon(const TG4PhysicsConstructorIon& right);
37 virtual ~TG4PhysicsConstructorIon();
40 TG4PhysicsConstructorIon(const TG4PhysicsConstructorIon& right);
43 TG4PhysicsConstructorIon& operator=(const TG4PhysicsConstructorIon& right);
45 // construct particle and physics
46 virtual void ConstructParticle();
47 virtual void ConstructProcess();
51 G4HadronElasticProcess fElasticProcess; //elastic process
52 G4LElastic* fElasticModel; //elastic model
54 // Generic Ion physics
55 G4MultipleScattering fIonMultipleScattering; //ion multiple scattering
56 G4hIonisation fIonIonisation; //ion ionisation
59 G4MultipleScattering fDeuteronMultipleScattering; //D msc
60 G4hIonisation fDeuteronIonisation;//D ionisation
61 G4DeuteronInelasticProcess fDeuteronProcess; //D inelastic process
62 G4LEDeuteronInelastic* fDeuteronModel; //D LE inelastic model
65 G4MultipleScattering fTritonMultipleScattering; //T msc
66 G4hIonisation fTritonIonisation; //T ionisation
67 G4TritonInelasticProcess fTritonProcess; //T inelastic process
68 G4LETritonInelastic* fTritonModel; //T LE inelastic model
71 G4MultipleScattering fAlphaMultipleScattering; //alpha msc
72 G4hIonisation fAlphaIonisation; //alpha ionisation
73 G4AlphaInelasticProcess fAlphaProcess; //alpha inelastic process
74 G4LEAlphaInelastic* fAlphaModel; //alpha LE inelastic model
77 G4MultipleScattering fHe3MultipleScattering; //He3 msc
78 G4hIonisation fHe3Ionisation; //He3 ionisation
84 void ConstructHadProcessForGenericIon();
85 void ConstructHadProcessForDeuteron();
86 void ConstructHadProcessForTriton();
87 void ConstructHadProcessForAlpha();
88 void ConstructHadProcessForHe3();
91 void ConstructEMProcessForGenericIon();
92 void ConstructEMProcessForDeuteron();
93 void ConstructEMProcessForTriton();
94 void ConstructEMProcessForAlpha();
95 void ConstructEMProcessForHe3();
98 G4bool fSetEM; //if true - EM processes are constructed
99 G4bool fSetHadron;//if true - hadron processes are constructed
102 #endif //TG4_PHYSICS_CONSTRUCTOR_ION_H