]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TGeant4/TG4PhysicsList.h
Correcting coding convention violations
[u/mrichter/AliRoot.git] / TGeant4 / TG4PhysicsList.h
1 // $Id$
2 // Category: physics
3 //
4 // Physics list (mandatory) class.
5 // According to:
6 // ExN04PhysicsList.hh, GEANT4 tag Name: geant4-01-01
7
8 #ifndef TG4_PHYSICS_LIST_H
9 #define TG4_PHYSICS_LIST_H
10
11 #include <G4VUserPhysicsList.hh>
12 #include <globals.hh>
13
14 class TG4PhysicsListMessenger;
15
16 class G4VProcess;
17
18 class TG4PhysicsList: public G4VUserPhysicsList
19 {
20   public:
21     TG4PhysicsList();
22     TG4PhysicsList(const TG4PhysicsList& right);
23     virtual ~TG4PhysicsList();
24   
25     // operators
26     TG4PhysicsList& operator=(const TG4PhysicsList& right);
27     
28     // methods
29     void PrintAllProcesses() const;
30     void SetProcessActivation();
31     
32     // set methods
33     void SetOptical(G4bool optical);
34     void SetHadron(G4bool hadron);
35     void SetSpecialCuts(G4bool specialCuts);
36     void SetSpecialFlags(G4bool specialFlags);
37
38   protected:
39     // methods
40           // construct particle and physics
41     virtual void ConstructParticle();
42     virtual void ConstructProcess();
43   
44          // construct physics processes and register them
45     void ConstructGeneral();
46     void ConstructEM();
47     void ConstructHad();
48     void ConstructOp();
49     void ConstructSpecialCuts();
50     void ConstructSpecialFlags();
51
52          // construct all particles in each category
53     void ConstructAllBosons();
54     void ConstructAllLeptons();
55     void ConstructAllMesons();
56     void ConstructAllBaryons();
57     void ConstructAllIons();
58     void ConstructAllShortLiveds();
59
60     // set methods
61     virtual void SetCuts();
62    
63   private:
64     // methods
65     G4VProcess* FindProcess(G4String processName) const;
66
67          // only for tests - to be removed  
68     void InActivateEM();
69     void InActivateProcess(G4String processName, 
70            G4ParticleDefinition* particle);  
71            
72  
73     // data members
74     G4bool  fSetOptical;     //optical processes control
75     G4bool  fSetHadron;      //hadron processes control
76     G4bool  fSetSpecialCuts; //special cuts process control (under development)                  
77     G4bool  fSetSpecialFlags;//special flags process control (under development)
78
79     TG4PhysicsListMessenger*  fMessenger;   //messenger
80 };
81
82 // inline methods
83
84 inline void TG4PhysicsList::SetOptical(G4bool optical)
85 { fSetOptical = optical; }
86
87 inline void TG4PhysicsList::SetHadron(G4bool hadron)
88 { fSetHadron = hadron; }
89
90 inline void TG4PhysicsList::SetSpecialCuts(G4bool specialCuts)
91 { fSetSpecialCuts = specialCuts; }
92
93 inline void TG4PhysicsList::SetSpecialFlags(G4bool specialFlags)
94 { fSetSpecialFlags = specialFlags; }
95
96 #endif //TG4_PHYSICS_LIST_H
97