CMS 3D CMS Logo

patRefSel_refMuJets.py
Go to the documentation of this file.
1 #
2 # This file contains the Top PAG reference selection for mu + jets analysis.
3 #
4 
5 
6 
7 
8 
9 
10 
11 # HLT selection
12 triggerSelectionData = 'HLT_IsoMu24_eta2p1_v*'
13 triggerSelectionMC = 'HLT_*' # not recommended
14 
15 
16 
17 # Minimal selection for all muons, also basis for signal and veto muons
18 # Muon ID ("loose")
19 muonCut = 'isPFMuon' # general reconstruction property
20 muonCut += ' && (isGlobalMuon || isTrackerMuon)' # general reconstruction property
21 # Kinematics
22 muonCut += ' && pt > 10.' # transverse momentum
23 muonCut += ' && abs(eta) < 2.5' # pseudo-rapisity range
24 # (Relative) isolation
25 muonCut += ' && (chargedHadronIso+neutralHadronIso+photonIso-0.5*puChargedHadronIso)/pt < 0.2' # relative isolation w/ Delta beta corrections (factor 0.5)
26 
27 # Signal muon selection on top of 'muonCut'
28 # Muon ID ("tight")
29 signalMuonCut = 'isPFMuon' # general reconstruction property
30 signalMuonCut += ' && isGlobalMuon' # general reconstruction property
31 signalMuonCut += ' && globalTrack.normalizedChi2 < 10.' # muon ID: 'isGlobalMuonPromptTight'
32 signalMuonCut += ' && track.hitPattern.trackerLayersWithMeasurement > 5' # muon ID: 'isGlobalMuonPromptTight'
33 signalMuonCut += ' && globalTrack.hitPattern.numberOfValidMuonHits > 0' # muon ID: 'isGlobalMuonPromptTight'
34 signalMuonCut += ' && abs(dB) < 0.2' # 2-dim impact parameter with respect to beam spot (s. "PAT muon configuration" above)
35 signalMuonCut += ' && innerTrack.hitPattern.numberOfValidPixelHits > 0' # tracker reconstruction
36 signalMuonCut += ' && numberOfMatchedStations > 1' # muon chamber reconstruction
37 # Kinematics
38 signalMuonCut += ' && pt > 26.' # transverse momentum
39 signalMuonCut += ' && abs(eta) < 2.1' # pseudo-rapisity range
40 # (Relative) isolation
41 signalMuonCut += ' && (chargedHadronIso+max(0.,neutralHadronIso+photonIso-0.5*puChargedHadronIso))/pt < 0.12' # relative isolation w/ Delta beta corrections (factor 0.5)
42 
43 muonVertexMaxDZ = 0.5 # DeltaZ between muon vertex and PV
44 
45 
46 
47 # Signal jet selection
48 # Jet ID
49 jetCut = 'numberOfDaughters > 1' # PF jet ID:
50 jetCut += ' && neutralHadronEnergyFraction < 0.99' # PF jet ID:
51 jetCut += ' && neutralEmEnergyFraction < 0.99' # PF jet ID:
52 jetCut += ' && (chargedEmEnergyFraction < 0.99 || abs(eta) >= 2.4)' # PF jet ID:
53 jetCut += ' && (chargedHadronEnergyFraction > 0. || abs(eta) >= 2.4)' # PF jet ID:
54 jetCut += ' && (chargedMultiplicity > 0 || abs(eta) >= 2.4)' # PF jet ID:
55 # Kinematics
56 jetCut +' && abs(eta) < 2.5' # pseudo-rapisity range
57 # varying jet pt thresholds
58 veryLooseJetCut = 'pt > 30.' # transverse momentum (4 jets)
59 looseJetCut = 'pt > 30.' # transverse momentum (3 jets)
60 tightJetCut = 'pt > 30.' # transverse momentum (2 jets)
61 veryTightJetCut = 'pt > 30.' # transverse momentum (leading jet)
62 
63 
64 
65 # Minimal selection for veto electrons
66 # ... using GsfElectron kinematics
67 # Electron ID
68 electronGsfCut = 'electronID("cutBasedElectronID-CSA14-50ns-V1-standalone-veto")' # electrons ID
69 # Kinematics
70 electronGsfCut += ' && ecalDrivenMomentum.pt > 20.' # transverse energy
71 electronGsfCut += ' && abs(ecalDrivenMomentum.eta) < 2.5' # pseudo-rapisity range
72 # (Relative) isolation
73 electronGsfCut += ' && (chargedHadronIso+max(0.,neutralHadronIso+photonIso-1.0*userIsolation("User1Iso")))/ecalDrivenMomentum.pt < 0.2' # relative isolation with Delta beta corrections
74 # ... using re-calibrated (with regression energy) kinematics
75 electronCalibCut = electronGsfCut.replace( 'ecalDrivenMomentum.', '' )
76 electronCut = electronGsfCut
77 
78 
79 
80 
81 # Signal b-tagged jet selection
82 bTagCut = 'bDiscriminator("combinedInclusiveSecondaryVertexV2BJetTags") > 0.679'
83 
84 
85 
86 
87 # Trigger object selection
88 triggerObjectSelectionData = 'type("TriggerMuon") && ( path("%s") )'%( triggerSelectionData )
89 triggerObjectSelectionMC = 'type("TriggerMuon") && ( path("%s") )'%( triggerSelectionMC )