]>
Commit | Line | Data |
---|---|---|
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 | ||
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(); | |
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 | ||
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 |