CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FSQHLTOfflineSource_cfi.py
Go to the documentation of this file.
2 import math
3 #
4 # see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuidePhysicsCutParser
5 #
6 # trigger condition - check if trigger matching this pattern string was fired
7 # empty string - dont check anything
8 #
9 #
10 # handler of type "fromHLT" fetches products of filter with name matching
11 # the partialFilterName string, that was run inside path with name matching
12 # the partialPathName
13 #
14 # other handlers read data from collection pointed by inputCol parameter
15 # (partialFilterName, partialPathName params are ignored)
16 #
17 # note: be extra carefull when using singleObject and combinedObject drawables in same
18 # handler definition. Histo names may be the same, currently there is no protection against it
19 #
21  ret=cms.VPSet()
22  partialPathName = "HLT_ZeroBias_SinglePixelTrack_v"
23  hltPixelTracksZB = cms.PSet(
24  triggerSelection = cms.string(partialPathName+"*"),
25  handlerType = cms.string("FromHLT"),
26  partialPathName = cms.string(partialPathName),
27  partialFilterName = cms.string("hltMinBiasPixelFilt"),
28  dqmhistolabel = cms.string("hltPixelTracks"),
29  mainDQMDirname = cms.untracked.string(fsqdirname),
30  singleObjectsPreselection = cms.string("1==1"),
31  singleObjectDrawables = cms.VPSet(
32  cms.PSet (name = cms.string("pt"), expression = cms.string("pt"), bins = cms.int32(50), min = cms.double(0.4), max = cms.double(10)),
33  cms.PSet (name = cms.string("eta"), expression = cms.string("eta"), bins = cms.int32(100), min = cms.double(-2.5), max = cms.double(2.5)),
34  cms.PSet (name = cms.string("phi"), expression = cms.string("phi"), bins = cms.int32(100), min = cms.double(-3.15), max = cms.double(3.15))
35  ),
36  combinedObjectSelection = cms.string("1==1"),
37  combinedObjectSortCriteria = cms.string("at(0).pt"),
38  combinedObjectDimension = cms.int32(1),
39  combinedObjectDrawables = cms.VPSet()
40  )
41  ret.append(hltPixelTracksZB)
42 
43  # note: for global efficiency (ie not efficiency as a funtion of something)
44  # calculation we use RecoTrack handler in a bit twisted way.
45  # RecoTrack handler assumes, that the efficiency calculation is done
46  # only for events with at least one offline track (from generalTracks collection)
47  # passing the selection criteria from singleObjectsPreselection variable
48  # Such events are used to fill 1-bin-large-histogram with a range -0.5...0.5
49  # Note, that the histogram is always filled with the 0 value ("0*" part in
50  # expression string). The "at(0).pt()" part is needed to make expression parses
51  # happy.
52  tracksCountZB = cms.PSet(
53  triggerSelection = cms.string(partialPathName+"*"),
54  handlerType = cms.string("RecoTrack"),
55  inputCol = cms.InputTag("generalTracks"),
56  # l parameters
57  partialPathName = cms.string(partialPathName),
58  partialFilterName = cms.string("hltL1sETT"),
59  dqmhistolabel = cms.string("zb"),
60  mainDQMDirname = cms.untracked.string(fsqdirname),
61  singleObjectsPreselection = cms.string("pt > 0.4 && abs(eta) < 2.4"),
62  singleObjectDrawables = cms.VPSet(),
63  combinedObjectSelection = cms.string("1==1"),
64  combinedObjectSortCriteria = cms.string('at(0).pt()'), # doesnt matter
65  combinedObjectDimension = cms.int32(1),
66  combinedObjectDrawables = cms.VPSet(
67  cms.PSet (name = cms.string("Eff_nominator"), expression = cms.string('0*at(0).pt()'),
68  bins = cms.int32(1), min = cms.double(-0.5), max = cms.double(0.5))
69  )
70  )
71  ret.append(tracksCountZB)
72  tracksCountDenomZB = tracksCountZB.clone()
73  tracksCountDenomZB.triggerSelection = cms.string("HLT_ZeroBias_v*")
74  tracksCountDenomZB.combinedObjectDrawables = cms.VPSet(
75  cms.PSet (name = cms.string("Eff_denominator"), expression = cms.string("0*at(0).pt()"),
76  bins = cms.int32(1), min = cms.double(-0.5), max = cms.double(0.5))
77  )
78  ret.append(tracksCountDenomZB)
79 
80  return ret
81 
83  ret=cms.VPSet()
84  thresholds = [60, 85, 110, 135, 160]
85  for t in thresholds:
86  partialPathName = "HLT_PixelTracks_Multiplicity"+str(t)+"_v"
87  tracksL = 0
88  tracksH = 200
89  tracksBins = (tracksH-tracksL)/5
90  tracksCount = cms.PSet(
91  triggerSelection = cms.string(partialPathName+"*"),
92  handlerType = cms.string("RecoTrackCounterWithVertexConstraint"),
93  inputCol = cms.InputTag("generalTracks"),
94  # l parameters
95  vtxCollection = cms.InputTag("offlinePrimaryVertices"),
96  minNDOF = cms.int32(7),
97  maxZ = cms.double(15),
98  maxDZ = cms.double(0.12),
99  maxDZ2dzsigma = cms.double(3),
100  maxDXY = cms.double(0.12),
101  maxDXY2dxysigma = cms.double(3),
102  partialPathName = cms.string(partialPathName),
103  partialFilterName = cms.string("hltL1sETT"),
104  #dqmhistolabel = cms.string("hltPixelTracks"),
105  dqmhistolabel = cms.string("recoTracks"),
106  mainDQMDirname = cms.untracked.string(fsqdirname),
107  singleObjectsPreselection = cms.string("pt > 0.4 && abs(eta) < 2.4"),
108  singleObjectDrawables = cms.VPSet(),
109  combinedObjectSelection = cms.string("1==1"),
110  combinedObjectSortCriteria = cms.string('size()'),
111  combinedObjectDimension = cms.int32(1),
112  combinedObjectDrawables = cms.VPSet(
113  cms.PSet (name = cms.string("count_nominator"), expression = cms.string('at(0)'),
114  bins = cms.int32(tracksBins), min = cms.double(tracksL), max = cms.double(tracksH))
115  )
116  )
117  ret.append(tracksCount)
118 
119  tracksCountDenom = tracksCount.clone()
120  tracksCountDenom.triggerSelection = cms.string("TRUE")
121  tracksCountDenom.combinedObjectDrawables = cms.VPSet(
122  cms.PSet (name = cms.string("count_denominator"), expression = cms.string("at(0)"),
123  bins = cms.int32(tracksBins), min = cms.double(tracksL), max = cms.double(tracksH))
124  )
125  ret.append(tracksCountDenom)
126 
127 
128  hltPixelTracks = cms.PSet(
129  triggerSelection = cms.string(partialPathName+"*"),
130  handlerType = cms.string("FromHLT"),
131  partialPathName = cms.string(partialPathName),
132  partialFilterName = cms.string("hlt1HighMult"),
133  dqmhistolabel = cms.string("hltPixelTracks"),
134  mainDQMDirname = cms.untracked.string(fsqdirname),
135  singleObjectsPreselection = cms.string("1==1"),
136  singleObjectDrawables = cms.VPSet(
137  cms.PSet (name = cms.string("pt"), expression = cms.string("pt"), bins = cms.int32(200), min = cms.double(0.0), max = cms.double(10)),
138  cms.PSet (name = cms.string("eta"), expression = cms.string("eta"), bins = cms.int32(100), min = cms.double(-2.5), max = cms.double(2.5)),
139  cms.PSet (name = cms.string("phi"), expression = cms.string("phi"), bins = cms.int32(100), min = cms.double(-3.15), max = cms.double(3.15))
140  ),
141  combinedObjectSelection = cms.string("1==1"),
142  combinedObjectSortCriteria = cms.string("at(0).pt"),
143  combinedObjectDimension = cms.int32(1),
144  combinedObjectDrawables = cms.VPSet()
145  )
146  ret.append(hltPixelTracks)
147 
148  hltPixelTracksEta16to18 = hltPixelTracks.clone()
149  hltPixelTracksEta16to18.singleObjectsPreselection='abs(eta) > 1.6 && abs(eta) < 1.8'
150  hltPixelTracksEta16to18.dqmhistolabel = cms.string("hltPixelTracksEta16to18")
151  for i in hltPixelTracksEta16to18.singleObjectDrawables:
152  if i.name == "eta":
153  hltPixelTracksEta16to18.singleObjectDrawables.remove(i)
154 
155  ret.append(hltPixelTracksEta16to18)
156 
157  # FIXME: what variables it makes sense to plot in case of ETT seeds?
158  l1 = cms.PSet(
159  triggerSelection = cms.string(partialPathName+"*"),
160  handlerType = cms.string("FromHLT"),
161  partialPathName = cms.string(partialPathName),
162  partialFilterName = cms.string("hltL1sETT"),
163  dqmhistolabel = cms.string("l1"),
164  mainDQMDirname = cms.untracked.string(fsqdirname),
165  singleObjectsPreselection = cms.string("1==1"),
166  singleObjectDrawables = cms.VPSet(),
167  combinedObjectSelection = cms.string("1==1"),
168  combinedObjectSortCriteria = cms.string("at(0).pt"),
169  combinedObjectDimension = cms.int32(1),
170  combinedObjectDrawables = cms.VPSet(
171  cms.PSet (name = cms.string("pt"), expression = cms.string("at(0).pt"), bins = cms.int32(256/4), min = cms.double(0), max = cms.double(256)),
172  )
173  )
174  ret.append(l1)
175 
176 
177 
178  return ret
179 
180 
182  ret=cms.VPSet()
183  # note: always give integer values (!)
184  thresholds = [30, 60, 80, 100, 160, 220, 300]
185  #thresholds = [30,]
186  for t in thresholds:
187  partialPathName = "HLT_DiPFJetAve"+ str(t) +"_HFJEC_"
188  ptBinLow = t/2
189  ptBinHigh = max(100, t*2)
190  ptBins = min(100, ptBinHigh-ptBinLow)
191 
192 
193  hltCalo = cms.PSet(
194  triggerSelection = cms.string(partialPathName+"*"),
195  handlerType = cms.string("FromHLT"),
196  partialPathName = cms.string(partialPathName),
197  partialFilterName = cms.string("ForHFJECBase"), # note: this matches to hltSingleCaloJetXXXForHFJECBase
198  dqmhistolabel = cms.string("hltCaloJets"),
199  mainDQMDirname = cms.untracked.string(fsqdirname),
200  singleObjectsPreselection = cms.string("abs(eta)<1.4 || abs(eta) > 2.7 "),
201  singleObjectDrawables = cms.VPSet(),
202  combinedObjectSelection = cms.string("1==1"),
203  combinedObjectSortCriteria = cms.string("at(0).pt"),
204  combinedObjectDimension = cms.int32(1),
205  combinedObjectDrawables = cms.VPSet(
206  cms.PSet (name = cms.string("pt"), expression = cms.string("at(0).pt"), bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
207  cms.PSet (name = cms.string("eta"), expression = cms.string("at(0).eta"), bins = cms.int32(104), min = cms.double(-5.2), max = cms.double(5.2))
208  )
209  )
210  ret.append(hltCalo)
211 
212  l1 = cms.PSet(
213  triggerSelection = cms.string(partialPathName+"*"),
214  handlerType = cms.string("FromHLT"),
215  partialPathName = cms.string(partialPathName),
216  partialFilterName = cms.string("hltL1"),
217  dqmhistolabel = cms.string("l1"),
218  mainDQMDirname = cms.untracked.string(fsqdirname),
219  singleObjectsPreselection = cms.string("1==1"),
220  singleObjectDrawables = cms.VPSet(),
221  combinedObjectSelection = cms.string("1==1"),
222  combinedObjectSortCriteria = cms.string("at(0).pt"),
223  combinedObjectDimension = cms.int32(1),
224  combinedObjectDrawables = cms.VPSet(
225  cms.PSet (name = cms.string("pt"), expression = cms.string("at(0).pt"), bins = cms.int32(256/4), min = cms.double(0), max = cms.double(256)),
226  cms.PSet (name = cms.string("eta"), expression = cms.string("at(0).eta"), bins = cms.int32(104/4), min = cms.double(-5.2), max = cms.double(5.2))
227  )
228  )
229  ret.append(l1)
230 
231  '''
232  hltPFSingle = cms.PSet(
233  triggerSelection = cms.string(partialPathName+"*"),
234  handlerType = cms.string("FromHLT"),
235  partialPathName = cms.string(partialPathName),
236  partialFilterName = cms.string("hltDiPFJetAve"),
237  dqmhistolabel = cms.string("hltpfsingle"),
238  mainDQMDirname = cms.untracked.string(fsqdirname),
239  singleObjectsPreselection = cms.string("abs(eta)<1.4 || abs(eta) > 2.7 "),
240  singleObjectDrawables = cms.VPSet(),
241  combinedObjectSelection = cms.string("1==1"),
242  combinedObjectSortCriteria = cms.string("at(0).pt"),
243  combinedObjectDimension = cms.int32(1),
244  combinedObjectDrawables = cms.VPSet(
245  cms.PSet (name = cms.string("pt"), expression = cms.string("at(0).pt"), bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
246  cms.PSet (name = cms.string("eta"), expression = cms.string("at(0).eta"), bins = cms.int32(104), min = cms.double(-5.2), max = cms.double(5.2))
247  )
248  )
249  ret.append(hltPFSingle)
250  '''
251 
252 
253  hltPFtopology = cms.PSet(
254  triggerSelection = cms.string(partialPathName+"*"),
255  handlerType = cms.string("FromHLT"),
256  partialPathName = cms.string(partialPathName),
257  partialFilterName = cms.string("hltDiPFJetAve"),
258  dqmhistolabel = cms.string("hltPFJetsTopology"),
259  mainDQMDirname = cms.untracked.string(fsqdirname),
260  singleObjectsPreselection = cms.string("abs(eta)<1.4 || abs(eta) > 2.7 "),
261  singleObjectDrawables = cms.VPSet(),
262  combinedObjectSelection = cms.string("abs(at(0).eta())< 1.4 && abs(at(1).eta()) > 2.7 && abs(deltaPhi(at(0).phi, at(1).phi)) > 2.5"),
263  combinedObjectSortCriteria = cms.string("(at(0).pt+at(1).pt)/2"),
264  combinedObjectDimension = cms.int32(2),
265  combinedObjectDrawables = cms.VPSet(
266  cms.PSet (name = cms.string("deltaEta"), expression = cms.string("abs(at(0).eta-at(1).eta)"),
267  bins = cms.int32(70), min = cms.double(0), max = cms.double(7)),
268  cms.PSet (name = cms.string("deltaPhi"), expression = cms.string("abs(deltaPhi(at(0).phi, at(1).phi))"),
269  bins = cms.int32(100), min = cms.double(0), max = cms.double(3.2)),
270  cms.PSet (name = cms.string("ptAve"), expression = cms.string("(at(0).pt+at(1).pt)/2"),
271  bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
272  cms.PSet (name = cms.string("ptTag"), expression = cms.string("? abs(at(0).eta) < 2 ? at(0).pt : at(1).pt "),
273  bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) ),
274  cms.PSet (name = cms.string("ptProbe"), expression = cms.string("? abs(at(0).eta) > 2 ? at(0).pt : at(1).pt "),
275  bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) )
276 
277  )
278  )
279  ret.append(hltPFtopology)
280 
281 
282 
283 
284  '''
285  # FromJet
286  recoThr = t
287  recoPF = cms.PSet(
288  triggerSelection = cms.string(partialPathName+"*"),
289  handlerType = cms.string("FromRecoCandidate"),
290  inputCol = cms.InputTag("ak4PFJetsCHS"),
291  partialPathName = cms.string(partialPathName),
292  partialFilterName = cms.string("hltDiPFJetAve"),
293  dqmhistolabel = cms.string("recoJet"),
294  mainDQMDirname = cms.untracked.string(fsqdirname),
295  singleObjectsPreselection = cms.string("pt > + "+str(recoThr) +" && (abs(eta)<1.3 || abs(eta) > 2.8) "),
296  singleObjectDrawables = cms.VPSet(),
297  combinedObjectSelection = cms.string("1==1"),
298  combinedObjectSortCriteria = cms.string("at(0).pt"),
299  combinedObjectDimension = cms.int32(1),
300  combinedObjectDrawables = cms.VPSet(
301  cms.PSet (name = cms.string("pt"), expression = cms.string("at(0).pt"), bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
302  cms.PSet (name = cms.string("eta"), expression = cms.string("at(0).eta"), bins = cms.int32(52), min = cms.double(-5.2), max = cms.double(5.2))
303  )
304  )
305  ret.append(recoPF)
306  '''
307  recoThr = t/2
308  recoPFtopology = cms.PSet(
309  triggerSelection = cms.string(partialPathName+"*"),
310  handlerType = cms.string("RecoPFJetWithJEC"),
311  PFJetCorLabel = cms.InputTag("ak4PFL1FastL2L3Corrector"),
312  inputCol = cms.InputTag("ak4PFJetsCHS"),
313  partialPathName = cms.string(partialPathName),
314  partialFilterName = cms.string("hltDiPFJetAve"),
315  dqmhistolabel = cms.string("recoPFJetsTopology"),
316  mainDQMDirname = cms.untracked.string(fsqdirname),
317  singleObjectsPreselection = cms.string("pt > "+str(recoThr) +" && abs(eta)<1.4 || abs(eta) > 2.7 "),
318  singleObjectDrawables = cms.VPSet(),
319  combinedObjectSelection = cms.string("abs(at(0).eta())< 1.3 && abs(at(1).eta()) > 2.8 && abs(deltaPhi(at(0).phi, at(1).phi)) > 2.5"),
320  combinedObjectSortCriteria = cms.string("(at(0).pt+at(1).pt)/2"),
321  combinedObjectDimension = cms.int32(2),
322  combinedObjectDrawables = cms.VPSet(
323  cms.PSet (name = cms.string("deltaEta"), expression = cms.string("abs(at(0).eta-at(1).eta)"),
324  bins = cms.int32(70), min = cms.double(0), max = cms.double(7)),
325  cms.PSet (name = cms.string("deltaPhi"), expression = cms.string("abs(deltaPhi(at(0).phi, at(1).phi))"),
326  bins = cms.int32(100), min = cms.double(0), max = cms.double(3.2)),
327  cms.PSet (name = cms.string("ptAve"), expression = cms.string("(at(0).pt+at(1).pt)/2"),
328  bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
329  cms.PSet (name = cms.string("ptTag"), expression = cms.string("? abs(at(0).eta) < 2 ? at(0).pt : at(1).pt "),
330  bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) ),
331  cms.PSet (name = cms.string("ptProbe"), expression = cms.string("? abs(at(0).eta) > 2 ? at(0).pt : at(1).pt "),
332  bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) ),
333  cms.PSet (name = cms.string("ptAve_nominator"), expression = cms.string("(at(0).pt+at(1).pt)/2"),
334  bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) ),
335  )
336  )
337  ret.append(recoPFtopology)
338  recoPFtopologyDenom = recoPFtopology.clone()
339  #recoPFtopologyDenom.triggerSelection = cms.string("HLTriggerFirstPath*")
340  #recoPFtopologyDenom.triggerSelection = cms.string(partialPathName+"*")
341  recoPFtopologyDenom.triggerSelection = cms.string("TRUE")
342  recoPFtopologyDenom.combinedObjectDrawables = cms.VPSet(
343  cms.PSet (name = cms.string("ptAve_denominator"), expression = cms.string("(at(0).pt+at(1).pt)/2"),
344  bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) )
345  )
346  ret.append(recoPFtopologyDenom)
347 
348  # RecoCandidateCounter
349  ''' example on how to count objects
350  recoThr = t/2
351  recoPFJetCnt = cms.PSet(
352  triggerSelection = cms.string(partialPathName+"*"),
353  handlerType = cms.string("RecoCandidateCounter"),
354  inputCol = cms.InputTag("ak4PFJetsCHS"),
355  partialPathName = cms.string(partialPathName),
356  partialFilterName = cms.string("hltDiPFJetAve"),
357  dqmhistolabel = cms.string("recoPFJetsCnt"),
358  mainDQMDirname = cms.untracked.string(fsqdirname),
359  singleObjectsPreselection = cms.string("pt > "+str(recoThr) +" && abs(eta)<1.4 || abs(eta) > 2.7 "),
360  singleObjectDrawables = cms.VPSet(),
361  combinedObjectSelection = cms.string("1==1"),
362  combinedObjectSortCriteria = cms.string('size()'),
363  combinedObjectDimension = cms.int32(1),
364  combinedObjectDrawables = cms.VPSet(
365  cms.PSet (name = cms.string("count"), expression = cms.string('at(0)'),
366  bins = cms.int32(30), min = cms.double(0), max = cms.double(30))
367  )
368  )
369  ret.append(recoPFJetCnt)
370  '''
371 
372  return ret
373 
374 
375 def getFSQAll():
376  ret = cms.VPSet()
377  ret.extend(getHighMultVPSet())
378  ret.extend(getPTAveVPSet())
380  return ret
381 
382 def getFSQHI():
383  ret = cms.VPSet()
385  #ret.extend(getHighMultVPSet())
386  return ret
387 
388 fsqdirname = "HLT/FSQ/"
389 
390 processName = "HLT"
391 #processName = "TEST"
392 
393 fsqHLTOfflineSource = cms.EDAnalyzer("FSQDiJetAve",
394  triggerConfiguration = cms.PSet(
395  hltResults = cms.InputTag('TriggerResults','',processName),
396  l1tResults = cms.InputTag(''),
397  #l1tResults = cms.InputTag('gtDigis'),
398  daqPartitions = cms.uint32(1),
399  l1tIgnoreMask = cms.bool( False ),
400  l1techIgnorePrescales = cms.bool( False ),
401  throw = cms.bool( False )
402  ),
403 
404  #dirname = cms.untracked.string("HLT/FSQ/DiJETAve/"),
405  triggerSummaryLabel = cms.InputTag("hltTriggerSummaryAOD","", processName),
406  triggerResultsLabel = cms.InputTag("TriggerResults","", processName),
407  useGenWeight = cms.bool(False),
408  #useGenWeight = cms.bool(True),
409  todo = cms.VPSet(getFSQAll())
410 )
411 
413 fsqHLTOfflineSourceSequence = cms.Sequence(ak4PFL1FastL2L3CorrectorChain + fsqHLTOfflineSource)
T min(T a, T b)
Definition: MathUtil.h:58