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