ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/python/jetConfig_cff.py
Revision: 1.1
Committed: Wed Apr 15 12:03:00 2009 UTC (16 years ago) by amagnan
Content type: text/x-python
Branch: MAIN
Log Message:
add python configuration files

File Contents

# Content
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 cleaning
13 ######################################################################################
14
15 from PhysicsTools.PatAlgos.cleaningLayer0.caloJetCleaner_cfi import *
16
17 allLayer0JetsForTauAnalyses = copy.deepcopy(allLayer0Jets)
18 allLayer0JetsForTauAnalyses.jetSource = cms.InputTag("iterativeCone5CaloJets")
19 allLayer0JetsForTauAnalyses.removeOverlaps.electrons = cms.PSet() # disable default to remove overlap with electrons
20 #allLayer0JetsForTauAnalyses.removeOverlaps.electrons.collection = cms.InputTag("allLayer0ElectronsForTauAnalyses")
21 #allLayer0JetsForTauAnalyses.removeOverlaps.electrons.deltaR = cms.double(0.3) ##
22 #allLayer0JetsForTauAnalyses.removeOverlaps.electrons.cut = cms.string('pt > 10 & (trackIso()+ecalIso())/pt < 0.18')
23 #allLayer0JetsForTauAnalyses.removeOverlaps.electrons.flags = cms.vstring('Isolation/Tracker')
24
25 allLayer0JetsForTauAnalyses.removeOverlaps.taus = cms.PSet() # disable default to remove overlap with electrons
26 #allLayer0JetsForTauAnalyses.removeOverlaps.taus.collection = cms.InputTag("allLayer0PFTausForTauAnalyses")
27 #allLayer0JetsForTauAnalyses.removeOverlaps.taus.deltaR = cms.double(0.3) ##
28 #allLayer0JetsForTauAnalyses.removeOverlaps.taus.cut = cms.string('')
29 #allLayer0JetsForTauAnalyses.removeOverlaps.taus.flags = cms.vstring('Isolation/Tracker')
30
31
32 ######################################################################################
33 #### Flavour ID
34 ######################################################################################
35 from PhysicsTools.PatAlgos.recoLayer0.jetFlavourId_cff import *
36
37
38 jetPartonAssociationForTauAnalyses = copy.deepcopy(jetPartonAssociation)
39 jetPartonAssociationForTauAnalyses.jets = cms.InputTag("allLayer0JetsForTauAnalyses")
40 jetPartonAssociationForTauAnalyses.partons = cms.InputTag("jetPartons")
41 jetPartonAssociationForTauAnalyses.coneSizeToAssociate = cms.double(0.3)
42
43 jetFlavourAssociationForTauAnalyses = copy.deepcopy(jetFlavourAssociation)
44 jetFlavourAssociationForTauAnalyses.srcByReference = cms.InputTag("jetPartonAssociationForTauAnalyses")
45 jetFlavourAssociationForTauAnalyses.physicsDefinition = cms.bool(False)
46
47 #PAT sequence for jet flavour identification
48 patJetFlavourIdForTauAnalyses = cms.Sequence(jetPartons
49 *jetPartonAssociationForTauAnalyses
50 *jetFlavourAssociationForTauAnalyses
51 )
52
53
54 ######################################################################################
55 #### b-tagging
56 ######################################################################################
57 from PhysicsTools.PatAlgos.recoLayer0.bTagging_cff import *
58
59
60 # Labels of Discriminators to use
61 patBTaggingDiscriminatorLabelsForTauAnalyses = cms.VInputTag(
62 cms.InputTag("combinedSecondaryVertexBJetTags","RECO"),
63 cms.InputTag("combinedSecondaryVertexMVABJetTags","RECO"),
64 cms.InputTag("coneIsolationTauJetTags","RECO"),
65 cms.InputTag("impactParameterMVABJetTags","RECO"),
66 cms.InputTag("jetBProbabilityBJetTags","RECO"),
67 cms.InputTag("jetProbabilityBJetTags","RECO"),
68 cms.InputTag("simpleSecondaryVertexBJetTags","RECO"),
69 cms.InputTag("softElectronBJetTags","RECO"),
70 cms.InputTag("softMuonBJetTags","RECO"),
71 cms.InputTag("softMuonNoIPBJetTags","RECO"),
72 cms.InputTag("trackCountingHighEffBJetTags","RECO"),
73 cms.InputTag("trackCountingHighPurBJetTags","RECO"),
74 )
75 # Labels of TagInfos to use
76 patBTaggingTagInfoLabelsForTauAnalyses = cms.VInputTag(
77 cms.InputTag("secondaryVertexTagInfos","RECO"),
78 cms.InputTag("softElectronTagInfos","RECO"),
79 cms.InputTag("softMuonTagInfos","RECO"),
80 cms.InputTag("impactParameterTagInfos","RECO"),
81 )
82
83
84 # Need to convert all JetTags to ValueMap<double>
85 patAODBTagsForTauAnalyses = copy.deepcopy(patAODBTags)
86 patAODBTagsForTauAnalyses.collection = cms.InputTag("iterativeCone5CaloJets")
87 patAODBTagsForTauAnalyses.associations = patBTaggingDiscriminatorLabelsForTauAnalyses
88 patAODBTagsForTauAnalyses.failSilently = cms.untracked.bool(True)
89
90
91 # Need to convert all JetTagInfoss to ValueMap<Ptr<BaseTagInfo>>
92 patAODTagInfosForTauAnalyses = copy.deepcopy(patAODTagInfos)
93 patAODTagInfosForTauAnalyses.collection = cms.InputTag("iterativeCone5CaloJets")
94 patAODTagInfosForTauAnalyses.associations = patBTaggingTagInfoLabelsForTauAnalyses
95 patAODTagInfosForTauAnalyses.failSilently = cms.untracked.bool(True)
96
97 layer0BTagsForTauAnalyses = copy.deepcopy(layer0BTags)
98 layer0BTagsForTauAnalyses.collection = cms.InputTag("allLayer0JetsForTauAnalyses")
99 layer0BTagsForTauAnalyses.backrefs = cms.InputTag("allLayer0JetsForTauAnalyses")
100 layer0BTagsForTauAnalyses.commonLabel = cms.InputTag("patAODBTagsForTauAnalyses")
101 layer0BTagsForTauAnalyses.associations = patBTaggingDiscriminatorLabelsForTauAnalyses
102 layer0BTagsForTauAnalyses.failSilently = cms.untracked.bool(True)
103
104 layer0TagInfosForTauAnalyses = copy.deepcopy(layer0TagInfos)
105 layer0TagInfosForTauAnalyses.collection = cms.InputTag("allLayer0JetsForTauAnalyses")
106 layer0TagInfosForTauAnalyses.backrefs = cms.InputTag("allLayer0JetsForTauAnalyses")
107 layer0TagInfosForTauAnalyses.commonLabel = cms.InputTag("patAODTagInfosForTauAnalyses")
108 layer0TagInfosForTauAnalyses.associations = patBTaggingTagInfoLabelsForTauAnalyses
109 layer0TagInfosForTauAnalyses.failSilently = cms.untracked.bool(True)
110
111 patAODBTaggingForTauAnalyses = cms.Sequence(patAODBTagsForTauAnalyses
112 *patAODTagInfosForTauAnalyses
113 )
114 patLayer0BTaggingForTauAnalyses = cms.Sequence(layer0BTagsForTauAnalyses
115 *layer0TagInfosForTauAnalyses
116 )
117
118
119 ######################################################################################
120 #### jet-tracks charge
121 ######################################################################################
122 from PhysicsTools.PatAlgos.recoLayer0.jetTracksCharge_cff import *
123
124 patAODJetTracksAssociatorForTauAnalyses = copy.deepcopy(patAODJetTracksAssociator)
125 patAODJetTracksAssociatorForTauAnalyses.src = cms.InputTag("iterativeCone5CaloJets") ## the AOD jets given as input to the PAT jet cleaner
126 patAODJetTracksAssociatorForTauAnalyses.tracks = cms.InputTag("ic5JetTracksAssociatorAtVertex") ## any JetTracksAssociation
127 patAODJetTracksAssociatorForTauAnalyses.cut = cms.string('') # e.g. normalizedChi2 < 5
128
129 ## Re-key from AOD jets to PAT Layer 0 jets
130 layer0JetTracksAssociatorForTauAnalyses = copy.deepcopy(layer0JetTracksAssociator)
131 layer0JetTracksAssociatorForTauAnalyses.collection = cms.InputTag("allLayer0JetsForTauAnalyses")
132 layer0JetTracksAssociatorForTauAnalyses.backrefs = cms.InputTag("allLayer0JetsForTauAnalyses")
133 layer0JetTracksAssociatorForTauAnalyses.association = cms.InputTag("patAODJetTracksAssociatorForTauAnalyses")
134
135 ## Compute JET Charge
136 layer0JetChargeForTauAnalyses = copy.deepcopy(layer0JetCharge)
137 layer0JetChargeForTauAnalyses.src = cms.InputTag("allLayer0JetsForTauAnalyses") ## The Jets
138 layer0JetChargeForTauAnalyses.jetTracksAssociation = cms.InputTag("layer0JetTracksAssociatorForTauAnalyses")
139 # -- JetCharge parameters --
140 layer0JetChargeForTauAnalyses.var = cms.string('Pt')
141 layer0JetChargeForTauAnalyses.exp = cms.double(1.0)
142
143 patLayer0JetTracksChargeForTauAnalyses = cms.Sequence(patAODJetTracksAssociatorForTauAnalyses
144 *layer0JetTracksAssociatorForTauAnalyses
145 *layer0JetChargeForTauAnalyses
146 )
147
148
149 ######################################################################################
150 #### jetMET corrections
151 ######################################################################################
152 from PhysicsTools.PatAlgos.recoLayer0.jetMETCorrections_cff import *
153 from JetMETCorrections.Configuration.L2L3Corrections_Summer08Redigi_cff import *
154
155 #just to be sure it takes redigi values....
156 L2JetCorrectorIC5Calo.tagName = cms.string('Summer08Redigi_L2Relative_IC5Calo')
157 L3JetCorrectorIC5Calo.tagName = cms.string('Summer08Redigi_L3Absolute_IC5Calo')
158
159 # change corrector to L2+L3
160 corMetType1Icone5ForTauAnalyses = copy.deepcopy(corMetType1Icone5)
161 corMetType1Icone5ForTauAnalyses.corrector = cms.string('L2L3JetCorrectorIC5Calo')
162
163
164 corMetType1Icone5MuonsForTauAnalyses = copy.deepcopy(corMetType1Icone5Muons)
165 corMetType1Icone5MuonsForTauAnalyses.uncorMETInputTag = cms.InputTag('corMetType1Icone5ForTauAnalyses')
166 corMetType1Icone5MuonsForTauAnalyses.muonsInputTag = cms.InputTag('goodMuonsforMETCorrection')
167
168 # It would be better to get this config to JetMETCorrections/Type1MET/data/ at some point
169 corMetType1Icone5MuonsForTauAnalyses.TrackAssociatorParameters.useEcal = False ## RecoHits
170 corMetType1Icone5MuonsForTauAnalyses.TrackAssociatorParameters.useHcal = False ## RecoHits
171 corMetType1Icone5MuonsForTauAnalyses.TrackAssociatorParameters.useHO = False ## RecoHits
172 corMetType1Icone5MuonsForTauAnalyses.TrackAssociatorParameters.useCalo = True ## CaloTowers
173 corMetType1Icone5MuonsForTauAnalyses.TrackAssociatorParameters.useMuon = False ## RecoHits
174 corMetType1Icone5MuonsForTauAnalyses.TrackAssociatorParameters.truthMatch = False
175
176 #define jetCorrFactors to associate
177 jetCorrFactorsForTauAnalyses = copy.deepcopy(jetCorrFactors)
178 jetCorrFactorsForTauAnalyses.useEMF = cms.bool(False) ## the use of emf in the JEC
179 ## choose sample type for flavor dependend corrections:
180 jetCorrFactorsForTauAnalyses.sampleType= cms.int32(0) ## 0: from dijet sample, 1: from ttbar sample
181 jetCorrFactorsForTauAnalyses.jetSource = cms.InputTag("iterativeCone5CaloJets") ## input collection of jets
182 ## tags for the jet correctors; when not available the string should be set to 'none'
183 jetCorrFactorsForTauAnalyses.L1Offset = cms.string('none')
184 jetCorrFactorsForTauAnalyses.L2Relative= cms.string('Summer08Redigi_L2Relative_IC5Calo')
185 jetCorrFactorsForTauAnalyses.L3Absolute= cms.string('Summer08Redigi_L3Absolute_IC5Calo')
186 jetCorrFactorsForTauAnalyses.L4EMF = cms.string('none')
187 jetCorrFactorsForTauAnalyses.L5Flavor = cms.string('none') #L5Flavor_IC5
188 jetCorrFactorsForTauAnalyses.L6UE = cms.string('none')
189 jetCorrFactorsForTauAnalyses.L7Parton = cms.string('none') #L7Parton_IC5
190
191 # re-key jet energy corrections to layer 0 output
192 layer0JetCorrFactorsForTauAnalyses = copy.deepcopy(layer0JetCorrFactors)
193 layer0JetCorrFactorsForTauAnalyses.collection = cms.InputTag("allLayer0JetsForTauAnalyses")
194 layer0JetCorrFactorsForTauAnalyses.backrefs = cms.InputTag("allLayer0JetsForTauAnalyses")
195 layer0JetCorrFactorsForTauAnalyses.association = cms.InputTag("jetCorrFactorsForTauAnalyses")
196
197
198 # default PAT sequence for JetMET corrections before cleaners
199 patAODJetMETCorrectionsForTauAnalyses = cms.Sequence(jetCorrFactorsForTauAnalyses
200 +goodMuonsforMETCorrection
201 *corMetType1Icone5ForTauAnalyses
202 *corMetType1Icone5MuonsForTauAnalyses
203 )
204
205 # default PAT sequence for JetMET corrections after cleaners
206 patLayer0JetMETCorrectionsForTauAnalyses = cms.Sequence(layer0JetCorrFactorsForTauAnalyses)
207
208
209
210 ######################################################################################
211 #### trigger matching
212 ######################################################################################
213
214
215 ######################################################################################
216 #### MC matching : genjet and parton
217 ######################################################################################
218 from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import *
219
220 jetPartonMatchForTauAnalyses = copy.deepcopy(jetPartonMatch)
221 jetPartonMatchForTauAnalyses.src = cms.InputTag("allLayer0JetsForTauAnalyses") # RECO objects to match
222 jetPartonMatchForTauAnalyses.matched = cms.InputTag("genParticles") # mc-truth particle collection
223 jetPartonMatchForTauAnalyses.mcPdgId = cms.vint32(1, 2, 3, 4, 5, 21) # one or more PDG ID (quarks except top; gluons)
224 jetPartonMatchForTauAnalyses.mcStatus = cms.vint32(3) # PYTHIA status code (3 = hard scattering)
225 jetPartonMatchForTauAnalyses.checkCharge = cms.bool(False) # False = any value of the charge of MC and RECO is ok
226 jetPartonMatchForTauAnalyses.maxDeltaR = cms.double(0.4) # Minimum deltaR for the match
227 jetPartonMatchForTauAnalyses.maxDPtRel = cms.double(3.0) # Minimum deltaPt/Pt for the match
228 jetPartonMatchForTauAnalyses.resolveAmbiguities = cms.bool(True) # Forbid two RECO objects to match to the same GEN object
229 jetPartonMatchForTauAnalyses.resolveByMatchQuality = cms.bool(False) # False = just match input in order; True = pick lowest deltaR pair first
230
231 jetGenJetMatchForTauAnalyses = copy.deepcopy(jetGenJetMatch)
232 jetGenJetMatchForTauAnalyses.src = cms.InputTag("allLayer0JetsForTauAnalyses") ## RECO jets (any View<Jet> is ok)
233 jetGenJetMatchForTauAnalyses.matched = cms.InputTag("iterativeCone5GenJetsNoNuBSM") ## GEN jets (must be GenJetCollection)
234 jetGenJetMatchForTauAnalyses.maxDeltaR = cms.double(0.4) # Minimum deltaR for the match
235 jetGenJetMatchForTauAnalyses.maxDPtRel = cms.double(3.0) # Minimum deltaPt/Pt for the match
236 jetGenJetMatchForTauAnalyses.resolveAmbiguities = cms.bool(True) # Forbid two RECO objects to match to the same GEN object
237 jetGenJetMatchForTauAnalyses.resolveByMatchQuality = cms.bool(False) # False = just match input in order; True = pick lowest deltaR pair first
238
239
240 ######################################################################################
241 #### PAT layer 1
242 ######################################################################################
243
244 from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cff import *
245
246 allLayer1JetsForTauAnalyses = copy.deepcopy(allLayer1Jets)
247
248 allLayer1JetsForTauAnalyses.jetSource = cms.InputTag("allLayer0JetsForTauAnalyses")
249
250 allLayer1JetsForTauAnalyses.embedCaloTowers = cms.bool(True)
251
252 allLayer1JetsForTauAnalyses.addJetCorrFactors = cms.bool(True)
253 allLayer1JetsForTauAnalyses.jetCorrFactorsSource = cms.InputTag("layer0JetCorrFactorsForTauAnalyses")
254
255 allLayer1JetsForTauAnalyses.addBTagInfo = cms.bool(True)
256 allLayer1JetsForTauAnalyses.addDiscriminators = cms.bool(True)
257 allLayer1JetsForTauAnalyses.discriminatorModule = cms.InputTag("layer0BTagsForTauAnalyses")
258 allLayer1JetsForTauAnalyses.discriminatorNames = cms.vstring('*')
259 allLayer1JetsForTauAnalyses.addTagInfoRefs = cms.bool(True)
260 allLayer1JetsForTauAnalyses.tagInfoModule = cms.InputTag("layer0TagInfosForTauAnalyses")
261 allLayer1JetsForTauAnalyses.tagInfoNames = cms.vstring('secondaryVertexTagInfos','softElectronTagInfos','softMuonTagInfos','impactParameterTagInfos')
262
263 allLayer1JetsForTauAnalyses.addAssociatedTracks = cms.bool(True)
264 allLayer1JetsForTauAnalyses.trackAssociationSource = cms.InputTag("layer0JetTracksAssociatorForTauAnalyses")
265
266 allLayer1JetsForTauAnalyses.addJetCharge = cms.bool(True)
267 allLayer1JetsForTauAnalyses.jetChargeSource = cms.InputTag("layer0JetChargeForTauAnalyses")
268
269 allLayer1JetsForTauAnalyses.addTrigMatch = cms.bool(False)
270 #allLayer1JetsForTauAnalyses.trigPrimMatch = cms.VInputTag(cms.InputTag("jetTrigMatchHLT1ElectronRelaxed"), cms.InputTag("jetTrigMatchHLT2jet"))
271
272 allLayer1JetsForTauAnalyses.addGenPartonMatch = cms.bool(True)
273 allLayer1JetsForTauAnalyses.embedGenPartonMatch = cms.bool(True)
274 allLayer1JetsForTauAnalyses.genPartonMatch = cms.InputTag("jetPartonMatchForTauAnalyses")
275 allLayer1JetsForTauAnalyses.addGenJetMatch = cms.bool(True)
276 allLayer1JetsForTauAnalyses.genJetMatch = cms.InputTag("jetGenJetMatchForTauAnalyses")
277 allLayer1JetsForTauAnalyses.addPartonJetMatch = cms.bool(False)
278 allLayer1JetsForTauAnalyses.partonJetSource = cms.InputTag("NOT_IMPLEMENTED")
279
280 allLayer1JetsForTauAnalyses.getJetMCFlavour = cms.bool(True)
281 allLayer1JetsForTauAnalyses.JetPartonMapSource = cms.InputTag("jetFlavourAssociationForTauAnalyses")
282
283
284
285 ######################################################################################
286 #### Final PAT sequences
287 ######################################################################################
288
289 patBeforeLayer0JetsForTauAnalyses = cms.Sequence( patAODBTaggingForTauAnalyses
290 #*patAODJetMETCorrectionsForTauAnalyses
291 #*patAODJetMETCorrections --> no need to do this here, as it is already done in met
292 )
293
294 patLayer0JetsForTauAnalyses = cms.Sequence( patBeforeLayer0JetsForTauAnalyses
295 *allLayer0JetsForTauAnalyses
296 *patJetFlavourIdForTauAnalyses
297 *patLayer0BTaggingForTauAnalyses
298 *patLayer0JetMETCorrectionsForTauAnalyses
299 *patLayer0JetTracksChargeForTauAnalyses
300 *(jetPartonMatchForTauAnalyses+jetGenJetMatchForTauAnalyses)
301 )
302
303 patLayer1JetsForTauAnalyses = cms.Sequence(allLayer1JetsForTauAnalyses)