00001
00002 #ifndef TRACKTOOLS_BINTEGRATOR_H
00003 #define TRACKTOOLS_BINTEGRATOR_H 1
00004
00005
00006
00007
00008 #include "GaudiAlg/GaudiTool.h"
00009 #include "GaudiKernel/IMagneticFieldSvc.h"
00010
00011
00012 #include "TrackInterfaces/IBIntegrator.h"
00013
00020 class BIntegrator : public GaudiTool,
00021 virtual public IBIntegrator {
00022 public:
00024 BIntegrator( const std::string& type,
00025 const std::string& name,
00026 const IInterface* parent );
00027
00028 virtual ~BIntegrator( );
00029
00030 StatusCode initialize();
00031
00033 StatusCode calculateBdlAndCenter( const HepPoint3D& beginPoint,
00034 const HepPoint3D& endPoint,
00035 const double tX,
00036 const double tY,
00037 double& zCenter,
00038 HepVector3D& Bdl ) const;
00039
00040 protected:
00041
00042 private:
00043 StatusCode calculateBdlCenter();
00044
00045 IMagneticFieldSvc* m_pIMF;
00046
00047 int m_nSteps;
00048 HepPoint3D m_centerZ;
00049 double m_firstZ;
00050 double m_lastZ;
00051
00052 };
00053 #endif // TRACKTOOLS_BINTEGRATOR_H