PhysicsList Class Reference

#include <PhysicsList.hh>

Inheritance diagram for PhysicsList:

Inheritance graph
[legend]
Collaboration diagram for PhysicsList:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 PhysicsList ()
 ~PhysicsList ()

Protected Member Functions

void ConstructParticle ()
void ConstructProcess ()
void SetCuts ()
void ConstructEM ()
void ConstructDecay ()
void AddStepMax ()


Detailed Description

Definition at line 16 of file PhysicsList.hh.


Constructor & Destructor Documentation

PhysicsList::PhysicsList (  ) 

Definition at line 16 of file PhysicsList.cc.

00016                         :  G4VUserPhysicsList()
00017 {
00018   defaultCutValue = 1.0*mm;
00019   SetVerboseLevel(1);
00020 }

PhysicsList::~PhysicsList (  ) 

Definition at line 24 of file PhysicsList.cc.

00025 {}


Member Function Documentation

void PhysicsList::ConstructParticle (  )  [protected]

Definition at line 29 of file PhysicsList.cc.

00030 {
00031   // pseudo-particles
00032   G4Geantino::GeantinoDefinition();
00033 
00034   // gamma
00035   G4Gamma::GammaDefinition();
00036   
00037   // e+/-
00038   G4Electron::ElectronDefinition();
00039   G4Positron::PositronDefinition();
00040   
00041   // muon
00042   G4MuonPlus::MuonPlusDefinition();
00043   G4MuonMinus::MuonMinusDefinition();
00044   // neutrino
00045   G4NeutrinoE::NeutrinoEDefinition();
00046   G4AntiNeutrinoE::AntiNeutrinoEDefinition();
00047   G4NeutrinoMu::NeutrinoMuDefinition();
00048   G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
00049       
00050   // proton
00051   G4Proton::ProtonDefinition();
00052 
00053   // neutron
00054   G4Neutron::NeutronDefinition();
00055 }

void PhysicsList::ConstructProcess (  )  [protected]

Definition at line 59 of file PhysicsList.cc.

00060 {
00061   AddTransportation();
00062   ConstructEM();
00063   ConstructDecay();
00064 
00065   // step limitation (as a full process)
00066   //  
00067   AddStepMax();      
00068 }

void PhysicsList::SetCuts (  )  [protected]

Definition at line 175 of file PhysicsList.cc.

00176 {
00177   //G4VUserPhysicsList::SetCutsWithDefault method sets 
00178   //the default cut value for all particle types 
00179   //
00180   SetCutsWithDefault();
00181      
00182   if (verboseLevel>0) DumpCutValuesTable();
00183 }

void PhysicsList::ConstructEM (  )  [protected]

Definition at line 90 of file PhysicsList.cc.

Referenced by ConstructProcess().

00091 {
00092   theParticleIterator->reset();
00093   while( (*theParticleIterator)() ){
00094     G4ParticleDefinition* particle = theParticleIterator->value();
00095     G4ProcessManager* pmanager = particle->GetProcessManager();
00096     G4String particleName = particle->GetParticleName();
00097      
00098     if (particleName == "gamma") {
00099       // gamma         
00100       pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
00101       pmanager->AddDiscreteProcess(new G4ComptonScattering);
00102       pmanager->AddDiscreteProcess(new G4GammaConversion);
00103       
00104     } else if (particleName == "e-") {
00105       //electron
00106       pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
00107       pmanager->AddProcess(new G4eIonisation,        -1, 2,2);
00108       pmanager->AddProcess(new G4eBremsstrahlung,    -1, 3,3);      
00109 
00110     } else if (particleName == "e+") {
00111       //positron
00112       pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
00113       pmanager->AddProcess(new G4eIonisation,        -1, 2,2);
00114       pmanager->AddProcess(new G4eBremsstrahlung,    -1, 3,3);
00115       pmanager->AddProcess(new G4eplusAnnihilation,   0,-1,4);
00116 
00117     } else if( particleName == "mu+" || 
00118                particleName == "mu-"    ) {
00119       //muon  
00120       pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
00121       pmanager->AddProcess(new G4MuIonisation,       -1, 2,2);
00122       pmanager->AddProcess(new G4MuBremsstrahlung,   -1, 3,3);
00123       pmanager->AddProcess(new G4MuPairProduction,   -1, 4,4);
00124                   
00125     } else if (particle->GetPDGCharge() != 0.0) {
00126       pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
00127       pmanager->AddProcess(new G4hIonisation,        -1, 2,2);
00128     }
00129   }
00130 }

void PhysicsList::ConstructDecay (  )  [protected]

Definition at line 136 of file PhysicsList.cc.

Referenced by ConstructProcess().

00137 {
00138   // Add Decay Process
00139   G4Decay* theDecayProcess = new G4Decay();
00140   theParticleIterator->reset();
00141   while( (*theParticleIterator)() ){
00142     G4ParticleDefinition* particle = theParticleIterator->value();
00143     G4ProcessManager* pmanager = particle->GetProcessManager();
00144     if (theDecayProcess->IsApplicable(*particle)) { 
00145       pmanager ->AddProcess(theDecayProcess);
00146       // set ordering for PostStepDoIt and AtRestDoIt
00147       pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
00148       pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
00149     }
00150   }
00151   
00152 }//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

void PhysicsList::AddStepMax (  )  [protected]

Definition at line 156 of file PhysicsList.cc.

Referenced by ConstructProcess().

00157 {
00158   // Step limitation seen as a process
00159   G4StepLimiter* stepMaxProcess = new G4StepLimiter();
00160 
00161   theParticleIterator->reset();
00162   while ((*theParticleIterator)()){
00163       G4ParticleDefinition* particle = theParticleIterator->value();
00164       G4ProcessManager* pmanager = particle->GetProcessManager();
00165 
00166       if (particle->GetPDGCharge() != 0.0)
00167         {
00168           pmanager ->AddDiscreteProcess(stepMaxProcess);
00169         }
00170   }
00171 }


The documentation for this class was generated from the following files:

Generated on Fri Nov 21 10:21:36 2008 for jour4d by  doxygen 1.5.7.1