4 // Physics list (mandatory) class.
6 // ExN04PhysicsList.hh, GEANT4 tag Name: geant4-01-01
8 #ifndef TG4_PHYSICS_LIST_H
9 #define TG4_PHYSICS_LIST_H
11 #include <G4VUserPhysicsList.hh>
14 class TG4PhysicsListMessenger;
18 class TG4PhysicsList: public G4VUserPhysicsList
22 TG4PhysicsList(const TG4PhysicsList& right);
23 virtual ~TG4PhysicsList();
26 TG4PhysicsList& operator=(const TG4PhysicsList& right);
29 void PrintAllProcesses() const;
30 void SetProcessActivation();
33 void SetOptical(G4bool optical);
34 void SetHadron(G4bool hadron);
35 void SetSpecialCuts(G4bool specialCuts);
36 void SetSpecialFlags(G4bool specialFlags);
40 // construct particle and physics
41 virtual void ConstructParticle();
42 virtual void ConstructProcess();
44 // construct physics processes and register them
45 void ConstructGeneral();
49 void ConstructNewSpecialCuts();
50 void ConstructSpecialCuts();
51 void ConstructSpecialFlags();
53 // construct all particles in each category
54 void ConstructAllBosons();
55 void ConstructAllLeptons();
56 void ConstructAllMesons();
57 void ConstructAllBaryons();
58 void ConstructAllIons();
59 void ConstructAllShortLiveds();
62 virtual void SetCuts();
66 G4VProcess* FindProcess(G4String processName) const;
68 // only for tests - to be removed
70 void InActivateProcess(G4String processName,
71 G4ParticleDefinition* particle);
75 G4bool fSetOptical; //optical processes control
76 G4bool fSetHadron; //hadron processes control
77 G4bool fSetSpecialCuts; //special cuts process control (under development)
78 G4bool fSetSpecialFlags;//special flags process control (under development)
80 TG4PhysicsListMessenger* fMessenger; //messenger
85 inline void TG4PhysicsList::SetOptical(G4bool optical)
86 { fSetOptical = optical; }
88 inline void TG4PhysicsList::SetHadron(G4bool hadron)
89 { fSetHadron = hadron; }
91 inline void TG4PhysicsList::SetSpecialCuts(G4bool specialCuts)
92 { fSetSpecialCuts = specialCuts; }
94 inline void TG4PhysicsList::SetSpecialFlags(G4bool specialFlags)
95 { fSetSpecialFlags = specialFlags; }
97 #endif //TG4_PHYSICS_LIST_H