File indexing completed on 2025-05-09 22:40:13
0001 import FWCore.ParameterSet.Config as cms
0002 from PhysicsTools.NanoAOD.common_cff import *
0003 from PhysicsTools.NanoAOD.simplePATMuonFlatTableProducer_cfi import simplePATMuonFlatTableProducer
0004
0005 Path=["HLT_DoubleMu4_3_LowMass"]
0006
0007
0008
0009 muonBPH = cms.EDProducer("MuonTriggerSelector",
0010 muonCollection = cms.InputTag("slimmedMuons"),
0011 bits = cms.InputTag("TriggerResults", "", "HLT"),
0012 prescales = cms.InputTag("patTrigger"),
0013 objects = cms.InputTag("slimmedPatTrigger"),
0014 maxdR_matching = cms.double(0.3),
0015 muonSelection = cms.string("pt > 2 && abs(eta) < 2.4"),
0016 HLTPaths = cms.vstring(Path)
0017 )
0018
0019
0020 countTrgMuons = cms.EDFilter("PATCandViewCountFilter",
0021 minNumber = cms.uint32(2),
0022 maxNumber = cms.uint32(999999),
0023 src = cms.InputTag("muonBPH", "SelectedMuons")
0024 )
0025
0026
0027
0028 TrgMatchMuonTable = simplePATMuonFlatTableProducer.clone(
0029 src = cms.InputTag("muonBPH:SelectedMuons"),
0030 cut = cms.string(""),
0031 name = cms.string("TrgMatchMuon"),
0032 doc = cms.string("slimmedMuons after basic selection and trigger match"),
0033 singleton = cms.bool(False),
0034 extension = cms.bool(False),
0035 variables = cms.PSet(
0036 CandVars,
0037 ptErr = Var("bestTrack().ptError()", float, doc="ptError of the muon track", precision=10),
0038 covQopQop = Var("bestTrack().covariance(0, 0)", float, doc="Cov of q/p with q/p", precision=10),
0039 covLamLam = Var("bestTrack().covariance(1, 1)", float, doc="Cov of lambda with lambda", precision=10),
0040 covPhiPhi = Var("bestTrack().covariance(2, 2)", float, doc="Cov of phi with phi", precision=10),
0041 covQopLam = Var("bestTrack().covariance(0, 1)", float, doc="Cov of q/p with lambda", precision=10),
0042 covQopPhi = Var("bestTrack().covariance(0, 2)", float, doc="Cov of q/p with phi", precision=10),
0043 covLamPhi = Var("bestTrack().covariance(1, 2)", float, doc="Cov of lambda with phi", precision=10),
0044 dz = Var("dB('PVDZ')", float, doc="dz (with sign) wrt PV[0] [cm]", precision=10),
0045 dzErr = Var("abs(edB('PVDZ'))", float, doc="dz uncertainty [cm]", precision=10),
0046 dxy = Var("dB('PV2D')", float, doc="dxy (with sign) wrt PV[0] [cm]", precision=10),
0047 dxyErr = Var("edB('PV2D')", float, doc="dxy uncertainty [cm]", precision=10),
0048 ip3d = Var("abs(dB('PV3D'))", float, doc="3D impact parameter wrt PV[0] [cm]", precision=10),
0049 sip3d = Var("abs(dB('PV3D')/edB('PV3D'))", float, doc="3D impact parameter significance wrt PV[0]", precision=10),
0050 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)", precision=10),
0051 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)", precision=10),
0052 isPFcand = Var("isPFMuon", bool, doc="muon is PF candidate"),
0053 isGlobal = Var("isGlobalMuon", bool, doc="muon is global muon"),
0054 isTracker = Var("isTrackerMuon", bool, doc="muon is tracker muon"),
0055 looseId = Var("passed('CutBasedIdLoose')", bool, doc="cut-based ID, medium WP"),
0056 mediumId = Var("passed('CutBasedIdMedium')", bool, doc="cut-based ID, medium WP"),
0057
0058 triggerIdLoose = Var("passed('TriggerIdLoose')", bool, doc="TriggerIdLoose ID"),
0059 softId = Var("passed('SoftCutBasedId')",bool,doc="soft cut-based ID"),
0060 softMvaId = Var("passed('SoftMvaId')",bool,doc="soft MVA ID"),
0061 softMva = Var("softMvaValue()",float,doc="soft MVA ID score",precision=6),
0062 softMvaRun3 = Var("softMvaRun3Value()",float,doc="soft MVA Run3 ID score",precision=6),
0063 isTriggering = Var("userInt('isTriggering')", bool, doc="flag the reco muon if matched to HLT object"),
0064 matched_dr = Var("userFloat('trgDR')", float, doc="dr with the matched triggering muon", precision=10),
0065 matched_dpt = Var("userFloat('trgDPT')", float, doc="dpt/pt with the matched triggering muon", precision=10),
0066
0067
0068 ),
0069 )
0070
0071
0072 muonBPHMCMatch = cms.EDProducer("MCMatcher",
0073 src = TrgMatchMuonTable.src,
0074 matched = cms.InputTag("finalGenParticlesBPH"),
0075 mcPdgId = cms.vint32(13),
0076 checkCharge = cms.bool(False),
0077 mcStatus = cms.vint32(1),
0078 maxDeltaR = cms.double(0.05),
0079 maxDPtRel = cms.double(0.5),
0080 resolveAmbiguities = cms.bool(True),
0081 resolveByMatchQuality = cms.bool(True),
0082 )
0083
0084
0085 MCMuonTable = cms.EDProducer("CandMCMatchTableProducer",
0086 src = TrgMatchMuonTable.src,
0087 mcMap = cms.InputTag("muonBPHMCMatch"),
0088 objName = TrgMatchMuonTable.name,
0089 objType = cms.string("Muon"),
0090 branchName = cms.string("genPart"),
0091 docString = cms.string("MC matching to status==1 muons"),
0092 )
0093
0094
0095 muonBPHSequence = cms.Sequence(muonBPH)
0096 muonBPHSequenceMC = cms.Sequence(muonBPH + muonBPHMCMatch)
0097 muonBPHTables = cms.Sequence(TrgMatchMuonTable)
0098 muonBPHTablesMC = cms.Sequence(TrgMatchMuonTable + MCMuonTable)
0099