Skip to content

Commit e28f2dd

Browse files
committed
Turn-around for muon isolation fix
1 parent 059eb10 commit e28f2dd

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

RecoEgamma/EgammaHLTProducers/plugins/HLTHcalPFClusterIsolationProducer.cc

Lines changed: 21 additions & 5 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,9 +213,17 @@ void HLTHcalPFClusterIsolationProducer<T1>::produce(edm::StreamID sid,
205213
break;
206214
}
207215
}
208-
sum = sum - rho * effectiveAreas_[iEA];
216+
if (doEffAreaCorrection_){
217+
if (rho>effectiveAreasThres_[iEA]){
218+
sum = sum - rho * (1 + effectiveAreasCorr_[iEA]) * effectiveAreas_[iEA];
219+
}else{
220+
sum = sum - rho * effectiveAreas_[iEA];
221+
}
222+
}else{
223+
sum = sum - rho * effectiveAreas_[iEA];
224+
}
209225
}
210-
226+
211227
recoCandMap.insert(candRef, sum);
212228
}
213229

0 commit comments

Comments
 (0)