![]() |
Precalibrated Ion Beam Identification Detector Simulation 1.0
A pilot study detector simulation, written in C++ with Geant4.
|
00001 00002 #include "globals.hh" 00003 #include "G4ParticleDefinition.hh" 00004 #include "G4ParticleWithCuts.hh" 00005 #include "G4ProcessManager.hh" 00006 #include "G4ProcessVector.hh" 00007 #include "G4ParticleTypes.hh" 00008 #include "G4ParticleTable.hh" 00009 00010 #include "G4Material.hh" 00011 #include "G4MaterialTable.hh" 00012 #include "G4ios.hh" 00013 #include <iomanip> 00014 00015 #include "G4DecayPhysics.hh" 00016 #include "G4EmStandardPhysics.hh" 00017 #include "G4EmExtraPhysics.hh" 00018 #include "G4IonPhysics.hh" 00019 #include "G4RadioactiveDecayPhysics.hh" 00020 #include "G4QStoppingPhysics.hh" 00021 #include "G4HadronElasticPhysics.hh" 00022 #include "G4NeutronTrackingCut.hh" 00023 #include "G4EmStandardFysik.hh" 00024 00025 #include "G4DataQuestionaire.hh" 00026 #include "HadronPhysicsQGSP_BERT.hh" 00027 00028 template<class T> MyPhysicsList<T>::MyPhysicsList(G4int ver): T() 00029 { 00030 00031 G4DataQuestionaire it(photon); 00032 G4cout << "APAAPAAPA"<<G4endl; 00033 G4cout <<G4endl; 00034 00035 this->defaultCutValue = 0.7*mm; 00036 this->SetVerboseLevel(ver); 00037 00038 // EM Physics 00039 this->RegisterPhysics( new G4EmStandardPhysics(ver)); 00040 00041 // Synchroton Radiation & GN Physics 00042 this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); 00043 00044 // Decays 00045 this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); 00046 00047 // Hadron Elastic scattering 00048 this-> RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false)); 00049 00050 // Hadron Physics 00051 G4bool quasiElastic; 00052 this->RegisterPhysics( new HadronPhysicsQGSP_BERT("hadron",quasiElastic=true)); 00053 00054 // Stopping Physics 00055 this->RegisterPhysics( new G4QStoppingPhysics("stopping")); 00056 00057 // Ion Physics 00058 this->RegisterPhysics( new G4IonPhysics("ion")); 00059 00060 // Neutron tracking cut 00061 this->RegisterPhysics( new G4NeutronTrackingCut("Neutron tracking cut", ver)); 00062 00063 // Radioactive decay physics 00064 this->RegisterPhysics(new G4RadioactiveDecayPhysics(5)); 00065 00066 } 00067 00068 template<class T> MyPhysicsList<T>::~MyPhysicsList() 00069 { 00070 } 00071 00072 template<class T> void MyPhysicsList<T>::SetCuts() 00073 { 00074 if (this->verboseLevel >1){ 00075 G4cout << "QGSP_BERT::SetCuts:"; 00076 } 00077 // " G4VUserPhysicsList::SetCutsWithDefault" method sets 00078 // the default cut value for all particle types 00079 00080 this->SetCutsWithDefault(); 00081 00082 // if (this->verboseLevel >0) 00083 // G4VUserPhysicsList::DumpCutValuesTable(); 00084 } 00085 00086 00087 00088 // 2002 by J.P. Wellisch