00001 #ifndef FastSimulation_TrackingRecHitProducer_FastStripCPE_H 00002 #define FastSimulation_TrackingRecHitProducer_FastStripCPE_H 00003 00004 #include "DataFormats/GeometryVector/interface/LocalPoint.h" 00005 #include "DataFormats/GeometrySurface/interface/LocalError.h" 00006 #include "RecoLocalTracker/ClusterParameterEstimator/interface/StripClusterParameterEstimator.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 00009 #include <ext/hash_map> 00010 #include <map> 00011 00012 00013 class FastStripCPE : public StripClusterParameterEstimator 00014 { 00015 public: 00016 FastStripCPE(){;} 00017 00018 //Standard method used 00019 //LocalValues is typedef for std::pair<LocalPoint,LocalError> 00020 StripClusterParameterEstimator::LocalValues localParameters( const SiStripCluster & cl,const GeomDetUnit& det) const { 00021 return localParameters(cl); 00022 }; 00023 StripClusterParameterEstimator::LocalValues localParameters( const SiStripCluster & cl)const; 00024 00025 //Put information into the map. 00026 void enterLocalParameters(uint32_t id, uint16_t firstStrip, std::pair<LocalPoint,LocalError> pos_err_info) const; 00027 00028 //Clear the map. 00029 void clearParameters() const { 00030 pos_err_map.clear(); 00031 } 00032 00033 LocalVector driftDirection(const StripGeomDetUnit* det)const; 00034 00035 private: 00036 mutable std::map<std::pair<uint32_t, uint16_t>,std::pair<LocalPoint, LocalError> > pos_err_map; 00037 00038 }; 00039 00040 #endif 00041 00042 00043 00044