]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TGeant4/TG4PhysicsConstructorIon.h
Coding Rule violations corrected.
[u/mrichter/AliRoot.git] / TGeant4 / TG4PhysicsConstructorIon.h
CommitLineData
5d321328 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
11f7ee82 14#include "TG4VPhysicsConstructor.h"
15
5d321328 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
11f7ee82 28class TG4PhysicsConstructorIon: public TG4VPhysicsConstructor
5d321328 29{
30 public:
31 TG4PhysicsConstructorIon(const G4String& name = "Ion");
11f7ee82 32 TG4PhysicsConstructorIon(G4int verboseLevel,
33 G4bool setEM, G4bool setHadron,
34 const G4String& name = "Ion");
5d321328 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
cc364059 51 G4HadronElasticProcess fElasticProcess; //elastic process
52 G4LElastic* fElasticModel; //elastic model
5d321328 53
54 // Generic Ion physics
cc364059 55 G4MultipleScattering fIonMultipleScattering; //ion multiple scattering
56 G4hIonisation fIonIonisation; //ion ionisation
5d321328 57
58 // Deuteron physics
cc364059 59 G4MultipleScattering fDeuteronMultipleScattering; //D msc
60 G4hIonisation fDeuteronIonisation;//D ionisation
61 G4DeuteronInelasticProcess fDeuteronProcess; //D inelastic process
62 G4LEDeuteronInelastic* fDeuteronModel; //D LE inelastic model
5d321328 63
64 // Triton physics
cc364059 65 G4MultipleScattering fTritonMultipleScattering; //T msc
66 G4hIonisation fTritonIonisation; //T ionisation
67 G4TritonInelasticProcess fTritonProcess; //T inelastic process
68 G4LETritonInelastic* fTritonModel; //T LE inelastic model
5d321328 69
70 // Alpha physics
cc364059 71 G4MultipleScattering fAlphaMultipleScattering; //alpha msc
72 G4hIonisation fAlphaIonisation; //alpha ionisation
73 G4AlphaInelasticProcess fAlphaProcess; //alpha inelastic process
74 G4LEAlphaInelastic* fAlphaModel; //alpha LE inelastic model
5d321328 75
76 // He3 physics
cc364059 77 G4MultipleScattering fHe3MultipleScattering; //He3 msc
78 G4hIonisation fHe3Ionisation; //He3 ionisation
5d321328 79
80 private:
81 // methods
11f7ee82 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
5d321328 100};
101
102#endif //TG4_PHYSICS_CONSTRUCTOR_ION_H
103