00001 #ifndef SiStripZeroSuppressionAlgorithm_h 00002 #define SiStripZeroSuppressionAlgorithm_h 00003 00013 #include <string> 00014 00015 //edm 00016 #include "FWCore/Framework/interface/EventSetup.h" 00017 #include "DataFormats/Common/interface/Handle.h" 00018 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00019 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00020 //Data Formats 00021 #include "DataFormats/Common/interface/DetSet.h" 00022 #include "DataFormats/Common/interface/DetSetVector.h" 00023 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h" 00024 #include "DataFormats/SiStripDigi/interface/SiStripRawDigi.h" 00025 //ES Data 00026 00027 #include <iostream> 00028 #include <memory> 00029 #include <string> 00030 #include <vector> 00031 #include "CLHEP/Random/RandFlat.h" 00032 00033 class SiStripPedestalsSubtractor; 00034 class SiStripFedZeroSuppression; 00035 class SiStripCommonModeNoiseSubtractor; 00036 00037 00038 class SiStripZeroSuppressionAlgorithm 00039 { 00040 public: 00041 00042 SiStripZeroSuppressionAlgorithm(const edm::ParameterSet& conf); 00043 ~SiStripZeroSuppressionAlgorithm(); 00044 00046 void run(std::string RawDigiType, const edm::DetSetVector<SiStripRawDigi>& input, 00047 std::vector< edm::DetSet<SiStripDigi> >& output,const edm::EventSetup& es); 00048 00049 private: 00050 edm::ParameterSet conf_; 00051 00052 SiStripFedZeroSuppression* SiStripZeroSuppressor_; 00053 std::string ZeroSuppressionMode_; 00054 bool validZeroSuppression_; 00055 00056 SiStripCommonModeNoiseSubtractor* SiStripCommonModeNoiseSubtractor_; 00057 std::string CMNSubtractionMode_; 00058 bool validCMNSubtraction_; 00059 00060 SiStripPedestalsSubtractor* SiStripPedestalsSubtractor_; 00061 }; 00062 #endif