CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
ExtPhysicsList.cxx
Go to the documentation of this file.
1//
2//File: ExtPhysicsList.cc
3//Date: 2005.3.9
4//Author: L.L.Wang
5//
6
8
12//#include "TrkExtAlg/ExtMultipleScattering.h"
13
14#include "G4ParticleTypes.hh"
15
16#include "G4MultipleScattering.hh"
17#include "G4eIonisation.hh"
18#include "G4eBremsstrahlung.hh"
19#include "G4MuIonisation.hh"
20#include "G4MuBremsstrahlung.hh"
21#include "G4hIonisation.hh"
22
23#include "G4ProcessManager.hh"
24
26{
27 defaultCutValue = 0.5*mm;
28}
29
31
33{
34 // In this method, static member functions should be called
35 // for all particles which you want to use.
36 // This ensures that objects of these particle types will be
37 // created in the program.
38 G4Gamma:: GammaDefinition();
39 G4Electron:: ElectronDefinition();
40 G4Positron:: PositronDefinition();
41 G4MuonPlus:: MuonPlusDefinition();
42 G4MuonMinus:: MuonMinusDefinition();
43 G4PionPlus:: PionPlusDefinition();
44 G4PionMinus:: PionMinusDefinition();
45 G4KaonPlus:: KaonPlusDefinition();
46 G4KaonMinus:: KaonMinusDefinition();
47 G4Proton:: ProtonDefinition();
48 G4AntiProton:: AntiProtonDefinition();
49}
50
51
53{
54 // Define transportation process (must be invoked)
55 AddTransportation();
56
57 //Add Energy Loss Process
58 theParticleIterator->reset();
59 while( (*theParticleIterator)() )
60 {
61 G4ParticleDefinition* particle = theParticleIterator->value();
62 G4ProcessManager* pmanager = particle->GetProcessManager();
63 G4String particleName = particle->GetParticleName();
64 if(particleName == "e-" || particleName == "e+")
65 {
66// pmanager->AddProcess( new G4MultipleScattering,-1,1,1);
67// pmanager->AddProcess( new G4eIonisation,-1,2,2);
68 pmanager->AddProcess( new ExteIonisation,-1,1,1);
69// pmanager->AddProcess( new G4eBremsstrahlung,-1,2,2);
70 }
71 else if(particleName == "mu-" || particleName == "mu+")
72 {
73// pmanager->AddProcess( new G4MultipleScattering,-1,1,1);
74// pmanager->AddProcess( new G4MuIonisation,-1,2,2);
75 pmanager->AddProcess( new ExtMuIonisation,-1,1,1);
76// pmanager->AddProcess( new G4MuBremsstrahlung,-1,2,2);
77 }
78 else if((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && (particleName != "chargedgeantino"))
79 {
80// pmanager->AddProcess( new G4MultipleScattering,-1,1,1);
81// pmanager->AddProcess( new G4hIonisation,-1,2,2);
82// pmanager->AddProcess( new ExtMultipleScattering,-1,1,1);
83 pmanager->AddProcess( new ExthIonisation,-1,1,1);
84 }
85 }
86}
87
88
90{
91 // " G4VUserPhysicsList::SetCutsWithDefault" method sets
92 // the default cut value for all particle types
93 SetCutsWithDefault();
94
95}