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

# User Rev Content
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 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)