]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TGeant4/TG4PhysicsList.h
the MIXT geometry (IHEP+GPS2) has been introduced
[u/mrichter/AliRoot.git] / TGeant4 / TG4PhysicsList.h
CommitLineData
2817d3e2 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
14class TG4PhysicsListMessenger;
15
16class G4VProcess;
17
18class 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();
2817d3e2 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
84inline void TG4PhysicsList::SetOptical(G4bool optical)
85{ fSetOptical = optical; }
86
87inline void TG4PhysicsList::SetHadron(G4bool hadron)
88{ fSetHadron = hadron; }
89
90inline void TG4PhysicsList::SetSpecialCuts(G4bool specialCuts)
91{ fSetSpecialCuts = specialCuts; }
92
93inline void TG4PhysicsList::SetSpecialFlags(G4bool specialFlags)
94{ fSetSpecialFlags = specialFlags; }
95
96#endif //TG4_PHYSICS_LIST_H
97