00001 //! \file 00002 //! 00003 //! Header file for the Physics class. 00004 //! 00005 //! The Physics class defines the particles and physics 00006 //! processes which will be active in the OLYMPUS Monte Carlo simulation. 00007 //! 00008 //! \author D.K. Hasell 00009 //! \version 1.0 00010 //! \date 2010-10-13 00011 //! 00012 //! \ingroup physics 00013 00014 // *+****1****+****2****+****3****+****4****+****5****+****6****+****7****+**** 00015 00016 // Ensure this header file is only included once. 00017 00018 #ifndef PHYSICS_H 00019 #define PHYSICS_H 00020 00021 // Include the GEANT4 header files referenced here. 00022 00023 #include "G4VUserPhysicsList.hh" 00024 00025 //! Physics class. 00026 //! 00027 //! Declares the Physics class and its member functions. 00028 00029 class Physics: public G4VUserPhysicsList { 00030 00031 public: 00032 00033 //! Constructor. 00034 00035 Physics(); 00036 00037 //! Destructor. 00038 00039 ~Physics(); 00040 00041 protected: 00042 00043 //! Member function to construct the particles used. 00044 00045 void ConstructParticle(); 00046 00047 //! Member function to construct the processes used. 00048 00049 void ConstructProcess(); 00050 00051 //! Member function to set the cuts. 00052 00053 void SetCuts(); 00054 00055 00056 protected: 00057 00058 //! Method to construct the boson family of particles. 00059 00060 void ConstructBosons(); 00061 00062 //! Method to construct the lepton family of particles. 00063 00064 void ConstructLeptons(); 00065 00066 //! Method to construct the meson family of particles. 00067 00068 void ConstructMesons(); 00069 00070 //! Method to construct the baryon family of particles. 00071 00072 void ConstructBaryons(); 00073 00074 protected: 00075 00076 //! Method to construct the general physics processes. 00077 00078 void ConstructGeneral(); 00079 00080 //! Method to construct the electromagnetic physics processes. 00081 00082 void ConstructEM(); 00083 }; 00084 00085 #endif