00001 // $Id: GiGaFieldMgrBase.h,v 1.6 2007/03/18 18:25:05 gcorti Exp $ 00002 #ifndef GIGA_GIGAFIELDMGRBASE_H 00003 #define GIGA_GIGAFIELDMGRBASE_H 1 00004 00005 // Include files 00006 #include "GiGa/IGiGaFieldMgr.h" 00007 #include "GiGa/GiGaBase.h" 00008 00015 class GiGaFieldMgrBase : 00016 public virtual IGiGaFieldMgr , 00017 public GiGaBase 00018 { 00019 public: 00020 00027 virtual StatusCode initialize () ; 00028 00035 virtual StatusCode finalize () ; 00036 00040 virtual bool global () const ; 00041 00046 virtual G4FieldManager* fieldMgr () const ; 00047 00053 virtual G4MagIntegratorStepper* stepper () const ; 00054 00055 protected: 00056 00060 StatusCode createStepper () const ; 00061 00065 StatusCode createFieldMgr () const ; 00066 00067 protected: 00068 00076 GiGaFieldMgrBase 00077 ( const std::string& type , 00078 const std::string& name , 00079 const IInterface* parent ) ; 00080 00082 virtual ~GiGaFieldMgrBase( ); 00083 00084 private: 00085 00086 // the default constructor is disabled 00087 GiGaFieldMgrBase (); 00088 // the copy constructor is disabled 00089 GiGaFieldMgrBase ( const GiGaFieldMgrBase& ) ; 00090 // the assignement operator is disabled 00091 GiGaFieldMgrBase& operator= ( const GiGaFieldMgrBase& ) ; 00092 00093 private: 00094 00095 bool m_global; 00096 mutable G4FieldManager* m_manager; 00097 double m_minStep; 00098 // delta chord - minimal distance between chord and curved trajectory 00099 double m_deltaChord; 00100 // delta intersection - max acceptable error on volume intersection 00101 double m_deltaintersection; 00102 // delta one step - max acceptable error on integration step (pos and mom) 00103 double m_deltaonestep; 00104 // min epsilon step - if deltaonestep < this, this is max acceptable error 00105 double m_minimumEpsilonStep; 00106 // max epsilon step - if deltaonestep > this, this is max acceptable error 00107 double m_maximumEpsilonStep; 00108 // stepper type 00109 std::string m_stepperType ; 00110 // the stepper itself 00111 mutable G4MagIntegratorStepper* m_stepper ; 00112 00113 }; 00114 00115 #endif // GIGA_GIGAFIELDMGRBASE_H 00116