00001 #ifndef RECOLOCALTRACKER_SISTRIPZEROSUPPRESSION_SISTRIPITERATEDMEDIANCOMMONMODENOISESUBTRACTION_H 00002 #define RECOLOCALTRACKER_SISTRIPZEROSUPPRESSION_SISTRIPITERATEDMEDIANCOMMONMODENOISESUBTRACTION_H 00003 #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripCommonModeNoiseSubtractor.h" 00004 00005 #include "FWCore/Framework/interface/ESHandle.h" 00006 00007 class SiStripNoises; 00008 class SiStripQuality; 00009 00010 class IteratedMedianCMNSubtractor : public SiStripCommonModeNoiseSubtractor { 00011 00012 friend class SiStripRawProcessingFactory; 00013 00014 public: 00015 00016 void init(const edm::EventSetup& es); 00017 void subtract(const uint32_t&,std::vector<int16_t>&); 00018 void subtract(const uint32_t&,std::vector<float>&); 00019 00020 private: 00021 00022 template<typename T >void subtract_(const uint32_t&,std::vector<T>&); 00023 00024 00025 IteratedMedianCMNSubtractor(double sigma, int iterations) : 00026 cut_to_avoid_signal_(sigma), 00027 iterations_(iterations), 00028 noise_cache_id(0), 00029 quality_cache_id(0) {}; 00030 double cut_to_avoid_signal_; 00031 int iterations_; 00032 edm::ESHandle<SiStripNoises> noiseHandle; 00033 edm::ESHandle<SiStripQuality> qualityHandle; 00034 uint32_t noise_cache_id, quality_cache_id; 00035 00036 00037 }; 00038 #endif 00039