CMS 3D CMS Logo

Chi2SwitchingEstimator.h

Go to the documentation of this file.
00001 #ifndef Chi2SwitchingEstimator_H_
00002 #define Chi2SwitchingEstimator_H_
00003 
00014 #include "TrackingTools/PatternTools/interface/MeasurementEstimator.h"
00015 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimator.h"
00016 #include "TrackingTools/KalmanUpdators/interface/Chi2StripEstimator.h"
00017 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
00018 
00019 class Chi2SwitchingEstimator : public Chi2MeasurementEstimatorBase {
00020 
00021 public:
00022 
00023   explicit Chi2SwitchingEstimator(double aMaxChi2, double nSigma = 3.) : 
00024     Chi2MeasurementEstimatorBase(aMaxChi2,nSigma),
00025     theLocalEstimator(new Chi2MeasurementEstimator(aMaxChi2,nSigma)),
00026     theStripEstimator(new Chi2StripEstimator(aMaxChi2,nSigma)) {}
00027 
00029   virtual std::pair<bool,double> estimate (const TrajectoryStateOnSurface& aTsos,
00030                                       const TransientTrackingRecHit& aHit) const;
00031 
00032   virtual Chi2SwitchingEstimator* clone() const 
00033   {
00034     return new Chi2SwitchingEstimator(*this);
00035   }
00036 
00037 private:
00039   const Chi2MeasurementEstimator& localEstimator() const {
00040     return *theLocalEstimator;
00041   }
00043   const Chi2StripEstimator& stripEstimator() const {
00044     return *theStripEstimator;
00045   }
00046 
00047 private:
00048   DeepCopyPointerByClone<const Chi2MeasurementEstimator> theLocalEstimator;
00049   DeepCopyPointerByClone<const Chi2StripEstimator>       theStripEstimator;
00050 
00051 };
00052 #endif //Chi2SwitchingEstimator_H_

Generated on Tue Jun 9 17:48:22 2009 for CMSSW by  doxygen 1.5.4