Skip to content
Snippets Groups Projects
Commit a0a9edff authored by Tim Williams's avatar Tim Williams
Browse files

Updated LHCbG4PhysLists/G4EmStandardPhysics_option1NoApplyCuts to be inline...

Updated LHCbG4PhysLists/G4EmStandardPhysics_option1NoApplyCuts to be inline with emstandard_option1 from G4 v10.3.3
parent 4b9bdfb2
No related branches found
No related tags found
2 merge requests!33Release of v104r1,!30Updated option1noapplycuts physics list to be inline with emstandard_option1 from G4 v10.3.3
...@@ -23,11 +23,11 @@ ...@@ -23,11 +23,11 @@
// * acceptance of all terms of the Geant4 Software license. * // * acceptance of all terms of the Geant4 Software license. *
// ******************************************************************** // ********************************************************************
// //
// $Id$ // $Id: G4EmStandardPhysics_option1.hh 98736 2016-08-09 10:55:12Z gcosmo $
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
// ClassName: G4EmStandardPhysics_option1NoApplyCuts // ClassName: G4EmStandardPhysics_option1
// //
// Author: V.Ivanchenko 09.11.2005 // Author: V.Ivanchenko 09.11.2005
// //
...@@ -55,15 +55,12 @@ class G4EmStandardPhysics_option1NoApplyCuts : public G4VPhysicsConstructor ...@@ -55,15 +55,12 @@ class G4EmStandardPhysics_option1NoApplyCuts : public G4VPhysicsConstructor
{ {
public: public:
G4EmStandardPhysics_option1NoApplyCuts(G4int ver = 1); explicit G4EmStandardPhysics_option1NoApplyCuts(G4int ver=1, const G4String& name="");
// obsolete
G4EmStandardPhysics_option1NoApplyCuts(G4int ver, const G4String& name);
virtual ~G4EmStandardPhysics_option1NoApplyCuts(); virtual ~G4EmStandardPhysics_option1NoApplyCuts();
void ConstructParticle() override; virtual void ConstructParticle();
void ConstructProcess() override; virtual void ConstructProcess();
private: private:
G4int verbose; G4int verbose;
......
...@@ -23,11 +23,11 @@ ...@@ -23,11 +23,11 @@
// * acceptance of all terms of the Geant4 Software license. * // * acceptance of all terms of the Geant4 Software license. *
// ******************************************************************** // ********************************************************************
// //
// $Id$ // $Id: G4EmStandardPhysics_option1.cc 99938 2016-10-12 08:06:52Z gcosmo $
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
// ClassName: G4EmStandardPhysics_option1NoApplyCuts // ClassName: G4EmStandardPhysics_option1
// //
// Author: V.Ivanchenko 09.11.2005 // Author: V.Ivanchenko 09.11.2005
// //
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
#include "Geant4/G4SystemOfUnits.hh" #include "Geant4/G4SystemOfUnits.hh"
#include "Geant4/G4ParticleDefinition.hh" #include "Geant4/G4ParticleDefinition.hh"
#include "Geant4/G4LossTableManager.hh" #include "Geant4/G4LossTableManager.hh"
#include "Geant4/G4EmProcessOptions.hh" #include "Geant4/G4EmParameters.hh"
#include "Geant4/G4ComptonScattering.hh" #include "Geant4/G4ComptonScattering.hh"
#include "Geant4/G4GammaConversion.hh" #include "Geant4/G4GammaConversion.hh"
...@@ -102,9 +102,9 @@ ...@@ -102,9 +102,9 @@
#include "Geant4/G4Alpha.hh" #include "Geant4/G4Alpha.hh"
#include "Geant4/G4GenericIon.hh" #include "Geant4/G4GenericIon.hh"
#include "Geant4/G4VUserPhysicsList.hh"
#include "Geant4/G4PhysicsListHelper.hh" #include "Geant4/G4PhysicsListHelper.hh"
#include "Geant4/G4BuilderType.hh" #include "Geant4/G4BuilderType.hh"
#include "Geant4/G4EmModelActivator.hh"
// factory // factory
#include "Geant4/G4PhysicsConstructorFactory.hh" #include "Geant4/G4PhysicsConstructorFactory.hh"
...@@ -113,20 +113,16 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option1NoApplyCuts); ...@@ -113,20 +113,16 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option1NoApplyCuts);
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4EmStandardPhysics_option1NoApplyCuts::G4EmStandardPhysics_option1NoApplyCuts(G4int ver) G4EmStandardPhysics_option1NoApplyCuts::G4EmStandardPhysics_option1NoApplyCuts(G4int ver,
const G4String&)
: G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver) : G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver)
{ {
G4LossTableManager::Instance(); G4EmParameters* param = G4EmParameters::Instance();
SetPhysicsType(bElectromagnetic); param->SetDefaults();
// std::cout<<"This is the v9.6 option 1 physics list with ApplyCuts option commented out"<<std::endl; param->SetVerbose(verbose);
} param->SetApplyCuts(false); //LHCb Specific modification, don't apply prodcution cuts for specific processes
param->SetMscRangeFactor(0.2);
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... param->SetMscStepLimitType(fMinimal);
G4EmStandardPhysics_option1NoApplyCuts::G4EmStandardPhysics_option1NoApplyCuts(G4int ver, const G4String&)
: G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver)
{
G4LossTableManager::Instance();
SetPhysicsType(bElectromagnetic); SetPhysicsType(bElectromagnetic);
} }
...@@ -139,26 +135,26 @@ G4EmStandardPhysics_option1NoApplyCuts::~G4EmStandardPhysics_option1NoApplyCuts( ...@@ -139,26 +135,26 @@ G4EmStandardPhysics_option1NoApplyCuts::~G4EmStandardPhysics_option1NoApplyCuts(
void G4EmStandardPhysics_option1NoApplyCuts::ConstructParticle() void G4EmStandardPhysics_option1NoApplyCuts::ConstructParticle()
{ {
// gamma // gamma
G4Gamma::Gamma(); G4Gamma::Gamma();
// leptons // leptons
G4Electron::Electron(); G4Electron::Electron();
G4Positron::Positron(); G4Positron::Positron();
G4MuonPlus::MuonPlus(); G4MuonPlus::MuonPlus();
G4MuonMinus::MuonMinus(); G4MuonMinus::MuonMinus();
// mesons // mesons
G4PionPlus::PionPlusDefinition(); G4PionPlus::PionPlusDefinition();
G4PionMinus::PionMinusDefinition(); G4PionMinus::PionMinusDefinition();
G4KaonPlus::KaonPlusDefinition(); G4KaonPlus::KaonPlusDefinition();
G4KaonMinus::KaonMinusDefinition(); G4KaonMinus::KaonMinusDefinition();
// barions // barions
G4Proton::Proton(); G4Proton::Proton();
G4AntiProton::AntiProton(); G4AntiProton::AntiProton();
// ions // ions
G4Deuteron::Deuteron(); G4Deuteron::Deuteron();
G4Triton::Triton(); G4Triton::Triton();
G4He3::He3(); G4He3::He3();
...@@ -170,6 +166,9 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructParticle() ...@@ -170,6 +166,9 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructParticle()
void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess() void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
{ {
if(verbose > 1) {
G4cout << "### " << GetPhysicsName() << " Construct Processes " << G4endl;
}
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
// muon & hadron bremsstrahlung and pair production // muon & hadron bremsstrahlung and pair production
...@@ -185,26 +184,31 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess() ...@@ -185,26 +184,31 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
// muon & hadron multiple scattering // muon & hadron multiple scattering
G4MuMultipleScattering* mumsc = new G4MuMultipleScattering(); G4MuMultipleScattering* mumsc = new G4MuMultipleScattering();
mumsc->AddEmModel(0, new G4WentzelVIModel()); mumsc->AddEmModel(0, new G4WentzelVIModel());
G4CoulombScattering* muss = new G4CoulombScattering();
G4MuMultipleScattering* pimsc = new G4MuMultipleScattering(); G4MuMultipleScattering* pimsc = new G4MuMultipleScattering();
pimsc->AddEmModel(0, new G4WentzelVIModel()); pimsc->AddEmModel(0, new G4WentzelVIModel());
G4CoulombScattering* piss = new G4CoulombScattering();
G4MuMultipleScattering* kmsc = new G4MuMultipleScattering(); G4MuMultipleScattering* kmsc = new G4MuMultipleScattering();
kmsc->AddEmModel(0, new G4WentzelVIModel()); kmsc->AddEmModel(0, new G4WentzelVIModel());
G4CoulombScattering* kss = new G4CoulombScattering();
G4MuMultipleScattering* pmsc = new G4MuMultipleScattering(); G4MuMultipleScattering* pmsc = new G4MuMultipleScattering();
pmsc->AddEmModel(0, new G4WentzelVIModel()); pmsc->AddEmModel(0, new G4WentzelVIModel());
G4CoulombScattering* pss = new G4CoulombScattering();
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc"); G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
// high energy limit for e+- scattering models and bremsstrahlung // high energy limit for e+- scattering models and bremsstrahlung
G4double highEnergyLimit = 100*MeV; G4double highEnergyLimit = 100*MeV;
// Add standard EM Processes // Add standard EM Processes
auto particleIterator = GetParticleIterator(); auto myParticleIterator=GetParticleIterator();
particleIterator->reset(); myParticleIterator->reset();
while( (*particleIterator)() ){ while( (*myParticleIterator)() ){
G4ParticleDefinition* particle = particleIterator->value(); G4ParticleDefinition* particle = myParticleIterator->value();
G4String particleName = particle->GetParticleName(); G4String particleName = particle->GetParticleName();
if(verbose > 1)
G4cout << "### " << GetPhysicsName() << " instantiates for "
<< particleName << G4endl;
if (particleName == "gamma") { if (particleName == "gamma") {
...@@ -218,9 +222,9 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess() ...@@ -218,9 +222,9 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
eioni->SetStepFunction(0.8, 1.0*mm); eioni->SetStepFunction(0.8, 1.0*mm);
G4eMultipleScattering* msc = new G4eMultipleScattering; G4eMultipleScattering* msc = new G4eMultipleScattering;
msc->SetStepLimitType(fMinimal);
G4UrbanMscModel* msc1 = new G4UrbanMscModel(); G4UrbanMscModel* msc1 = new G4UrbanMscModel();
G4WentzelVIModel* msc2 = new G4WentzelVIModel(); G4WentzelVIModel* msc2 = new G4WentzelVIModel();
msc1->SetNewDisplacementFlag(false);
msc1->SetHighEnergyLimit(highEnergyLimit); msc1->SetHighEnergyLimit(highEnergyLimit);
msc2->SetLowEnergyLimit(highEnergyLimit); msc2->SetLowEnergyLimit(highEnergyLimit);
msc->AddEmModel(0, msc1); msc->AddEmModel(0, msc1);
...@@ -244,9 +248,9 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess() ...@@ -244,9 +248,9 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
eioni->SetStepFunction(0.8, 1.0*mm); eioni->SetStepFunction(0.8, 1.0*mm);
G4eMultipleScattering* msc = new G4eMultipleScattering; G4eMultipleScattering* msc = new G4eMultipleScattering;
msc->SetStepLimitType(fMinimal);
G4UrbanMscModel* msc1 = new G4UrbanMscModel(); G4UrbanMscModel* msc1 = new G4UrbanMscModel();
G4WentzelVIModel* msc2 = new G4WentzelVIModel(); G4WentzelVIModel* msc2 = new G4WentzelVIModel();
msc1->SetNewDisplacementFlag(false);
msc1->SetHighEnergyLimit(highEnergyLimit); msc1->SetHighEnergyLimit(highEnergyLimit);
msc2->SetLowEnergyLimit(highEnergyLimit); msc2->SetLowEnergyLimit(highEnergyLimit);
msc->AddEmModel(0, msc1); msc->AddEmModel(0, msc1);
...@@ -272,7 +276,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess() ...@@ -272,7 +276,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4MuIonisation(), particle); ph->RegisterProcess(new G4MuIonisation(), particle);
ph->RegisterProcess(mub, particle); ph->RegisterProcess(mub, particle);
ph->RegisterProcess(mup, particle); ph->RegisterProcess(mup, particle);
ph->RegisterProcess(new G4CoulombScattering(), particle); ph->RegisterProcess(muss, particle);
} else if (particleName == "alpha" || } else if (particleName == "alpha" ||
particleName == "He3" ) { particleName == "He3" ) {
...@@ -294,6 +298,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess() ...@@ -294,6 +298,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4hIonisation(), particle); ph->RegisterProcess(new G4hIonisation(), particle);
ph->RegisterProcess(pib, particle); ph->RegisterProcess(pib, particle);
ph->RegisterProcess(pip, particle); ph->RegisterProcess(pip, particle);
ph->RegisterProcess(piss, particle);
} else if (particleName == "kaon+" || } else if (particleName == "kaon+" ||
particleName == "kaon-" ) { particleName == "kaon-" ) {
...@@ -303,6 +308,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess() ...@@ -303,6 +308,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4hIonisation(), particle); ph->RegisterProcess(new G4hIonisation(), particle);
ph->RegisterProcess(kb, particle); ph->RegisterProcess(kb, particle);
ph->RegisterProcess(kp, particle); ph->RegisterProcess(kp, particle);
ph->RegisterProcess(kss, particle);
// } else if (particleName == "proton" ) { // } else if (particleName == "proton" ) {
} else if (particleName == "proton" || } else if (particleName == "proton" ||
...@@ -313,6 +319,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess() ...@@ -313,6 +319,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4hIonisation(), particle); ph->RegisterProcess(new G4hIonisation(), particle);
ph->RegisterProcess(pb, particle); ph->RegisterProcess(pb, particle);
ph->RegisterProcess(pp, particle); ph->RegisterProcess(pp, particle);
ph->RegisterProcess(pss, particle);
} else if (particleName == "B+" || } else if (particleName == "B+" ||
particleName == "B-" || particleName == "B-" ||
...@@ -349,15 +356,13 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess() ...@@ -349,15 +356,13 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4hIonisation(), particle); ph->RegisterProcess(new G4hIonisation(), particle);
} }
} }
G4EmProcessOptions opt;
opt.SetVerbose(verbose);
opt.SetPolarAngleLimit(CLHEP::pi);
//opt.SetApplyCuts(true);
// Deexcitation // Deexcitation
// //
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation(); G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
G4LossTableManager::Instance()->SetAtomDeexcitation(de); G4LossTableManager::Instance()->SetAtomDeexcitation(de);
G4EmModelActivator mact(GetPhysicsName());
} }
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment