DESY Hbb Analysis Framework
ntuplizer_92X_data_2017-v4.py
Go to the documentation of this file.
1 # For the ntuple production of prompt reco era Hv2
2 
3 import FWCore.ParameterSet.Config as cms
4 
5 process = cms.Process('MssmHbb')
6 
7 process.load('FWCore.MessageService.MessageLogger_cfi')
8 process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(100000)
9 
10 ## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done
11 process.load('Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff')
12 process.load('Configuration.Geometry.GeometryRecoDB_cff')
13 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
14 from Configuration.AlCa.GlobalTag import GlobalTag
15 process.GlobalTag = GlobalTag(process.GlobalTag, '92X_dataRun2_Prompt_v10')
16 
17 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) )
18 
19 output_file = 'ntuple.root'
20 ## TFileService
21 process.TFileService = cms.Service('TFileService',
22  fileName = cms.string(output_file)
23 )
24 
25 ## ============ TRIGGER FILTER ===============
26 ## Enable below at cms.Path if needed - DATA ONLY!!!
27 process.triggerSelection = cms.EDFilter( 'TriggerResultsFilter',
28  triggerConditions = cms.vstring(
29 # physics triggers
30  'HLT_DoublePFJets100MaxDeta1p6_DoubleCaloBTagCSV_p33_v*',
31  'HLT_Mu12_DoublePFJets40MaxDeta1p6_DoubleCaloBTagCSV_p33_v*',
32 # backup triggers
33  'HLT_DoublePFJets116MaxDeta1p6_DoubleCaloBTagCSV_p33_v*',
34  'HLT_DoublePFJets128MaxDeta1p6_DoubleCaloBTagCSV_p33_v*',
35  'HLT_Mu12_DoublePFJets54MaxDeta1p6_DoubleCaloBTagCSV_p33_v*',
36  'HLT_Mu12_DoublePFJets62MaxDeta1p6_DoubleCaloBTagCSV_p33_v*',
37 # control triggers
38 ### btag
39  'HLT_SingleJet30_Mu12_SinglePFJet40_v*',
40  'HLT_DoublePFJets40_CaloBTagCSV_p33_v*',
41  'HLT_DoublePFJets100_CaloBTagCSV_p33_v*',
42  'HLT_DoublePFJets200_CaloBTagCSV_p33_v*',
43  'HLT_DoublePFJets350_CaloBTagCSV_p33_v*',
44  'HLT_Mu12_DoublePFJets40_CaloBTagCSV_p33_v*',
45  'HLT_Mu12_DoublePFJets100_CaloBTagCSV_p33_v*',
46  'HLT_Mu12_DoublePFJets200_CaloBTagCSV_p33_v*',
47  'HLT_Mu12_DoublePFJets350_CaloBTagCSV_p33_v*',
48 ### jet triggers
49  'HLT_PFJet40_v*',
50  'HLT_PFJet60_v*',
51  'HLT_PFJet80_v*',
52  'HLT_PFJet140_v*',
53  'HLT_PFJet200_v*',
54  'HLT_PFJet260_v*',
55  'HLT_PFJet320_v*',
56  'HLT_PFJet400_v*',
57  'HLT_PFJet450_v*',
58  'HLT_PFJet500_v*',
59  'HLT_PFJet550_v*',
60  'HLT_DiPFJetAve40_v*',
61  'HLT_DiPFJetAve80_v*',
62  'HLT_DiPFJetAve200_v*',
63  'HLT_DiPFJetAve320_v*',
64  'HLT_DiPFJetAve500_v*',
65 
66 ### muon triggers
67  'HLT_Mu8_v*',
68  'HLT_Mu3_PFJet40_v*',
69 ### zerobias trigger
70  'HLT_ZeroBias_v*',
71  ),
72  hltResults = cms.InputTag( 'TriggerResults', '', 'HLT' ),
73  l1tResults = cms.InputTag( '' ),
74  l1tIgnoreMask = cms.bool( False ),
75  l1techIgnorePrescales = cms.bool( False ),
76  daqPartitions = cms.uint32( 1 ),
77  throw = cms.bool( False )
78 )
79 
80 
81 
82 ## ============ EVENT FILTER COUNTER ===============
83 ## Filter counter (maybe more useful for MC)
84 process.TotalEvents = cms.EDProducer('EventCountProducer')
85 process.FilteredEvents = cms.EDProducer('EventCountProducer')
86 
87 ## ============ PRIMARY VERTEX FILTER ===============
88 process.primaryVertexFilter = cms.EDFilter('VertexSelector',
89  src = cms.InputTag('offlineSlimmedPrimaryVertices'), # primary vertex collection name
90  cut = cms.string('!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2'), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks
91  filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection.
92 )
93 
94 ## ============ THE NTUPLIZER!!! ===============
95 process.MssmHbb = cms.EDAnalyzer('Ntuplizer',
96  MonteCarlo = cms.bool(False),
97  UseFullName = cms.bool(False),
98  ###################
99  TotalEvents = cms.InputTag('TotalEvents'),
100  FilteredEvents = cms.InputTag('FilteredEvents'),
101  PatJets = cms.VInputTag(
102  cms.InputTag('slimmedJets'),
103  cms.InputTag('slimmedJetsPuppi'),
104  ),
105  JECRecords = cms.vstring ( # for the JEC uncertainties
106  'AK4PFchs',
107  'AK4PFPuppi',
108  ),
109  JERRecords = cms.vstring ( # for the JER
110  'AK4PFchs',
111  'AK4PFPuppi',
112  ),
113  FixedGridRhoAll = cms.InputTag('fixedGridRhoAll'),
114  PatMuons = cms.VInputTag(
115  cms.InputTag('slimmedMuons')
116  ),
117  PrimaryVertices = cms.VInputTag(
118  cms.InputTag('offlineSlimmedPrimaryVertices')
119  ),
120  BTagAlgorithms = cms.vstring (
121  'pfCombinedInclusiveSecondaryVertexV2BJetTags',
122  'pfJetProbabilityBJetTags',
123  'pfCombinedMVAV2BJetTags',
124  'pfDeepCSVJetTags:probudsg',
125  'pfDeepCSVJetTags:probb',
126  'pfDeepCSVJetTags:probc',
127  'pfDeepCSVJetTags:probbb',
128  'pfDeepCSVJetTags:probcc',
129  'pfDeepCMVAJetTags:probudsg',
130  'pfDeepCMVAJetTags:probb',
131  'pfDeepCMVAJetTags:probc',
132  'pfDeepCMVAJetTags:probbb',
133  'pfDeepCMVAJetTags:probcc'
134  ),
135  BTagAlgorithmsAlias = cms.vstring (
136  'btag_csvivf',
137  'btag_jetprob',
138  'btag_csvmva',
139  'btag_deeplight',
140  'btag_deepb',
141  'btag_deepc',
142  'btag_deepbb',
143  'btag_deepcc',
144  'btag_deepmvalight',
145  'btag_deepmvab',
146  'btag_deepmvac',
147  'btag_deepmvabb',
148  'btag_deepmvacc',
149  ),
150  TriggerResults = cms.VInputTag(cms.InputTag('TriggerResults','','HLT')),
151  TriggerPaths = cms.vstring (
152  ## I recommend using the version number explicitly to be able to compare
153  ## however for production one has to be careful that all versions are included.
154  ## Thinking of a better solution...
155 # physics triggers
156  'HLT_DoublePFJets100MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
157  'HLT_Mu12_DoublePFJets40MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
158 # backup triggers
159  'HLT_DoublePFJets116MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
160  'HLT_DoublePFJets128MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
161  'HLT_Mu12_DoublePFJets54MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
162  'HLT_Mu12_DoublePFJets62MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
163 # control triggers
164 ### btag
165  'HLT_SingleJet30_Mu12_SinglePFJet40_v',
166  'HLT_DoublePFJets40_CaloBTagCSV_p33_v',
167  'HLT_DoublePFJets100_CaloBTagCSV_p33_v',
168  'HLT_DoublePFJets200_CaloBTagCSV_p33_v',
169  'HLT_DoublePFJets350_CaloBTagCSV_p33_v',
170  'HLT_Mu12_DoublePFJets40_CaloBTagCSV_p33_v',
171  'HLT_Mu12_DoublePFJets100_CaloBTagCSV_p33_v',
172  'HLT_Mu12_DoublePFJets200_CaloBTagCSV_p33_v',
173  'HLT_Mu12_DoublePFJets350_CaloBTagCSV_p33_v',
174 ### jet triggers
175  'HLT_PFJet40_v',
176  'HLT_PFJet60_v',
177  'HLT_PFJet80_v',
178  'HLT_PFJet140_v',
179  'HLT_PFJet200_v',
180  'HLT_PFJet260_v',
181  'HLT_PFJet320_v',
182  'HLT_PFJet400_v',
183  'HLT_PFJet450_v',
184  'HLT_PFJet500_v',
185  'HLT_PFJet550_v',
186  'HLT_DiPFJetAve40_v',
187  'HLT_DiPFJetAve80_v',
188  'HLT_DiPFJetAve200_v',
189  'HLT_DiPFJetAve320_v',
190  'HLT_DiPFJetAve500_v',
191 
192 
193 ### muon triggers
194  'HLT_Mu8_v',
195  'HLT_Mu3_PFJet40_v',
196 ### zerobias trigger
197  'HLT_ZeroBias_v',
198 
199  ),
200  L1Seeds = cms.vstring (
201  'L1_Mu3_JetC16_dEta_Max0p4_dPhi_Max0p4',
202  'L1_Mu3_JetC60_dEta_Max0p4_dPhi_Max0p4',
203  'L1_Mu3_JetC120_dEta_Max0p4_dPhi_Max0p4',
204  'L1_Mu12er2p3_Jet40er2p3_dR_Max0p4_DoubleJet40er2p3_dEta_Max1p6',
205  'L1_DoubleJet40er3p0',
206  'L1_DoubleJet100er3p0',
207  'L1_DoubleJet112er3p0',
208  'L1_DoubleJet120er3p0',
209  'L1_DoubleJet100er2p3_dEta_Max1p6',
210  'L1_DoubleJet112er2p3_dEta_Max1p6',
211  'L1_ZeroBias',
212  'L1_SingleJet35',
213  'L1_SingleJet60',
214  'L1_SingleJet90',
215  'L1_SingleJet120',
216  'L1_SingleJet170',
217  'L1_SingleJet180',
218  'L1_SingleJet200',
219  'L1_SingleMu3',
220  'L1_SingleMu5',
221  'L1_SingleMu7',
222  'L1_Mu3_Jet30er2p5',
223  ),
224  TriggerObjectStandAlone = cms.VInputTag(
225  cms.InputTag('slimmedPatTrigger'),
226  ),
227  TriggerObjectLabels = cms.vstring (
228 
229  'hltL1DoubleJet100er2p3dEtaMax1p6',
230  'hltL1DoubleJet100er2p3dEtaMax1p6Ior112er2p3dEtaMax1p6',
231  'hltDoubleCaloBJets100eta2p3',
232  'hltBTagCalo80x6CSVp0p92DoubleWithMatching',
233  'hltDoublePFJets100Eta2p3',
234  'hltDoublePFJets100Eta2p3MaxDeta1p6',
235 
236  'hltL1Mu12er2p3Jet40er2p3dRMax0p4DoubleJet40er2p3dEtaMax1p6',
237  'hltL1fL1sMu12Dijet40L1Filtered0',
238  'hltDoubleCaloBJets30eta2p3',
239  'hltBTagCalo30x8CSVp0p92DoubleWithMatching',
240  'hltL3fL1sMu12Dijet40L1f0L2f8L3Filtered12',
241  'hltDoublePFBJets40Eta2p3',
242  'hltDoublePFJets40Eta2p3MaxDeta1p6',
243  'hltBSoftMuonDiJet40Mu12L3FilterByDR',
244 
245  'hltL1DoubleJet100er2p3dEtaMax1p6',
246  'hltL1DoubleJet100er2p3dEtaMax1p6Ior112er2p3dEtaMax1p6',
247  'hltDoubleCaloBJets100eta2p3',
248  'hltBTagCalo80x6CSVp0p92DoubleWithMatching',
249  'hltDoublePFJets116Eta2p3',
250  'hltDoublePFJets116Eta2p3MaxDeta1p6',
251 
252  'hltL1DoubleJet100er2p3dEtaMax1p6',
253  'hltL1DoubleJet100er2p3dEtaMax1p6Ior112er2p3dEtaMax1p6',
254  'hltDoubleCaloBJets100eta2p3',
255  'hltBTagCalo80x6CSVp0p92DoubleWithMatching',
256  'hltDoublePFJets128Eta2p3',
257  'hltDoublePFJets128Eta2p3MaxDeta1p6',
258 
259  'hltL1Mu12er2p3Jet40er2p3dRMax0p4DoubleJet40er2p3dEtaMax1p6',
260  'hltL1fL1sMu12Dijet40L1Filtered0',
261  'hltDoubleCaloBJets30eta2p3',
262  'hltBTagCalo30x8CSVp0p92DoubleWithMatching',
263  'hltL3fL1sMu12Dijet40L1f0L2f8L3Filtered12',
264  'hltDoublePFBJets54Eta2p3',
265  'hltDoublePFJets54Eta2p3MaxDeta1p6',
266  'hltBSoftMuonDiJet54Mu12L3FilterByDR',
267 
268  'hltL1Mu12er2p3Jet40er2p3dRMax0p4DoubleJet40er2p3dEtaMax1p6',
269  'hltL1fL1sMu12Dijet40L1Filtered0',
270  'hltDoubleCaloBJets30eta2p3',
271  'hltBTagCalo30x8CSVp0p92DoubleWithMatching',
272  'hltL3fL1sMu12Dijet40L1f0L2f8L3Filtered12',
273  'hltDoublePFBJets62Eta2p3',
274  'hltDoublePFJets62Eta2p3MaxDeta1p6',
275  'hltBSoftMuonDiJet62Mu12L3FilterByDR',
276 
277  'hltL1sMu3JetC16dEtaMax0p4dPhiMax0p4',
278  'hltL1fL1sMu3Jet16L1Filtered0',
279  'hltSingleCaloBJets30eta2p3',
280  'hltL3fL1sMu3Jet16L1f0L2f8L3Filtered12',
281  'hltSinglePFBJets40Eta2p3',
282  'hltBSoftMuonJet40Mu12L3FilterByDR',
283 
284  'hltL1DoubleJet40er3p0',
285  'hltDoubleCaloBJets30eta2p3',
286  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
287  'hltDoublePFJets40Eta2p3',
288 
289  'hltL1DoubleJet100er3p0',
290  'hltDoubleCaloBJets100eta2p3',
291  'hltBTagCalo80x6CSVp0p92SingleWithMatching',
292  'hltDoublePFJets100Eta2p3',
293 
294  'hltL1DoubleJet112er3p0',
295  'hltL1DoubleJet120er3p0',
296  'hltDoubleCaloBJets100eta2p3',
297  'hltBTagCalo80x6CSVp0p92SingleWithMatching',
298  'hltDoublePFJets200Eta2p3',
299 
300  'hltL1DoubleJet112er3p0',
301  'hltL1DoubleJet120er3p0',
302  'hltDoubleCaloBJets100eta2p3',
303  'hltBTagCalo80x6CSVp0p92SingleWithMatching',
304  'hltDoublePFJets350Eta2p3',
305 
306  'hltL1sMu3JetC16dEtaMax0p4dPhiMax0p4',
307  'hltL1fL1sMu3Jet16L1Filtered0',
308  'hltDoubleCaloBJets30eta2p3',
309  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
310  'hltL3fL1sMu3Jet16L1f0L2f8L3Filtered12',
311  'hltDoublePFBJets40Eta2p3',
312  'hltBSoftMuonDiJet40Mu12L3FilterByDR',
313 
314  'hltL1sMu3JetC60dEtaMax0p4dPhiMax0p4',
315  'hltL1fL1sMu3Jet60L1Filtered0',
316  'hltDoubleCaloBJets30eta2p3',
317  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
318  'hltL3fL1sMu3Jet60L1f0L2f8L3Filtered12',
319  'hltDoublePFBJets100Eta2p3',
320  'hltBSoftMuonDiJet100Mu12L3FilterByDR',
321 
322  'hltL1sMu3JetC120dEtaMax0p4dPhiMax0p4',
323  'hltL1fL1sMu3Jet120L1Filtered0',
324  'hltDoubleCaloBJets30eta2p3',
325  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
326  'hltL3fL1sMu3Jet120L1f0L2f8L3Filtered12',
327  'hltDoublePFBJets200Eta2p3',
328  'hltBSoftMuonDiJet200Mu12L3FilterByDR',
329 
330  'hltL1sMu3JetC120dEtaMax0p4dPhiMax0p4',
331  'hltL1fL1sMu3Jet120L1Filtered0',
332  'hltDoubleCaloBJets30eta2p3',
333  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
334  'hltL3fL1sMu3Jet120L1f0L2f8L3Filtered12',
335  'hltDoublePFBJets350Eta2p3',
336  'hltBSoftMuonDiJet350Mu12L3FilterByDR',
337 
338  'hltL1sZeroBias',
339  'hltSingleCaloJet10',
340  'hltSinglePFJet40',
341 
342  'hltL1sSingleJet35',
343  'hltSingleCaloJet40',
344  'hltSinglePFJet60',
345 
346  'hltL1sSingleJet60',
347  'hltSingleCaloJet50',
348  'hltSinglePFJet80',
349 
350  'hltL1sSingleJet90',
351  'hltSingleCaloJet110',
352  'hltSinglePFJet140',
353 
354  'hltL1sSingleJet120',
355  'hltSingleCaloJet170',
356  'hltSinglePFJet200',
357 
358  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
359  'hltSingleCaloJet210',
360  'hltSinglePFJet260',
361 
362  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
363  'hltSingleCaloJet270',
364  'hltSinglePFJet320',
365 
366  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
367  'hltSingleCaloJet350',
368  'hltSinglePFJet400',
369 
370  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
371  'hltSingleCaloJet400',
372  'hltSinglePFJet450',
373 
374  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
375  'hltSingleCaloJet450',
376  'hltSinglePFJet500',
377 
378  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
379  'hltSingleCaloJet450',
380  'hltSinglePFJet550',
381 
382  'hltL1sSingleMu3IorSingleMu5IorSingleMu7',
383  'hltL1fL1sMu5L1Filtered0',
384  'hltL3fL1sMu5L1f0L2f5L3Filtered8',
385 
386  'hltL1sSingleMu3',
387  'hltL1sSingleMu3IorMu3Jet30er2p5',
388  'hltL1fL1sMu3L1Filtered0',
389  'hltL1sSingleJet35ObjectMap',
390  'hltL3fL1sMu3L1f0L2f0L3Filtered3',
391  'hltMu3PFJet40MuCleaned',
392 
393  'hltL1sZeroBias',
394 
395  'hltL1sZeroBias',
396  'hltDiCaloJetAve30',
397  'hltDiPFJetAve40',
398 
399  'hltL1sSingleJet60',
400  'hltDiCaloJetAve60',
401  'hltDiPFJetAve80',
402 
403  'hltL1sSingleJet120',
404  'hltDiCaloJetAve170',
405  'hltDiPFJetAve200',
406 
407  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
408  'hltDiCaloJetAve270',
409  'hltDiPFJetAve320',
410 
411  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
412  'hltDiCaloJetAve450',
413  'hltDiPFJetAve500',
414 
415  ),
416  TriggerObjectSplits = cms.vstring (
417  'hltL1Mu12er2p3Jet40er2p3dRMax0p4DoubleJet40er2p3dEtaMax1p6',
418  'hltL1sSingleMu3IorMu3Jet30er2p5',
419  ),
420  TriggerObjectSplitsTypes = cms.vstring (
421  'l1muon:l1jet',
422  'l1muon:l1jet',
423  ),
424  L1TJets = cms.VInputTag(
425  cms.InputTag('caloStage2Digis','Jet','RECO'),
426  ),
427  L1TMuons = cms.VInputTag(
428  cms.InputTag('gmtStage2Digis','Muon','RECO'),
429  ),
430 )
431 
432 process.p = cms.Path(
433  process.TotalEvents *
434  process.triggerSelection *
435  process.primaryVertexFilter *
436  process.FilteredEvents *
437  process.MssmHbb
438  )
439 
440 
441 readFiles = cms.untracked.vstring()
442 secFiles = cms.untracked.vstring()
443 process.source = cms.Source ('PoolSource',fileNames = readFiles, secondaryFileNames = secFiles)
444 readFiles.extend( [
445  '/store/data/Run2017F/BTagCSV/MINIAOD/PromptReco-v1/000/305/112/00000/02368BFC-A6B4-E711-AC9A-02163E01A4CB.root',
446 ] );
447 
448 
449 secFiles.extend( [
450  ] )
451 
452 # ## ============ JSON Certified data =============== BE CAREFUL!!!
453 # ## Don't use with CRAB!!!
454 # import FWCore.PythonUtilities.LumiList as LumiList
455 # import FWCore.ParameterSet.Types as CfgTypes
456 # process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange())
457 # JSONfile = 'json.txt'
458 # myLumis = LumiList.LumiList(filename = JSONfile).getCMSSWString().split(',')
459 # process.source.lumisToProcess.extend(myLumis)