Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:03:41

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 # Pick branches you want to keep
0004 MuonPOG_EventContent = cms.PSet(
0005      outputCommands = cms.untracked.vstring(
0006                      'drop *',
0007                      'keep *_TriggerResults_*_*',
0008                      'keep *_gmtStage2Digis_Muon_*',
0009                      'keep *_offlineSlimmedPrimaryVertices_*_*',
0010                      'keep *_offlineBeamSpot_*_*',                     
0011                      'keep *_slimmedMETs_*_*',
0012                      'keep *Muons*_slimmedMuons_*_*',
0013                      'keep *_isolatedTracks_*_*',                   
0014                      'keep *_slimmedPatTrigger_*_*',
0015                      'keep *_slimmedJets_*_*',
0016      )
0017 )
0018 
0019 
0020 import copy
0021 from HLTrigger.HLTfilters.hltHighLevel_cfi import *
0022 
0023 MuonPOGSkimHLTFilter = copy.deepcopy(hltHighLevel)
0024 MuonPOGSkimHLTFilter.throw = cms.bool(False)
0025 MuonPOGSkimHLTFilter.HLTPaths = ["HLT_Mu*","HLT_IsoMu*"]
0026 
0027 
0028 MuonPOGJPsiSkimHLTFilter = copy.deepcopy(hltHighLevel)
0029 MuonPOGJPsiSkimHLTFilter.throw = cms.bool(False)
0030 MuonPOGJPsiSkimHLTFilter.HLTPaths = ["HLT_Mu*_Track*_Jpsi*","HLT_Mu*_L2Mu*_Jpsi*"]
0031 
0032 
0033 TAGMUON_CUT = '(pt > 25) &&  (abs(eta)<2.4) && (isPFMuon>0) && (isGlobalMuon = 1) && (globalTrack().normalizedChi2() < 10) && (globalTrack().hitPattern().numberOfValidMuonHits()>0)&& (numberOfMatchedStations() > 1)&& (innerTrack().hitPattern().numberOfValidPixelHits() > 0)&& (innerTrack().hitPattern().trackerLayersWithMeasurement() > 5) &&  (((pfIsolationR04.sumChargedHadronPt + max(0., pfIsolationR04.sumNeutralHadronEt + pfIsolationR04.sumPhotonEt - 0.5 * pfIsolationR04.sumPUPt) ) / pt)<0.2)'
0034 TAGMUON_JPSI_CUT = '(isGlobalMuon || numberOfMatchedStations > 1) && pt > 5'
0035 
0036 PROBETRACK_CUT = 'pt > 10 &&  abs(eta)<2.4 &&  (charge!=0)'
0037 PROBETRACK_JPSI_CUT = 'pt > 2 &&  abs(eta)<2.4 &&  (charge!=0)'
0038 
0039 PROBESTA_CUT = 'pt > 10 &&  abs(eta)<2.4 &&  isStandAloneMuon == 1'
0040 PROBESTA_JPSI_CUT = 'pt > 2 &&  abs(eta)<2.4 &&  isStandAloneMuon == 1'
0041 
0042 DIMUON = 'mass > 40 || ((daughter(0).isStandAloneMuon) && ( ?daughter(0).masterClone.isStandAloneMuon?({dg0}.p+{dg1}.p)*({dg0}.p+{dg1}.p)-({dg0}.px+{dg1}.px)*({dg0}.px+{dg1}.px)-({dg0}.py+{dg1}.py)*({dg0}.py+{dg1}.py)-({dg0}.pz+{dg1}.pz)*({dg0}.pz+{dg1}.pz):2000) > 1600)'
0043 
0044 DIMUON = DIMUON.format(dg0 = "daughter(0).masterClone.standAloneMuon()", dg1="daughter(1)")
0045 
0046 
0047 # Tag and probe for Z#to#mu#mu
0048 GoodTagMuons = cms.EDFilter("PATMuonRefSelector",
0049                             src = cms.InputTag("slimmedMuons"),
0050                             cut = cms.string(TAGMUON_CUT)
0051                             )
0052 
0053 
0054 GoodProbeTrackMuons = cms.EDFilter("IsoTrackSelector",
0055                                    src = cms.InputTag("isolatedTracks"),
0056                                    cut = cms.string(PROBETRACK_CUT),
0057                                    filter = cms.bool(True)                                
0058                                    )
0059 
0060 GoodProbeStaMuons = cms.EDFilter("PATMuonRefSelector",
0061                                  src = cms.InputTag("slimmedMuons"),
0062                                  cut = cms.string(PROBESTA_CUT),
0063                                  )
0064 
0065 GoodProbeStaMuonsCount = cms.EDFilter("MuonRefPatCount",
0066                                  src = cms.InputTag("slimmedMuons"),
0067                                  cut = cms.string(PROBESTA_CUT),
0068                                  minNumber = cms.uint32(2)
0069                                  )
0070 
0071 
0072 # build Z-> MuMu candidates (with track probes)
0073 DiMuonTrackPOGSkim = cms.EDProducer("CandViewShallowCloneCombiner",
0074                                     checkCharge = cms.bool(False),
0075                                     cut = cms.string(DIMUON),
0076                                     decay = cms.string("GoodTagMuons GoodProbeTrackMuons")
0077                                     )                                    
0078 
0079 DiMuonTrackPOGFilterSkim = cms.EDFilter("CandViewCountFilter",
0080                                         src = cms.InputTag("DiMuonTrackPOGSkim"),
0081                                         minNumber = cms.uint32(1)
0082                                         )
0083 
0084 # build Z-> MuMu candidates (with standalone probes)
0085 DiMuonSTAPOGSkim = cms.EDProducer("CandViewShallowCloneCombiner",
0086                                   checkCharge = cms.bool(False),
0087                                   cut = cms.string(DIMUON),
0088                                   decay = cms.string("GoodTagMuons GoodProbeStaMuons")
0089                                   )                                    
0090 
0091 DiMuonSTAPOGFilterSkim = cms.EDFilter("CandViewCountFilter",
0092                                         src = cms.InputTag("DiMuonSTAPOGSkim"),
0093                                         minNumber = cms.uint32(1)
0094                                         )
0095 
0096 
0097 
0098 # all the sequences
0099 
0100 MuonPOGSkimTrackSequence = cms.Sequence(
0101     MuonPOGSkimHLTFilter *
0102     GoodTagMuons * 
0103     GoodProbeTrackMuons *
0104     DiMuonTrackPOGSkim *
0105     DiMuonTrackPOGFilterSkim
0106     )
0107 
0108 MuonPOGSkimSTASequence = cms.Sequence(
0109     MuonPOGSkimHLTFilter *
0110     GoodTagMuons * 
0111     GoodProbeStaMuons *
0112     GoodProbeStaMuonsCount *
0113     DiMuonSTAPOGSkim *
0114     DiMuonSTAPOGFilterSkim
0115     )
0116 
0117 
0118 
0119 
0120 
0121 
0122 # Tag and probe for J/Psi #to #mu#mu
0123 GoodJPsiTagMuons = cms.EDFilter("PATMuonRefSelector",
0124                                 src = cms.InputTag("slimmedMuons"),
0125                                 cut = cms.string(TAGMUON_JPSI_CUT)
0126                                 )
0127 
0128 
0129 
0130 
0131 
0132 
0133 
0134 GoodJPsiProbeTracksMuons = cms.EDFilter("IsoTrackSelector",
0135                                         src = cms.InputTag("isolatedTracks"),
0136                                         cut = cms.string(PROBETRACK_JPSI_CUT),
0137                                         filter = cms.bool(True)                                
0138 )
0139 
0140 GoodJPsiProbeStaMuons = cms.EDFilter("MuonRefPatCount",
0141                                      src = cms.InputTag("slimmedMuons"),
0142                                      cut = cms.string(PROBESTA_JPSI_CUT)
0143                                      )
0144 
0145 
0146 
0147 GoodJPsiProbeStaMuonsCount = cms.EDFilter("MuonRefPatCount",
0148                                           src = cms.InputTag("slimmedMuons"),
0149                                           cut = cms.string(PROBESTA_JPSI_CUT),
0150                                           minNumber = cms.uint32(2)
0151                                           )
0152 
0153 
0154 
0155 MuonPOGJPsiSkimTrackSequence = cms.Sequence(
0156     MuonPOGJPsiSkimHLTFilter *
0157     GoodJPsiTagMuons * 
0158     GoodJPsiProbeTracksMuons
0159     )
0160 
0161 MuonPOGJPsiSkimSTASequence = cms.Sequence(
0162     MuonPOGJPsiSkimHLTFilter *
0163     GoodJPsiTagMuons * 
0164     GoodJPsiProbeStaMuons *
0165     GoodJPsiProbeStaMuonsCount
0166     )