8 |
|
import FWCore.ParameterSet.Config as cms |
9 |
|
import copy |
10 |
|
|
11 |
– |
###################################################################################### |
12 |
– |
#### PAT layer 0 |
13 |
– |
###################################################################################### |
14 |
– |
|
15 |
– |
|
16 |
– |
from PhysicsTools.PatAlgos.cleaningLayer0.muonCleaner_cfi import * |
17 |
– |
|
18 |
– |
# set isolation but don't reject non-isolated muons |
19 |
– |
allLayer0MuonsForTauAnalyses = allLayer0Muons.copy() |
20 |
– |
# increase size of muon isolation cone from default of deltaR = 0.3 to 0.7; |
21 |
– |
# for muons to be considered "isolated", require: |
22 |
– |
# o sum(Pt) of tracks in isolation cone < 1 GeV |
23 |
– |
# o sum(Pt) of ECAL energy deposits in isolation cone < 1 GeV |
24 |
– |
# o ... |
25 |
– |
allLayer0MuonsForTauAnalyses.isolation.tracker.deltaR = cms.double(0.3) |
26 |
– |
allLayer0MuonsForTauAnalyses.isolation.tracker.cut = cms.double(1.0) |
27 |
– |
allLayer0MuonsForTauAnalyses.isolation.ecal.deltaR = cms.double(0.3) |
28 |
– |
allLayer0MuonsForTauAnalyses.isolation.ecal.cut = cms.double(1.0) |
29 |
– |
allLayer0MuonsForTauAnalyses.isolation.hcal.deltaR = cms.double(0.3) |
30 |
– |
#allLayer0MuonsForTauAnalyses.isolation.hcal.cut = cms.double(2.0) |
31 |
– |
allLayer0MuonsForTauAnalyses.isolation.user.deltaR = cms.double(0.7) |
32 |
– |
#allLayer0MuonsForTauAnalyses.isolation.user.cut = cms.double(2.0) |
33 |
– |
# flag non-isolated muons; |
34 |
– |
# keep all isolated and non-isolated muons in the event |
35 |
– |
allLayer0MuonsForTauAnalyses.bitsToIgnore = cms.vstring('Isolation/All') |
36 |
– |
|
37 |
– |
|
38 |
– |
|
39 |
– |
###################################################################################### |
40 |
– |
#### muon isolation |
41 |
– |
###################################################################################### |
42 |
– |
|
43 |
– |
|
44 |
– |
# import PAT muon isolation config |
45 |
– |
from PhysicsTools.PatAlgos.recoLayer0.muonIsolation_cff import * |
46 |
– |
|
47 |
– |
# set PAT layer 0 muon collections to EWK tau specific collections |
48 |
– |
layer0MuonIsolationsForTauAnalyses = copy.deepcopy(layer0MuonIsolations) |
49 |
– |
layer0MuonIsolationsForTauAnalyses.collection = cms.InputTag("allLayer0MuonsForTauAnalyses") |
50 |
– |
layer0MuonIsolationsForTauAnalyses.backrefs = cms.InputTag("allLayer0MuonsForTauAnalyses") |
51 |
– |
|
52 |
– |
|
53 |
– |
|
54 |
– |
###################################################################################### |
55 |
– |
#### trigger matching |
56 |
– |
###################################################################################### |
57 |
– |
|
58 |
– |
from PhysicsTools.PatAlgos.triggerLayer0.trigMatchSequences_cff import * |
59 |
– |
muonTrigMatchHLT1MuonIso.src = "allLayer0MuonsForTauAnalyses" |
60 |
– |
muonTrigMatchHLT1MuonNonIso.src = "allLayer0MuonsForTauAnalyses" |
61 |
– |
patTrigMatchMuonsForTauAnalyses = cms.Sequence( (patHLT1MuonIso * muonTrigMatchHLT1MuonIso) |
62 |
– |
+(patHLT1MuonNonIso * muonTrigMatchHLT1MuonNonIso) ) |
63 |
– |
|
64 |
– |
|
65 |
– |
###################################################################################### |
66 |
– |
#### MC matching |
67 |
– |
###################################################################################### |
68 |
– |
|
69 |
– |
|
70 |
– |
from PhysicsTools.PatAlgos.mcMatchLayer0.muonMatch_cfi import * |
71 |
– |
|
72 |
– |
muonMatchForTauAnalyses = copy.deepcopy(muonMatch) |
73 |
– |
muonMatchForTauAnalyses.maxDeltaR = cms.double(0.1) |
74 |
– |
muonMatchForTauAnalyses.src = "allLayer0MuonsForTauAnalyses" # matching of recontructed muons to generator level information |
75 |
– |
|
76 |
– |
|
77 |
– |
###################################################################################### |
78 |
– |
#### PAT layer 1 |
79 |
– |
###################################################################################### |
80 |
– |
|
81 |
– |
from PhysicsTools.PatAlgos.producersLayer1.muonProducer_cfi import * |
82 |
– |
|
83 |
– |
allLayer1MuonsForTauAnalyses = allLayer1Muons.copy() |
84 |
– |
allLayer1MuonsForTauAnalyses.muonSource = cms.InputTag("allLayer0MuonsForTauAnalyses") |
85 |
– |
allLayer1MuonsForTauAnalyses.isolation.hcal = cms.PSet( |
86 |
– |
src = cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositCalByAssociatorTowershcal"), |
87 |
– |
deltaR = cms.double(0.3) |
88 |
– |
) |
89 |
– |
allLayer1MuonsForTauAnalyses.isolation.tracker = cms.PSet( |
90 |
– |
src = cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositTk"), |
91 |
– |
deltaR = cms.double(0.3) |
92 |
– |
) |
93 |
– |
allLayer1MuonsForTauAnalyses.isolation.user = cms.VPSet(cms.PSet( |
94 |
– |
src = cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositCalByAssociatorTowersho"), |
95 |
– |
deltaR = cms.double(0.3) |
96 |
– |
), |
97 |
– |
cms.PSet( |
98 |
– |
src = cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositJets"), |
99 |
– |
deltaR = cms.double(0.3) |
100 |
– |
)) |
101 |
– |
allLayer1MuonsForTauAnalyses.isolation.ecal = cms.PSet( |
102 |
– |
src = cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositCalByAssociatorTowersecal"), |
103 |
– |
deltaR = cms.double(0.3) |
104 |
– |
) |
105 |
– |
|
106 |
– |
# embed IsoDeposits to recompute isolation easily |
107 |
– |
allLayer1MuonsForTauAnalyses.isoDeposits = cms.PSet( |
108 |
– |
tracker = cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositTk"), |
109 |
– |
ecal = cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositCalByAssociatorTowersecal"), |
110 |
– |
hcal = cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositCalByAssociatorTowershcal"), |
111 |
– |
user = cms.VInputTag( |
112 |
– |
cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositCalByAssociatorTowersho"), |
113 |
– |
cms.InputTag("layer0MuonIsolationsForTauAnalyses","muIsoDepositJets") |
114 |
– |
) |
115 |
– |
) |
116 |
– |
|
117 |
– |
allLayer1MuonsForTauAnalyses.useParticleFlow = cms.bool(False) |
118 |
– |
allLayer1MuonsForTauAnalyses.embedPFCandidate = cms.bool(False) |
119 |
– |
|
120 |
– |
allLayer1MuonsForTauAnalyses.embedTrack = cms.bool(True) |
121 |
– |
allLayer1MuonsForTauAnalyses.embedCombinedMuon = cms.bool(True) |
122 |
– |
allLayer1MuonsForTauAnalyses.embedStandAloneMuon = cms.bool(True) |
123 |
– |
allLayer1MuonsForTauAnalyses.addTrigMatch = cms.bool(True) |
124 |
– |
allLayer1MuonsForTauAnalyses.trigPrimMatch = cms.VInputTag(cms.InputTag("muonTrigMatchHLT1MuonNonIso"), cms.InputTag("muonTrigMatchHLT1MuonIso")) |
125 |
– |
allLayer1MuonsForTauAnalyses.addGenMatch = cms.bool(True) |
126 |
– |
allLayer1MuonsForTauAnalyses.embedGenMatch = cms.bool(True) |
127 |
– |
allLayer1MuonsForTauAnalyses.genParticleMatch = cms.InputTag("muonMatchForTauAnalyses") |
128 |
– |
|
129 |
– |
###################################################################################### |
130 |
– |
#### Final PAT sequences |
131 |
– |
###################################################################################### |
132 |
– |
|
133 |
– |
patLayer0MuonsForTauAnalyses = cms.Sequence( patAODMuonIsolation |
134 |
– |
*allLayer0MuonsForTauAnalyses |
135 |
– |
*layer0MuonIsolationsForTauAnalyses |
136 |
– |
*muonMatchForTauAnalyses |
137 |
– |
*patTrigMatchMuonsForTauAnalyses ) |
138 |
– |
|
139 |
– |
patLayer1MuonsForTauAnalyses = cms.Sequence(allLayer1MuonsForTauAnalyses) |