musrPhysicsList Class Reference

#include <musrPhysicsList.hh>

List of all members.

Public Member Functions

 musrPhysicsList ()
 ~musrPhysicsList ()

Protected Member Functions

void ConstructParticle ()
void ConstructProcess ()
void SetCuts ()
void ConstructBosons ()
void ConstructLeptons ()
void ConstructMesons ()
void ConstructBaryons ()
void ConstructGeneral ()
void ConstructEM ()


Detailed Description

Definition at line 11 of file musrPhysicsList.hh.


Constructor & Destructor Documentation

musrPhysicsList::musrPhysicsList  ) 
 

Definition at line 19 of file musrPhysicsList.cc.

00019                                 :  G4VUserPhysicsList()
00020 {
00021   defaultCutValue = 1.0*cm;  
00022    SetVerboseLevel(0);
00023 }

musrPhysicsList::~musrPhysicsList  ) 
 

Definition at line 27 of file musrPhysicsList.cc.

00028 {}


Member Function Documentation

void musrPhysicsList::ConstructBaryons  )  [protected]
 

Definition at line 96 of file musrPhysicsList.cc.

Referenced by ConstructParticle().

00097 {
00098   //  baryons
00099   G4Proton::ProtonDefinition();
00100   G4AntiProton::AntiProtonDefinition();
00101 
00102   G4Neutron::NeutronDefinition();
00103   G4AntiNeutron::AntiNeutronDefinition();
00104 }

void musrPhysicsList::ConstructBosons  )  [protected]
 

Definition at line 43 of file musrPhysicsList.cc.

Referenced by ConstructParticle().

00044 {
00045   // pseudo-particles
00046   G4Geantino::GeantinoDefinition();
00047   G4ChargedGeantino::ChargedGeantinoDefinition();
00048 
00049   // gamma
00050   G4Gamma::GammaDefinition();
00051 }

void musrPhysicsList::ConstructEM  )  [protected]
 

pmanager->AddProcess(new G4UserSpecialCuts, -1,-1,3);

Definition at line 142 of file musrPhysicsList.cc.

Referenced by ConstructProcess().

00143 {
00144   theParticleIterator->reset();
00145   while( (*theParticleIterator)() ){
00146     G4ParticleDefinition* particle = theParticleIterator->value();
00147     G4ProcessManager* pmanager = particle->GetProcessManager();
00148     G4String particleName = particle->GetParticleName();
00149      
00150     if (particleName == "gamma") {
00151       // gamma         
00152       pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
00153       pmanager->AddDiscreteProcess(new G4ComptonScattering);
00154       pmanager->AddDiscreteProcess(new G4GammaConversion);
00155       
00156     } else if (particleName == "e-") {
00157       //electron
00158       pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
00159       pmanager->AddProcess(new G4eIonisation,       -1, 2,2);
00160       pmanager->AddProcess(new G4eBremsstrahlung,   -1, 3,3);      
00161 
00162     } else if (particleName == "e+") {
00163       //positron
00164       pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
00165       pmanager->AddProcess(new G4eIonisation,       -1, 2,2);
00166       pmanager->AddProcess(new G4eBremsstrahlung,   -1, 3,3);
00167       pmanager->AddProcess(new G4eplusAnnihilation,  0,-1,4);
00168 
00169     } else if( particleName == "mu+" || 
00170                particleName == "mu-"    ) {
00171       //muon  
00172 
00173       pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
00174       pmanager->AddProcess(new G4MuIonisation,      -1, 2,2);
00175       pmanager->AddProcess(new G4MuBremsstrahlung,  -1, 3,3);
00176       pmanager->AddProcess(new G4MuPairProduction,  -1, 4,4);       
00177       pmanager->AddProcess(new musrAtRestSpinRotation, 1, -1, -1);
00178       musrDecay* theDecayProcess = new musrDecay();
00179       pmanager->AddProcess(theDecayProcess);
00180       pmanager ->SetProcessOrderingToLast(theDecayProcess, idxAtRest);
00181       pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
00182 
00183      
00184     } else if ((!particle->IsShortLived()) &&
00185                (particle->GetPDGCharge() != 0.0) && 
00186                (particle->GetParticleName() != "chargedgeantino")) {
00187       //all others charged particles except geantino
00188       pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
00189       pmanager->AddProcess(new G4hIonisation,       -1, 2,2);
00191     }
00192   }
00193 }

