00001
00002 #include "BesEMPhysics.hh"
00003
00004 #include "globals.hh"
00005 #include "G4ios.hh"
00006 #include <iomanip>
00007
00008
00009 BesEMPhysics::BesEMPhysics(const G4String& name)
00010 : G4VPhysicsConstructor(name)
00011 {
00012 }
00013
00014 BesEMPhysics::~BesEMPhysics()
00015 {
00016 }
00017
00018 #include "G4ParticleDefinition.hh"
00019 #include "G4ParticleTable.hh"
00020
00021 #include "G4Gamma.hh"
00022
00023 #include "G4Electron.hh"
00024 #include "G4Positron.hh"
00025
00026 #include "G4NeutrinoE.hh"
00027 #include "G4AntiNeutrinoE.hh"
00028
00029
00030
00031 void BesEMPhysics::ConstructParticle()
00032 {
00033
00034 G4Gamma::GammaDefinition();
00035
00036
00037 G4Electron::ElectronDefinition();
00038 G4Positron::PositronDefinition();
00039 G4NeutrinoE::NeutrinoEDefinition();
00040 G4AntiNeutrinoE::AntiNeutrinoEDefinition();
00041 }
00042
00043
00044 #include "G4ProcessManager.hh"
00045
00046
00047 void BesEMPhysics::ConstructProcess()
00048 {
00049 G4ProcessManager * pManager = 0;
00050
00051
00052 pManager = G4Gamma::Gamma()->GetProcessManager();
00053 pManager->AddDiscreteProcess(&thePhotoEffect);
00054 pManager->AddDiscreteProcess(&theComptonEffect);
00055 pManager->AddDiscreteProcess(&thePairProduction);
00056
00057
00058 pManager = G4Electron::Electron()->GetProcessManager();
00059
00060 pManager->AddProcess(&theElectronMultipleScattering, -1, 1, 1);
00061 pManager->AddProcess(&theElectronIonisation, -1, 2, 2);
00062 pManager->AddProcess(&theElectronBremsStrahlung, -1, 3, 3);
00063
00064
00065
00066 pManager = G4Positron::Positron()->GetProcessManager();
00067
00068 pManager->AddProcess(&thePositronMultipleScattering, -1, 1, 1);
00069 pManager->AddProcess(&thePositronIonisation, -1, 2, 2);
00070 pManager->AddProcess(&thePositronBremsStrahlung, -1, 3, 3);
00071 pManager->AddProcess(&theAnnihilation, 0,-1, 4);
00072 }