File indexing completed on 2023-03-17 11:26:27
0001 #ifndef Chi2Switching1DEstimator_H_
0002 #define Chi2Switching1DEstimator_H_
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "TrackingTools/DetLayers/interface/MeasurementEstimator.h"
0013 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimator.h"
0014 #include "TrackingTools/KalmanUpdators/interface/Chi2Strip1DEstimator.h"
0015 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
0016
0017 class Chi2Switching1DEstimator final : public Chi2MeasurementEstimatorBase {
0018 public:
0019 explicit Chi2Switching1DEstimator(double aMaxChi2, double nSigma = 3.)
0020 : Chi2MeasurementEstimatorBase(aMaxChi2, nSigma),
0021 theLocalEstimator(aMaxChi2, nSigma),
0022 theStripEstimator(aMaxChi2, nSigma) {}
0023
0024
0025 std::pair<bool, double> estimate(const TrajectoryStateOnSurface& aTsos, const TrackingRecHit& aHit) const override;
0026
0027 Chi2Switching1DEstimator* clone() const override { return new Chi2Switching1DEstimator(*this); }
0028
0029 private:
0030
0031 const Chi2MeasurementEstimator& localEstimator() const { return theLocalEstimator; }
0032
0033 const Chi2Strip1DEstimator& stripEstimator() const { return theStripEstimator; }
0034
0035 private:
0036 const Chi2MeasurementEstimator theLocalEstimator;
0037 const Chi2Strip1DEstimator theStripEstimator;
0038 };
0039 #endif