DESY Hbb Analysis Framework
ntuplizer_92X_data_2017-v3.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 
61 ### muon triggers
62  'HLT_Mu8_v*',
63  'HLT_Mu3_PFJet40_v*',
64  ),
65  hltResults = cms.InputTag( 'TriggerResults', '', 'HLT' ),
66  l1tResults = cms.InputTag( '' ),
67  l1tIgnoreMask = cms.bool( False ),
68  l1techIgnorePrescales = cms.bool( False ),
69  daqPartitions = cms.uint32( 1 ),
70  throw = cms.bool( False )
71 )
72 
73 
74 
75 ## ============ EVENT FILTER COUNTER ===============
76 ## Filter counter (maybe more useful for MC)
77 process.TotalEvents = cms.EDProducer('EventCountProducer')
78 process.FilteredEvents = cms.EDProducer('EventCountProducer')
79 
80 ## ============ PRIMARY VERTEX FILTER ===============
81 process.primaryVertexFilter = cms.EDFilter('VertexSelector',
82  src = cms.InputTag('offlineSlimmedPrimaryVertices'), # primary vertex collection name
83  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
84  filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection.
85 )
86 
87 ## ============ THE NTUPLIZER!!! ===============
88 process.MssmHbb = cms.EDAnalyzer('Ntuplizer',
89  MonteCarlo = cms.bool(False),
90  UseFullName = cms.bool(False),
91  ###################
92  TotalEvents = cms.InputTag('TotalEvents'),
93  FilteredEvents = cms.InputTag('FilteredEvents'),
94  PatJets = cms.VInputTag(
95  cms.InputTag('slimmedJets'),
96  cms.InputTag('slimmedJetsPuppi'),
97  ),
98  JECRecords = cms.vstring ( # for the JEC uncertainties
99  'AK4PFchs',
100  'AK4PFPuppi',
101  ),
102  JERRecords = cms.vstring ( # for the JER
103  'AK4PFchs',
104  'AK4PFPuppi',
105  ),
106  FixedGridRhoAll = cms.InputTag('fixedGridRhoAll'),
107  PatMuons = cms.VInputTag(
108  cms.InputTag('slimmedMuons')
109  ),
110  PrimaryVertices = cms.VInputTag(
111  cms.InputTag('offlineSlimmedPrimaryVertices')
112  ),
113  BTagAlgorithms = cms.vstring (
114  'pfCombinedInclusiveSecondaryVertexV2BJetTags',
115  'pfJetProbabilityBJetTags',
116  'pfCombinedMVAV2BJetTags',
117  'pfDeepCSVJetTags:probudsg',
118  'pfDeepCSVJetTags:probb',
119  'pfDeepCSVJetTags:probc',
120  'pfDeepCSVJetTags:probbb',
121  'pfDeepCSVJetTags:probcc',
122  'pfDeepCMVAJetTags:probudsg',
123  'pfDeepCMVAJetTags:probb',
124  'pfDeepCMVAJetTags:probc',
125  'pfDeepCMVAJetTags:probbb',
126  'pfDeepCMVAJetTags:probcc'
127  ),
128  BTagAlgorithmsAlias = cms.vstring (
129  'btag_csvivf',
130  'btag_jetprob',
131  'btag_csvmva',
132  'btag_deeplight',
133  'btag_deepb',
134  'btag_deepc',
135  'btag_deepbb',
136  'btag_deepcc',
137  'btag_deepmvalight',
138  'btag_deepmvab',
139  'btag_deepmvac',
140  'btag_deepmvabb',
141  'btag_deepmvacc',
142  ),
143  TriggerResults = cms.VInputTag(cms.InputTag('TriggerResults','','HLT')),
144  TriggerPaths = cms.vstring (
145  ## I recommend using the version number explicitly to be able to compare
146  ## however for production one has to be careful that all versions are included.
147  ## Thinking of a better solution...
148 # physics triggers
149  'HLT_DoublePFJets100MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
150  'HLT_Mu12_DoublePFJets40MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
151 # backup triggers
152  'HLT_DoublePFJets116MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
153  'HLT_DoublePFJets128MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
154  'HLT_Mu12_DoublePFJets54MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
155  'HLT_Mu12_DoublePFJets62MaxDeta1p6_DoubleCaloBTagCSV_p33_v',
156 # control triggers
157 ### btag
158  'HLT_SingleJet30_Mu12_SinglePFJet40_v',
159  'HLT_DoublePFJets40_CaloBTagCSV_p33_v',
160  'HLT_DoublePFJets100_CaloBTagCSV_p33_v',
161  'HLT_DoublePFJets200_CaloBTagCSV_p33_v',
162  'HLT_DoublePFJets350_CaloBTagCSV_p33_v',
163  'HLT_Mu12_DoublePFJets40_CaloBTagCSV_p33_v',
164  'HLT_Mu12_DoublePFJets100_CaloBTagCSV_p33_v',
165  'HLT_Mu12_DoublePFJets200_CaloBTagCSV_p33_v',
166  'HLT_Mu12_DoublePFJets350_CaloBTagCSV_p33_v',
167 ### jet triggers
168  'HLT_PFJet40_v',
169  'HLT_PFJet60_v',
170  'HLT_PFJet80_v',
171  'HLT_PFJet140_v',
172  'HLT_PFJet200_v',
173  'HLT_PFJet260_v',
174  'HLT_PFJet320_v',
175  'HLT_PFJet400_v',
176  'HLT_PFJet450_v',
177  'HLT_PFJet500_v',
178  'HLT_PFJet550_v',
179 
180 ### muon triggers
181  'HLT_Mu8_v',
182  'HLT_Mu3_PFJet40_v',
183 
184  ),
185  L1Seeds = cms.vstring (
186  'L1_Mu3_JetC16_dEta_Max0p4_dPhi_Max0p4',
187  'L1_Mu3_JetC60_dEta_Max0p4_dPhi_Max0p4',
188  'L1_Mu3_JetC120_dEta_Max0p4_dPhi_Max0p4',
189  'L1_Mu12er2p3_Jet40er2p3_dR_Max0p4_DoubleJet40er2p3_dEta_Max1p6',
190  'L1_DoubleJet40er3p0',
191  'L1_DoubleJet100er3p0',
192  'L1_DoubleJet112er3p0',
193  'L1_DoubleJet120er3p0',
194  'L1_DoubleJet100er2p3_dEta_Max1p6',
195  'L1_DoubleJet112er2p3_dEta_Max1p6',
196  'L1_ZeroBias',
197  'L1_SingleJet35',
198  'L1_SingleJet60',
199  'L1_SingleJet90',
200  'L1_SingleJet120',
201  'L1_SingleJet170',
202  'L1_SingleJet180',
203  'L1_SingleJet200',
204  'L1_SingleMu3',
205  'L1_SingleMu5',
206  'L1_SingleMu7',
207  ),
208  TriggerObjectStandAlone = cms.VInputTag(
209  cms.InputTag('slimmedPatTrigger'),
210  ),
211  TriggerObjectLabels = cms.vstring (
212 
213  'hltL1DoubleJet100er2p3dEtaMax1p6',
214  'hltL1DoubleJet100er2p3dEtaMax1p6Ior112er2p3dEtaMax1p6',
215  'hltDoubleCaloBJets100eta2p3',
216  'hltBTagCalo80x6CSVp0p92DoubleWithMatching',
217  'hltDoublePFJets100Eta2p3',
218  'hltDoublePFJets100Eta2p3MaxDeta1p6',
219 
220  'hltL1Mu12er2p3Jet40er2p3dRMax0p4DoubleJet40er2p3dEtaMax1p6',
221  'hltL1fL1sMu12Dijet40L1Filtered0',
222  'hltDoubleCaloBJets30eta2p3',
223  'hltBTagCalo30x8CSVp0p92DoubleWithMatching',
224  'hltL3fL1sMu12Dijet40L1f0L2f8L3Filtered12',
225  'hltDoublePFBJets40Eta2p3',
226  'hltDoublePFJets40Eta2p3MaxDeta1p6',
227  'hltBSoftMuonDiJet40Mu12L3FilterByDR',
228 
229  'hltL1DoubleJet100er2p3dEtaMax1p6',
230  'hltL1DoubleJet100er2p3dEtaMax1p6Ior112er2p3dEtaMax1p6',
231  'hltDoubleCaloBJets100eta2p3',
232  'hltBTagCalo80x6CSVp0p92DoubleWithMatching',
233  'hltDoublePFJets116Eta2p3',
234  'hltDoublePFJets116Eta2p3MaxDeta1p6',
235 
236  'hltL1DoubleJet100er2p3dEtaMax1p6',
237  'hltL1DoubleJet100er2p3dEtaMax1p6Ior112er2p3dEtaMax1p6',
238  'hltDoubleCaloBJets100eta2p3',
239  'hltBTagCalo80x6CSVp0p92DoubleWithMatching',
240  'hltDoublePFJets128Eta2p3',
241  'hltDoublePFJets128Eta2p3MaxDeta1p6',
242 
243  'hltL1Mu12er2p3Jet40er2p3dRMax0p4DoubleJet40er2p3dEtaMax1p6',
244  'hltL1fL1sMu12Dijet40L1Filtered0',
245  'hltDoubleCaloBJets30eta2p3',
246  'hltBTagCalo30x8CSVp0p92DoubleWithMatching',
247  'hltL3fL1sMu12Dijet40L1f0L2f8L3Filtered12',
248  'hltDoublePFBJets54Eta2p3',
249  'hltDoublePFJets54Eta2p3MaxDeta1p6',
250  'hltBSoftMuonDiJet54Mu12L3FilterByDR',
251 
252  'hltL1Mu12er2p3Jet40er2p3dRMax0p4DoubleJet40er2p3dEtaMax1p6',
253  'hltL1fL1sMu12Dijet40L1Filtered0',
254  'hltDoubleCaloBJets30eta2p3',
255  'hltBTagCalo30x8CSVp0p92DoubleWithMatching',
256  'hltL3fL1sMu12Dijet40L1f0L2f8L3Filtered12',
257  'hltDoublePFBJets62Eta2p3',
258  'hltDoublePFJets62Eta2p3MaxDeta1p6',
259  'hltBSoftMuonDiJet62Mu12L3FilterByDR',
260 
261  'hltL1sMu3JetC16dEtaMax0p4dPhiMax0p4',
262  'hltL1fL1sMu3Jet16L1Filtered0',
263  'hltSingleCaloBJets30eta2p3',
264  'hltL3fL1sMu3Jet16L1f0L2f8L3Filtered12',
265  'hltSinglePFBJets40Eta2p3',
266  'hltBSoftMuonJet40Mu12L3FilterByDR',
267 
268  'hltL1DoubleJet40er3p0',
269  'hltDoubleCaloBJets30eta2p3',
270  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
271  'hltDoublePFJets40Eta2p3',
272 
273  'hltL1DoubleJet100er3p0',
274  'hltDoubleCaloBJets100eta2p3',
275  'hltBTagCalo80x6CSVp0p92SingleWithMatching',
276  'hltDoublePFJets100Eta2p3',
277 
278  'hltL1DoubleJet112er3p0',
279  'hltL1DoubleJet120er3p0',
280  'hltDoubleCaloBJets100eta2p3',
281  'hltBTagCalo80x6CSVp0p92SingleWithMatching',
282  'hltDoublePFJets200Eta2p3',
283 
284  'hltL1DoubleJet112er3p0',
285  'hltL1DoubleJet120er3p0',
286  'hltDoubleCaloBJets100eta2p3',
287  'hltBTagCalo80x6CSVp0p92SingleWithMatching',
288  'hltDoublePFJets350Eta2p3',
289 
290  'hltL1sMu3JetC16dEtaMax0p4dPhiMax0p4',
291  'hltL1fL1sMu3Jet16L1Filtered0',
292  'hltDoubleCaloBJets30eta2p3',
293  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
294  'hltL3fL1sMu3Jet16L1f0L2f8L3Filtered12',
295  'hltDoublePFBJets40Eta2p3',
296  'hltBSoftMuonDiJet40Mu12L3FilterByDR',
297 
298  'hltL1sMu3JetC60dEtaMax0p4dPhiMax0p4',
299  'hltL1fL1sMu3Jet60L1Filtered0',
300  'hltDoubleCaloBJets30eta2p3',
301  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
302  'hltL3fL1sMu3Jet60L1f0L2f8L3Filtered12',
303  'hltDoublePFBJets100Eta2p3',
304  'hltBSoftMuonDiJet100Mu12L3FilterByDR',
305 
306  'hltL1sMu3JetC120dEtaMax0p4dPhiMax0p4',
307  'hltL1fL1sMu3Jet120L1Filtered0',
308  'hltDoubleCaloBJets30eta2p3',
309  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
310  'hltL3fL1sMu3Jet120L1f0L2f8L3Filtered12',
311  'hltDoublePFBJets200Eta2p3',
312  'hltBSoftMuonDiJet200Mu12L3FilterByDR',
313 
314  'hltL1sMu3JetC120dEtaMax0p4dPhiMax0p4',
315  'hltL1fL1sMu3Jet120L1Filtered0',
316  'hltDoubleCaloBJets30eta2p3',
317  'hltBTagCalo30x8CSVp0p92SingleWithMatching',
318  'hltL3fL1sMu3Jet120L1f0L2f8L3Filtered12',
319  'hltDoublePFBJets350Eta2p3',
320  'hltBSoftMuonDiJet350Mu12L3FilterByDR',
321 
322  'hltL1sZeroBias',
323  'hltSingleCaloJet10',
324  'hltSinglePFJet40',
325 
326  'hltL1sSingleJet35',
327  'hltSingleCaloJet40',
328  'hltSinglePFJet60',
329 
330  'hltL1sSingleJet60',
331  'hltSingleCaloJet50',
332  'hltSinglePFJet80',
333 
334  'hltL1sSingleJet90',
335  'hltSingleCaloJet110',
336  'hltSinglePFJet140',
337 
338  'hltL1sSingleJet120',
339  'hltSingleCaloJet170',
340  'hltSinglePFJet200',
341 
342  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
343  'hltSingleCaloJet210',
344  'hltSinglePFJet260',
345 
346  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
347  'hltSingleCaloJet270',
348  'hltSinglePFJet320',
349 
350  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
351  'hltSingleCaloJet350',
352  'hltSinglePFJet400',
353 
354  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
355  'hltSingleCaloJet400',
356  'hltSinglePFJet450',
357 
358  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
359  'hltSingleCaloJet450',
360  'hltSinglePFJet500',
361 
362  'hltL1sSingleJet170IorSingleJet180IorSingleJet200',
363  'hltSingleCaloJet450',
364  'hltSinglePFJet550',
365 
366  'hltL1sSingleMu3IorSingleMu5IorSingleMu7',
367  'hltL1fL1sMu5L1Filtered0',
368  'hltL3fL1sMu5L1f0L2f5L3Filtered8',
369 
370  'hltL1sSingleMu3',
371  'hltL1fL1sMu3L1Filtered0',
372  'hltL1sSingleJet35ObjectMap',
373  'hltL3fL1sMu3L1f0L2f0L3Filtered3',
374  'hltMu3PFJet40MuCleaned',
375 
376  ),
377  TriggerObjectSplits = cms.vstring (
378  'hltL1Mu12er2p3Jet40er2p3dRMax0p4DoubleJet40er2p3dEtaMax1p6',
379  ),
380  TriggerObjectSplitsTypes = cms.vstring (
381  'l1muon:l1jet',
382  ),
383 )
384 
385 process.p = cms.Path(
386  process.TotalEvents *
387  process.triggerSelection *
388  process.primaryVertexFilter *
389  process.FilteredEvents *
390  process.MssmHbb
391  )
392 
393 
394 readFiles = cms.untracked.vstring()
395 secFiles = cms.untracked.vstring()
396 process.source = cms.Source ('PoolSource',fileNames = readFiles, secondaryFileNames = secFiles)
397 readFiles.extend( [
398  '/store/data/Run2017C/BTagCSV/MINIAOD/PromptReco-v1/000/299/368/00000/7ED71BDC-8D6D-E711-A6CE-02163E014491.root',
399 ] );
400 
401 
402 secFiles.extend( [
403  ] )
404 
405 # ## ============ JSON Certified data =============== BE CAREFUL!!!
406 # ## Don't use with CRAB!!!
407 # import FWCore.PythonUtilities.LumiList as LumiList
408 # import FWCore.ParameterSet.Types as CfgTypes
409 # process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange())
410 # JSONfile = 'json.txt'
411 # myLumis = LumiList.LumiList(filename = JSONfile).getCMSSWString().split(',')
412 # process.source.lumisToProcess.extend(myLumis)