00001 #ifndef SiPixelRawToDigi_H 00002 #define SiPixelRawToDigi_H 00003 00009 #include "FWCore/Framework/interface/ESWatcher.h" 00010 #include "FWCore/Framework/interface/EDProducer.h" 00011 #include "FWCore/Framework/interface/EventSetup.h" 00012 #include "FWCore/Framework/interface/Event.h" 00013 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00014 #include "CondFormats/DataRecord/interface/SiPixelFedCablingMapRcd.h" 00015 #include "CondFormats/DataRecord/interface/SiPixelQualityRcd.h" 00016 00017 class SiPixelFedCabling; 00018 class SiPixelQuality; 00019 class TH1D; 00020 class R2DTimerObserver; 00021 class PixelUnpackingRegions; 00022 00023 class SiPixelRawToDigi : public edm::EDProducer { 00024 public: 00025 00027 explicit SiPixelRawToDigi( const edm::ParameterSet& ); 00028 00030 virtual ~SiPixelRawToDigi(); 00031 00032 00034 virtual void endJob() {} 00035 00037 virtual void produce( edm::Event&, const edm::EventSetup& ); 00038 00039 private: 00040 00041 edm::ParameterSet config_; 00042 const SiPixelFedCabling* cabling_; 00043 const SiPixelQuality* badPixelInfo_; 00044 bool useCablingTree_; 00045 PixelUnpackingRegions* regions_; 00046 00047 TH1D *hCPU, *hDigi; 00048 R2DTimerObserver * theTimer; 00049 bool includeErrors; 00050 bool useQuality; 00051 bool debug; 00052 std::vector<int> tkerrorlist; 00053 std::vector<int> usererrorlist; 00054 std::vector<unsigned int> fedIds; 00055 edm::ESWatcher<SiPixelFedCablingMapRcd> recordWatcher; 00056 edm::ESWatcher<SiPixelQualityRcd> qualityWatcher; 00057 edm::InputTag label; 00058 int ndigis; 00059 int nwords; 00060 00061 }; 00062 #endif