@@ -61,6 +61,7 @@ class EGRegressionModifierV3 : public ModifyObjectValueBase {
6161 edm::EDGetTokenT<double > rhoToken_;
6262
6363 bool useClosestToCentreSeedCrysDef_;
64+ bool useBuggedHOverE_; // this allows us to use the regression corrected H/E which is incorrect wrong
6465 float maxRawEnergyForLowPtEBSigma_;
6566 float maxRawEnergyForLowPtEESigma_;
6667 edm::ESGetToken<CaloGeometry, CaloGeometryRecord> caloGeomToken_;
@@ -74,6 +75,7 @@ EGRegressionModifierV3::EGRegressionModifierV3(const edm::ParameterSet& conf, ed
7475 rhoValue_(0 .),
7576 rhoToken_(cc.consumes(conf.getParameter<edm::InputTag>(" rhoTag" ))),
7677 useClosestToCentreSeedCrysDef_(conf.getParameter<bool >(" useClosestToCentreSeedCrysDef" )),
78+ useBuggedHOverE_(conf.getParameter<bool >(" useBuggedHOverE" )),
7779 maxRawEnergyForLowPtEBSigma_(conf.getParameter<double >(" maxRawEnergyForLowPtEBSigma" )),
7880 maxRawEnergyForLowPtEESigma_(conf.getParameter<double >(" maxRawEnergyForLowPtEESigma" )) {
7981 if (conf.exists (" eleRegs" )) {
@@ -219,7 +221,8 @@ std::array<float, 32> EGRegressionModifierV3::getRegData(const reco::GsfElectron
219221 data[2 ] = superClus->phiWidth ();
220222 data[3 ] = superClus->seed ()->energy () / rawEnergy;
221223 data[4 ] = ssFull5x5.e5x5 / rawEnergy;
222- data[5 ] = ele.hcalOverEcalBc ();
224+ // the full5x5 is not regression corrected and thus is the correct one to use
225+ data[5 ] = useBuggedHOverE_ ? ele.hcalOverEcalBc () : ele.full5x5_hcalOverEcalBc ();
223226 data[6 ] = rhoValue_;
224227 data[7 ] = seedClus->eta () - superClus->position ().Eta ();
225228 data[8 ] = reco::deltaPhi (seedClus->phi (), superClus->position ().Phi ());
0 commit comments