/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/TrkReco/TrkReco-00-08-59-patch4-slc6tag/TrkReco/T3DLineFitter.h

Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 // $Id: T3DLineFitter.h,v 1.15 2012/05/28 05:16:29 maoh Exp $
00003 //-----------------------------------------------------------------------------
00004 // Filename : T3DLineFitter.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 3D line.
00010 //               See http://bsunsrv1.kek.jp/~yiwasaki/tracking/
00011 //-----------------------------------------------------------------------------
00012 
00013 #ifndef T3DLINEFITTER_FLAG_
00014 #define T3DLINEFITTER_FLAG_
00015 
00016 #ifdef TRKRECO_DEBUG_DETAIL
00017 #ifndef TRKRECO_DEBUG
00018 #define TRKRECO_DEBUG
00019 #endif
00020 #endif
00021 
00022 #include <string>
00023 
00024 #define HEP_SHORT_NAMES
00025 #ifndef CLHEP_VECTOR3D_H
00026 #include "CLHEP/Geometry/Vector3D.h"
00027 #endif
00028 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
00029     typedef HepGeom::Vector3D<double> HepVector3D;
00030 #endif
00031 
00032 //#include "helix/Helix.h"
00033 //#include "TrkReco/Helix.h"
00034 #include "TrackUtil/Helix.h"
00035 #include "TrkReco/TMFitter.h"
00036 
00037 class TMLink;
00038 class T3DLine;
00039 
00041 class T3DLineFitter : public TMFitter {
00042 
00043 public:
00045   T3DLineFitter(const std::string & name);
00046   T3DLineFitter(const std::string & name,bool m_sag,int m_prop,bool m_tof);
00047  
00049   virtual ~T3DLineFitter();
00050   
00051 public:// Selectors
00053   void dump(const std::string & message = std::string(""),
00054             const std::string & prefix = std::string("")) const;
00055   
00056 public:// Modifiers
00057   virtual int fit(TTrackBase &) const;
00058   virtual int fit(TTrackBase &, float t0Offset) const;
00059 
00060   void sag(bool);
00061   void propagation(int);
00062   void tof(bool);
00063   
00064 private:
00066   int dxda(const TMLink&,
00067            const T3DLine&,
00068            Vector & dxda,
00069            Vector & dyda,
00070            Vector & dzda,
00071            HepVector3D & wireDirection) const;
00072   
00074   void drift(const T3DLine &,
00075              const TMLink &,
00076              float t0Offset,
00077              double & distance,
00078              double & err) const;
00079   
00080 private:
00081   bool _sag;
00082   int _propagation;
00083   bool _tof;
00084   
00085 };
00086 
00087 //-----------------------------------------------------------------------------
00088 
00089 #ifdef TRKRECO_NO_INLINE
00090 #define inline
00091 #else
00092 #undef inline
00093 #define T3DLINEFITTER_INLINE_DEFINE_HERE
00094 #endif
00095 
00096 #ifdef T3DLINEFITTER_INLINE_DEFINE_HERE
00097 
00098 #endif
00099 
00100 #undef inline
00101 
00102 #endif /* T3DLINEFITTER_FLAG_ */

Generated on Tue Nov 29 23:14:17 2016 for BOSS_7.0.2 by  doxygen 1.4.7