00001 #ifndef BarrelMeasurementEstimator_H
00002 #define BarrelMeasurementEstimator_H
00003
00004
00005
00006
00007
00015
00016
00017
00018
00019
00020
00021
00022 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00023 #include "TrackingTools/PatternTools/interface/MeasurementEstimator.h"
00024
00025 #include "RecoTracker/TransientTrackingRecHit/interface/TSiPixelRecHit.h"
00026
00027 #include "DataFormats/GeometrySurface/interface/BoundPlane.h"
00028
00029 #include <utility>
00030
00031
00032 class BarrelMeasurementEstimator : public MeasurementEstimator {
00033 public:
00034 BarrelMeasurementEstimator() {};
00035 BarrelMeasurementEstimator(float phiMin, float phiMax, float zMin, float zMax ) :
00036 thePhiMin(phiMin), thePhiMax(phiMax), theZMin(zMin), theZMax(zMax) { }
00037
00038 void setPhiRange (float dummyphiMin , float dummyphiMax)
00039 {
00040 thePhiMin = dummyphiMin ;
00041 thePhiMax = dummyphiMax ;
00042 }
00043
00044 void setZRange (float zmin , float zmax)
00045 {
00046 theZMin=zmin;
00047 theZMax=zmax;
00048 }
00049
00050
00051 virtual std::pair<bool,double> estimate( const TrajectoryStateOnSurface& ts,
00052 const TransientTrackingRecHit& hit) const;
00053
00054 virtual std::pair<bool,double> estimate( const TrajectoryStateOnSurface& ts,
00055 GlobalPoint &gp) const;
00056
00057 virtual bool estimate( const TrajectoryStateOnSurface& ts,
00058 const BoundPlane& plane) const;
00059
00060 virtual BarrelMeasurementEstimator* clone() const
00061 {
00062 return new BarrelMeasurementEstimator(*this);
00063 }
00064
00065 MeasurementEstimator::Local2DVector
00066 maximalLocalDisplacement( const TrajectoryStateOnSurface& ts,
00067 const BoundPlane& plane) const;
00068
00069 private:
00070
00071 float thePhiMin;
00072 float thePhiMax;
00073 float theZMin;
00074 float theZMax;
00075
00076 };
00077
00078 #endif // BarrelMeasurementEstimator_H