00001 #ifndef CommonDet_Chi2MeasurementEstimatorForTrackerHits_H 00002 #define CommonDet_Chi2MeasurementEstimatorForTrackerHits_H 00003 00004 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimatorBase.h" 00005 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h" 00006 00007 00015 class Chi2MeasurementEstimatorForTrackerHits : public Chi2MeasurementEstimatorBase { 00016 public: 00017 00023 explicit Chi2MeasurementEstimatorForTrackerHits(double maxChi2, double nSigma = 3.) : 00024 Chi2MeasurementEstimatorBase( maxChi2, nSigma), cacheUpToDate_(false) {} 00025 00026 explicit Chi2MeasurementEstimatorForTrackerHits(const Chi2MeasurementEstimatorBase &est) : 00027 Chi2MeasurementEstimatorBase( est.chiSquaredCut(), est.nSigmaCut()), 00028 cacheUpToDate_(false) {} 00029 00030 void clearCache() { cacheUpToDate_ = false; } 00031 00032 virtual std::pair<bool,double> estimate(const TrajectoryStateOnSurface&, 00033 const TransientTrackingRecHit&) const; 00034 00035 virtual Chi2MeasurementEstimatorForTrackerHits* clone() const { 00036 return new Chi2MeasurementEstimatorForTrackerHits(*this); 00037 } 00038 private: 00039 mutable bool cacheUpToDate_; 00040 mutable AlgebraicVector2 tsosMeasuredParameters_; 00041 mutable AlgebraicSymMatrix22 tsosMeasuredError_; 00042 }; 00043 00044 #endif