11 elif objtype ==
"Photon":
13 elif objtype ==
"Ele":
15 elif objtype ==
"MET" :
17 elif objtype ==
"PFMET" :
19 elif objtype ==
"PFTau":
21 elif objtype ==
"Jet":
26 numer_description =
"# gen %s passed the %s" % (objtypeLatex,triggerpath)
27 denom_description =
"# gen %s " % (objtypeLatex)
29 if plot_type ==
"TurnOn1":
31 xAxis =
"p_{T} of Leading Generated %s (GeV/c)" % (objtype)
32 input_type =
"gen%sMaxPt1" % (objtype)
33 elif plot_type ==
"TurnOn2":
34 title =
"Next-to-Leading pT Turn-On"
35 xAxis =
"p_{T} of Next-to-Leading Generated %s (GeV/c)" % (objtype)
36 input_type =
"gen%sMaxPt2" % (objtype)
37 elif plot_type ==
"EffEta":
38 title =
"#eta Efficiency"
39 xAxis =
"#eta of Generated %s " % (objtype)
40 input_type =
"gen%sEta" % (objtype)
41 elif plot_type ==
"EffPhi":
42 title =
"#phi Efficiency"
43 xAxis =
"#phi of Generated %s " % (objtype)
44 input_type =
"gen%sPhi" % (objtype)
45 elif "TurnOn" in plot_type:
46 title =
"%sth Leading pT Turn-On" % (plot_type[-1])
47 xAxis =
"p_{T} of %sth Leading Generated %s (GeV/c)" % (plot_type[-1], objtype)
48 input_type =
"gen%sMaxPt%s" % (objtype, plot_type[-1])
49 elif plot_type ==
"EffdEtaqq":
50 title =
"#Delta #eta_{qq} Efficiency"
51 xAxis =
"#Delta #eta_{qq} of Generated %s " % (objtype)
52 input_type =
"gen%sdEtaqq" % (objtype)
53 elif plot_type ==
"Effmqq":
54 title =
"m_{qq} Efficiency"
55 xAxis =
"m_{qq} of Generated %s " % (objtype)
56 input_type =
"gen%smqq" % (objtype)
57 elif plot_type ==
"EffdPhibb":
58 title =
"#Delta #phi_{bb} Efficiency"
59 xAxis =
"#Delta #phi_{bb} of Generated %s " % (objtype)
60 input_type =
"gen%sdPhibb" % (objtype)
61 elif plot_type ==
"EffCSV1":
62 title =
"CSV1 Efficiency"
63 xAxis =
"CSV1 of Generated %s " % (objtype)
64 input_type =
"gen%sCSV1" % (objtype)
65 elif plot_type ==
"EffCSV2":
66 title =
"CSV2 Efficiency"
67 xAxis =
"CSV2 of Generated %s " % (objtype)
68 input_type =
"gen%sCSV2" % (objtype)
69 elif plot_type ==
"EffCSV3":
70 title =
"CSV3 Efficiency"
71 xAxis =
"CSV3 of Generated %s " % (objtype)
72 input_type =
"gen%sCSV3" % (objtype)
73 elif plot_type ==
"EffmaxCSV":
74 title =
"max CSV Efficiency"
75 xAxis =
"max CSV of Generated %s " % (objtype)
76 input_type =
"gen%smaxCSV" % (objtype)
78 yAxis =
"%s / %s" % (numer_description, denom_description)
79 all_titles =
"%s for trigger %s; %s; %s" % (title, triggerpath,
81 return "Eff_%s_%s '%s' %s_%s %s" % (input_type,triggerpath,
82 all_titles,input_type,triggerpath,input_type)
88 reco_strings.append(entry
89 .
replace(
"Generated",
"Reconstructed")
95 plot_types = [
"TurnOn1",
"TurnOn2",
"EffEta",
"EffPhi"]
98 obj_types = [
"Mu",
"Ele",
"Photon",
"MET",
"PFMET",
"PFTau",
"Jet"]
101 efficiency_strings = []
106 for an
in _config.analysis:
107 s = _config.__getattribute__(an)
108 vstr = s.__getattribute__(
"hltPathsToCheck")
109 map(
lambda x: triggers.add(x.replace(
"_v",
"")),vstr)
110 triggers =
list(triggers)
115 for type
in plot_types:
116 for obj
in obj_types:
117 for trig
in triggers:
122 efficiency_summary_strings = []
123 for an
in _config.analysis:
124 efficiency_summary_strings.append(
"EffSummaryPaths_"+an+
"_gen ' Efficiency of paths used in "+an+
" ; trigger path ' SummaryPaths_"+an+
"_gen_passingHLT SummaryPaths_"+an+
"_gen")
125 for trig
in triggers:
126 efficiency_summary_strings.append(
"Eff_trueVtxDist_"+an+
"_gen_"+trig+
" ' Efficiency of "+trig+
" vs nb of interactions ; nb events passing each path ' trueVtxDist_"+an+
"_gen_"+trig+
" trueVtxDist_"+an+
"_gen")
128 efficiency_strings.extend(efficiency_summary_strings)
131 hltHiggsPostHWW = hltHiggsPostProcessor.clone()
132 hltHiggsPostHWW.subDirs = [
'HLT/Higgs/HWW']
133 hltHiggsPostHWW.efficiencyProfile = efficiency_strings
135 hltHiggsPostHZZ = hltHiggsPostProcessor.clone()
136 hltHiggsPostHZZ.subDirs = [
'HLT/Higgs/HZZ']
137 hltHiggsPostHZZ.efficiencyProfile = efficiency_strings
139 hltHiggsPostHgg = hltHiggsPostProcessor.clone()
140 hltHiggsPostHgg.subDirs = [
'HLT/Higgs/Hgg']
141 hltHiggsPostHgg.efficiencyProfile = efficiency_strings
143 hltHiggsPostHggControlPaths = hltHiggsPostProcessor.clone()
144 hltHiggsPostHggControlPaths.subDirs = [
'HLT/Higgs/HggControlPaths']
145 hltHiggsPostHggControlPaths.efficiencyProfile = efficiency_strings
147 hltHiggsPostDoubleHinTaus = hltHiggsPostProcessor.clone()
148 hltHiggsPostDoubleHinTaus.subDirs = [
'HLT/Higgs/DoubleHinTaus']
149 hltHiggsPostDoubleHinTaus.efficiencyProfile = efficiency_strings
151 hltHiggsPostHiggsDalitz = hltHiggsPostProcessor.clone()
152 hltHiggsPostHiggsDalitz.subDirs = [
'HLT/Higgs/HiggsDalitz']
153 hltHiggsPostHiggsDalitz.efficiencyProfile = efficiency_strings
155 hltHiggsPostH2tau = hltHiggsPostProcessor.clone()
156 hltHiggsPostH2tau.subDirs = [
'HLT/Higgs/H2tau']
157 hltHiggsPostH2tau.efficiencyProfile = efficiency_strings
159 hltHiggsPostHtaunu = hltHiggsPostProcessor.clone()
160 hltHiggsPostHtaunu.subDirs = [
'HLT/Higgs/Htaunu']
161 hltHiggsPostHtaunu.efficiencyProfile = efficiency_strings
164 efficiency_strings_TTHbbej = []
166 for an
in _config.analysis:
167 for trig
in triggers:
168 efficiency_strings_TTHbbej.append(
"Eff_HtDist_"+an+
"_gen_"+trig+
" ' Efficiency of "+trig+
" vs sum pT of jets ; sum pT of jets ' HtDist_"+an+
"_gen_"+trig+
" HtDist_"+an+
"_gen")
170 efficiency_strings_TTHbbej.extend(
get_reco_strings(efficiency_strings_TTHbbej))
171 efficiency_strings_TTHbbej.extend(efficiency_strings)
173 hltHiggsPostTTHbbej = hltHiggsPostProcessor.clone()
174 hltHiggsPostTTHbbej.subDirs = [
'HLT/Higgs/TTHbbej']
175 hltHiggsPostTTHbbej.efficiencyProfile = efficiency_strings_TTHbbej
177 hltHiggsPostAHttH = hltHiggsPostProcessor.clone()
178 hltHiggsPostAHttH.subDirs = [
'HLT/Higgs/AHttH']
179 hltHiggsPostAHttH.efficiencyProfile = efficiency_strings
183 NminOneCutNames = (
"EffdEtaqq",
"Effmqq",
"EffdPhibb",
"EffCSV1",
"EffCSV2",
"EffCSV3",
"EffmaxCSV",
"",
"",
"TurnOn1",
"TurnOn2",
"TurnOn3",
"TurnOn4")
185 NminOneCuts = _config.VBFHbb_2btag.NminOneCuts
187 for iCut
in range(0,len(NminOneCuts)):
188 if( NminOneCuts[iCut]
and NminOneCutNames[iCut] ):
189 if( NminOneCutNames[iCut] ==
"EffmaxCSV" ):
191 plot_types.append(NminOneCutNames[iCut])
193 efficiency_strings = []
194 for type
in plot_types:
196 for trig
in triggers:
202 hltHiggsPostVBFHbb_2btag = hltHiggsPostProcessor.clone()
203 hltHiggsPostVBFHbb_2btag.subDirs = [
'HLT/Higgs/VBFHbb_2btag']
204 hltHiggsPostVBFHbb_2btag.efficiencyProfile = efficiency_strings
209 NminOneCuts = _config.VBFHbb_1btag.NminOneCuts
211 for iCut
in range(0,len(NminOneCuts)):
212 if( NminOneCuts[iCut]
and NminOneCutNames[iCut] ):
213 if( NminOneCutNames[iCut] ==
"EffmaxCSV" ):
215 plot_types.append(NminOneCutNames[iCut])
217 efficiency_strings = []
218 for type
in plot_types:
220 for trig
in triggers:
226 hltHiggsPostVBFHbb_1btag = hltHiggsPostProcessor.clone()
227 hltHiggsPostVBFHbb_1btag.subDirs = [
'HLT/Higgs/VBFHbb_1btag']
228 hltHiggsPostVBFHbb_1btag.efficiencyProfile = efficiency_strings
233 NminOneCuts = _config.VBFHbb_0btag.NminOneCuts
235 for iCut
in range(0,len(NminOneCuts)):
236 if( NminOneCuts[iCut]
and NminOneCutNames[iCut] ):
237 if( NminOneCutNames[iCut] ==
"EffmaxCSV" ):
239 plot_types.append(NminOneCutNames[iCut])
241 efficiency_strings = []
242 for type
in plot_types:
244 for trig
in triggers:
250 hltHiggsPostVBFHbb_0btag = hltHiggsPostProcessor.clone()
251 hltHiggsPostVBFHbb_0btag.subDirs = [
'HLT/Higgs/VBFHbb_0btag']
252 hltHiggsPostVBFHbb_0btag.efficiencyProfile = efficiency_strings
257 plot_types = [
"EffEta",
"EffPhi"]
258 NminOneCuts = _config.ZnnHbb.NminOneCuts
260 for iCut
in range(0,len(NminOneCuts)):
261 if( NminOneCuts[iCut]
and NminOneCutNames[iCut] ):
262 plot_types.append(NminOneCutNames[iCut])
264 efficiency_strings = []
265 for type
in plot_types:
267 for trig
in triggers:
273 plot_types = [
"TurnOn1",
"EffPhi"]
274 efficiency_strings2 = []
275 for type
in plot_types:
276 for obj
in [
"PFMET"]:
277 for trig
in triggers:
281 efficiency_strings += efficiency_strings2
284 hltHiggsPostZnnHbb = hltHiggsPostProcessor.clone()
285 hltHiggsPostZnnHbb.subDirs = [
'HLT/Higgs/ZnnHbb']
286 hltHiggsPostZnnHbb.efficiencyProfile = efficiency_strings
291 NminOneCuts = _config.X4b.NminOneCuts
293 for iCut
in range(0,len(NminOneCuts)):
294 if( NminOneCuts[iCut]
and NminOneCutNames[iCut] ):
295 plot_types.append(NminOneCutNames[iCut])
297 efficiency_strings = []
298 for type
in plot_types:
300 for trig
in triggers:
306 hltHiggsPostX4b = hltHiggsPostProcessor.clone()
307 hltHiggsPostX4b.subDirs = [
'HLT/Higgs/X4b']
308 hltHiggsPostX4b.efficiencyProfile = efficiency_strings
311 efficiency_strings_WHToENuBB =
list(efficiency_strings_TTHbbej)
313 for an
in _config.analysis:
314 for trig
in triggers:
315 efficiency_strings_WHToENuBB.append(
"Eff_HtDist_"+an+
"_gen_"+trig+
" ' Efficiency of "+trig+
" vs sum pT of jets ; sum pT of jets ' HtDist_"+an+
"_gen_"+trig+
" HtDist_"+an+
"_gen")
317 efficiency_strings_WHToENuBB.extend(
get_reco_strings(efficiency_strings_WHToENuBB))
319 hltHiggsPostWHToENuBB = hltHiggsPostProcessor.clone()
320 hltHiggsPostWHToENuBB.subDirs = [
'HLT/Higgs/WHToENuBB']
321 hltHiggsPostWHToENuBB.efficiencyProfile = efficiency_strings_WHToENuBB
325 NminOneCuts = _config.MSSMHbb.NminOneCuts
327 for iCut
in range(0,len(NminOneCuts)):
328 if( NminOneCuts[iCut]
and NminOneCutNames[iCut] ):
329 plot_types.append(NminOneCutNames[iCut])
331 efficiency_strings = []
332 for type
in plot_types:
334 for trig
in triggers:
340 hltHiggsPostMSSMHbb = hltHiggsPostProcessor.clone()
341 hltHiggsPostMSSMHbb.subDirs = [
'HLT/Higgs/MSSMHbb']
342 hltHiggsPostMSSMHbb.efficiencyProfile = efficiency_strings
343 hltHiggsPostProcessors = cms.Sequence(
347 hltHiggsPostHggControlPaths+
352 hltHiggsPostVBFHbb_0btag+
353 hltHiggsPostVBFHbb_1btag+
354 hltHiggsPostVBFHbb_2btag+
356 hltHiggsPostDoubleHinTaus+
357 hltHiggsPostHiggsDalitz+
359 hltHiggsPostWHToENuBB+
if(conf.exists("allCellsPositionCalc"))
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run