Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

embed hi photon isolation in pat::photon userdata #30255

Merged
merged 2 commits into from Jul 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -83,12 +83,12 @@ class EGExtraInfoModifierFromValueMaps : public ModifyObjectValueBase {
using ValMapToken = edm::EDGetTokenT<edm::ValueMap<MapType>>;
using ValueMaps = std::unordered_map<std::string, ValMapToken>;
struct electron_config {
edm::EDGetTokenT<edm::View<pat::Electron>> tok_electron_src;
edm::EDGetTokenT<edm::View<reco::GsfElectron>> tok_electron_src;
ValueMaps tok_valuemaps;
};

struct photon_config {
edm::EDGetTokenT<edm::View<pat::Photon>> tok_photon_src;
edm::EDGetTokenT<edm::View<reco::Photon>> tok_photon_src;
ValueMaps tok_valuemaps;
};

Expand Down Expand Up @@ -123,7 +123,7 @@ EGExtraInfoModifierFromValueMaps<MapType, OutputType>::EGExtraInfoModifierFromVa
const edm::ParameterSet& electrons = conf.getParameter<edm::ParameterSet>("electron_config");
if (electrons.exists(electronSrc))
e_conf.tok_electron_src =
cc.consumes<edm::View<pat::Electron>>(electrons.getParameter<edm::InputTag>(electronSrc));
cc.consumes<edm::View<reco::GsfElectron>>(electrons.getParameter<edm::InputTag>(electronSrc));

const std::vector<std::string> parameters = electrons.getParameterNames();
for (const std::string& name : parameters) {
Expand All @@ -137,7 +137,7 @@ EGExtraInfoModifierFromValueMaps<MapType, OutputType>::EGExtraInfoModifierFromVa
if (conf.exists("photon_config")) {
const edm::ParameterSet& photons = conf.getParameter<edm::ParameterSet>("photon_config");
if (photons.exists(photonSrc))
ph_conf.tok_photon_src = cc.consumes<edm::View<pat::Photon>>(photons.getParameter<edm::InputTag>(photonSrc));
ph_conf.tok_photon_src = cc.consumes<edm::View<reco::Photon>>(photons.getParameter<edm::InputTag>(photonSrc));
const std::vector<std::string> parameters = photons.getParameterNames();
for (const std::string& name : parameters) {
if (std::string(photonSrc) == name)
Expand All @@ -160,7 +160,7 @@ void EGExtraInfoModifierFromValueMaps<MapType, OutputType>::setEvent(const edm::
ele_idx = pho_idx = 0;

if (!e_conf.tok_electron_src.isUninitialized()) {
edm::Handle<edm::View<pat::Electron>> eles;
edm::Handle<edm::View<reco::GsfElectron>> eles;
evt.getByToken(e_conf.tok_electron_src, eles);

eles_by_oop.resize(eles->size());
Expand All @@ -171,7 +171,7 @@ void EGExtraInfoModifierFromValueMaps<MapType, OutputType>::setEvent(const edm::
evt.getByToken(itr.second, ele_vmaps[itr.second.index()]);

if (!ph_conf.tok_photon_src.isUninitialized()) {
edm::Handle<edm::View<pat::Photon>> phos;
edm::Handle<edm::View<reco::Photon>> phos;
evt.getByToken(ph_conf.tok_photon_src, phos);

phos_by_oop.resize(phos->size());
Expand Down
@@ -1,5 +1,7 @@
#include "RecoEgamma/EgammaTools/interface/EGExtraInfoModifierFromValueMaps.h"

#include "DataFormats/EgammaCandidates/interface/HIPhotonIsolation.h"

using EGExtraInfoModifierFromFloatValueMaps = EGExtraInfoModifierFromValueMaps<float>;
DEFINE_EDM_PLUGIN(ModifyObjectValueFactory,
EGExtraInfoModifierFromFloatValueMaps,
Expand Down Expand Up @@ -28,6 +30,11 @@ DEFINE_EDM_PLUGIN(ModifyObjectValueFactory,
EGExtraInfoModifierFromUIntToIntValueMaps,
"EGExtraInfoModifierFromUIntToIntValueMaps");

using EGExtraInfoModifierFromHIPhotonIsolationValueMaps = EGExtraInfoModifierFromValueMaps<reco::HIPhotonIsolation>;
DEFINE_EDM_PLUGIN(ModifyObjectValueFactory,
EGExtraInfoModifierFromHIPhotonIsolationValueMaps,
"EGExtraInfoModifierFromHIPhotonIsolationValueMaps");

#include "DataFormats/PatCandidates/interface/VIDCutFlowResult.h"
using EGExtraInfoModifierFromVIDCutFlowResultValueMaps = EGExtraInfoModifierFromValueMaps<vid::CutFlowResult>;
DEFINE_EDM_PLUGIN(ModifyObjectValueFactory,
Expand Down
Expand Up @@ -136,6 +136,16 @@ def setup_mva(val_pset,cat_pset,prod_name,mva_name):
)
)

# modifier for photon isolation used in heavy ions
egammaHIPhotonIsolationModifier = cms.PSet(
modifierName = cms.string('EGExtraInfoModifierFromHIPhotonIsolationValueMaps'),
electron_config = cms.PSet(),
photon_config = cms.PSet(
photonSrc = cms.InputTag("gedPhotons"),
photonIsolationHI = cms.InputTag("photonIsolationHIProducerppGED")
)
)

def appendReducedEgammaEnergyScaleAndSmearingModifier(modifiers):
modifiers.append(reducedEgammaEnergyScaleAndSmearingModifier)

Expand All @@ -146,6 +156,9 @@ def appendEgamma8XLegacyAppendableModifiers (modifiers):
modifiers.append(reducedEgammaEnergyScaleAndSmearingModifier)
modifiers.append(egamma8XLegacyEtScaleSysModifier)

def appendEgammaHIPhotonIsolationModifier(modifiers):
modifiers.append(egammaHIPhotonIsolationModifier)

from Configuration.Eras.Modifier_run2_miniAOD_94XFall17_cff import run2_miniAOD_94XFall17
from Configuration.ProcessModifiers.run2_miniAOD_UL_cff import run2_miniAOD_UL
(run2_miniAOD_94XFall17 | run2_miniAOD_UL).toModify(egamma_modifications,appendReducedEgammaEnergyScaleAndSmearingModifier)
Expand All @@ -155,3 +168,7 @@ def appendEgamma8XLegacyAppendableModifiers (modifiers):
run2_miniAOD_80XLegacy.toModify(egamma9X105XUpdateModifier,allowGsfTrackForConvs = True)
run2_miniAOD_80XLegacy.toModify(egamma_modifications,appendEgamma8XLegacyAppendableModifiers)
run2_miniAOD_80XLegacy.toModify(egamma_modifications,prependEgamma8XObjectUpdateModifier)

from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018
from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3
(pp_on_AA_2018 | pp_on_PbPb_run3).toModify(egamma_modifications, appendEgammaHIPhotonIsolationModifier)