#include <CMSEmStandardPhysicsLPM.h>
Public Member Functions | |
CMSEmStandardPhysicsLPM (const G4String &name, G4int ver) | |
virtual void | ConstructParticle () |
virtual void | ConstructProcess () |
virtual | ~CMSEmStandardPhysicsLPM () |
Private Attributes | |
G4int | verbose |
Definition at line 8 of file CMSEmStandardPhysicsLPM.h.
CMSEmStandardPhysicsLPM::CMSEmStandardPhysicsLPM | ( | const G4String & | name, |
G4int | ver | ||
) |
Definition at line 70 of file CMSEmStandardPhysicsLPM.cc.
CMSEmStandardPhysicsLPM::~CMSEmStandardPhysicsLPM | ( | ) | [virtual] |
Definition at line 75 of file CMSEmStandardPhysicsLPM.cc.
{}
void CMSEmStandardPhysicsLPM::ConstructParticle | ( | ) | [virtual] |
Definition at line 77 of file CMSEmStandardPhysicsLPM.cc.
References Gamma.
{ // gamma G4Gamma::Gamma(); // leptons G4Electron::Electron(); G4Positron::Positron(); G4MuonPlus::MuonPlus(); G4MuonMinus::MuonMinus(); G4TauMinus::TauMinusDefinition(); G4TauPlus::TauPlusDefinition(); // mesons G4PionPlus::PionPlusDefinition(); G4PionMinus::PionMinusDefinition(); G4KaonPlus::KaonPlusDefinition(); G4KaonMinus::KaonMinusDefinition(); G4DMesonMinus::DMesonMinusDefinition(); G4DMesonPlus::DMesonPlusDefinition(); G4BMesonMinus::BMesonMinusDefinition(); G4BMesonPlus::BMesonPlusDefinition(); // barions G4Proton::Proton(); G4AntiProton::AntiProton(); G4SigmaMinus::SigmaMinusDefinition(); G4AntiSigmaMinus::AntiSigmaMinusDefinition(); G4SigmaPlus::SigmaPlusDefinition(); G4AntiSigmaPlus::AntiSigmaPlusDefinition(); G4XiMinus::XiMinusDefinition(); G4AntiXiMinus::AntiXiMinusDefinition(); G4OmegaMinus::OmegaMinusDefinition(); G4AntiOmegaMinus::AntiOmegaMinusDefinition(); G4LambdacPlus::LambdacPlusDefinition(); G4AntiLambdacPlus::AntiLambdacPlusDefinition(); G4XicPlus::XicPlusDefinition(); G4AntiXicPlus::AntiXicPlusDefinition(); // ions G4Deuteron::Deuteron(); G4Triton::Triton(); G4He3::He3(); G4Alpha::Alpha(); G4GenericIon::GenericIonDefinition(); }
void CMSEmStandardPhysicsLPM::ConstructProcess | ( | ) | [virtual] |
Definition at line 123 of file CMSEmStandardPhysicsLPM.cc.
References conv, and text2workspace::mod.
{ // Add standard EM Processes theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); if(verbose > 1) G4cout << "### " << GetPhysicsName() << " instantiates for " << particleName << " at " << particle << G4endl; if (particleName == "gamma") { pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); pmanager->AddDiscreteProcess(new G4ComptonScattering); G4GammaConversion* conv = new G4GammaConversion(); G4PairProductionRelModel* mod = new G4PairProductionRelModel(); mod->SetLowEnergyLimit(100*GeV); conv->AddEmModel(0, mod); pmanager->AddDiscreteProcess(conv); } else if (particleName == "e-") { G4eIonisation* eioni = new G4eIonisation(); eioni->SetStepFunction(0.8, 1.0*mm); G4eMultipleScattering* msc = new G4eMultipleScattering; msc->SetStepLimitType(fMinimal); msc->AddEmModel(0,new CMSUrbanMscModel93()); G4eBremsstrahlung* ebrem = new G4eBremsstrahlung(); ebrem->SetEmModel(new G4SeltzerBergerModel95(), 1); ebrem->SetEmModel(new G4eBremsstrahlungRelModel95(), 2); ebrem->EmModel(2)->SetLowEnergyLimit(GeV); pmanager->AddProcess(msc, -1, 1, 1); pmanager->AddProcess(eioni, -1, 2, 2); pmanager->AddProcess(ebrem, -1,-3, 3); } else if (particleName == "e+") { G4eIonisation* eioni = new G4eIonisation(); eioni->SetStepFunction(0.8, 1.0*mm); G4eMultipleScattering* msc = new G4eMultipleScattering; msc->SetStepLimitType(fMinimal); msc->AddEmModel(0,new CMSUrbanMscModel93()); G4eBremsstrahlung* ebrem = new G4eBremsstrahlung(); ebrem->SetEmModel(new G4SeltzerBergerModel95(), 1); ebrem->SetEmModel(new G4eBremsstrahlungRelModel95(), 2); ebrem->EmModel(2)->SetLowEnergyLimit(GeV); pmanager->AddProcess(msc, -1, 1, 1); pmanager->AddProcess(eioni, -1, 2, 2); pmanager->AddProcess(ebrem, -1,-3, 3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); } else if (particleName == "mu+" || particleName == "mu-" ) { pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3); pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4); } else if (particleName == "alpha" || particleName == "He3" || particleName == "GenericIon") { pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); } else if (particleName == "pi+" || particleName == "kaon+" || particleName == "kaon-" || particleName == "proton" || particleName == "pi-" ) { pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); pmanager->AddProcess(new G4hIonisation, -1, 2, 2); pmanager->AddProcess(new G4hBremsstrahlung(), -1,-3, 3); pmanager->AddProcess(new G4hPairProduction(), -1,-4, 4); } else if (particleName == "B+" || particleName == "B-" || particleName == "D+" || particleName == "D-" || particleName == "Ds+" || particleName == "Ds-" || particleName == "anti_lambda_c+" || particleName == "anti_omega-" || particleName == "anti_proton" || particleName == "anti_sigma_c+" || particleName == "anti_sigma_c++" || particleName == "anti_sigma+" || particleName == "anti_sigma-" || particleName == "anti_xi_c+" || particleName == "anti_xi-" || particleName == "deuteron" || particleName == "lambda_c+" || particleName == "omega-" || particleName == "sigma_c+" || particleName == "sigma_c++" || particleName == "sigma+" || particleName == "sigma-" || particleName == "tau+" || particleName == "tau-" || particleName == "triton" || particleName == "xi_c+" || particleName == "xi-" ) { pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); pmanager->AddProcess(new G4hIonisation, -1, 2, 2); } } // Setup options // G4EmProcessOptions opt; opt.SetVerbose(verbose); // ApplyCuts // opt.SetApplyCuts(true); // Physics tables // opt.SetMinEnergy(100.*eV); opt.SetMaxEnergy(10.*TeV); opt.SetDEDXBinning(77); opt.SetLambdaBinning(77); }
G4int CMSEmStandardPhysicsLPM::verbose [private] |
Definition at line 18 of file CMSEmStandardPhysicsLPM.h.