00001 // $Id: TrackPtKick.h,v 1.1 2005/05/25 15:40:12 cattanem Exp $ 00002 #ifndef TRACKTOOLS_TRACKPTKICK_H 00003 #define TRACKTOOLS_TRACKPTKICK_H 1 00004 00005 // Include files 00006 // ------------- 00007 // from Gaudi 00008 #include "GaudiAlg/GaudiTool.h" 00009 00010 // from TrackInterfaces 00011 #include "TrackInterfaces/ITrackPtKick.h" // Interface 00012 #include "TrackInterfaces/IBIntegrator.h" 00013 00019 class TrackPtKick : public GaudiTool, virtual public ITrackPtKick { 00020 public: 00022 TrackPtKick( const std::string& type, 00023 const std::string& name, 00024 const IInterface* parent); 00025 00026 virtual ~TrackPtKick( ); 00027 00028 StatusCode initialize(); 00029 00030 // Estimate the momentum P of a State 00031 virtual StatusCode calculate( State* State ) const; 00032 00033 protected: 00034 00035 private: 00036 void determineFieldPolarity(); 00037 00038 IBIntegrator* m_bIntegrator; 00039 00040 int m_FieldPolarity; 00041 00042 double m_MomentumError; 00044 std::vector<double> m_ParabolicCorrection; 00045 double m_Constant; 00046 00047 }; 00048 #endif // TRACKTOOLS_TRACKPTKICK_H