00001 00009 #ifndef BDSPhysicsList_h 00010 #define BDSPhysicsList_h 00011 00012 #include "G4VModularPhysicsList.hh" 00013 #include "globals.hh" 00014 00015 #define kNuCut 5*m 00016 00017 class BDSPhysicsList: public G4VUserPhysicsList 00018 { 00019 public: 00020 BDSPhysicsList(); 00021 virtual ~BDSPhysicsList(); 00022 00023 public: 00024 00025 void AddParallelWorldName(G4String& pname) 00026 {paraWorldName.push_back(pname);} 00027 00028 00029 void AddScoringProcess(); 00030 00031 void AddParameterisation(); 00032 00033 void ConstructParticle(); 00034 void ConstructProcess(); 00035 00036 void SetCuts(); 00037 00038 // construct particular physics list processes 00039 00040 void ConstructEM(); 00041 void ConstructEMSingleScatter(); 00042 void ConstructEMMisc(); 00043 void ConstructMultipleScattering(); 00044 void ConstructCoulombScattering(); 00045 00046 void ConstructEM_LPB(); //added by M.D. Salt, R.B. Appleby, 15/10/09 00047 00048 void ConstructMuon(); 00049 00050 void ConstructMuon_LPB(); 00051 00052 void ConstructMuon_XSBias(); 00053 00054 void ConstructMerlin(); 00055 00056 void ConstructEM_Low_Energy(); 00057 00058 void ConstructSR(); 00059 00060 void ConstructLaserWire(); 00061 00062 void ConstructHadronic(); 00063 00064 // void ConstructPhotolepton_Hadron(); 00065 00066 void ConstructHad(); 00067 00068 void ConstructQGSP(); 00069 00070 void ConstructDecay(); 00071 00072 private: 00073 G4bool verbose; 00074 00075 std::vector<G4String> paraWorldName; 00076 }; 00077 00078 #endif 00079 00080 00081