00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: TrkHelixFitter.h,v 1.3 2010/09/26 00:32:23 zhangy Exp $ 00004 // 00005 // Description: 00006 // Fit track to helix or circle. Flags allow fitter to add and drop 00007 // hits (i.e. make them active or inactive), and (in the case of 00008 // MDC hits) flip their ambiguities. 00009 // Produces an error matrix, but does not (currently) handle multiple 00010 // scattering. 00011 // 00012 // Environment: 00013 // Software developed for the BaBar Detector at the SLAC B-Factory. 00014 // 00015 // Author(s): Steve Schaffner 00016 // 00017 //------------------------------------------------------------------------ 00018 #ifndef TRKHELIXFITTER_H 00019 #define TRKHELIXFITTER_H 00020 00021 #include "TrkBase/TrkHitOnTrkUpdater.h" 00022 class TrkRecoTrk; 00023 class TrkSimpTraj; 00024 class TrkHitOnTrk; 00025 class TrkErrCode; 00026 00027 // Class definition// 00028 class TrkHelixFitter: public TrkHitOnTrkUpdater { 00029 00030 public: 00031 TrkHelixFitter(bool allowFlips=false, bool allowDrops=false); 00032 virtual ~TrkHelixFitter(); 00033 TrkHelixFitter& operator=(const TrkHelixFitter& right); 00034 TrkHelixFitter(const TrkHelixFitter &); 00035 00036 TrkErrCode fit(TrkHotList& hitList, TrkSimpTraj&); 00037 void setFittingPar(bool allowFlips, bool allowDrops); 00038 double lastChisq() const {return _lastChisq;} 00039 static bool m_debug; 00040 static double nSigmaCut[43]; 00041 00042 private: 00043 bool _allowDrops; 00044 bool _allowFlips; 00045 double _lastChisq; 00046 00047 void setLastChisq(double l) {_lastChisq = l;} 00048 }; 00049 00050 #endif 00051 00052