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 ConstructSpecialCuts();
50 void ConstructSpecialFlags();
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();
61 virtual void SetCuts();
65 G4VProcess* FindProcess(G4String processName) const;
67 // only for tests - to be removed
69 void InActivateProcess(G4String processName,
70 G4ParticleDefinition* particle);
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)
79 TG4PhysicsListMessenger* fMessenger; //messenger
84 inline void TG4PhysicsList::SetOptical(G4bool optical)
85 { fSetOptical = optical; }
87 inline void TG4PhysicsList::SetHadron(G4bool hadron)
88 { fSetHadron = hadron; }
90 inline void TG4PhysicsList::SetSpecialCuts(G4bool specialCuts)
91 { fSetSpecialCuts = specialCuts; }
93 inline void TG4PhysicsList::SetSpecialFlags(G4bool specialFlags)
94 { fSetSpecialFlags = specialFlags; }
96 #endif //TG4_PHYSICS_LIST_H