#include <CMSEmStandardPhysicsSync.h>
Public Member Functions | |
CMSEmStandardPhysicsSync (const G4String &name, G4int ver, G4bool type, std::string reg) | |
virtual void | ConstructParticle () |
virtual void | ConstructProcess () |
virtual | ~CMSEmStandardPhysicsSync () |
Private Attributes | |
std::string | region |
G4bool | srType |
G4int | verbose |
Definition at line 9 of file CMSEmStandardPhysicsSync.h.
CMSEmStandardPhysicsSync::CMSEmStandardPhysicsSync | ( | const G4String & | name, |
G4int | ver, | ||
G4bool | type, | ||
std::string | reg | ||
) |
CMSEmStandardPhysicsSync::~CMSEmStandardPhysicsSync | ( | ) | [virtual] |
Definition at line 74 of file CMSEmStandardPhysicsSync.cc.
{}
void CMSEmStandardPhysicsSync::ConstructParticle | ( | ) | [virtual] |
Definition at line 76 of file CMSEmStandardPhysicsSync.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 CMSEmStandardPhysicsSync::ConstructProcess | ( | ) | [virtual] |
Definition at line 122 of file CMSEmStandardPhysicsSync.cc.
References region, and srType.
{ // Add standard EM Processes G4Region* reg = 0; if (region != " ") { G4RegionStore* regStore = G4RegionStore::GetInstance(); reg = regStore->GetRegion(region, true); } theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); if(verbose > 1) G4cout << "### " << GetPhysicsName() << " instantiates for " << particleName << G4endl; if (particleName == "gamma") { pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); pmanager->AddDiscreteProcess(new G4ComptonScattering); pmanager->AddDiscreteProcess(new G4GammaConversion); } else if (particleName == "e-") { G4eIonisation* eioni = new G4eIonisation(); eioni->SetStepFunction(0.8, 1.0*mm); G4eMultipleScattering* msc = new G4eMultipleScattering; msc->SetStepLimitType(fMinimal); if (reg != 0) { G4UrbanMscModel93* msc_el = new G4UrbanMscModel93(); msc_el->SetRangeFactor(0.04); msc->AddEmModel(0,msc_el,reg); } pmanager->AddProcess(msc, -1, 1, 1); pmanager->AddProcess(eioni, -1, 2, 2); pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); if (srType) pmanager->AddProcess(new G4SynchrotronRadiation, -1,-1,4); else pmanager->AddProcess(new G4SynchrotronRadiationInMat, -1,-1,4); } else if (particleName == "e+") { G4eIonisation* eioni = new G4eIonisation(); eioni->SetStepFunction(0.8, 1.0*mm); G4eMultipleScattering* msc = new G4eMultipleScattering; msc->SetStepLimitType(fMinimal); if (reg != 0) { G4UrbanMscModel93* msc_pos = new G4UrbanMscModel93(); msc_pos->SetRangeFactor(0.04); msc->AddEmModel(0,msc_pos,reg); } pmanager->AddProcess(msc, -1, 1, 1); pmanager->AddProcess(eioni, -1, 2, 2); pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); if (srType) pmanager->AddProcess(new G4SynchrotronRadiation, -1,-1,5); else pmanager->AddProcess(new G4SynchrotronRadiationInMat, -1,-1,5); 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); }
std::string CMSEmStandardPhysicsSync::region [private] |
Definition at line 21 of file CMSEmStandardPhysicsSync.h.
Referenced by ConstructProcess().
G4bool CMSEmStandardPhysicsSync::srType [private] |
Definition at line 20 of file CMSEmStandardPhysicsSync.h.
Referenced by ConstructProcess().
G4int CMSEmStandardPhysicsSync::verbose [private] |
Definition at line 19 of file CMSEmStandardPhysicsSync.h.