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)
|