CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoLocalTracker/ClusterParameterEstimator/interface/ClusterParameterEstimator.h

Go to the documentation of this file.
00001 #ifndef RecoLocalTracker_Cluster_Parameter_Estimator_H
00002 #define RecoLocalTracker_Cluster_Parameter_Estimator_H
00003 
00004 #include "DataFormats/GeometrySurface/interface/LocalError.h"
00005 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00006 
00007 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
00008 #include "DataFormats/TrajectoryState/interface/LocalTrajectoryParameters.h"
00009 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00010 
00011 
00012 template <class T> 
00013 class ClusterParameterEstimator {
00014   
00015  public:
00016   typedef std::pair<LocalPoint,LocalError>  LocalValues;
00017   typedef std::vector<LocalValues> VLocalValues;
00018   virtual LocalValues localParameters( const T&,const GeomDetUnit&) const = 0; 
00019   virtual LocalValues localParameters( const T& cluster, const GeomDetUnit& gd, const LocalTrajectoryParameters&) const {
00020     return localParameters(cluster,gd);
00021   }
00022   virtual LocalValues localParameters( const T& cluster, const GeomDetUnit& gd, const TrajectoryStateOnSurface& tsos) const {
00023     return localParameters(cluster,gd,tsos.localParameters());
00024   }
00025   virtual VLocalValues localParametersV( const T& cluster, const GeomDetUnit& gd) const {
00026     VLocalValues vlp;
00027     vlp.push_back(localParameters(cluster,gd));
00028     return vlp;
00029   }
00030   virtual VLocalValues localParametersV( const T& cluster, const GeomDetUnit& gd, const LocalTrajectoryParameters& ltp) const {
00031     VLocalValues vlp;
00032     vlp.push_back(localParameters(cluster,gd,ltp));
00033     return vlp;
00034   }
00035   virtual VLocalValues localParametersV( const T& cluster, const GeomDetUnit& gd, const TrajectoryStateOnSurface& tsos) const {
00036     VLocalValues vlp;
00037     vlp.push_back(localParameters(cluster,gd,tsos.localParameters()));
00038     return vlp;
00039   }
00040   
00041   virtual ~ClusterParameterEstimator(){}
00042   
00043   //methods needed by FastSim
00044   virtual void enterLocalParameters(unsigned int id, std::pair<int,int>
00045                                     &row_col, LocalValues pos_err_info) const {}
00046   virtual void enterLocalParameters(uint32_t id, uint16_t firstStrip,
00047                                     LocalValues pos_err_info) const {}
00048   virtual void clearParameters() const {}
00049   
00050 };
00051 
00052 #endif