Skip to content

Commit

Permalink
adapting producing modules to store pf cluster isol in the reco ele/pho
Browse files Browse the repository at this point in the history
  • Loading branch information
Sam-Harper committed Jan 9, 2018
1 parent 33ce9c9 commit 29ee74c
Show file tree
Hide file tree
Showing 16 changed files with 186 additions and 123 deletions.
24 changes: 11 additions & 13 deletions PhysicsTools/PatAlgos/plugins/PATElectronProducer.cc
Expand Up @@ -446,14 +446,12 @@ void PATElectronProducer::produce(edm::Event & iEvent, const edm::EventSetup & i
iEvent.getByToken(ecalPFClusterIsoT_, ecalPFClusterIsoMapH);
edm::Handle<edm::ValueMap<float> > hcalPFClusterIsoMapH;
iEvent.getByToken(hcalPFClusterIsoT_, hcalPFClusterIsoMapH);

anElectron.setEcalPFClusterIso((*ecalPFClusterIsoMapH)[elecsRef]);
anElectron.setHcalPFClusterIso((*hcalPFClusterIsoMapH)[elecsRef]);
} else {
anElectron.setEcalPFClusterIso(-999.);
anElectron.setHcalPFClusterIso(-999.);
reco::GsfElectron::PflowIsolationVariables newPFIsol = anElectron.pfIsolationVariables();
newPFIsol.sumEcalClusterEt = (*ecalPFClusterIsoMapH)[elecsRef];
newPFIsol.sumHcalClusterEt = (*hcalPFClusterIsoMapH)[elecsRef];
anElectron.setPfIsolationVariables(newPFIsol);
}

std::vector<DetId> selectedCells;
bool barrel = itElectron->isEB();
//loop over sub clusters
Expand Down Expand Up @@ -675,20 +673,20 @@ void PATElectronProducer::produce(edm::Event & iEvent, const edm::EventSetup & i
std::vector<float> vCov = lazyTools.localCovariances(*( itElectron->superCluster()->seed()));
anElectron.setMvaVariables(vCov[1], ip3d);
}

// PFCluster Isolation
if (addPFClusterIso_) {
// Get PFCluster Isolation
edm::Handle<edm::ValueMap<float> > ecalPFClusterIsoMapH;
iEvent.getByToken(ecalPFClusterIsoT_, ecalPFClusterIsoMapH);
edm::Handle<edm::ValueMap<float> > hcalPFClusterIsoMapH;
iEvent.getByToken(hcalPFClusterIsoT_, hcalPFClusterIsoMapH);

anElectron.setEcalPFClusterIso((*ecalPFClusterIsoMapH)[elecsRef]);
anElectron.setHcalPFClusterIso((*hcalPFClusterIsoMapH)[elecsRef]);
} else {
anElectron.setEcalPFClusterIso(-999.);
anElectron.setHcalPFClusterIso(-999.);
reco::GsfElectron::PflowIsolationVariables newPFIsol = anElectron.pfIsolationVariables();
newPFIsol.sumEcalClusterEt = (*ecalPFClusterIsoMapH)[elecsRef];
newPFIsol.sumHcalClusterEt = (*hcalPFClusterIsoMapH)[elecsRef];
anElectron.setPfIsolationVariables(newPFIsol);
}

