Skip to content

Commit

Permalink
Merge pull request cms-sw#5 from kdlong/WmassNanoProd_106X
Browse files Browse the repository at this point in the history
Fix secondary files, Nano for Tag and Probe
  • Loading branch information
kdlong authored Jun 9, 2021
2 parents 33bb1cc + 9778876 commit 1a4a0c4
Show file tree
Hide file tree
Showing 5 changed files with 85 additions and 3 deletions.
2 changes: 1 addition & 1 deletion IOPool/Input/src/PoolSource.cc
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ namespace edm {
checkHistoryConsistency(eventPrincipal, secondaryEventPrincipal);
eventPrincipal.recombine(secondaryEventPrincipal, branchIDsToReplace_[InEvent]);
eventPrincipal.mergeProvenanceRetrievers(secondaryEventPrincipal);
secondaryEventPrincipal.clearPrincipal();
secondaryEventPrincipal.clearEventPrincipal();
} else {
throw Exception(errors::MismatchedInputFiles, "PoolSource::readEvent_")
<< eventPrincipal.id() << " is not found in the secondary input files\n";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
#include "DataFormats/Candidate/interface/Candidate.h"
typedef SimpleFlatTableProducer<reco::Candidate> SimpleCandidateFlatTableProducer;

#include "DataFormats/TrackReco/interface/Track.h"
typedef SimpleFlatTableProducer<reco::Track> SimpleTrackFlatTableProducer;

#include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h"
typedef EventSingletonSimpleFlatTableProducer<GenEventInfoProduct> SimpleGenEventFlatTableProducer;

Expand All @@ -14,6 +17,7 @@ typedef EventSingletonSimpleFlatTableProducer<math::XYZPointF> SimpleXYZPointFla

#include "FWCore/Framework/interface/MakerMacros.h"
DEFINE_FWK_MODULE(SimpleCandidateFlatTableProducer);
DEFINE_FWK_MODULE(SimpleTrackFlatTableProducer);
DEFINE_FWK_MODULE(SimpleGenEventFlatTableProducer);
DEFINE_FWK_MODULE(SimpleHTXSFlatTableProducer);
DEFINE_FWK_MODULE(SimpleXYZPointFlatTableProducer);
21 changes: 21 additions & 0 deletions PhysicsTools/NanoAOD/python/generalTracks_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import FWCore.ParameterSet.Config as cms
from PhysicsTools.NanoAOD.common_cff import *

generalTrackTable = cms.EDProducer("SimpleTrackFlatTableProducer",
src = cms.InputTag("generalTracks"),
cut = cms.string("pt > 15"), # filtered already above
name = cms.string("Track"),
doc = cms.string("General tracks with pt > 15 GeV"),
singleton = cms.bool(False), # the number of entries is variable
extension = cms.bool(False), # this is the main table for the muons
variables = cms.PSet(P3Vars,
dz = Var("dz",float,doc="dz (with sign) wrt first PV, in cm",precision=10),
dxy = Var("dxy",float,doc="dxy (with sign) wrt first PV, in cm",precision=10),
charge = Var("charge", int, doc="electric charge"),
normChiSq = Var("normalizedChi2", float, precision=14, doc="Chi^2/ndof"),
numberOfValidHits = Var('numberOfValidHits()', 'int', precision=-1, doc='Number of valid hits in track'),
numberOfLostHits = Var('numberOfLostHits()', 'int', precision=-1, doc='Number of lost hits in track'),
),
)


4 changes: 2 additions & 2 deletions PhysicsTools/NanoAOD/python/muons_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,8 @@
highPurity = Var("?track.isNonnull?innerTrack().quality('highPurity'):0", bool, doc = "inner track is high purity"),
jetIdx = Var("?hasUserCand('jet')?userCand('jet').key():-1", int, doc="index of the associated jet (-1 if none)"),
tkRelIso = Var("isolationR03().sumPt/tunePMuonBestTrack().pt",float,doc="Tracker-based relative isolation dR=0.3 for highPt, trkIso/tunePpt",precision=6),
miniPFRelIso_chg = Var("userFloat('miniIsoChg')/pt",float,doc="mini PF relative isolation, charged component"),
miniPFRelIso_all = Var("userFloat('miniIsoAll')/pt",float,doc="mini PF relative isolation, total (with scaled rho*EA PU corrections)"),
miniPFRelIso_chg = Var("?hasUserFloat('miniIsoChg')?userFloat('miniIsoChg')/pt:-1",float,doc="mini PF relative isolation, charged component"),
miniPFRelIso_all = Var("?hasUserFloat('miniIsoAll') ? userFloat('miniIsoAll')/pt : -1",float,doc="mini PF relative isolation, total (with scaled rho*EA PU corrections)"),
pfRelIso03_chg = Var("pfIsolationR03().sumChargedHadronPt/pt",float,doc="PF relative isolation dR=0.3, charged component"),
pfRelIso03_all = Var("(pfIsolationR03().sumChargedHadronPt + max(pfIsolationR03().sumNeutralHadronEt + pfIsolationR03().sumPhotonEt - pfIsolationR03().sumPUPt/2,0.0))/pt",float,doc="PF relative isolation dR=0.3, total (deltaBeta corrections)"),
pfRelIso04_all = Var("(pfIsolationR04().sumChargedHadronPt + max(pfIsolationR04().sumNeutralHadronEt + pfIsolationR04().sumPhotonEt - pfIsolationR04().sumPUPt/2,0.0))/pt",float,doc="PF relative isolation dR=0.4, total (deltaBeta corrections)"),
Expand Down
57 changes: 57 additions & 0 deletions PhysicsTools/NanoAOD/python/nanoTP_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
from __future__ import print_function
import FWCore.ParameterSet.Config as cms
from PhysicsTools.NanoAOD.common_cff import *
from PhysicsTools.NanoAOD.globals_cff import *
from PhysicsTools.NanoAOD.muons_cff import *
from PhysicsTools.NanoAOD.electrons_cff import *
from PhysicsTools.NanoAOD.genparticles_cff import *
from PhysicsTools.NanoAOD.particlelevel_cff import *
from PhysicsTools.NanoAOD.genWeightsTable_cfi import *
from PhysicsTools.NanoAOD.genVertex_cff import *
from PhysicsTools.NanoAOD.vertices_cff import *
from PhysicsTools.NanoAOD.met_cff import *
from PhysicsTools.NanoAOD.triggerObjects_cff import *
from PhysicsTools.NanoAOD.isotracks_cff import *
from PhysicsTools.NanoAOD.generalTracks_cff import *
from PhysicsTools.NanoAOD.NanoAODEDMEventContent_cff import *
from PhysicsTools.PatAlgos.slimming.miniAOD_tools import *

nanoMetadata = cms.EDProducer("UniqueStringProducer",
strings = cms.PSet(
tag = cms.string("untagged"),
)
)

l1bits=cms.EDProducer("L1TriggerResultsConverter", src=cms.InputTag("gtStage2Digis"), legacyL1=cms.bool(False),
storeUnprefireableBit=cms.bool(True), src_ext=cms.InputTag("gtStage2Digis"))

finalIsolatedTracks.finalLeptons = ["finalLooseMuons"]

finalMuons.src = "slimmedMuonsUpdated"
finalLooseMuons.src = "slimmedMuonsUpdated"
muonTable.src = "finalMuons"
muonTable.externalVariables = cms.PSet()
muonTable.variables = cms.PSet(muonTable.variables,
standalonePt = Var("? standAloneMuon().isNonnull() ? standAloneMuon().pt() : -1", float, doc = "pt of the standalone muon", precision=14),
standaloneEta = Var("? standAloneMuon().isNonnull() ? standAloneMuon().eta() : -99", float, doc = "eta of the standalone muon", precision=14),
standalonePhi = Var("? standAloneMuon().isNonnull() ? standAloneMuon().phi() : -99", float, doc = "phi of the standalone muon", precision=14),
standaloneCharge = Var("? standAloneMuon().isNonnull() ? standAloneMuon().charge() : -99", float, doc = "phi of the standalone muon", precision=14),
)

muonSimpleSequence= cms.Sequence(slimmedMuonsUpdated+isoForMu + finalMuons + finalLooseMuons )

nanotpSequence = cms.Sequence(
nanoMetadata + triggerObjectTables + l1bits +
genParticleSequence + genParticleTables + genWeightsTable + genVertexTables +
muonSequence + vertexSequence+
isoTrackSequence + # must be after all the leptons
puTable + genTable +
muonMC + muonTable + vertexTables+ isoTrackTables + generalTrackTable
)

def customizeMuonPassThrough(process):
passStandalone = "(standAloneMuon().isNonnull() && standAloneMuon().pt() > 15)"
process.selectedPatMuons.cut = cms.string("||".join([passStandalone, process.selectedPatMuons.cut.value()]))
process.finalMuons.cut = cms.string("||".join([passStandalone, process.finalMuons.cut.value()]))
return process

0 comments on commit 1a4a0c4

Please sign in to comment.