00001 00002 #ifndef BesMuonPhysics_h 00003 #define BesMuonPhysics_h 1 00004 00005 #include "globals.hh" 00006 #include "G4ios.hh" 00007 00008 #include "G4VPhysicsConstructor.hh" 00009 #include "G4MultipleScattering.hh" 00010 #include "G4MuBremsstrahlung.hh" 00011 #include "G4MuPairProduction.hh" 00012 #include "G4MuIonisation.hh" 00013 #include "G4hIonisation.hh" 00014 00015 #include "G4MuonMinusCaptureAtRest.hh" 00016 00017 class BesMuonPhysics : public G4VPhysicsConstructor 00018 { 00019 public: 00020 BesMuonPhysics(const G4String& name="muon"); 00021 virtual ~BesMuonPhysics(); 00022 00023 public: 00024 // This method will be invoked in the Construct() method. 00025 // each particle type will be instantiated 00026 virtual void ConstructParticle(); 00027 00028 // This method will be invoked in the Construct() method. 00029 // each physics process will be instantiated and 00030 // registered to the process manager of each particle type 00031 virtual void ConstructProcess(); 00032 00033 protected: 00034 // Muon physics 00035 G4MuIonisation fMuPlusIonisation; 00036 G4MultipleScattering fMuPlusMultipleScattering; 00037 G4MuBremsstrahlung fMuPlusBremsstrahlung ; 00038 G4MuPairProduction fMuPlusPairProduction; 00039 00040 G4MuIonisation fMuMinusIonisation; 00041 G4MultipleScattering fMuMinusMultipleScattering; 00042 G4MuBremsstrahlung fMuMinusBremsstrahlung ; 00043 G4MuPairProduction fMuMinusPairProduction; 00044 00045 G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; 00046 00047 // Tau physics 00048 G4MultipleScattering fTauPlusMultipleScattering; 00049 G4hIonisation fTauPlusIonisation; 00050 00051 G4MultipleScattering fTauMinusMultipleScattering; 00052 G4hIonisation fTauMinusIonisation; 00053 00054 }; 00055 00056 00057 #endif 00058