if (addPuppiIsolation_) {
anElectron.setIsolationPUPPI((*PUPPIIsolation_charged_hadrons)[elePtr], (*PUPPIIsolation_neutral_hadrons)[elePtr], (*PUPPIIsolation_photons)[elePtr]);
anElectron.setIsolationPUPPINoLeptons((*PUPPINoLeptonsIsolation_charged_hadrons)[elePtr], (*PUPPINoLeptonsIsolation_neutral_hadrons)[elePtr], (*PUPPINoLeptonsIsolation_photons)[elePtr]);
Expand Down
2 changes: 1 addition & 1 deletion PhysicsTools/PatAlgos/plugins/PATElectronSlimmer.cc
Expand Up @@ -131,7 +131,7 @@ pat::PATElectronSlimmer::produce(edm::Event & iEvent, const edm::EventSetup & iS
if (dropSeedCluster_(electron)) { electron.seedCluster_.clear(); electron.embeddedSeedCluster_ = false; }
if (dropRecHits_(electron)) { electron.recHits_ = EcalRecHitCollection(); electron.embeddedRecHits_ = false; }
if (dropCorrections_(electron)) { electron.setCorrections(reco::GsfElectron::Corrections()); }
if (dropIsolations_(electron)) { electron.setDr03Isolation(reco::GsfElectron::IsolationVariables()); electron.setDr04Isolation(reco::GsfElectron::IsolationVariables()); electron.setPfIsolationVariables(reco::GsfElectron::PflowIsolationVariables()); electron.setEcalPFClusterIso(0); electron.setHcalPFClusterIso(0); }
if (dropIsolations_(electron)) { electron.setDr03Isolation(reco::GsfElectron::IsolationVariables()); electron.setDr04Isolation(reco::GsfElectron::IsolationVariables()); electron.setPfIsolationVariables(reco::GsfElectron::PflowIsolationVariables()); }
if (dropShapes_(electron)) { electron.setShowerShape(reco::GsfElectron::ShowerShape()); }
if (dropSaturation_(electron)) { electron.setSaturationInfo(reco::GsfElectron::SaturationInfo()); }
if (dropExtrapolations_(electron)) { electron.setTrackExtrapolations(reco::GsfElectron::TrackExtrapolations()); }
Expand Down
14 changes: 6 additions & 8 deletions PhysicsTools/PatAlgos/plugins/PATPhotonProducer.cc
Expand Up @@ -414,21 +414,19 @@ void PATPhotonProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSe

// Get PFCluster Isolation
if (addPFClusterIso_) {
reco::Photon::PflowIsolationVariables newPFIsol = aPhoton.getPflowIsolationVariables();
edm::Handle<edm::ValueMap<float> > ecalPFClusterIsoMapH;
iEvent.getByToken(ecalPFClusterIsoT_, ecalPFClusterIsoMapH);
aPhoton.setEcalPFClusterIso((*ecalPFClusterIsoMapH)[photonRef]);
newPFIsol.sumEcalClusterEt = (*ecalPFClusterIsoMapH)[photonRef];
edm::Handle<edm::ValueMap<float> > hcalPFClusterIsoMapH;
if (not hcalPFClusterIsoT_.isUninitialized()){
iEvent.getByToken(hcalPFClusterIsoT_, hcalPFClusterIsoMapH);
aPhoton.setHcalPFClusterIso((*hcalPFClusterIsoMapH)[photonRef]);
newPFIsol.sumHcalClusterEt = (*hcalPFClusterIsoMapH)[photonRef];
}
else
{
aPhoton.setHcalPFClusterIso(-999.);
else{
newPFIsol.sumHcalClusterEt = -999.;
}
} else {
aPhoton.setEcalPFClusterIso(-999.);
aPhoton.setHcalPFClusterIso(-999.);
aPhoton.setPflowIsolationVariables(newPFIsol);
}

// add the Photon to the vector of Photons
Expand Down
Expand Up @@ -34,9 +34,7 @@
patOOTPhotons.addPuppiIsolation = cms.bool(False)

# PFClusterIso
patOOTPhotons.addPFClusterIso = cms.bool(True)
patOOTPhotons.ecalPFClusterIsoMap = cms.InputTag("reducedEgamma", "ootPhoEcalPFClusIso")
patOOTPhotons.hcalPFClusterIsoMap = cms.InputTag("reducedEgamma", "ootPhoHcalPFClusIso")
patOOTPhotons.addPFClusterIso = cms.bool(False)

# MC Match
patOOTPhotons.genParticleMatch = cms.InputTag("ootPhotonMatch") ## particles source to be used for the matching
Expand All @@ -61,4 +59,4 @@
makePatOOTPhotonsTask.copy()
))

run2_miniAOD_80XLegacy.toModify(patOOTPhotons, hcalPFClusterIsoMap = "")
run2_miniAOD_80XLegacy.toModify(patOOTPhotons, addPFClusterIso = cms.bool(True),ecalPFClusterIsoMap = cms.InputTag("reducedEgamma", "ootPhoEcalPFClusIso") )
18 changes: 11 additions & 7 deletions PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py
Expand Up @@ -51,7 +51,11 @@ def miniAOD_customizeCommon(process):
eidTight = cms.InputTag("reducedEgamma","eidTight"),
eidRobustHighEnergy = cms.InputTag("reducedEgamma","eidRobustHighEnergy"),
)
process.patElectrons.addPFClusterIso = cms.bool(True)
from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff import run2_miniAOD_80XLegacy
run2_miniAOD_80XLegacy.toModify(process.patElectrons,
addPFClusterIso = cms.bool(True),
ecalPFClusterIsoMap = cms.InputTag("reducedEgamma", "eleEcalPFClusIso"),
hcalPFClusterIsoMap = cms.InputTag("reducedEgamma", "eleHcalPFClusIso"))
#add puppi isolation in miniAOD
process.patElectrons.addPuppiIsolation = cms.bool(True)
process.patElectrons.puppiIsolationChargedHadrons = cms.InputTag("egmElectronPUPPIIsolation","h+-DR030-BarVeto000-EndVeto001")
Expand All @@ -63,9 +67,6 @@ def miniAOD_customizeCommon(process):

