00001
00002 #ifndef MAGNET_BDLTOOL_H
00003 #define MAGNET_BDLTOOL_H 1
00004
00005
00006 #include "GaudiAlg/GaudiTool.h"
00007
00008
00009 #include "Kernel/IBdlTool.h"
00010
00011
00012 class IMagneticFieldSvc;
00013 class LutForBdlFunction;
00014
00015 static const InterfaceID IID_PatVTTBdlTool("PatVTTBdlTool", 1 , 0);
00016
00022 class BdlTool : public GaudiTool,
00023 virtual public IBdlTool {
00024
00025 public:
00026
00028 BdlTool(const std::string& type,
00029 const std::string& name,
00030 const IInterface* parent);
00031
00033 virtual ~BdlTool();
00034
00036 StatusCode initialize();
00037
00039 StatusCode finalize();
00040
00042 double bdlIntegral(double ySlopeVelo,double zOrigin,double zVelo);
00043 double zBdlMiddle(double ySlopeVelo,double zOrigin,double zVelo);
00044
00045 protected:
00046 void f_bdl(double slopeY, double zOrigin , double zStart, double zStop);
00047
00048 private:
00049
00050 double m_BdlTrack;
00051 double m_zHalfBdlTrack;
00052
00053 std::vector<double> m_bdlTmp, m_zTmp;
00054
00056 IMagneticFieldSvc* m_magFieldSvc;
00057 LutForBdlFunction* m_lutBdl;
00058 LutForBdlFunction* m_lutZHalfBdl;
00059
00060 double m_zCenterTT;
00061
00062 };
00063
00064 #endif // MAGNET_BDLTOOL_H