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