process.patElectrons.computeMiniIso = cms.bool(True)

process.patElectrons.ecalPFClusterIsoMap = cms.InputTag("reducedEgamma", "eleEcalPFClusIso")
process.patElectrons.hcalPFClusterIsoMap = cms.InputTag("reducedEgamma", "eleHcalPFClusIso")

process.elPFIsoDepositChargedPAT.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons")
process.elPFIsoDepositChargedAllPAT.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons")
process.elPFIsoDepositNeutralPAT.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons")
Expand All @@ -77,16 +78,19 @@ def miniAOD_customizeCommon(process):
process.patPhotons.embedBasicClusters = False ## process.patPhotons.embed in AOD externally stored the photon's basic clusters
process.patPhotons.embedPreshowerClusters = False ## process.patPhotons.embed in AOD externally stored the photon's preshower clusters
process.patPhotons.embedRecHits = False ## process.patPhotons.embed in AOD externally stored the RecHits - can be called from the PATPhotonProducer
process.patPhotons.addPFClusterIso = cms.bool(True)

#add puppi isolation in miniAOD
process.patPhotons.addPuppiIsolation = cms.bool(True)
process.patPhotons.puppiIsolationChargedHadrons = cms.InputTag("egmPhotonPUPPIIsolation","h+-DR030-")
process.patPhotons.puppiIsolationNeutralHadrons = cms.InputTag("egmPhotonPUPPIIsolation","h0-DR030-")
process.patPhotons.puppiIsolationPhotons = cms.InputTag("egmPhotonPUPPIIsolation","gamma-DR030-")

process.patPhotons.ecalPFClusterIsoMap = cms.InputTag("reducedEgamma", "phoEcalPFClusIso")
process.patPhotons.hcalPFClusterIsoMap = cms.InputTag("reducedEgamma", "phoHcalPFClusIso")
from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff import run2_miniAOD_80XLegacy
run2_miniAOD_80XLegacy.toModify(process.patPhotons,
addPFClusterIso = cms.bool(True),
ecalPFClusterIsoMap = cms.InputTag("reducedEgamma", "phoEcalPFClusIso"),
hcalPFClusterIsoMap = cms.InputTag("reducedEgamma", "phoHcalPFClusIso"))

