Go to the documentation of this file.00001 #ifndef RecoEGAMMA_ConversionBarrelEstimator_H
00002 #define RecoEGAMMA_ConversionBarrelEstimator_H
00003
00012 #include "TrackingTools/DetLayers/interface/MeasurementEstimator.h"
00013 #include "DataFormats/GeometryVector/interface/Vector2DBase.h"
00014 #include "DataFormats/GeometryVector/interface/LocalTag.h"
00015
00016
00017 class TrajectoryStateOnSurface;
00018 class RecHit;
00019 class Plane;
00020
00021 class ConversionBarrelEstimator : public MeasurementEstimator {
00022 public:
00023
00024 ConversionBarrelEstimator() {};
00025 ConversionBarrelEstimator( float phiRangeMin, float phiRangeMax,
00026 float zRangeMin, float zRangeMax, double nSigma = 3. ) :
00027 thePhiRangeMin( phiRangeMin), thePhiRangeMax( phiRangeMax),
00028 theZRangeMin( zRangeMin), theZRangeMax( zRangeMax), theNSigma(nSigma) {
00029
00030 }
00031
00032
00033 virtual std::pair<bool,double> estimate( const TrajectoryStateOnSurface& ts,
00034 const TransientTrackingRecHit& hit ) const;
00035 virtual bool estimate( const TrajectoryStateOnSurface& ts,
00036 const Plane& plane) const;
00037 virtual ConversionBarrelEstimator* clone() const {
00038 return new ConversionBarrelEstimator(*this);
00039 }
00040
00041
00042
00043
00044
00045 virtual Local2DVector maximalLocalDisplacement( const TrajectoryStateOnSurface& ts, const Plane& plane) const;
00046
00047
00048 double nSigmaCut() const {return theNSigma;}
00049
00050 private:
00051
00052 float thePhiRangeMin;
00053 float thePhiRangeMax;
00054 float theZRangeMin;
00055 float theZRangeMax;
00056 double theNSigma;
00057
00058
00059
00060 };
00061
00062 #endif // ConversionBarrelEstimator_H