Skip to content

Commit

Permalink
Merge pull request #9964 from jhgoh/MuonCITKFix
Browse files Browse the repository at this point in the history
Muon CITK fix
  • Loading branch information
cmsbuild committed Jul 7, 2015
2 parents c35708b + cb488b3 commit b4fb2d4
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 24 deletions.
38 changes: 23 additions & 15 deletions PhysicsTools/PatExamples/test/MuonVIDCITKAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include "FWCore/Utilities/interface/InputTag.h"
#include "DataFormats/Common/interface/View.h"
#include "DataFormats/Common/interface/ValueMap.h"
#include "DataFormats/MuonReco/interface/Muon.h"
#include "DataFormats/PatCandidates/interface/Muon.h"
#include "DataFormats/MuonReco/interface/MuonFwd.h"
#include "DataFormats/MuonReco/interface/MuonSelectors.h"
#include "DataFormats/VertexReco/interface/Vertex.h"
Expand Down Expand Up @@ -64,8 +64,8 @@ class MuonVIDCITKAnalyzer : public edm::one::EDAnalyzer<edm::one::SharedResource

MuonVIDCITKAnalyzer::MuonVIDCITKAnalyzer(const edm::ParameterSet& iConfig)
{
muonToken_ = consumes<edm::View<reco::Candidate> >(edm::InputTag("muons"));
vertexToken_ = consumes<reco::VertexCollection>(edm::InputTag("offlinePrimaryVertices"));
muonToken_ = consumes<edm::View<reco::Candidate> >(iConfig.getParameter<edm::InputTag>("muon"));
vertexToken_ = consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertex"));

string vidPrefix = "muoMuonIDs:cutBasedMuonId-MuonPOG-V0-";
muonLooseVIDToken_ = consumes<VIDMap>(edm::InputTag(vidPrefix+"loose" ));
Expand All @@ -75,9 +75,9 @@ MuonVIDCITKAnalyzer::MuonVIDCITKAnalyzer(const edm::ParameterSet& iConfig)
muonHighPtVIDToken_ = consumes<VIDMap>(edm::InputTag(vidPrefix+"highpt"));

muonChIsoCITKToken_ = consumes<CITKMap>(edm::InputTag("muonPFNoPileUpIsolation:h+-DR040-ThresholdVeto000-ConeVeto000"));
muonNhIsoCITKToken_ = consumes<CITKMap>(edm::InputTag("muonPFNoPileUpIsolation:h0-DR040-ThresholdVeto050-ConeVeto000"));
muonPhIsoCITKToken_ = consumes<CITKMap>(edm::InputTag("muonPFNoPileUpIsolation:gamma-DR040-ThresholdVeto050-ConeVeto000"));
muonPuIsoCITKToken_ = consumes<CITKMap>(edm::InputTag("muonPFPileUpIsolation:h+-DR040-ThresholdVeto050-ConeVeto000"));
muonNhIsoCITKToken_ = consumes<CITKMap>(edm::InputTag("muonPFNoPileUpIsolation:h0-DR040-ThresholdVeto050-ConeVeto001"));
muonPhIsoCITKToken_ = consumes<CITKMap>(edm::InputTag("muonPFNoPileUpIsolation:gamma-DR040-ThresholdVeto050-ConeVeto001"));
muonPuIsoCITKToken_ = consumes<CITKMap>(edm::InputTag("muonPFPileUpIsolation:h+-DR040-ThresholdVeto050-ConeVeto001"));

muonChIsoIsoDepToken_ = consumes<IsoMap>(edm::InputTag("muPFIsoValueCharged04PAT"));
muonNhIsoIsoDepToken_ = consumes<IsoMap>(edm::InputTag("muPFIsoValueNeutral04PAT"));
Expand All @@ -100,7 +100,7 @@ MuonVIDCITKAnalyzer::MuonVIDCITKAnalyzer(const edm::ParameterSet& iConfig)

void MuonVIDCITKAnalyzer::analyze(const edm::Event& event, const edm::EventSetup& eSetup)
{
edm::Handle<View<reco::Candidate> > muonHandle;
edm::Handle<edm::View<reco::Candidate> > muonHandle;
event.getByToken(muonToken_, muonHandle);

edm::Handle<reco::VertexCollection> vertexHandle;
Expand Down Expand Up @@ -141,8 +141,8 @@ void MuonVIDCITKAnalyzer::analyze(const edm::Event& event, const edm::EventSetup

for ( size_t i=0, n=muonHandle->size(); i<n; ++i )
{
reco::CandidateBaseRef muRef(muonHandle, i);
const auto& mu = dynamic_cast<const reco::Muon&>(*muRef);
const auto& mu = dynamic_cast<const pat::Muon&>(muonHandle->at(i));
const auto& muRef = mu.originalObjectRef();

stringstream sout;

Expand All @@ -165,8 +165,6 @@ void MuonVIDCITKAnalyzer::analyze(const edm::Event& event, const edm::EventSetup
if ( vidSoft != isSoft ) { sout << " isSoft " << vidSoft << ' ' << isSoft << endl; }
if ( vidHighPt != isHighPt ) { sout << " isHighPt" << vidHighPt << ' ' << isHighPt << endl; }

if ( !mu.isPFMuon() || !isTight ) continue;

// Check standard IsoDeposit vs CITK
const double citkChIso = (*muonChIsoCITKHandle)[muRef];
const double citkNhIso = (*muonNhIsoCITKHandle)[muRef];
Expand All @@ -178,6 +176,11 @@ void MuonVIDCITKAnalyzer::analyze(const edm::Event& event, const edm::EventSetup
const double isoDepPhIso = (*muonPhIsoIsoDepHandle)[muRef];
const double isoDepPuIso = (*muonPuIsoIsoDepHandle)[muRef];

const double patChIso = mu.chargedHadronIso();
const double patNhIso = mu.neutralHadronIso();
const double patPhIso = mu.photonIso();
const double patPuIso = mu.puChargedHadronIso();

h2Ch_->Fill(isoDepChIso, citkChIso);
h2Nh_->Fill(isoDepNhIso, citkNhIso);
h2Ph_->Fill(isoDepPhIso, citkPhIso);
Expand All @@ -188,10 +191,15 @@ void MuonVIDCITKAnalyzer::analyze(const edm::Event& event, const edm::EventSetup
hIsoDiffPh_->Fill(citkPhIso-isoDepPhIso);
hIsoDiffPu_->Fill(citkPuIso-isoDepPuIso);

if ( std::abs(citkChIso-isoDepChIso) >= 1e-4 ) { sout << " ChIso " << citkChIso << ' ' << isoDepChIso << endl; }
if ( std::abs(citkNhIso-isoDepNhIso) >= 1e-4 ) { sout << " NhIso " << citkNhIso << ' ' << isoDepNhIso << endl; }
if ( std::abs(citkPhIso-isoDepPhIso) >= 1e-4 ) { sout << " PhIso " << citkPhIso << ' ' << isoDepPhIso << endl; }
if ( std::abs(citkPuIso-isoDepPuIso) >= 1e-4 ) { sout << " PuIso " << citkPuIso << ' ' << isoDepPuIso << endl; }
if ( std::abs(citkChIso-isoDepChIso) >= 1e-4 ) { sout << " ChIso citk=" << citkChIso << " isodep=" << isoDepChIso << endl; }
if ( std::abs(citkNhIso-isoDepNhIso) >= 1e-4 ) { sout << " NhIso citk=" << citkNhIso << " isodep=" << isoDepNhIso << endl; }
if ( std::abs(citkPhIso-isoDepPhIso) >= 1e-4 ) { sout << " PhIso citk=" << citkPhIso << " isodep=" << isoDepPhIso << endl; }
if ( std::abs(citkPuIso-isoDepPuIso) >= 1e-4 ) { sout << " PuIso citk=" << citkPuIso << " isodep=" << isoDepPuIso << endl; }

if ( std::abs(patChIso-isoDepChIso) >= 1e-4 ) { sout << " ChIso pat=" << patChIso << " isodep=" << isoDepChIso << endl; }
if ( std::abs(patNhIso-isoDepNhIso) >= 1e-4 ) { sout << " NhIso pat=" << patNhIso << " isodep=" << isoDepNhIso << endl; }
if ( std::abs(patPhIso-isoDepPhIso) >= 1e-4 ) { sout << " PhIso pat=" << patPhIso << " isodep=" << isoDepPhIso << endl; }
if ( std::abs(patPuIso-isoDepPuIso) >= 1e-4 ) { sout << " PuIso pat=" << patPuIso << " isodep=" << isoDepPuIso << endl; }

if ( !sout.str().empty() )
{
Expand Down
2 changes: 1 addition & 1 deletion PhysicsTools/PatExamples/test/patTuple_muonVIDCITK_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
process.options.wantSummary = False

process.muonVIDCITKAnalyzer = cms.EDAnalyzer("MuonVIDCITKAnalyzer",
muon = cms.InputTag("muons"),
muon = cms.InputTag("patMuons"),
vertex = cms.InputTag("offlinePrimaryVertices"),
)

Expand Down
17 changes: 9 additions & 8 deletions RecoMuon/MuonIsolation/python/muonPFIsolationCitk_cfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,38 +8,38 @@
cms.PSet( isolationAlgo = cms.string('MuonPFIsolationWithConeVeto'),
coneSize = cms.double(0.3),
VetoThreshold = cms.double(0.0),
VetoConeSize = cms.double(0.0),
VetoConeSize = cms.double(0.0001),
isolateAgainst = cms.string('h+'),
miniAODVertexCodes = cms.vuint32(2,3) ),
cms.PSet( isolationAlgo = cms.string('MuonPFIsolationWithConeVeto'),
coneSize = cms.double(0.3),
VetoThreshold = cms.double(0.5),
VetoConeSize = cms.double(0.0),
VetoConeSize = cms.double(0.01),
isolateAgainst = cms.string('h0'),
miniAODVertexCodes = cms.vuint32(2,3) ),
cms.PSet( isolationAlgo = cms.string('MuonPFIsolationWithConeVeto'),
coneSize = cms.double(0.3),
VetoThreshold = cms.double(0.5),
VetoConeSize = cms.double(0.0),
VetoConeSize = cms.double(0.01),
isolateAgainst = cms.string('gamma'),
miniAODVertexCodes = cms.vuint32(2,3) ),

cms.PSet( isolationAlgo = cms.string('MuonPFIsolationWithConeVeto'),
coneSize = cms.double(0.4),
VetoThreshold = cms.double(0.0),
VetoConeSize = cms.double(0.0),
VetoConeSize = cms.double(0.0001),
isolateAgainst = cms.string('h+'),
miniAODVertexCodes = cms.vuint32(2,3) ),
cms.PSet( isolationAlgo = cms.string('MuonPFIsolationWithConeVeto'),
coneSize = cms.double(0.4),
VetoThreshold = cms.double(0.5),
VetoConeSize = cms.double(0.0),
VetoConeSize = cms.double(0.01),
isolateAgainst = cms.string('h0'),
miniAODVertexCodes = cms.vuint32(2,3) ),
cms.PSet( isolationAlgo = cms.string('MuonPFIsolationWithConeVeto'),
coneSize = cms.double(0.4),
VetoThreshold = cms.double(0.5),
VetoConeSize = cms.double(0.0),
VetoConeSize = cms.double(0.01),
isolateAgainst = cms.string('gamma'),
miniAODVertexCodes = cms.vuint32(2,3) ),
),
Expand All @@ -53,15 +53,16 @@
cms.PSet( isolationAlgo = cms.string('MuonPFIsolationWithConeVeto'),
coneSize = cms.double(0.3),
VetoThreshold = cms.double(0.5),
VetoConeSize = cms.double(0.0),
VetoConeSize = cms.double(0.01),
isolateAgainst = cms.string('h+'),
miniAODVertexCodes = cms.vuint32(0,1) ),

cms.PSet( isolationAlgo = cms.string('MuonPFIsolationWithConeVeto'),
coneSize = cms.double(0.4),
VetoThreshold = cms.double(0.5),
VetoConeSize = cms.double(0.0),
VetoConeSize = cms.double(0.01),
isolateAgainst = cms.string('h+'),
miniAODVertexCodes = cms.vuint32(0,1) ),
),
)

0 comments on commit b4fb2d4

Please sign in to comment.