process.patPhotons.photonSource = cms.InputTag("reducedEgamma","reducedGedPhotons")
process.patPhotons.electronSource = cms.InputTag("reducedEgamma","reducedGedGsfElectrons")
process.patPhotons.photonIDSources = cms.PSet(
Expand Down
18 changes: 0 additions & 18 deletions RecoEgamma/Configuration/python/RecoEgamma_EventContent_cff.py
Expand Up @@ -15,12 +15,6 @@
'keep *_egmGedGsfElectronPF*Isolation_*_*',
'keep *_egmGsfElectronIDs_*_*',
'keep *_egmPhotonIDs_*_*',
'keep *_photonEcalPFClusterIsolationProducer_*_*',
'keep *_ootPhotonEcalPFClusterIsolationProducer_*_*',
'keep *_electronEcalPFClusterIsolationProducer_*_*',
'keep *_photonHcalPFClusterIsolationProducer_*_*',
'keep *_ootPhotonHcalPFClusterIsolationProducer_*_*',
'keep *_electronHcalPFClusterIsolationProducer_*_*',
'keep *_conversions_*_*',
'keep *_mustacheConversions_*_*',
'drop *_conversions_uncleanedConversions_*',
Expand Down Expand Up @@ -65,12 +59,6 @@
'keep floatedmValueMap_eidLoose_*_*',
'keep floatedmValueMap_eidTight_*_*',
'keep *_egmGedGsfElectronPFIsolation_*_*',
'keep *_photonEcalPFClusterIsolationProducer_*_*',
'keep *_ootPhotonEcalPFClusterIsolationProducer_*_*',
'keep *_electronEcalPFClusterIsolationProducer_*_*',
'keep *_photonHcalPFClusterIsolationProducer_*_*',
'keep *_ootPhotonHcalPFClusterIsolationProducer_*_*',
'keep *_electronHcalPFClusterIsolationProducer_*_*',
'drop *_egmGsfElectronIDs_*_*',
'drop *_egmPhotonIDs_*_*',
'keep *_gedPhotonCore_*_*',
Expand Down Expand Up @@ -127,12 +115,6 @@
'keep floatedmValueMap_eidLoose_*_*',
'keep floatedmValueMap_eidTight_*_*',
'keep *_egmGedGsfElectronPFIsolation_*_*',
'keep *_photonEcalPFClusterIsolationProducer_*_*',
'keep *_ootPhotonEcalPFClusterIsolationProducer_*_*',
'keep *_electronEcalPFClusterIsolationProducer_*_*',
'keep *_photonHcalPFClusterIsolationProducer_*_*',
'keep *_ootPhotonHcalPFClusterIsolationProducer_*_*',
'keep *_electronHcalPFClusterIsolationProducer_*_*',
'drop *_egmGsfElectronIDs_*_*',
'drop *_egmPhotonIDs_*_*',
'keep recoPhotonCores_gedPhotonCore_*_*',
Expand Down
Expand Up @@ -25,6 +25,8 @@ GEDGsfElectronFinalizer::GEDGsfElectronFinalizer( const edm::ParameterSet & cfg
tokenElectronIsoVals_.push_back(consumes<edm::ValueMap<float> >(pfIsoVals.getParameter<edm::InputTag>("pfSumPhotonEt")));
tokenElectronIsoVals_.push_back(consumes<edm::ValueMap<float> >(pfIsoVals.getParameter<edm::InputTag>("pfSumNeutralHadronEt")));
tokenElectronIsoVals_.push_back(consumes<edm::ValueMap<float> >(pfIsoVals.getParameter<edm::InputTag>("pfSumPUPt")));
tokenElectronIsoVals_.push_back(consumes<edm::ValueMap<float> >(pfIsoVals.getParameter<edm::InputTag>("pfSumEcalClusterEt")));
tokenElectronIsoVals_.push_back(consumes<edm::ValueMap<float> >(pfIsoVals.getParameter<edm::InputTag>("pfSumHcalClusterEt")));
// std::vector<std::string> isoNames = pfIsoVals.getParameterNamesForType<edm::InputTag>();
// for(const std::string& name : isoNames) {
// edm::InputTag tag =
Expand Down Expand Up @@ -103,6 +105,12 @@ void GEDGsfElectronFinalizer::produce( edm::Event & event, const edm::EventSetup
isoVariables.sumPhotonEt = (*(isolationValueMaps)[1])[myElectronRef];
isoVariables.sumNeutralHadronEt = (*(isolationValueMaps)[2])[myElectronRef];
isoVariables.sumPUPt = (*(isolationValueMaps)[3])[myElectronRef];
if(isolationValueMaps.size()<=4){
throw cms::Exception("ArrayError") <<" looks like we a got a producer not updated"<<std::endl;
}
isoVariables.sumEcalClusterEt = (*(isolationValueMaps)[4])[myElectronRef];
isoVariables.sumHcalClusterEt = (*(isolationValueMaps)[5])[myElectronRef];

newElectron.setPfIsolationVariables(isoVariables);

// now set a status if not already done (in GEDGsfElectronProducer.cc)
Expand Down
Expand Up @@ -10,6 +10,8 @@
pfSumChargedHadronPt = cms.InputTag('egmElectronIsolationCITK:h+-DR030-'),
pfSumPhotonEt = cms.InputTag('egmElectronIsolationCITK:gamma-DR030-'),
pfSumNeutralHadronEt= cms.InputTag('egmElectronIsolationCITK:h0-DR030-'),
pfSumPUPt = cms.InputTag('egmElectronIsolationPileUpCITK:h+-DR030-')),
pfSumPUPt = cms.InputTag('egmElectronIsolationPileUpCITK:h+-DR030-'),
pfSumEcalClusterEt = cms.InputTag("electronEcalPFClusterIsolationProducer"),
pfSumHcalClusterEt = cms.InputTag("electronHcalPFClusterIsolationProducer")),
outputCollectionLabel = cms.string("")
)
12 changes: 6 additions & 6 deletions RecoEgamma/EgammaIsolationAlgos/python/pfClusterIsolation_cfi.py
@@ -1,7 +1,7 @@
import FWCore.ParameterSet.Config as cms

