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   
00045   // neutrino
00046   G4NeutrinoE::NeutrinoEDefinition();
00047   G4AntiNeutrinoE::AntiNeutrinoEDefinition();
00048   G4NeutrinoMu::NeutrinoMuDefinition();
00049   G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
00050 
00051   // proton+neutron  
00052   G4Proton::ProtonDefinition();
00053   G4Neutron::NeutronDefinition();
00054 }

void PhysicsList::ConstructProcess (  )  [protected]

Definition at line 58 of file PhysicsList.cc.

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

void PhysicsList::SetCuts (  )  [protected]

Definition at line 177 of file PhysicsList.cc.

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

void PhysicsList::ConstructEM (  )  [protected]

Definition at line 89 of file PhysicsList.cc.

Referenced by ConstructProcess().

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

void PhysicsList::ConstructDecay (  )  [protected]

Definition at line 137 of file PhysicsList.cc.

Referenced by ConstructProcess().

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

void PhysicsList::AddStepMax (  )  [protected]

Definition at line 159 of file PhysicsList.cc.

Referenced by ConstructProcess().

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


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

Generated on Fri Nov 21 10:21:31 2008 for jour4c by  doxygen 1.5.7.1