00001 // $Id: MagFieldTool.h,v 1.2 2008/07/26 23:03:01 cattanem Exp $ 00002 #ifndef MAGFIELDTOOL_H 00003 #define MAGFIELDTOOL_H 1 00004 00005 // Include files 00006 // from Gaudi 00007 #include "GaudiAlg/GaudiTool.h" 00008 #include "IMagFieldTool.h" // Interface 00009 00010 00017 class MagFieldTool : public GaudiTool, virtual public IMagFieldTool { 00018 public: 00020 MagFieldTool( const std::string& type, 00021 const std::string& name, 00022 const IInterface* parent); 00023 00024 virtual ~MagFieldTool( ); 00025 00027 virtual void fieldVector( const Gaudi::XYZPoint& xyz, 00028 Gaudi::XYZVector& fvec ) const; 00029 00031 virtual StatusCode updateMap( const std::vector<std::string>& theFiles, 00032 const double& scaleFactor ); 00033 00034 protected: 00035 00036 private: 00038 StatusCode readFiles( const std::vector<std::string>& theFiles, 00039 const double& scaleFactor ); 00040 00042 void rescale ( const double& rescaleFactor ); 00043 00044 00045 std::vector<std::string> m_mapFileNames; 00046 double m_scaleFactor; 00047 00048 std::vector<double> m_Q_quadr[4]; 00049 double m_Dxyz[3]; 00050 int m_Nxyz[3]; 00051 double m_max_FL[3]; 00052 double m_min_FL[3]; 00053 double m_zOffSet; 00054 00055 }; 00056 #endif // MAGFIELDTOOL_H