electronEcalPFClusterIsolationProducer = cms.EDProducer('ElectronEcalPFClusterIsolationProducer',
candidateProducer = cms.InputTag('gedGsfElectrons'),
candidateProducer = cms.InputTag('gedGsfElectronsTmp'),
pfClusterProducer = cms.InputTag('particleFlowClusterECAL'),
drMax = cms.double(0.3),
drVetoBarrel = cms.double(0),
Expand All @@ -13,7 +13,7 @@
)

photonEcalPFClusterIsolationProducer = cms.EDProducer('PhotonEcalPFClusterIsolationProducer',
candidateProducer = cms.InputTag('gedPhotons'),
candidateProducer = cms.InputTag('gedPhotonsTmp'),
pfClusterProducer = cms.InputTag('particleFlowClusterECAL'),
drMax = cms.double(0.3),
drVetoBarrel = cms.double(0),
Expand All @@ -25,11 +25,11 @@
)

ootPhotonEcalPFClusterIsolationProducer = photonEcalPFClusterIsolationProducer.clone()
ootPhotonEcalPFClusterIsolationProducer.candidateProducer = cms.InputTag('ootPhotons')
ootPhotonEcalPFClusterIsolationProducer.candidateProducer = cms.InputTag('ootPhotonsTmp')
ootPhotonEcalPFClusterIsolationProducer.pfClusterProducer = cms.InputTag('particleFlowClusterOOTECAL')

electronHcalPFClusterIsolationProducer = cms.EDProducer('ElectronHcalPFClusterIsolationProducer',
candidateProducer = cms.InputTag('gedGsfElectrons'),
candidateProducer = cms.InputTag('gedGsfElectronsTmp'),
pfClusterProducerHCAL = cms.InputTag('particleFlowClusterHCAL'),
useHF = cms.bool(False),
drMax = cms.double(0.3),
Expand All @@ -42,7 +42,7 @@
)

photonHcalPFClusterIsolationProducer = cms.EDProducer('PhotonHcalPFClusterIsolationProducer',
candidateProducer = cms.InputTag('gedPhotons'),
candidateProducer = cms.InputTag('gedPhotonsTmp'),
pfClusterProducerHCAL = cms.InputTag('particleFlowClusterHCAL'),
useHF = cms.bool(False),
drMax = cms.double(0.3),
Expand All @@ -55,7 +55,7 @@
)

ootPhotonHcalPFClusterIsolationProducer = photonHcalPFClusterIsolationProducer.clone()
ootPhotonHcalPFClusterIsolationProducer.candidateProducer = cms.InputTag('ootPhotons')
ootPhotonHcalPFClusterIsolationProducer.candidateProducer = cms.InputTag('ootPhotonsTmp')

