67 <<
"ParametrisedEMPhysics: GFlash Construct: "
68 << gem <<
" " << ghad;
69 G4FastSimulationManagerProcess * theFastSimulationManagerProcess =
70 new G4FastSimulationManagerProcess();
71 theParticleIterator->reset();
72 while ((*theParticleIterator)()) {
73 G4ParticleDefinition * particle = theParticleIterator->value();
74 G4ProcessManager * pmanager = particle->GetProcessManager();
75 G4String pname = particle->GetParticleName();
76 if(pname ==
"e-" || pname ==
"e+") {
77 pmanager->AddProcess(theFastSimulationManagerProcess, -1, -1, 1);
82 G4Region* aRegion = G4RegionStore::GetInstance()->GetRegion(
"EcalRegion");
86 <<
"ParametrisedEMPhysics::ConstructProcess: "
87 <<
"EcalRegion is not defined, GFlash will not be enabled for ECAL!";
98 G4Region* aRegion = G4RegionStore::GetInstance()->GetRegion(
"HcalRegion");
101 <<
"ParametrisedEMPhysics::ConstructProcess: "
102 <<
"HcalRegion is not defined, GFlash will not be enabled for HCAL!";
114 G4EmProcessOptions opt;
115 const G4int NREG = 6;
116 const G4String rname[NREG] = {
"EcalRegion",
"HcalRegion",
"MuonIron",
117 "PreshowerRegion",
"CastorRegion",
118 "DefaultRegionForTheWorld"};
119 G4double rrfact[NREG] = { 1.0 };
123 if(energyLim > 0.0) {
130 for(
int i=0;
i<NREG; ++
i) {
131 if(rrfact[
i] < 1.0) {
132 opt.ActivateSecondaryBiasing(
"eBrem",rname[
i],rrfact[i],energyLim);
134 <<
"ParametrisedEMPhysics: Russian Roulette"
135 <<
" for gamma Prob= " << rrfact[
i]
136 <<
" Elimit(MeV)= " << energyLim/CLHEP::MeV
137 <<
" inside " << rname[
i];
143 if(energyLim > 0.0) {
150 for(
int i=0;
i<NREG; ++
i) {
151 if(rrfact[
i] < 1.0) {
152 opt.ActivateSecondaryBiasing(
"eIoni",rname[
i],rrfact[i],energyLim);
153 opt.ActivateSecondaryBiasing(
"hIoni",rname[i],rrfact[i],energyLim);
160 <<
"ParametrisedEMPhysics: Russian Roulette"
161 <<
" for e- Prob= " << rrfact[
i]
162 <<
" Elimit(MeV)= " << energyLim/CLHEP::MeV
163 <<
" inside " << rname[
i];
173 if(eLimiter || rLimiter || pLimiter) {
174 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
176 if(eLimiter || rLimiter) {
ElectronLimiter * theElectronLimiter
T getParameter(std::string const &) const
void SetRangeCheckFlag(G4bool)
edm::ParameterSet theParSet
ElectronLimiter * thePositronLimiter
void SetFieldCheckFlag(G4bool)
GFlashEMShowerModel * theHadShowerModel
GFlashEMShowerModel * theEMShowerModel