File indexing completed on 2024-04-06 12:26:30
0001 #ifndef RECOLOCALTRACKER_SISTRIPZEROSUPPRESSION_SISTRIPTT6COMMONMODENOISESUBTRACTION_H
0002 #define RECOLOCALTRACKER_SISTRIPZEROSUPPRESSION_SISTRIPTT6COMMONMODENOISESUBTRACTION_H
0003 #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripCommonModeNoiseSubtractor.h"
0004 #include "CondFormats/DataRecord/interface/SiStripNoisesRcd.h"
0005 #include "CalibTracker/Records/interface/SiStripQualityRcd.h"
0006
0007 #include "FWCore/Framework/interface/ESWatcher.h"
0008 #include "FWCore/Framework/interface/ConsumesCollector.h"
0009 class SiStripNoises;
0010 class SiStripQuality;
0011
0012 class TT6CMNSubtractor : public SiStripCommonModeNoiseSubtractor {
0013 friend class SiStripRawProcessingFactory;
0014
0015 public:
0016 void init(const edm::EventSetup& es) override;
0017 void subtract(uint32_t detId, uint16_t firstAPV, std::vector<int16_t>& digis) override;
0018 void subtract(uint32_t detId, uint16_t firstAPV, std::vector<float>& digis) override;
0019
0020 private:
0021 template <typename T>
0022 void subtract_(uint32_t detId, uint16_t firstAPV, std::vector<T>& digis);
0023
0024 TT6CMNSubtractor(double in, edm::ConsumesCollector iC)
0025 : cut_to_avoid_signal_(in),
0026 noiseToken_(iC.esConsumes<SiStripNoises, SiStripNoisesRcd>()),
0027 qualityToken_(iC.esConsumes<SiStripQuality, SiStripQualityRcd>()) {}
0028 double cut_to_avoid_signal_;
0029 edm::ESGetToken<SiStripNoises, SiStripNoisesRcd> noiseToken_;
0030 edm::ESGetToken<SiStripQuality, SiStripQualityRcd> qualityToken_;
0031 const SiStripNoises* noiseHandle;
0032 const SiStripQuality* qualityHandle;
0033 edm::ESWatcher<SiStripNoisesRcd> noiseWatcher_;
0034 edm::ESWatcher<SiStripQualityRcd> qualityWatcher_;
0035 };
0036 #endif