19#include <G4Neutron.hh>
20#include <G4ParticleDefinition.hh>
21#include <G4ProcessManager.hh>
22#include <G4VProcess.hh>
24#include <TMCProcess.h>
29 fSpecialCutsForGamma(0),
30 fSpecialCutsForElectron(0),
31 fSpecialCutsForChargedHadron(0),
32 fSpecialCutsForNeutralHadron(0),
33 fSpecialCutsForNeutron(0),
34 fSpecialCutsForMuon(0)
41 G4int theVerboseLevel,
const G4String& name)
43 fSpecialCutsForGamma(0),
44 fSpecialCutsForElectron(0),
45 fSpecialCutsForChargedHadron(0),
46 fSpecialCutsForNeutralHadron(0),
47 fSpecialCutsForNeutron(0),
48 fSpecialCutsForMuon(0)
93 auto aParticleIterator = GetParticleIterator();
94 aParticleIterator->reset();
95 while ((*aParticleIterator)()) {
99 if (!particle->GetProcessManager())
continue;
112 G4ProcessManager* pManager = particle->GetProcessManager();
113 switch (particleWSP) {
124 G4bool isNeutronWithKiller =
false;
125 if (particle == G4Neutron::Definition()) {
126 G4ProcessVector* processes = pManager->GetProcessList();
127 for (
size_t i = 0; i < processes->size(); ++i) {
128 if ((*processes)[i]->GetProcessName() ==
"nKiller") {
129 isNeutronWithKiller =
true;
134 if (isNeutronWithKiller) {
154 if (
VerboseLevel() > 0) G4cout <<
"### Special Cuts constructed. " << G4endl;
Definition of the TG4G3PhysicsManager class.
Definition of the TG4SpecialCutsPhysics class.
Definition of the TG4SpecialCutsFor* classes.
Provides a Geant3 way control to Geant4 physics.
G4String GetG3ParticleWSPName(G4int particleWSP) const
static TG4G3PhysicsManager * Instance()
TG4G3ParticleWSP GetG3ParticleWSP(G4ParticleDefinition *particle) const
Special process that activates kinetic energy cuts for charged hadrons.
Special process that activates kinetic energy cuts for e-.
Special process that activates kinetic energy cuts for gamma.
Special process that activates kinetic energy cuts for neutral hadrons.
Special process that activates kinetic energy cuts for neutrons,.
TG4SpecialCutsForElectron * fSpecialCutsForElectron
the special cuts process for e-
virtual void ConstructProcess()
Construct physics processes.
TG4SpecialCutsForNeutralHadron * fSpecialCutsForNeutralHadron
the special cuts process for neutral hadron
TG4SpecialCutsPhysics(const G4String &name="SpecialCuts")
virtual ~TG4SpecialCutsPhysics()
virtual void ConstructParticle()
Construct particles.
TG4SpecialCutsForChargedHadron * fSpecialCutsForChargedHadron
the special cuts process for charged hadron
TG4SpecialCutsForNeutron * fSpecialCutsForNeutron
the special cuts process for neutron
TG4SpecialCutsForMuon * fSpecialCutsForMuon
the special cuts process for muon
TG4SpecialCutsForGamma * fSpecialCutsForGamma
the special cuts process for gamma
Abstract base class for physics constructors with verbose.
virtual G4int VerboseLevel() const
TG4G3ParticleWSP
The particles types which a special process (cuts, controls) is applicable for.
@ kNofParticlesWSP
not a particle with a special control
@ kGamma
kPAIR, kCOMP, kPHOT, kPHIS
@ kElectron
kDRAY, kBREM, kMULS, kG3LOSS
@ kEplus
kDRAY, kBREM, kMULS, kG3LOSS, kANNI
@ kMuon
kDRAY, kBREM, kMULS, kG3LOSS, kMUNU
@ kChargedHadron
kDRAY, kMULS, kG3LOSS, kHADR,