pfClusterIsolationTask = cms.Task(
electronEcalPFClusterIsolationProducer ,
Expand Down
29 changes: 24 additions & 5 deletions RecoEgamma/EgammaPhotonProducers/interface/GEDPhotonProducer.h
Expand Up @@ -51,6 +51,17 @@ class GEDPhotonProducer : public edm::stream::EDProducer<> {
void produce(edm::Event& evt, const edm::EventSetup& es) override;

private:
class RecoStepInfo {
public:
enum FlagBits{kOOT=0x1,kFinal=0x2};
explicit RecoStepInfo(const std::string& recoStep);

bool isOOT()const{return flags_&kOOT;}
bool isFinal()const{return flags_&kFinal;}
private:
unsigned int flags_;
};


void fillPhotonCollection(edm::Event& evt,
edm::EventSetup const & es,
Expand All @@ -73,7 +84,13 @@ class GEDPhotonProducer : public edm::stream::EDProducer<> {
edm::ValueMap<reco::PhotonRef> pfEGCandToPhotonMap,
edm::Handle< reco::VertexCollection >& pvVertices,
reco::PhotonCollection & outputCollection,
int& iSC, const edm::Handle<edm::ValueMap<float>>& chargedHadrons_, const edm::Handle<edm::ValueMap<float>>& neutralHadrons_, const edm::Handle<edm::ValueMap<float>>& photons_);
int& iSC, const edm::Handle<edm::ValueMap<float>>& chargedHadrons,
const edm::Handle<edm::ValueMap<float>>& neutralHadrons,
const edm::Handle<edm::ValueMap<float>>& photons,
const edm::Handle<edm::ValueMap<float>>& pfEcalClusters,
const edm::Handle<edm::ValueMap<float>>& pfHcalClusters);




// std::string PhotonCoreCollection_;
Expand All @@ -92,9 +109,11 @@ class GEDPhotonProducer : public edm::stream::EDProducer<> {
//for isolation with map-based veto
edm::EDGetTokenT<edm::ValueMap<std::vector<reco::PFCandidateRef > > > particleBasedIsolationToken;
//photon isolation sums
edm::EDGetTokenT<edm::ValueMap<float> > phoChargedIsolationToken_CITK;
edm::EDGetTokenT<edm::ValueMap<float> > phoNeutralHadronIsolationToken_CITK;
edm::EDGetTokenT<edm::ValueMap<float> > phoPhotonIsolationToken_CITK;
edm::EDGetTokenT<edm::ValueMap<float> > phoChargedIsolationTokenCITK_;
edm::EDGetTokenT<edm::ValueMap<float> > phoNeutralHadronIsolationTokenCITK_;
edm::EDGetTokenT<edm::ValueMap<float> > phoPhotonIsolationTokenCITK_;
edm::EDGetTokenT<edm::ValueMap<float> > phoPFECALClusIsolationToken_;
edm::EDGetTokenT<edm::ValueMap<float> > phoPFHCALClusIsolationToken_;

std::string conversionProducer_;
std::string conversionCollection_;
Expand All @@ -120,7 +139,7 @@ class GEDPhotonProducer : public edm::stream::EDProducer<> {
bool runMIPTagger_;

bool validConversions_;
std::string reconstructionStep_;
RecoStepInfo recoStep_;

bool usePrimaryVertex_;
edm::ParameterSet conf_;
Expand Down
Expand Up @@ -25,6 +25,8 @@
gedPhotons.chargedHadronIsolation = cms.InputTag("egmPhotonIsolationCITK:h+-DR030-")
gedPhotons.neutralHadronIsolation = cms.InputTag("egmPhotonIsolationCITK:h0-DR030-")
gedPhotons.photonIsolation = cms.InputTag("egmPhotonIsolationCITK:gamma-DR030-")
gedPhotons.pfECALClusIsolation = cms.InputTag("photonEcalPFClusterIsolationProducer")
gedPhotons.pfHCALClusIsolation = cms.InputTag("photonHcalPFClusterIsolationProducer")
gedPhotonSequence = cms.Sequence(gedPhotons)


Expand Down

0 comments on commit 29ee74c

Please sign in to comment.