/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/TrkExtAlg/TrkExtAlg-00-00-64/src/ExtPhysicsList.cxx

Go to the documentation of this file.
00001 //
00002 //File: ExtPhysicsList.cc
00003 //Date: 2005.3.9
00004 //Author: L.L.Wang
00005 //
00006 
00007 #include "TrkExtAlg/ExtPhysicsList.h"
00008 
00009 #include "TrkExtAlg/ExthIonisation.h"
00010 #include "TrkExtAlg/ExteIonisation.h"
00011 #include "TrkExtAlg/ExtMuIonisation.h"
00012 //#include "TrkExtAlg/ExtMultipleScattering.h"
00013 
00014 #include "G4ParticleTypes.hh"
00015 
00016 #include "G4MultipleScattering.hh"
00017 #include "G4eIonisation.hh"
00018 #include "G4eBremsstrahlung.hh"
00019 #include "G4MuIonisation.hh"
00020 #include "G4MuBremsstrahlung.hh"
00021 #include "G4hIonisation.hh"
00022 
00023 #include "G4ProcessManager.hh"
00024   
00025 ExtPhysicsList::ExtPhysicsList()
00026 {
00027         defaultCutValue = 0.5*mm;
00028 }
00029 
00030 ExtPhysicsList::~ExtPhysicsList(){;}
00031 
00032 void ExtPhysicsList::ConstructParticle()
00033 {
00034      // In this method, static member functions should be called
00035      // for all particles which you want to use.
00036      // This ensures that objects of these particle types will be
00037      // created in the program.
00038    G4Gamma:: GammaDefinition();
00039    G4Electron:: ElectronDefinition();
00040    G4Positron:: PositronDefinition();
00041    G4MuonPlus:: MuonPlusDefinition();
00042    G4MuonMinus:: MuonMinusDefinition();
00043    G4PionPlus:: PionPlusDefinition();
00044    G4PionMinus:: PionMinusDefinition();
00045    G4KaonPlus:: KaonPlusDefinition();
00046    G4KaonMinus:: KaonMinusDefinition();
00047    G4Proton:: ProtonDefinition();
00048    G4AntiProton:: AntiProtonDefinition();
00049 }
00050  
00051 
00052 void ExtPhysicsList::ConstructProcess()
00053 {
00054    // Define transportation process (must be invoked)
00055    AddTransportation();
00056    
00057    //Add Energy Loss Process
00058    theParticleIterator->reset();
00059    while( (*theParticleIterator)() )
00060      {
00061         G4ParticleDefinition* particle = theParticleIterator->value();
00062         G4ProcessManager* pmanager = particle->GetProcessManager();
00063         G4String particleName = particle->GetParticleName();
00064         if(particleName == "e-" || particleName == "e+")
00065           {
00066 //           pmanager->AddProcess( new G4MultipleScattering,-1,1,1);
00067 //           pmanager->AddProcess( new G4eIonisation,-1,2,2);
00068              pmanager->AddProcess( new ExteIonisation,-1,1,1);
00069 //           pmanager->AddProcess( new G4eBremsstrahlung,-1,2,2);
00070           }
00071         else if(particleName == "mu-" || particleName == "mu+")
00072           {
00073 //           pmanager->AddProcess( new G4MultipleScattering,-1,1,1);
00074 //           pmanager->AddProcess( new G4MuIonisation,-1,2,2);
00075              pmanager->AddProcess( new ExtMuIonisation,-1,1,1);
00076 //           pmanager->AddProcess( new G4MuBremsstrahlung,-1,2,2);
00077           }
00078         else if((!particle->IsShortLived()) &&  (particle->GetPDGCharge() != 0.0) && (particleName != "chargedgeantino"))
00079           {
00080 //           pmanager->AddProcess( new G4MultipleScattering,-1,1,1);
00081 //           pmanager->AddProcess( new G4hIonisation,-1,2,2);
00082 //           pmanager->AddProcess( new ExtMultipleScattering,-1,1,1);
00083              pmanager->AddProcess( new ExthIonisation,-1,1,1);          
00084           }
00085      }
00086 }
00087 
00088 
00089 void ExtPhysicsList::SetCuts()
00090 {
00091    // " G4VUserPhysicsList::SetCutsWithDefault" method sets
00092    //   the default cut value for all particle types 
00093    SetCutsWithDefault();
00094 
00095 } 

Generated on Tue Nov 29 23:14:12 2016 for BOSS_7.0.2 by  doxygen 1.4.7