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 template <class T>
00012 class ClusterParameterEstimator {
00013
00014 public:
00015 typedef std::pair<LocalPoint,LocalError> LocalValues;
00016 typedef std::vector<LocalValues> VLocalValues;
00017 virtual LocalValues localParameters( const T&,const GeomDetUnit&) const = 0;
00018 virtual LocalValues localParameters( const T& cluster, const GeomDetUnit& gd, const LocalTrajectoryParameters&) const {
00019 return localParameters(cluster,gd);
00020 }
00021 virtual LocalValues localParameters( const T& cluster, const GeomDetUnit& gd, const TrajectoryStateOnSurface& tsos) const {
00022 return localParameters(cluster,gd,tsos.localParameters());
00023 }
00024 virtual VLocalValues localParametersV( const T& cluster, const GeomDetUnit& gd) const {
00025 VLocalValues vlp;
00026 vlp.push_back(localParameters(cluster,gd));
00027 return vlp;
00028 }
00029 virtual VLocalValues localParametersV( const T& cluster, const GeomDetUnit& gd, const TrajectoryStateOnSurface& tsos) const {
00030 VLocalValues vlp;
00031 vlp.push_back(localParameters(cluster,gd,tsos.localParameters()));
00032 return vlp;
00033 }
00034
00035 virtual ~ClusterParameterEstimator(){}
00036
00037
00038 virtual void enterLocalParameters(unsigned int id, std::pair<int,int>
00039 &row_col, LocalValues pos_err_info) const {}
00040 virtual void enterLocalParameters(uint32_t id, uint16_t firstStrip,
00041 LocalValues pos_err_info) const {}
00042 virtual void clearParameters() const {}
00043
00044 };
00045
00046 #endif