186 def getPTAveVPSet(thresholds = [30, 60, 80, 100, 160, 220, 300], flavour="HFJEC", disableCalo = False):
189 if flavour ==
"HFJEC":
190 probeEtaSelection =
"abs(eta) > 2.7"
191 probeEtaSelectionCombined =
"abs(at(1).eta) > 2.7"
192 elif flavour ==
"Central":
193 probeEtaSelection =
"abs(eta) < 2.7"
194 probeEtaSelectionCombined =
"abs(at(1).eta) < 2.7"
196 raise Exception(
"Flavour not known "+ flavour)
200 partialPathName =
"HLT_DiPFJetAve"+
str(t)+
"_" + flavour +
"_v"
203 ptBinHigh =
max(100, t*2)
204 ptBins =
min(100, ptBinHigh-ptBinLow)
209 triggerSelection = cms.string(partialPathName+
"*"),
210 handlerType = cms.string(
"FromHLT"),
211 partialPathName = cms.string(partialPathName),
212 partialFilterName = cms.string(
"ForHFJECBase"),
213 dqmhistolabel = cms.string(
"hltCaloJets"),
214 mainDQMDirname = cms.untracked.string(fsqdirname),
215 singleObjectsPreselection = cms.string(
"abs(eta)<1.4 || " + probeEtaSelection),
216 singleObjectDrawables = cms.VPSet(),
217 combinedObjectSelection = cms.string(
"1==1"),
218 combinedObjectSortCriteria = cms.string(
"at(0).pt"),
219 combinedObjectDimension = cms.int32(1),
220 combinedObjectDrawables = cms.VPSet(
221 cms.PSet (name = cms.string(
"pt"), expression = cms.string(
"at(0).pt"), bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
222 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))
228 triggerSelection = cms.string(partialPathName+
"*"),
229 handlerType = cms.string(
"FromHLT"),
230 partialPathName = cms.string(partialPathName),
231 partialFilterName = cms.string(
"hltL1"),
232 dqmhistolabel = cms.string(
"l1"),
233 mainDQMDirname = cms.untracked.string(fsqdirname),
234 singleObjectsPreselection = cms.string(
"1==1"),
235 singleObjectDrawables = cms.VPSet(),
236 combinedObjectSelection = cms.string(
"1==1"),
237 combinedObjectSortCriteria = cms.string(
"at(0).pt"),
238 combinedObjectDimension = cms.int32(1),
239 combinedObjectDrawables = cms.VPSet(
240 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)),
241 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))
247 hltPFSingle = cms.PSet(
248 triggerSelection = cms.string(partialPathName+"*"),
249 handlerType = cms.string("FromHLT"),
250 partialPathName = cms.string(partialPathName),
251 partialFilterName = cms.string("hltDiPFJetAve"),
252 dqmhistolabel = cms.string("hltpfsingle"),
253 mainDQMDirname = cms.untracked.string(fsqdirname),
254 singleObjectsPreselection = cms.string("abs(eta)<1.4 || abs(eta) > 2.7 "),
255 singleObjectDrawables = cms.VPSet(),
256 combinedObjectSelection = cms.string("1==1"),
257 combinedObjectSortCriteria = cms.string("at(0).pt"),
258 combinedObjectDimension = cms.int32(1),
259 combinedObjectDrawables = cms.VPSet(
260 cms.PSet (name = cms.string("pt"), expression = cms.string("at(0).pt"), bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
261 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))
264 ret.append(hltPFSingle)
268 hltPFtopology = cms.PSet(
269 triggerSelection = cms.string(partialPathName+
"*"),
270 handlerType = cms.string(
"FromHLT"),
271 partialPathName = cms.string(partialPathName),
272 partialFilterName = cms.string(
"hltDiPFJetAve"),
273 dqmhistolabel = cms.string(
"hltPFJetsTopology"),
274 mainDQMDirname = cms.untracked.string(fsqdirname),
275 singleObjectsPreselection = cms.string(
"abs(eta)<1.4 || " + probeEtaSelection),
276 singleObjectDrawables = cms.VPSet(),
277 combinedObjectSelection = cms.string(
"abs(at(0).eta())< 1.4 && "+ probeEtaSelectionCombined +
278 " && abs(deltaPhi(at(0).phi, at(1).phi)) > 2.5"),
279 combinedObjectSortCriteria = cms.string(
"(at(0).pt+at(1).pt)/2"),
280 combinedObjectDimension = cms.int32(2),
281 combinedObjectDrawables = cms.VPSet(
282 cms.PSet (name = cms.string(
"deltaEta"), expression = cms.string(
"abs(at(0).eta-at(1).eta)"),
283 bins = cms.int32(70), min = cms.double(0), max = cms.double(7)),
284 cms.PSet (name = cms.string(
"deltaPhi"), expression = cms.string(
"abs(deltaPhi(at(0).phi, at(1).phi))"),
285 bins = cms.int32(100), min = cms.double(0), max = cms.double(3.2)),
286 cms.PSet (name = cms.string(
"ptAve"), expression = cms.string(
"(at(0).pt+at(1).pt)/2"),
287 bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
288 cms.PSet (name = cms.string(
"ptTag"), expression =
289 cms.string(
"? abs(at(0).eta) < abs(at(1).eta) ? at(0).pt : at(1).pt "),
290 bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) ),
291 cms.PSet (name = cms.string(
"ptProbe"), expression =
292 cms.string(
"? abs(at(0).eta) < abs(at(1).eta) ? at(1).pt : at(0).pt "),
293 bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) )
296 ret.append(hltPFtopology)
305 triggerSelection = cms.string(partialPathName+"*"),
306 handlerType = cms.string("FromRecoCandidate"),
307 inputCol = cms.InputTag("ak4PFJetsCHS"),
308 partialPathName = cms.string(partialPathName),
309 partialFilterName = cms.string("hltDiPFJetAve"),
310 dqmhistolabel = cms.string("recoJet"),
311 mainDQMDirname = cms.untracked.string(fsqdirname),
312 singleObjectsPreselection = cms.string("pt > + "+str(recoThr) +" && (abs(eta)<1.3 || abs(eta) > 2.8) "),
313 singleObjectDrawables = cms.VPSet(),
314 combinedObjectSelection = cms.string("1==1"),
315 combinedObjectSortCriteria = cms.string("at(0).pt"),
316 combinedObjectDimension = cms.int32(1),
317 combinedObjectDrawables = cms.VPSet(
318 cms.PSet (name = cms.string("pt"), expression = cms.string("at(0).pt"), bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
319 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))
325 recoPFtopology = cms.PSet(
326 triggerSelection = cms.string(partialPathName+
"*"),
327 handlerType = cms.string(
"RecoPFJetWithJEC"),
328 PFJetCorLabel = cms.InputTag(
"ak4PFL1FastL2L3Corrector"),
329 inputCol = cms.InputTag(
"ak4PFJetsCHS"),
330 partialPathName = cms.string(partialPathName),
331 partialFilterName = cms.string(
"hltDiPFJetAve"),
332 dqmhistolabel = cms.string(
"recoPFJetsTopology"),
333 mainDQMDirname = cms.untracked.string(fsqdirname),
334 singleObjectsPreselection = cms.string(
"pt > "+
str(recoThr) +
" && (abs(eta)<1.4 ||"+probeEtaSelection +
")" ),
335 singleObjectDrawables = cms.VPSet(),
336 combinedObjectSelection = cms.string(
"abs(at(0).eta())< 1.3 && " + probeEtaSelectionCombined +
337 " && abs(deltaPhi(at(0).phi, at(1).phi)) > 2.5"),
338 combinedObjectSortCriteria = cms.string(
"(at(0).pt+at(1).pt)/2"),
339 combinedObjectDimension = cms.int32(2),
340 combinedObjectDrawables = cms.VPSet(
341 cms.PSet (name = cms.string(
"deltaEta"), expression = cms.string(
"abs(at(0).eta-at(1).eta)"),
342 bins = cms.int32(70), min = cms.double(0), max = cms.double(7)),
343 cms.PSet (name = cms.string(
"deltaPhi"), expression = cms.string(
"abs(deltaPhi(at(0).phi, at(1).phi))"),
344 bins = cms.int32(100), min = cms.double(0), max = cms.double(3.2)),
345 cms.PSet (name = cms.string(
"ptAve"), expression = cms.string(
"(at(0).pt+at(1).pt)/2"),
346 bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh)),
347 cms.PSet (name = cms.string(
"ptTag"), expression =
348 cms.string(
"? abs(at(0).eta) < abs(at(1).eta) ? at(0).pt : at(1).pt "),
349 bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) ),
350 cms.PSet (name = cms.string(
"ptProbe"), expression =
351 cms.string(
"? abs(at(0).eta) < abs(at(1).eta) ? at(1).pt : at(0).pt "),
352 bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) ),
353 cms.PSet (name = cms.string(
"ptAve_nominator"), expression = cms.string(
"(at(0).pt+at(1).pt)/2"),
354 bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) ),
357 ret.append(recoPFtopology)
358 recoPFtopologyDenom = recoPFtopology.clone(
361 triggerSelection =
"TRUE"
363 recoPFtopologyDenom.combinedObjectDrawables = cms.VPSet(
364 cms.PSet (name = cms.string(
"ptAve_denominator"), expression = cms.string(
"(at(0).pt+at(1).pt)/2"),
365 bins = cms.int32(ptBins), min = cms.double(ptBinLow), max = cms.double(ptBinHigh) )
367 ret.append(recoPFtopologyDenom)
370 ''' example on how to count objects
372 recoPFJetCnt = cms.PSet(
373 triggerSelection = cms.string(partialPathName+"*"),
374 handlerType = cms.string("RecoCandidateCounter"),
375 inputCol = cms.InputTag("ak4PFJetsCHS"),
376 partialPathName = cms.string(partialPathName),
377 partialFilterName = cms.string("hltDiPFJetAve"),
378 dqmhistolabel = cms.string("recoPFJetsCnt"),
379 mainDQMDirname = cms.untracked.string(fsqdirname),
380 singleObjectsPreselection = cms.string("pt > "+str(recoThr) +" && abs(eta)<1.4 || abs(eta) > 2.7 "),
381 singleObjectDrawables = cms.VPSet(),
382 combinedObjectSelection = cms.string("1==1"),
383 combinedObjectSortCriteria = cms.string('size()'),
384 combinedObjectDimension = cms.int32(1),
385 combinedObjectDrawables = cms.VPSet(
386 cms.PSet (name = cms.string("count"), expression = cms.string('at(0)'),
387 bins = cms.int32(30), min = cms.double(0), max = cms.double(30))
390 ret.append(recoPFJetCnt)