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
Branches EMPhysicsListUpdate
Tags
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 @@
// * 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
//
......@@ -55,15 +55,12 @@ class G4EmStandardPhysics_option1NoApplyCuts : public G4VPhysicsConstructor
{
public:
G4EmStandardPhysics_option1NoApplyCuts(G4int ver = 1);
// obsolete
G4EmStandardPhysics_option1NoApplyCuts(G4int ver, const G4String& name);
explicit G4EmStandardPhysics_option1NoApplyCuts(G4int ver=1, const G4String& name="");
virtual ~G4EmStandardPhysics_option1NoApplyCuts();
void ConstructParticle() override;
void ConstructProcess() override;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
......
......@@ -23,11 +23,11 @@
// * 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
//
......@@ -51,7 +51,7 @@
#include "Geant4/G4SystemOfUnits.hh"
#include "Geant4/G4ParticleDefinition.hh"
#include "Geant4/G4LossTableManager.hh"
#include "Geant4/G4EmProcessOptions.hh"
#include "Geant4/G4EmParameters.hh"
#include "Geant4/G4ComptonScattering.hh"
#include "Geant4/G4GammaConversion.hh"
......@@ -102,9 +102,9 @@
#include "Geant4/G4Alpha.hh"
#include "Geant4/G4GenericIon.hh"
#include "Geant4/G4VUserPhysicsList.hh"
#include "Geant4/G4PhysicsListHelper.hh"
#include "Geant4/G4BuilderType.hh"
#include "Geant4/G4EmModelActivator.hh"
// factory
#include "Geant4/G4PhysicsConstructorFactory.hh"
......@@ -113,20 +113,16 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option1NoApplyCuts);
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4EmStandardPhysics_option1NoApplyCuts::G4EmStandardPhysics_option1NoApplyCuts(G4int ver)
G4EmStandardPhysics_option1NoApplyCuts::G4EmStandardPhysics_option1NoApplyCuts(G4int ver,
const G4String&)
: G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver)
{
G4LossTableManager::Instance();
SetPhysicsType(bElectromagnetic);
// std::cout<<"This is the v9.6 option 1 physics list with ApplyCuts option commented out"<<std::endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4EmStandardPhysics_option1NoApplyCuts::G4EmStandardPhysics_option1NoApplyCuts(G4int ver, const G4String&)
: G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver)
{
G4LossTableManager::Instance();
G4EmParameters* param = G4EmParameters::Instance();
param->SetDefaults();
param->SetVerbose(verbose);
param->SetApplyCuts(false); //LHCb Specific modification, don't apply prodcution cuts for specific processes
param->SetMscRangeFactor(0.2);
param->SetMscStepLimitType(fMinimal);
SetPhysicsType(bElectromagnetic);
}
......@@ -139,26 +135,26 @@ G4EmStandardPhysics_option1NoApplyCuts::~G4EmStandardPhysics_option1NoApplyCuts(
void G4EmStandardPhysics_option1NoApplyCuts::ConstructParticle()
{
// gamma
// gamma
G4Gamma::Gamma();
// leptons
// leptons
G4Electron::Electron();
G4Positron::Positron();
G4MuonPlus::MuonPlus();
G4MuonMinus::MuonMinus();
// mesons
// mesons
G4PionPlus::PionPlusDefinition();
G4PionMinus::PionMinusDefinition();
G4KaonPlus::KaonPlusDefinition();
G4KaonMinus::KaonMinusDefinition();
// barions
// barions
G4Proton::Proton();
G4AntiProton::AntiProton();
// ions
// ions
G4Deuteron::Deuteron();
G4Triton::Triton();
G4He3::He3();
......@@ -170,6 +166,9 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructParticle()
void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
{
if(verbose > 1) {
G4cout << "### " << GetPhysicsName() << " Construct Processes " << G4endl;
}
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
// muon & hadron bremsstrahlung and pair production
......@@ -185,26 +184,31 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
// muon & hadron multiple scattering
G4MuMultipleScattering* mumsc = new G4MuMultipleScattering();
mumsc->AddEmModel(0, new G4WentzelVIModel());
G4CoulombScattering* muss = new G4CoulombScattering();
G4MuMultipleScattering* pimsc = new G4MuMultipleScattering();
pimsc->AddEmModel(0, new G4WentzelVIModel());
G4CoulombScattering* piss = new G4CoulombScattering();
G4MuMultipleScattering* kmsc = new G4MuMultipleScattering();
kmsc->AddEmModel(0, new G4WentzelVIModel());
G4CoulombScattering* kss = new G4CoulombScattering();
G4MuMultipleScattering* pmsc = new G4MuMultipleScattering();
pmsc->AddEmModel(0, new G4WentzelVIModel());
G4CoulombScattering* pss = new G4CoulombScattering();
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
// high energy limit for e+- scattering models and bremsstrahlung
G4double highEnergyLimit = 100*MeV;
// Add standard EM Processes
auto particleIterator = GetParticleIterator();
particleIterator->reset();
while( (*particleIterator)() ){
G4ParticleDefinition* particle = particleIterator->value();
auto myParticleIterator=GetParticleIterator();
myParticleIterator->reset();
while( (*myParticleIterator)() ){
G4ParticleDefinition* particle = myParticleIterator->value();
G4String particleName = particle->GetParticleName();
if(verbose > 1)
G4cout << "### " << GetPhysicsName() << " instantiates for "
<< particleName << G4endl;
if (particleName == "gamma") {
......@@ -218,9 +222,9 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
eioni->SetStepFunction(0.8, 1.0*mm);
G4eMultipleScattering* msc = new G4eMultipleScattering;
msc->SetStepLimitType(fMinimal);
G4UrbanMscModel* msc1 = new G4UrbanMscModel();
G4WentzelVIModel* msc2 = new G4WentzelVIModel();
msc1->SetNewDisplacementFlag(false);
msc1->SetHighEnergyLimit(highEnergyLimit);
msc2->SetLowEnergyLimit(highEnergyLimit);
msc->AddEmModel(0, msc1);
......@@ -244,9 +248,9 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
eioni->SetStepFunction(0.8, 1.0*mm);
G4eMultipleScattering* msc = new G4eMultipleScattering;
msc->SetStepLimitType(fMinimal);
G4UrbanMscModel* msc1 = new G4UrbanMscModel();
G4WentzelVIModel* msc2 = new G4WentzelVIModel();
msc1->SetNewDisplacementFlag(false);
msc1->SetHighEnergyLimit(highEnergyLimit);
msc2->SetLowEnergyLimit(highEnergyLimit);
msc->AddEmModel(0, msc1);
......@@ -272,7 +276,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4MuIonisation(), particle);
ph->RegisterProcess(mub, particle);
ph->RegisterProcess(mup, particle);
ph->RegisterProcess(new G4CoulombScattering(), particle);
ph->RegisterProcess(muss, particle);
} else if (particleName == "alpha" ||
particleName == "He3" ) {
......@@ -294,6 +298,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4hIonisation(), particle);
ph->RegisterProcess(pib, particle);
ph->RegisterProcess(pip, particle);
ph->RegisterProcess(piss, particle);
} else if (particleName == "kaon+" ||
particleName == "kaon-" ) {
......@@ -303,6 +308,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4hIonisation(), particle);
ph->RegisterProcess(kb, particle);
ph->RegisterProcess(kp, particle);
ph->RegisterProcess(kss, particle);
// } else if (particleName == "proton" ) {
} else if (particleName == "proton" ||
......@@ -313,6 +319,7 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4hIonisation(), particle);
ph->RegisterProcess(pb, particle);
ph->RegisterProcess(pp, particle);
ph->RegisterProcess(pss, particle);
} else if (particleName == "B+" ||
particleName == "B-" ||
......@@ -349,15 +356,13 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
ph->RegisterProcess(new G4hIonisation(), particle);
}
}
G4EmProcessOptions opt;
opt.SetVerbose(verbose);
opt.SetPolarAngleLimit(CLHEP::pi);
//opt.SetApplyCuts(true);
// Deexcitation
//
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
G4EmModelActivator mact(GetPhysicsName());
}
//....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