CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoEgamma/EgammaElectronAlgos/interface/BarrelMeasurementEstimator.h

Go to the documentation of this file.
00001 #ifndef BarrelMeasurementEstimator_H
00002 #define BarrelMeasurementEstimator_H
00003 // -*- C++ -*-
00004 //
00005 // Package:    EgammaElectronAlgos
00006 // Class:      BarrelMeasurementEstimator
00007 //
00015 //
00016 // Original Author:  Ursula Berthon, Claude Charlot
00017 //         Created:  Mon Mar 27 13:22:06 CEST 2006
00018 // $Id: BarrelMeasurementEstimator.h,v 1.14 2012/05/29 08:23:53 muzaffar Exp $
00019 //
00020 //
00021 
00022 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00023 #include "TrackingTools/DetLayers/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  {
00034   public:
00035 
00036     BarrelMeasurementEstimator()
00037      {}
00038     BarrelMeasurementEstimator(float phiMin, float phiMax, float zMin, float zMax )
00039      : thePhiMin(phiMin), thePhiMax(phiMax), theZMin(zMin), theZMax(zMax)
00040      {}
00041 
00042     void setPhiRange( float dummyphiMin , float dummyphiMax )
00043      { thePhiMin = dummyphiMin ; thePhiMax = dummyphiMax ; }
00044     void setZRange( float zmin, float zmax )
00045      { theZMin=zmin ; theZMax=zmax ; }
00046 
00047     // zero value indicates incompatible ts - hit pair
00048     virtual std::pair<bool,double> estimate( const TrajectoryStateOnSurface & ts, const TransientTrackingRecHit & hit ) const ;
00049     virtual std::pair<bool,double> estimate( const TrajectoryStateOnSurface & ts, GlobalPoint & gp ) const ;
00050     virtual std::pair<bool,double> estimate( const GlobalPoint & vprim, const TrajectoryStateOnSurface & ts, GlobalPoint & gp ) const ;
00051     virtual bool estimate( const TrajectoryStateOnSurface & ts, const BoundPlane & plane) const ;
00052 
00053     virtual BarrelMeasurementEstimator* clone() const
00054      { return new BarrelMeasurementEstimator(*this) ; }
00055 
00056     MeasurementEstimator::Local2DVector
00057     maximalLocalDisplacement( const TrajectoryStateOnSurface & ts, const BoundPlane & plane) const ;
00058 
00059   private:
00060 
00061     float thePhiMin ;
00062     float thePhiMax ;
00063     float theZMin ;
00064     float theZMax ;
00065 
00066  } ;
00067 
00068 #endif // BarrelMeasurementEstimator_H