00001 //----------------------------------------------------------------------------- 00002 // $Id: TRungeFitter.h,v 1.16 2012/05/28 05:16:29 maoh Exp $ 00003 //----------------------------------------------------------------------------- 00004 // Filename : TRungeFitter.h 00005 // Section : Tracking 00006 // Owner : Kenji Inami 00007 // Email : inami@bmail.kek.jp 00008 //----------------------------------------------------------------------------- 00009 // Description : A class to fit a TTrackBase object to a Runge Kutta track 00010 // See http://bsunsrv1.kek.jp/~yiwasaki/tracking/ 00011 //----------------------------------------------------------------------------- 00012 00013 #ifndef TRUNGEFITTER_FLAG_ 00014 #define TRUNGEFITTER_FLAG_ 00015 00016 //#ifdef TRKRECO_DEBUG_DETAIL 00017 //#define TRKRECO_DEBUG 00018 //#endif 00019 00020 #include <string> 00021 00022 #define HEP_SHORT_NAMES 00023 //#include "helix/Helix.h" 00024 //#include "TrkReco/Helix.h" 00025 #include "TrackUtil/Helix.h" 00026 00027 #include "TrkReco/TMFitter.h" 00028 #include "TrkReco/RkFitCylinder.h" 00029 #include "TrkReco/RkFitMaterial.h" 00030 class TMLink; 00031 class TRunge; 00032 typedef HepGeom::Transform3D HepTransform3D; 00034 class TRungeFitter : public TMFitter { 00035 00036 public: 00038 TRungeFitter(const std::string & name); 00039 TRungeFitter(const std::string & name,bool m_sag,int m_prop,bool m_tof); 00040 00042 virtual ~TRungeFitter(); 00043 00044 public:// Selectors 00046 void dump(const std::string & message = std::string(""), 00047 const std::string & prefix = std::string("")) const; 00048 00049 public:// Modifiers 00050 virtual int fit(TTrackBase &) const; 00051 virtual int fit(TTrackBase &, float t0Offset,int layer) const; 00052 void innerwall(TRunge& trk, int l_mass,double y[6])const; 00053 void sag(bool); 00054 const RkFitMaterial getMaterial(int i)const; 00055 void propagation(int); 00056 void tof(bool); 00057 std::vector<RkFitCylinder> _BesBeamPipeWalls; 00058 std::vector<RkFitMaterial> _BesBeamPipeMaterials; 00059 void setBesFromGdml(void); 00060 private: 00061 IMagneticFieldSvc* m_pmgnIMF; 00062 bool _sag; 00063 int _propagation; 00064 bool _tof; 00065 00066 }; 00067 00068 //----------------------------------------------------------------------------- 00069 #ifdef TRKRECO_NO_INLINE 00070 #define inline 00071 #else 00072 #undef inline 00073 #define TRUNGEFITTER_INLINE_DEFINE_HERE 00074 #endif 00075 00076 #ifdef TRUNGEFITTER_INLINE_DEFINE_HERE 00077 00078 #endif 00079 00080 #undef inline 00081 00082 #endif /* TRUNGEFITTER_FLAG_ */