void musrPhysicsList::ConstructGeneral  )  [protected]
 

Definition at line 198 of file musrPhysicsList.cc.

Referenced by ConstructProcess().

00199 {
00200 
00201 }

void musrPhysicsList::ConstructLeptons  )  [protected]
 

Definition at line 55 of file musrPhysicsList.cc.

Referenced by ConstructParticle().

00056 {
00057   // leptons
00058   //  e+/-
00059   G4Electron::ElectronDefinition();
00060   G4Positron::PositronDefinition();
00061   // mu+/-
00062   G4MuonPlus::MuonPlusDefinition();
00063   G4MuonMinus::MuonMinusDefinition();
00064   G4DecayTable* MuonPlusDecayTable = new G4DecayTable();
00065   MuonPlusDecayTable -> Insert(new musrMuonDecayChannel("mu+",1.00));
00066   G4MuonPlus::MuonPlusDefinition() -> SetDecayTable(MuonPlusDecayTable);
00067   // nu_e
00068   G4NeutrinoE::NeutrinoEDefinition();
00069   G4AntiNeutrinoE::AntiNeutrinoEDefinition();
00070   // nu_mu
00071   G4NeutrinoMu::NeutrinoMuDefinition();
00072   G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
00073 }

void musrPhysicsList::ConstructMesons  )  [protected]
 

Definition at line 77 of file musrPhysicsList.cc.

Referenced by ConstructParticle().

00078 {
00079   //  mesons
00080   //    light mesons
00081   G4PionPlus::PionPlusDefinition();
00082   G4PionMinus::PionMinusDefinition();
00083   G4PionZero::PionZeroDefinition();
00084   G4Eta::EtaDefinition();
00085   G4EtaPrime::EtaPrimeDefinition();
00086   G4KaonPlus::KaonPlusDefinition();
00087   G4KaonMinus::KaonMinusDefinition();
00088   G4KaonZero::KaonZeroDefinition();
00089   G4AntiKaonZero::AntiKaonZeroDefinition();
00090   G4KaonZeroLong::KaonZeroLongDefinition();
00091   G4KaonZeroShort::KaonZeroShortDefinition();
00092 }

void musrPhysicsList::ConstructParticle  )  [protected]
 

Definition at line 32 of file musrPhysicsList.cc.

References ConstructBaryons(), ConstructBosons(), ConstructLeptons(), and ConstructMesons().

00033 {
00034 
00035   ConstructBosons();
00036   ConstructLeptons();
00037   ConstructMesons();
00038   ConstructBaryons();
00039 }

void musrPhysicsList::ConstructProcess  )  [protected]
 

Definition at line 108 of file musrPhysicsList.cc.

References ConstructEM(), and ConstructGeneral().

00109 {
00110   AddTransportation();
00111   ConstructEM();
00112   ConstructGeneral();
00113 }

void musrPhysicsList::SetCuts  )  [protected]
 

Definition at line 205 of file musrPhysicsList.cc.

00206 {
00207   //G4VUserPhysicsList::SetCutsWithDefault method sets 
00208   //the default cut value for all particle types 
00209   //
00210   SetCutsWithDefault();
00211      
00212    if (verboseLevel>0) DumpCutValuesTable();
00213 }


The documentation for this class was generated from the following files:
Generated on Mon Mar 27 12:19:54 2006 for MUSR by  doxygen 1.4.6