#ifndef PHYSICS_HH #define PHYSICS_HH #include "G4VModularPhysicsList.hh" #include "G4EmStandardPhysics.hh" #include "G4OpticalPhysics.hh" #include "G4EmLivermorePhysics.hh" #include "G4EmPenelopePhysics.hh" #include "G4PenelopeIonisationModel.hh" #include "G4eIonisation.hh" #include "G4EmLowEPPhysics.hh" #include "G4EmStandardPhysics_option1.hh" // best CPU performance standard physics for LHC #include "G4EmStandardPhysics_option2.hh" // similar fast simulation #include "G4EmStandardPhysics_option3.hh" // best standard EM options - analog to "local" above #include "G4EmStandardPhysics_option4.hh" // best of GEANT4 ???. best current advanced EM options standard + lowenergy #include "G4EmStandardPhysicsSS.hh" // standard EM physics and single scattering model /* From geant4/source/physics_lists/builders: - "emstandard_opt0" recommended standard EM physics for LHC - "emstandard_opt1" best CPU performance standard physics for LHC - "emstandard_opt2" similar fast simulation - "emstandard_opt3" best standard EM options - analog to "local" above - "emstandard_opt4" best current advanced EM options standard + lowenergy - "emstandardWVI" standard EM physics and WentzelVI multiple scattering - "emstandardSS" standard EM physics and single scattering model - "emlivermore" low-energy EM physics using Livermore data - "empenelope" low-energy EM physics implementing Penelope models - "emlowenergy" low-energy EM physics implementing experimental low-energy models */ /* We create a new class MyPhysicsList, which inherits G4VModularPhysicsList to utilise the framework provided by G4 for various physical processes. Here in the header file, we declare our constructor and destructor of the class. In the *.cc file, we define what the constr/destr actually do. */ // What are constructors? -> a function that is automatically called when an object of that class is created. class MyPhysicsList : public G4VModularPhysicsList { public: // This is the declaration of the constructor function. It will initialize MyPhysicsList MyPhysicsList(); /* This is the declaration of the destructor for MyPhysicsList. The destructor is called when an object of MyPhysicsList type is destroyed. It is used to perform necessary cleanup to remove the object from memory. */ ~MyPhysicsList(); }; // This marks the end of the preprocessor conditional that began with // #ifndef in your header file. // It ensures that the content of this file is only included once, // even if the header file is included multiple times in the program. #endif