Skip to content

Commit 8485130

Browse files
authored
Merge pull request #47496 from BlancoFS/master
Enable corrections for HCAL effective areas
2 parents 3b17e35 + b3d472f commit 8485130

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

RecoEgamma/EgammaHLTProducers/plugins/HLTHcalPFClusterIsolationProducer.cc

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ class HLTHcalPFClusterIsolationProducer : public edm::global::EDProducer<> {
6767
const double rhoScale_;
6868
const std::vector<double> effectiveAreas_;
6969
const std::vector<double> absEtaLowEdges_;
70+
71+
const bool doEffAreaCorrection_;
72+
const std::vector<double> effectiveAreasCorr_;
73+
const std::vector<double> effectiveAreasThres_;
7074
};
7175

7276
template <typename T1>
@@ -91,7 +95,10 @@ HLTHcalPFClusterIsolationProducer<T1>::HLTHcalPFClusterIsolationProducer(const e
9195
rhoMax_(config.getParameter<double>("rhoMax")),
9296
rhoScale_(config.getParameter<double>("rhoScale")),
9397
effectiveAreas_(config.getParameter<std::vector<double>>("effectiveAreas")),
94-
absEtaLowEdges_(config.getParameter<std::vector<double>>("absEtaLowEdges")) {
98+
absEtaLowEdges_(config.getParameter<std::vector<double>>("absEtaLowEdges")),
99+
doEffAreaCorrection_(config.getParameter<bool>("doEffAreaCorrection")),
100+
effectiveAreasCorr_(config.getParameter<std::vector<double>>("effectiveAreasCorr")),
101+
effectiveAreasThres_(config.getParameter<std::vector<double>>("effectiveAreasThres")) {
95102
if (doRhoCorrection_) {
96103
if (absEtaLowEdges_.size() != effectiveAreas_.size())
97104
throw cms::Exception("IncompatibleVects") << "absEtaLowEdges and effectiveAreas should be of the same size. \n";
@@ -149,6 +156,9 @@ void HLTHcalPFClusterIsolationProducer<T1>::fillDescriptions(edm::ConfigurationD
149156
desc.add<bool>("useEt", true);
150157
desc.add<std::vector<double>>("effectiveAreas", {0.2, 0.25}); // 2016 post-ichep sinEle default
151158
desc.add<std::vector<double>>("absEtaLowEdges", {0.0, 1.479}); // Barrel, Endcap
159+
desc.add<bool>("doEffAreaCorrection", false);
160+
desc.add<std::vector<double>>("effectiveAreasCorr", {0.0, 0.0});
161+
desc.add<std::vector<double>>("effectiveAreasThres", {0.0, 0.0});
152162
descriptions.add(defaultModuleLabel<HLTHcalPFClusterIsolationProducer<T1>>(), desc);
153163
}
154164

@@ -177,7 +187,6 @@ void HLTHcalPFClusterIsolationProducer<T1>::produce(edm::StreamID sid,
177187

178188
iEvent.getByToken(recoCandidateProducer_, recoCandHandle);
179189
iEvent.getByToken(pfClusterProducerHCAL_, clusterHcalHandle);
180-
//const reco::PFClusterCollection* forIsolationHcal = clusterHcalHandle.product();
181190
clusterHandles.push_back(clusterHcalHandle);
182191

183192
if (useHF_) {
@@ -193,7 +202,6 @@ void HLTHcalPFClusterIsolationProducer<T1>::produce(edm::StreamID sid,
193202

194203
for (unsigned int iReco = 0; iReco < recoCandHandle->size(); iReco++) {
195204
T1Ref candRef(recoCandHandle, iReco);
196-
197205
float sum = isoAlgo.getSum(candRef, clusterHandles);
198206

199207
if (doRhoCorrection_) {
@@ -205,7 +213,12 @@ void HLTHcalPFClusterIsolationProducer<T1>::produce(edm::StreamID sid,
205213
break;
206214
}
207215
}
208-
sum = sum - rho * effectiveAreas_[iEA];
216+
if (doEffAreaCorrection_) {
217+
float correction = (rho > effectiveAreasThres_[iEA]) ? (1 + effectiveAreasCorr_[iEA]) : 1;
218+
sum -= rho * correction * effectiveAreas_[iEA];
219+
} else {
220+
sum -= rho * effectiveAreas_[iEA];
221+
}
209222
}
210223

211224
recoCandMap.insert(candRef, sum);

0 commit comments

Comments
 (0)