00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: TrkHelixFitter.h,v 1.4 2011/02/17 11:54:59 maqm 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 class TrkHotList; 00027 00028 // Class definition// 00029 class TrkHelixFitter: public TrkHitOnTrkUpdater { 00030 00031 public: 00032 TrkHelixFitter(bool allowFlips=false, bool allowDrops=false); 00033 virtual ~TrkHelixFitter(); 00034 TrkHelixFitter& operator=(const TrkHelixFitter& right); 00035 TrkHelixFitter(const TrkHelixFitter &); 00036 00037 TrkErrCode fit(TrkHotList& hitList, TrkSimpTraj&); 00038 void setFittingPar(bool allowFlips, bool allowDrops); 00039 double lastChisq() const {return _lastChisq;} 00040 static bool m_debug; 00041 static double nSigmaCut[43]; 00042 00043 private: 00044 bool _allowDrops; 00045 bool _allowFlips; 00046 double _lastChisq; 00047 00048 void setLastChisq(double l) {_lastChisq = l;} 00049 }; 00050 00051 #endif 00052 00053