00001 // $Id: GiGaMagFieldBase.h,v 1.9 2003/04/06 18:49:45 ibelyaev Exp $ 00002 // ============================================================================ 00003 // CVS tag $Name: v19r4 $ 00004 // ============================================================================ 00005 // $Log: GiGaMagFieldBase.h,v $ 00006 // Revision 1.9 2003/04/06 18:49:45 ibelyaev 00007 // see $GIGAROOT/doc/release.notes 00008 // 00009 // Revision 1.8 2002/05/07 12:21:29 ibelyaev 00010 // see $GIGAROOT/doc/release.notes 7 May 2002 00011 // 00012 // ============================================================================ 00013 #ifndef GIGA_GIGAMagFieldBase_H 00014 #define GIGA_GIGAMagFieldBase_H 1 00015 // ============================================================================ 00016 #include "GiGa/IGiGaMagField.h" 00017 #include "GiGa/GiGaFieldMgrBase.h" 00018 00019 class IMagneticFieldSvc; 00020 00028 class GiGaMagFieldBase: public virtual IGiGaMagField , 00029 public GiGaFieldMgrBase 00030 { 00031 protected: 00032 00040 GiGaMagFieldBase 00041 ( const std::string& type , 00042 const std::string& name , 00043 const IInterface* parent ) ; 00044 00046 virtual ~GiGaMagFieldBase(); 00047 00048 public: 00049 00054 virtual G4MagneticField* field () const ; 00055 00062 virtual StatusCode initialize () ; 00063 00070 virtual StatusCode finalize () ; 00071 00072 protected: 00073 00077 inline IMagneticFieldSvc* mfSvc() const { return m_mfSvc; } 00078 00079 private: 00081 GiGaMagFieldBase(); 00082 GiGaMagFieldBase( const GiGaMagFieldBase& ); 00083 GiGaMagFieldBase& operator=( const GiGaMagFieldBase& ); 00084 00085 private: 00087 std::string m_nameMFSvc; 00088 IMagneticFieldSvc* m_mfSvc; 00089 // 00090 mutable G4MagneticField* m_self ; 00092 }; 00093 00094 // ============================================================================ 00095 // The END 00096 // ============================================================================ 00097 #endif 00098 // ============================================================================ 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109