From fb1f2147f682c3573a6ef72e79ed3117518804a3 Mon Sep 17 00:00:00 2001 From: Thomas Reis Date: Wed, 24 Feb 2021 11:58:40 +0100 Subject: [PATCH] Consume records for mustache and dynamicDPhi parameters only if the SC algo is configured to use them. --- .../src/PFECALSuperClusterAlgo.cc | 17 +++++++++++++---- .../src/PFECALSuperClusterProducer.cc | 10 ++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/RecoEcal/EgammaClusterAlgos/src/PFECALSuperClusterAlgo.cc b/RecoEcal/EgammaClusterAlgos/src/PFECALSuperClusterAlgo.cc index 24c9cb9cf5093..579cf9cd35e0c 100644 --- a/RecoEcal/EgammaClusterAlgos/src/PFECALSuperClusterAlgo.cc +++ b/RecoEcal/EgammaClusterAlgos/src/PFECALSuperClusterAlgo.cc @@ -122,8 +122,13 @@ void PFECALSuperClusterAlgo::setTokens(const edm::ParameterSet& iConfig, edm::Co esEEInterCalibToken_ = cc.esConsumes(); esChannelStatusToken_ = cc.esConsumes(); - ecalMustacheSCParametersToken_ = cc.esConsumes(); - ecalSCDynamicDPhiParametersToken_ = cc.esConsumes(); + + if (_clustype == PFECALSuperClusterAlgo::kMustache) { + ecalMustacheSCParametersToken_ = cc.esConsumes(); + } + if (useDynamicDPhi_) { + ecalSCDynamicDPhiParametersToken_ = cc.esConsumes(); + } if (useRegression_) { const edm::ParameterSet& regconf = iConfig.getParameter("regressionConfig"); @@ -151,8 +156,12 @@ void PFECALSuperClusterAlgo::update(const edm::EventSetup& setup) { } void PFECALSuperClusterAlgo::updateSCParams(const edm::EventSetup& setup) { - mustacheSCParams_ = &setup.getData(ecalMustacheSCParametersToken_); - scDynamicDPhiParams_ = &setup.getData(ecalSCDynamicDPhiParametersToken_); + if (_clustype == PFECALSuperClusterAlgo::kMustache) { + mustacheSCParams_ = &setup.getData(ecalMustacheSCParametersToken_); + } + if (useDynamicDPhi_) { + scDynamicDPhiParams_ = &setup.getData(ecalSCDynamicDPhiParametersToken_); + } } void PFECALSuperClusterAlgo::loadAndSortPFClusters(const edm::Event& iEvent) { diff --git a/RecoEcal/EgammaClusterProducers/src/PFECALSuperClusterProducer.cc b/RecoEcal/EgammaClusterProducers/src/PFECALSuperClusterProducer.cc index b4cd777a7a9ff..e539dec93f7fc 100644 --- a/RecoEcal/EgammaClusterProducers/src/PFECALSuperClusterProducer.cc +++ b/RecoEcal/EgammaClusterProducers/src/PFECALSuperClusterProducer.cc @@ -51,8 +51,6 @@ PFECALSuperClusterProducer::PFECALSuperClusterProducer(const edm::ParameterSet& isOOTCollection_ = iConfig.getParameter("isOOTCollection"); superClusterAlgo_.setIsOOTCollection(isOOTCollection_); - superClusterAlgo_.setTokens(iConfig, consumesCollector()); - std::string _typename = iConfig.getParameter("ClusteringType"); if (_typename == ClusterType__BOX) { _theclusteringtype = PFECALSuperClusterAlgo::kBOX; @@ -62,6 +60,10 @@ PFECALSuperClusterProducer::PFECALSuperClusterProducer(const edm::ParameterSet& throw cms::Exception("InvalidClusteringType") << "You have not chosen a valid clustering type," << " please choose from \"Box\" or \"Mustache\"!"; } + superClusterAlgo_.setClusteringType(_theclusteringtype); + superClusterAlgo_.setUseDynamicDPhi(iConfig.getParameter("useDynamicDPhiWindow")); + // clusteringType and useDynamicDPhi need to be defined before setting the tokens in order to esConsume only the necessary records + superClusterAlgo_.setTokens(iConfig, consumesCollector()); std::string _weightname = iConfig.getParameter("EnergyWeight"); if (_weightname == EnergyWeight__Raw) { @@ -79,8 +81,6 @@ PFECALSuperClusterProducer::PFECALSuperClusterProducer(const edm::ParameterSet& // parameters for clustering bool seedThresholdIsET = iConfig.getParameter("seedThresholdIsET"); - bool useDynamicDPhi = iConfig.getParameter("useDynamicDPhiWindow"); - double threshPFClusterSeedBarrel = iConfig.getParameter("thresh_PFClusterSeedBarrel"); double threshPFClusterBarrel = iConfig.getParameter("thresh_PFClusterBarrel"); @@ -102,10 +102,8 @@ PFECALSuperClusterProducer::PFECALSuperClusterProducer(const edm::ParameterSet& bool dropUnseedable = iConfig.getParameter("dropUnseedable"); superClusterAlgo_.setVerbosityLevel(verbose_); - superClusterAlgo_.setClusteringType(_theclusteringtype); superClusterAlgo_.setEnergyWeighting(_theenergyweight); superClusterAlgo_.setUseETForSeeding(seedThresholdIsET); - superClusterAlgo_.setUseDynamicDPhi(useDynamicDPhi); superClusterAlgo_.setThreshSuperClusterEt(iConfig.getParameter("thresh_SCEt"));