CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/RecoEgamma/EgammaElectronAlgos/interface/ForwardMeasurementEstimator.h

Go to the documentation of this file.
00001 #ifndef ForwardMeasurementEstimator_H
00002 #define ForwardMeasurementEstimator_H
00003 
00004 // -*- C++ -*-
00005 //
00006 // Package:    EgammaElectronAlgos
00007 // Class:      ForwardMeasurementEstimator
00008 //
00016 //
00017 // Original Author:  Ursula Berthon, Claude Charlot
00018 //         Created:  Mon Mar 27 13:22:06 CEST 2006
00019 // $Id: ForwardMeasurementEstimator.h,v 1.17 2012/05/29 08:23:53 muzaffar Exp $
00020 //
00021 //
00022 #include "TrackingTools/DetLayers/interface/MeasurementEstimator.h"
00023 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00024 #include "DataFormats/GeometrySurface/interface/BoundPlane.h"
00025 #include <utility>
00026 
00027 class ForwardMeasurementEstimator
00028  : public MeasurementEstimator
00029  {
00030   public:
00031 
00032     ForwardMeasurementEstimator()
00033      {}
00034     ForwardMeasurementEstimator(float phiMin, float phiMax, float rMin, float rMax )
00035      : thePhiMin(phiMin), thePhiMax( phiMax), theRMin(rMin), theRMax(rMax)
00036      {}
00037 
00038     void setPhiRange(float dummyphiMin , float dummyphiMax )
00039      { thePhiMin = dummyphiMin ; thePhiMax = dummyphiMax ; }
00040     void setRRange(float rmin, float rmax )
00041      { theRMin = rmin ; theRMax = rmax ; }
00042     void setRRangeI( float rmin, float rmax )
00043      { theRMinI = rmin ; theRMaxI = rmax ; }
00044 
00045     // zero value indicates incompatible ts - hit pair
00046     virtual std::pair<bool,double> estimate( const TrajectoryStateOnSurface & ts, const TransientTrackingRecHit & hit ) const ;
00047     virtual std::pair<bool,double> estimate( const TrajectoryStateOnSurface & ts, GlobalPoint & gp ) const ;
00048     virtual std::pair<bool,double> estimate( const GlobalPoint & vprim, const TrajectoryStateOnSurface & ts, GlobalPoint & gp ) const ;
00049     virtual bool estimate( const TrajectoryStateOnSurface & ts, const BoundPlane & plane ) const ;
00050 
00051     virtual ForwardMeasurementEstimator* clone() const
00052      { return new ForwardMeasurementEstimator(*this) ; }
00053 
00054     MeasurementEstimator::Local2DVector
00055     maximalLocalDisplacement( const TrajectoryStateOnSurface & ts, const BoundPlane & plane) const ;
00056 
00057   private :
00058 
00059     float thePhiMin ;
00060     float thePhiMax ;
00061     float theRMin ;
00062     float theRMax ;
00063     float theRMinI ;
00064     float theRMaxI ;
00065 
00066  } ;
00067 
00068 #endif // ForwardMeasurementEstimator_H