00001 #ifndef RecoLocalTracker_SiPixelClusterizer_PixelClusterizerBase_H 00002 #define RecoLocalTracker_SiPixelClusterizer_PixelClusterizerBase_H 00003 00004 #include "DataFormats/Common/interface/DetSetVector.h" 00005 #include "DataFormats/Common/interface/DetSetVectorNew.h" 00006 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" 00007 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h" 00008 #include "CondTools/SiPixel/interface/SiPixelGainCalibrationServiceBase.h" 00009 #include <vector> 00010 00011 class PixelGeomDetUnit; 00012 00016 class PixelClusterizerBase { 00017 public: 00018 typedef edm::DetSet<PixelDigi>::const_iterator DigiIterator; 00019 00020 // Virtual destructor, this is a base class. 00021 virtual ~PixelClusterizerBase() {} 00022 00023 // Build clusters in a DetUnit. Both digi and cluster stored in a DetSet 00024 00025 virtual void clusterizeDetUnit( const edm::DetSet<PixelDigi> & input, 00026 const PixelGeomDetUnit * pixDet, 00027 const std::vector<short>& badChannels, 00028 edmNew::DetSetVector<SiPixelCluster>::FastFiller& output) = 0; 00029 00030 // Configure gain calibration service 00031 void setSiPixelGainCalibrationService( SiPixelGainCalibrationServiceBase* in){ 00032 theSiPixelGainCalibrationService_=in; 00033 } 00034 00035 protected: 00036 SiPixelGainCalibrationServiceBase* theSiPixelGainCalibrationService_; 00037 00038 }; 00039 00040 #endif