File indexing completed on 2024-09-07 04:37:28
0001 #ifndef RecoEGAMMA_ConversionBarrelEstimator_H
0002 #define RecoEGAMMA_ConversionBarrelEstimator_H
0003
0004
0005
0006
0007
0008
0009
0010 #include "TrackingTools/DetLayers/interface/MeasurementEstimator.h"
0011 #include "DataFormats/GeometryVector/interface/Vector2DBase.h"
0012 #include "DataFormats/GeometryVector/interface/LocalTag.h"
0013
0014 class TrajectoryStateOnSurface;
0015 class RecHit;
0016 class Plane;
0017
0018 class ConversionBarrelEstimator : public MeasurementEstimator {
0019 public:
0020 ConversionBarrelEstimator() {}
0021 ConversionBarrelEstimator(float phiRangeMin, float phiRangeMax, float zRangeMin, float zRangeMax, double nSigma = 3.)
0022 : thePhiRangeMin(phiRangeMin),
0023 thePhiRangeMax(phiRangeMax),
0024 theZRangeMin(zRangeMin),
0025 theZRangeMax(zRangeMax),
0026 theNSigma(nSigma) {
0027
0028 }
0029
0030
0031 std::pair<bool, double> estimate(const TrajectoryStateOnSurface& ts, const TrackingRecHit& hit) const override;
0032 bool estimate(const TrajectoryStateOnSurface& ts, const Plane& plane) const override;
0033 ConversionBarrelEstimator* clone() const override { return new ConversionBarrelEstimator(*this); }
0034
0035 Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface& ts, const Plane& plane) const override;
0036
0037 double nSigmaCut() const { return theNSigma; }
0038
0039 private:
0040 float thePhiRangeMin;
0041 float thePhiRangeMax;
0042 float theZRangeMin;
0043 float theZRangeMax;
0044 double theNSigma;
0045 };
0046
0047 #endif