1 |
amagnan |
1.1 |
########################################
|
2 |
|
|
#### Created 07-Apr-09
|
3 |
|
|
#### by A.-M. Magnan
|
4 |
|
|
#### a.magnan@imperial.ac.uk
|
5 |
|
|
#### from TauAnalysis globalV00-00-03
|
6 |
|
|
########################################
|
7 |
|
|
|
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)
|