diff --git a/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEffFromCalibTree.cc b/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEffFromCalibTree.cc index 1356b162945ce..5fd45144ce72c 100644 --- a/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEffFromCalibTree.cc +++ b/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEffFromCalibTree.cc @@ -148,6 +148,9 @@ class SiStripHitEffFromCalibTree : public ConditionDBWriter { float _effPlotMin; TString _title; + edm::ESGetToken _tkGeomToken; + edm::ESGetToken _tTopoToken; + unsigned int nTEClayers; TH1F* bxHisto; @@ -205,6 +208,8 @@ SiStripHitEffFromCalibTree::SiStripHitEffFromCalibTree(const edm::ParameterSet& _tkMapMin = conf.getUntrackedParameter("TkMapMin", 0.9); _effPlotMin = conf.getUntrackedParameter("EffPlotMin", 0.9); _title = conf.getParameter("Title"); + _tkGeomToken = esConsumes(); + _tTopoToken = esConsumes(); reader = new SiStripDetInfoFileReader(FileInPath_.fullPath()); nTEClayers = 9; // number of wheels @@ -226,14 +231,8 @@ void SiStripHitEffFromCalibTree::algoEndJob() { } void SiStripHitEffFromCalibTree::algoAnalyze(const edm::Event& e, const edm::EventSetup& c) { - edm::ESHandle tracker; - c.get().get(tracker); - const TrackerGeometry* tkgeom = &(*tracker); - - //Retrieve tracker topology from geometry - edm::ESHandle tTopoHandle; - c.get().get(tTopoHandle); - const TrackerTopology* const tTopo = tTopoHandle.product(); + const auto& tkgeom = c.getData(_tkGeomToken); + const auto& tTopo = c.getData(_tTopoToken); // read bad modules to mask ifstream badModules_file; @@ -305,7 +304,7 @@ void SiStripHitEffFromCalibTree::algoAnalyze(const edm::Event& e, const edm::Eve cout << "A module is bad if efficiency < the avg in layer - " << threshold << " and has at least " << nModsMin << " nModsMin." << endl; - unsigned int run, evt, bx; + unsigned int run, evt, bx{0}; double instLumi, PU; //Open the ROOT Calib Tree @@ -493,7 +492,7 @@ void SiStripHitEffFromCalibTree::algoAnalyze(const edm::Event& e, const edm::Eve stripCluster = ClusterLocX / Pitch + nstrips / 2.0; } else { DetId ClusterDetId(id); - const StripGeomDetUnit* stripdet = (const StripGeomDetUnit*)tkgeom->idToDetUnit(ClusterDetId); + const StripGeomDetUnit* stripdet = (const StripGeomDetUnit*)tkgeom.idToDetUnit(ClusterDetId); const StripTopology& Topo = stripdet->specificTopology(); nstrips = Topo.nstrips(); Pitch = stripdet->surface().bounds().width() / Topo.nstrips(); @@ -713,7 +712,7 @@ void SiStripHitEffFromCalibTree::algoAnalyze(const edm::Event& e, const edm::Eve //TIB //&&&&&&&&&&&&&&&&& - component = tTopo->tibLayer(BC[i].detid); + component = tTopo.tibLayer(BC[i].detid); SetBadComponents(0, component, BC[i], ssV, NBadComponent); } else if (a.subdetId() == SiStripDetId::TID) { @@ -721,7 +720,7 @@ void SiStripHitEffFromCalibTree::algoAnalyze(const edm::Event& e, const edm::Eve //TID //&&&&&&&&&&&&&&&&& - component = tTopo->tidSide(BC[i].detid) == 2 ? tTopo->tidWheel(BC[i].detid) : tTopo->tidWheel(BC[i].detid) + 3; + component = tTopo.tidSide(BC[i].detid) == 2 ? tTopo.tidWheel(BC[i].detid) : tTopo.tidWheel(BC[i].detid) + 3; SetBadComponents(1, component, BC[i], ssV, NBadComponent); } else if (a.subdetId() == SiStripDetId::TOB) { @@ -729,7 +728,7 @@ void SiStripHitEffFromCalibTree::algoAnalyze(const edm::Event& e, const edm::Eve //TOB //&&&&&&&&&&&&&&&&& - component = tTopo->tobLayer(BC[i].detid); + component = tTopo.tobLayer(BC[i].detid); SetBadComponents(2, component, BC[i], ssV, NBadComponent); } else if (a.subdetId() == SiStripDetId::TEC) { @@ -737,7 +736,7 @@ void SiStripHitEffFromCalibTree::algoAnalyze(const edm::Event& e, const edm::Eve //TEC //&&&&&&&&&&&&&&&&& - component = tTopo->tecSide(BC[i].detid) == 2 ? tTopo->tecWheel(BC[i].detid) : tTopo->tecWheel(BC[i].detid) + 9; + component = tTopo.tecSide(BC[i].detid) == 2 ? tTopo.tecWheel(BC[i].detid) : tTopo.tecWheel(BC[i].detid) + 9; SetBadComponents(3, component, BC[i], ssV, NBadComponent); } } @@ -758,16 +757,16 @@ void SiStripHitEffFromCalibTree::algoAnalyze(const edm::Event& e, const edm::Eve SiStripDetId a(detid); if (a.subdetId() == 3) { subdet = 0; - component = tTopo->tibLayer(detid); + component = tTopo.tibLayer(detid); } else if (a.subdetId() == 4) { subdet = 1; - component = tTopo->tidSide(detid) == 2 ? tTopo->tidWheel(detid) : tTopo->tidWheel(detid) + 3; + component = tTopo.tidSide(detid) == 2 ? tTopo.tidWheel(detid) : tTopo.tidWheel(detid) + 3; } else if (a.subdetId() == 5) { subdet = 2; - component = tTopo->tobLayer(detid); + component = tTopo.tobLayer(detid); } else if (a.subdetId() == 6) { subdet = 3; - component = tTopo->tecSide(detid) == 2 ? tTopo->tecWheel(detid) : tTopo->tecWheel(detid) + 9; + component = tTopo.tecSide(detid) == 2 ? tTopo.tecWheel(detid) : tTopo.tecWheel(detid) + 9; } SiStripQuality::Range sqrange = diff --git a/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterToDigiProducer.cc b/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterToDigiProducer.cc index cf8cd2d82c0c9..fbeaa323d6331 100644 --- a/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterToDigiProducer.cc +++ b/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterToDigiProducer.cc @@ -1,7 +1,7 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/ESWatcher.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "DataFormats/Common/interface/DetSetVector.h" @@ -31,19 +31,21 @@ class SiStripClusterToDigiProducer : public edm::stream::EDProducer<> { private: void process(const ClusterCollection& input, std::vector& output_base); - void initialize(const edm::EventSetup& es); void setDetId(const uint32_t id); - float gain(const uint16_t& strip) const { return gainHandle->getStripGain(strip, gainRange); } + float gain(const uint16_t& strip) const { return gain_->getStripGain(strip, gainRange); } uint16_t applyGain(const uint16_t& strip, const uint16_t& adc); edm::EDGetTokenT token; SiStripApvGain::Range gainRange; - edm::ESHandle gainHandle; - uint32_t gain_cache_id, detId; + edm::ESGetToken gainToken_; + edm::ESWatcher gainWatcher_; + const SiStripGain* gain_; + uint32_t detId; }; SiStripClusterToDigiProducer::SiStripClusterToDigiProducer(const edm::ParameterSet& conf) { token = consumes(conf.getParameter("ClusterProducer")); + gainToken_ = esConsumes(); produces("ZeroSuppressed"); produces("VirginRaw"); @@ -52,7 +54,9 @@ SiStripClusterToDigiProducer::SiStripClusterToDigiProducer(const edm::ParameterS } void SiStripClusterToDigiProducer::produce(edm::Event& event, const edm::EventSetup& es) { - initialize(es); + if (gainWatcher_.check(es)) { + gain_ = &es.getData(gainToken_); + } std::vector output_base; edm::Handle input; @@ -97,17 +101,8 @@ void SiStripClusterToDigiProducer::process(const ClusterCollection& input, } } -void SiStripClusterToDigiProducer::initialize(const edm::EventSetup& es) { - uint32_t g_cache_id = es.get().cacheIdentifier(); - - if (g_cache_id != gain_cache_id) { - es.get().get(gainHandle); - gain_cache_id = g_cache_id; - } -} - inline void SiStripClusterToDigiProducer::setDetId(const uint32_t id) { - gainRange = gainHandle->getRange(id); + gainRange = gain_->getRange(id); detId = id; } diff --git a/RecoLocalTracker/SiStripZeroSuppression/interface/SiStripFedZeroSuppression.h b/RecoLocalTracker/SiStripZeroSuppression/interface/SiStripFedZeroSuppression.h index 2f797e96e6d5a..e0de4c5eed8c0 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/interface/SiStripFedZeroSuppression.h +++ b/RecoLocalTracker/SiStripZeroSuppression/interface/SiStripFedZeroSuppression.h @@ -7,7 +7,11 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/ESWatcher.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" + +#include "CondFormats/DataRecord/interface/SiStripNoisesRcd.h" +#include "CondFormats/DataRecord/interface/SiStripThresholdRcd.h" #include class SiStripNoises; @@ -17,9 +21,14 @@ class SiStripFedZeroSuppression { friend class SiStripRawProcessingFactory; public: - SiStripFedZeroSuppression(uint16_t fedalgo, bool trunc = true, bool trunc10bits = false) - : noise_cache_id(0), - threshold_cache_id(0), + SiStripFedZeroSuppression(uint16_t fedalgo, + edm::ConsumesCollector* iC = nullptr, + bool trunc = true, + bool trunc10bits = false) + : noiseToken_{iC ? decltype(noiseToken_){iC->esConsumes()} + : decltype(noiseToken_){}}, + thresholdToken_{iC ? decltype(thresholdToken_){iC->esConsumes()} + : decltype(thresholdToken_){}}, theFEDalgorithm(fedalgo), doTruncate(trunc), doTruncate10bits(trunc10bits) {} @@ -41,9 +50,12 @@ class SiStripFedZeroSuppression { }; private: - edm::ESHandle noiseHandle; - edm::ESHandle thresholdHandle; - uint32_t noise_cache_id, threshold_cache_id; + edm::ESGetToken noiseToken_; + edm::ESGetToken thresholdToken_; + const SiStripNoises* noise_; + const SiStripThreshold* threshold_; + edm::ESWatcher noiseWatcher_; + edm::ESWatcher thresholdWatcher_; uint16_t theFEDalgorithm; bool isAValidDigi(); diff --git a/RecoLocalTracker/SiStripZeroSuppression/interface/SiStripRawProcessingFactory.h b/RecoLocalTracker/SiStripZeroSuppression/interface/SiStripRawProcessingFactory.h index 1a84c4729ea30..abe31a61f0eb9 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/interface/SiStripRawProcessingFactory.h +++ b/RecoLocalTracker/SiStripZeroSuppression/interface/SiStripRawProcessingFactory.h @@ -16,7 +16,7 @@ class SiStripRawProcessingFactory { public: static std::unique_ptr create(const edm::ParameterSet&, edm::ConsumesCollector); - static std::unique_ptr create_Suppressor(const edm::ParameterSet&); + static std::unique_ptr create_Suppressor(const edm::ParameterSet&, edm::ConsumesCollector); static std::unique_ptr create_SubtractorPed(const edm::ParameterSet&, edm::ConsumesCollector); static std::unique_ptr create_SubtractorCMN(const edm::ParameterSet&, diff --git a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripFedZeroSuppression.cc b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripFedZeroSuppression.cc index 4ace9de7efe9a..ddaa39cc89abf 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripFedZeroSuppression.cc +++ b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripFedZeroSuppression.cc @@ -10,23 +10,18 @@ using namespace std; void SiStripFedZeroSuppression::init(const edm::EventSetup& es) { - uint32_t n_cache_id = es.get().cacheIdentifier(); - uint32_t t_cache_id = es.get().cacheIdentifier(); - - if (n_cache_id != noise_cache_id) { - es.get().get(noiseHandle); - noise_cache_id = n_cache_id; + if (noiseWatcher_.check(es)) { + noise_ = &es.getData(noiseToken_); } - if (t_cache_id != threshold_cache_id) { - es.get().get(thresholdHandle); - threshold_cache_id = t_cache_id; + if (thresholdWatcher_.check(es)) { + threshold_ = &es.getData(thresholdToken_); } } void SiStripFedZeroSuppression::suppress(const std::vector& in, std::vector& selectedSignal, uint32_t detID) { - suppress(in, selectedSignal, detID, *noiseHandle, *thresholdHandle); + suppress(in, selectedSignal, detID, *noise_, *threshold_); } void SiStripFedZeroSuppression::suppress(const std::vector& in, @@ -133,8 +128,8 @@ void SiStripFedZeroSuppression::suppress(const std::vector& in, void SiStripFedZeroSuppression::suppress(const edm::DetSet& in, edm::DetSet& out) { const uint32_t detID = out.id; - SiStripNoises::Range detNoiseRange = noiseHandle->getRange(detID); - SiStripThreshold::Range detThRange = thresholdHandle->getRange(detID); + SiStripNoises::Range detNoiseRange = noise_->getRange(detID); + SiStripThreshold::Range detThRange = threshold_->getRange(detID); #ifdef DEBUG_SiStripZeroSuppression_ if (edm::isDebugEnabled()) LogTrace("SiStripZeroSuppression") @@ -152,10 +147,9 @@ void SiStripFedZeroSuppression::suppress(const edm::DetSet& in, #endif adc = in_iter->adc(); - SiStripThreshold::Data thresholds = thresholdHandle->getData(strip, detThRange); - theFEDlowThresh = static_cast(thresholds.getLth() * noiseHandle->getNoiseFast(strip, detNoiseRange) + 0.5); - theFEDhighThresh = - static_cast(thresholds.getHth() * noiseHandle->getNoiseFast(strip, detNoiseRange) + 0.5); + SiStripThreshold::Data thresholds = threshold_->getData(strip, detThRange); + theFEDlowThresh = static_cast(thresholds.getLth() * noise_->getNoiseFast(strip, detNoiseRange) + 0.5); + theFEDhighThresh = static_cast(thresholds.getHth() * noise_->getNoiseFast(strip, detNoiseRange) + 0.5); adcPrev = -9999; adcNext = -9999; @@ -171,11 +165,11 @@ void SiStripFedZeroSuppression::suppress(const edm::DetSet& in, theNextFEDhighThresh = 9999; } else { adcNext = (in_iter + 1)->adc(); - SiStripThreshold::Data thresholds_1 = thresholdHandle->getData(strip + 1, detThRange); + SiStripThreshold::Data thresholds_1 = threshold_->getData(strip + 1, detThRange); theNextFEDlowThresh = - static_cast(thresholds_1.getLth() * noiseHandle->getNoiseFast(strip + 1, detNoiseRange) + 0.5); + static_cast(thresholds_1.getLth() * noise_->getNoiseFast(strip + 1, detNoiseRange) + 0.5); theNextFEDhighThresh = - static_cast(thresholds_1.getHth() * noiseHandle->getNoiseFast(strip + 1, detNoiseRange) + 0.5); + static_cast(thresholds_1.getHth() * noise_->getNoiseFast(strip + 1, detNoiseRange) + 0.5); } /* Similarily, for the first strip @@ -187,11 +181,11 @@ void SiStripFedZeroSuppression::suppress(const edm::DetSet& in, thePrevFEDhighThresh = 9999; } else { adcPrev = (in_iter - 1)->adc(); - SiStripThreshold::Data thresholds_1 = thresholdHandle->getData(strip - 1, detThRange); + SiStripThreshold::Data thresholds_1 = threshold_->getData(strip - 1, detThRange); thePrevFEDlowThresh = - static_cast(thresholds_1.getLth() * noiseHandle->getNoiseFast(strip - 1, detNoiseRange) + 0.5); + static_cast(thresholds_1.getLth() * noise_->getNoiseFast(strip - 1, detNoiseRange) + 0.5); thePrevFEDhighThresh = - static_cast(thresholds_1.getHth() * noiseHandle->getNoiseFast(strip - 1, detNoiseRange) + 0.5); + static_cast(thresholds_1.getHth() * noise_->getNoiseFast(strip - 1, detNoiseRange) + 0.5); } if (adcNext < adcPrev) { adcMaxNeigh = adcPrev; @@ -213,18 +207,16 @@ void SiStripFedZeroSuppression::suppress(const edm::DetSet& in, theNext2FEDlowThresh = 9999; } else if (strip % 128 < 126) { adcNext2 = (in_iter + 2)->adc(); - theNext2FEDlowThresh = static_cast(thresholdHandle->getData(strip + 2, detThRange).getLth() * - noiseHandle->getNoiseFast(strip + 2, detNoiseRange) + - 0.5); + theNext2FEDlowThresh = static_cast( + threshold_->getData(strip + 2, detThRange).getLth() * noise_->getNoiseFast(strip + 2, detNoiseRange) + 0.5); } if (strip % 128 <= 1) { adcPrev2 = 0; thePrev2FEDlowThresh = 9999; } else if (strip % 128 > 1) { adcPrev2 = (in_iter - 2)->adc(); - thePrev2FEDlowThresh = static_cast(thresholdHandle->getData(strip - 2, detThRange).getLth() * - noiseHandle->getNoiseFast(strip - 2, detNoiseRange) + - 0.5); + thePrev2FEDlowThresh = static_cast( + threshold_->getData(strip - 2, detThRange).getLth() * noise_->getNoiseFast(strip - 2, detNoiseRange) + 0.5); } //GB 23/6/08: truncation should be done at the very beginning if (isAValidDigi()) @@ -233,8 +225,8 @@ void SiStripFedZeroSuppression::suppress(const edm::DetSet& in, } void SiStripFedZeroSuppression::fillThresholds_(const uint32_t detID, size_t size) { - SiStripNoises::Range detNoiseRange = noiseHandle->getRange(detID); - SiStripThreshold::Range detThRange = thresholdHandle->getRange(detID); + SiStripNoises::Range detNoiseRange = noise_->getRange(detID); + SiStripThreshold::Range detThRange = threshold_->getRange(detID); if (highThr_.size() != size) { highThr_.resize(size); @@ -244,8 +236,8 @@ void SiStripFedZeroSuppression::fillThresholds_(const uint32_t detID, size_t siz lowThrSN_.resize(size); } - noiseHandle->allNoises(noises_, detNoiseRange); - thresholdHandle->allThresholds(lowThrSN_, highThrSN_, detThRange); // thresholds as S/N + noise_->allNoises(noises_, detNoiseRange); + threshold_->allThresholds(lowThrSN_, highThrSN_, detThRange); // thresholds as S/N for (size_t strip = 0; strip < size; ++strip) { float noise = noises_[strip]; // uncomment line below to check bluk noise decoding diff --git a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripRawProcessingFactory.cc b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripRawProcessingFactory.cc index c87dd2e9c89b7..0a09812b9c932 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/src/SiStripRawProcessingFactory.cc +++ b/RecoLocalTracker/SiStripZeroSuppression/src/SiStripRawProcessingFactory.cc @@ -19,7 +19,7 @@ std::unique_ptr SiStripRawProcessingFactory::cre new SiStripRawProcessingAlgorithms(iC, create_SubtractorPed(conf, iC), create_SubtractorCMN(conf, iC), - create_Suppressor(conf), + create_Suppressor(conf, iC), create_Restorer(conf, iC), conf.getParameter("doAPVRestore"), conf.getParameter("useCMMeanMap"))); @@ -61,8 +61,8 @@ std::unique_ptr SiStripRawProcessingFactory::c return std::unique_ptr(new MedianCMNSubtractor()); } -std::unique_ptr SiStripRawProcessingFactory::create_Suppressor( - const edm::ParameterSet& conf) { +std::unique_ptr SiStripRawProcessingFactory::create_Suppressor(const edm::ParameterSet& conf, + edm::ConsumesCollector iC) { const uint32_t mode = conf.getParameter("SiStripFedZeroSuppressionMode"); const bool trunc = conf.getParameter("TruncateInSuppressor"); const bool trunc10bits = conf.getParameter("Use10bitsTruncation"); @@ -71,11 +71,11 @@ std::unique_ptr SiStripRawProcessingFactory::create_S case 2: case 3: case 4: - return std::make_unique(mode, trunc, trunc10bits); + return std::make_unique(mode, &iC, trunc, trunc10bits); default: edm::LogError("SiStripRawProcessingFactory::createSuppressor") << "Unregistered mode: " << mode << ". Use one of {1,2,3,4}."; - return std::make_unique(4, true, trunc10bits); + return std::make_unique(4, &iC, true, trunc10bits); } } diff --git a/SimTracker/SiStripDigitizer/plugins/DigiSimLinkAlgorithm.cc b/SimTracker/SiStripDigitizer/plugins/DigiSimLinkAlgorithm.cc index cf79b989c929b..7bfa25dfd5d7e 100644 --- a/SimTracker/SiStripDigitizer/plugins/DigiSimLinkAlgorithm.cc +++ b/SimTracker/SiStripDigitizer/plugins/DigiSimLinkAlgorithm.cc @@ -52,7 +52,7 @@ DigiSimLinkAlgorithm::DigiSimLinkAlgorithm(const edm::ParameterSet& conf) : conf theDigiSimLinkPileUpSignals = new DigiSimLinkPileUpSignals(); theSiNoiseAdder = new SiGaussianTailNoiseAdder(theThreshold); theSiDigitalConverter = new SiTrivialDigitalConverter(theElectronPerADC, PreMixing_); - theSiZeroSuppress = new SiStripFedZeroSuppression(theFedAlgo); + theSiZeroSuppress = new SiStripFedZeroSuppression(theFedAlgo, nullptr); } DigiSimLinkAlgorithm::~DigiSimLinkAlgorithm() { diff --git a/SimTracker/SiStripDigitizer/plugins/PreMixingSiStripWorker.cc b/SimTracker/SiStripDigitizer/plugins/PreMixingSiStripWorker.cc index 36e027cb03fd0..7a3450bc75508 100644 --- a/SimTracker/SiStripDigitizer/plugins/PreMixingSiStripWorker.cc +++ b/SimTracker/SiStripDigitizer/plugins/PreMixingSiStripWorker.cc @@ -164,7 +164,7 @@ PreMixingSiStripWorker::PreMixingSiStripWorker(const edm::ParameterSet& ps, theElectronPerADC(ps.getParameter(peakMode ? "electronPerAdcPeak" : "electronPerAdcDec")), APVSaturationFromHIP_(ps.getParameter("APVSaturationFromHIP")), theFedAlgo(ps.getParameter("FedAlgorithm_PM")), - theSiZeroSuppress(new SiStripFedZeroSuppression(theFedAlgo)), + theSiZeroSuppress(new SiStripFedZeroSuppression(theFedAlgo, &iC)), theSiDigitalConverter(new SiTrivialDigitalConverter(theElectronPerADC, false)), // no premixing includeAPVSimulation_(ps.getParameter("includeAPVSimulation")), fracOfEventsToSimAPV_(ps.getParameter("fracOfEventsToSimAPV")), diff --git a/SimTracker/SiStripDigitizer/plugins/SiStripDigitizerAlgorithm.cc b/SimTracker/SiStripDigitizer/plugins/SiStripDigitizerAlgorithm.cc index b523c6256efa3..2c143a7532fd2 100644 --- a/SimTracker/SiStripDigitizer/plugins/SiStripDigitizerAlgorithm.cc +++ b/SimTracker/SiStripDigitizer/plugins/SiStripDigitizerAlgorithm.cc @@ -67,7 +67,7 @@ SiStripDigitizerAlgorithm::SiStripDigitizerAlgorithm(const edm::ParameterSet& co theSiPileUpSignals(new SiPileUpSignals()), theSiNoiseAdder(new SiGaussianTailNoiseAdder(theThreshold)), theSiDigitalConverter(new SiTrivialDigitalConverter(theElectronPerADC, PreMixing_)), - theSiZeroSuppress(new SiStripFedZeroSuppression(theFedAlgo)), + theSiZeroSuppress(new SiStripFedZeroSuppression(theFedAlgo, &iC)), APVProbabilityFile(conf.getParameter("APVProbabilityFile")), includeAPVSimulation_(conf.getParameter("includeAPVSimulation")), apv_maxResponse_(conf.getParameter("apv_maxResponse")),