/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/src/BDSSynchRadPhysics.cc

00001 #include "BDSSynchRadPhysics.hh"
00002 #include "G4Gamma.hh"
00003 #include "G4ProcessManager.hh"
00004 #include "G4Version.hh"
00005 
00006 BDSSynchRadPhysics::BDSSynchRadPhysics():G4VPhysicsConstructor("BDSSynchRadPhysics"),
00007                                          _srProcess(NULL),_contSR(NULL),_wasActivated(false)
00008 {;}
00009 
00010 BDSSynchRadPhysics::~BDSSynchRadPhysics()
00011 {;}
00012 
00013 void BDSSynchRadPhysics::ConstructParticle(){
00014   G4Gamma::Gamma();
00015   G4Electron::Electron();
00016   G4Positron::Positron();    
00017   return;
00018 }
00019 
00020 void BDSSynchRadPhysics::ConstructProcess(){
00021   if(_wasActivated) return;
00022   _wasActivated=true;
00023   _srProcess = new BDSSynchrotronRadiation();
00024   _contSR= new BDSContinuousSR();
00025 
00026 #if G4VERSION_NUMBER < 1000
00027   theParticleTable = G4ParticleTable::GetParticleTable();
00028   theParticleIterator = theParticleTable->GetIterator();
00029   G4ParticleTable::G4PTblDicIterator* aParticleIterator = theParticleIterator;
00030 #endif
00031 
00032   aParticleIterator->reset();
00033   while( (*aParticleIterator)() ){
00034     G4ParticleDefinition* particle = aParticleIterator->value();
00035     G4ProcessManager* pmanager = particle->GetProcessManager();
00036     G4String particleName = particle->GetParticleName();
00037     if (particleName == "e-") {
00038       pmanager->AddProcess(_srProcess);
00039       pmanager->SetProcessOrderingToLast(_srProcess,idxPostStep);
00040       G4int idx = pmanager->AddProcess(_contSR);
00041       pmanager->SetProcessOrderingToLast(_contSR,idxPostStep);
00042       pmanager->SetProcessActivation(idx, false);
00043     }
00044     if (particleName == "e+") {
00045       pmanager->AddProcess(_srProcess);
00046       pmanager->SetProcessOrderingToLast(_srProcess,idxPostStep);
00047       G4int idx = pmanager->AddProcess(_contSR);
00048       pmanager->SetProcessOrderingToLast(_contSR,idxPostStep);
00049       pmanager->SetProcessActivation(idx, false);
00050     }
00051   }
00052   return;
00053 }
00054 
00055 

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7