00001 // $Id: GiGaExternalPhysicsList.h,v 1.2 2007/03/26 09:01:39 gcorti Exp $ 00002 #ifndef GIGA_GIGAEXTERNALPHYSICSLIST_H 00003 #define GIGA_GIGAEXTERNALPHYSICSLIST_H 1 00004 00005 // Include files 00006 #include "GiGa/GiGaPhysicsListBase.h" 00007 00018 template <class PHYSLIST> 00019 class GiGaExternalPhysicsList : public GiGaPhysicsListBase 00020 { 00021 // PhysList type 00022 typedef PHYSLIST PhysList ; 00024 typedef GiGaExternalPhysicsList<PhysList> OwnType ; 00025 00026 public: 00027 00034 virtual G4VUserPhysicsList* physicsList () const 00035 { 00036 if( 0 == m_physList ) 00037 { 00038 m_physList = new PhysList(); 00039 m_physList -> SetDefaultCutValue ( defaultCut() ) ; 00040 } 00041 return m_physList ; 00042 }; 00043 00044 protected: 00045 00053 GiGaExternalPhysicsList 00054 ( const std::string& type , 00055 const std::string& name , 00056 const IInterface* parent ) 00057 : GiGaPhysicsListBase ( type , name , parent ) 00058 , m_physList ( 0 ) 00059 {}; 00060 00061 // destructor 00062 virtual ~GiGaExternalPhysicsList() {} 00063 00064 private: 00065 00066 // the physic slist itself 00067 mutable G4VUserPhysicsList* m_physList ; 00068 00069 }; 00070 00071 #endif // GIGA_GIGAEXTERNALPHYSICSLIST_H