Skip to content

Commit

Permalink
Merge pull request #9183 from jasperlauwers/HLTriggerOffline_Higgs_ba…
Browse files Browse the repository at this point in the history
…ckport

 HLTriggerOffline/Higgs - Adding AHttH paths, updating PU range and correcting/removing empty histograms - Backport of #9109
  • Loading branch information
cmsbuild committed Jun 19, 2015
2 parents 844d65d + 5e5586c commit b67ebb0
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 18 deletions.
50 changes: 39 additions & 11 deletions HLTriggerOffline/Higgs/python/hltHiggsPostProcessors_cff.py
Expand Up @@ -119,29 +119,31 @@ def get_reco_strings(strings):


#add the summary plots
efficiency_summary_strings = []
for an in _config.analysis:
efficiency_strings.append("EffSummaryPaths_"+an+"_gen ' Efficiency of paths used in "+an+" ; trigger path ' SummaryPaths_"+an+"_gen_passingHLT SummaryPaths_"+an+"_gen")
efficiency_summary_strings.append("EffSummaryPaths_"+an+"_gen ' Efficiency of paths used in "+an+" ; trigger path ' SummaryPaths_"+an+"_gen_passingHLT SummaryPaths_"+an+"_gen")
for trig in triggers:
efficiency_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")
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")

efficiency_strings.extend(efficiency_summary_strings)
efficiency_strings.extend(get_reco_strings(efficiency_strings))



hltHiggsPostHWW = hltHiggsPostProcessor.clone()
hltHiggsPostHWW.subDirs = ['HLT/Higgs/HWW']
hltHiggsPostHWW.efficiencyProfile = efficiency_strings


hltHiggsPostHZZ = hltHiggsPostProcessor.clone()
hltHiggsPostHZZ.subDirs = ['HLT/Higgs/HZZ']
hltHiggsPostHZZ.efficiencyProfile = efficiency_strings


hltHiggsPostHgg = hltHiggsPostProcessor.clone()
hltHiggsPostHgg.subDirs = ['HLT/Higgs/Hgg']
hltHiggsPostHgg.efficiencyProfile = efficiency_strings

hltHiggsPostHggControlPaths = hltHiggsPostProcessor.clone()
hltHiggsPostHggControlPaths.subDirs = ['HLT/Higgs/HggControlPaths']
hltHiggsPostHggControlPaths.efficiencyProfile = efficiency_strings

hltHiggsPostDoubleHinTaus = hltHiggsPostProcessor.clone()
hltHiggsPostDoubleHinTaus.subDirs = ['HLT/Higgs/DoubleHinTaus']
hltHiggsPostDoubleHinTaus.efficiencyProfile = efficiency_strings
Expand All @@ -154,24 +156,28 @@ def get_reco_strings(strings):
hltHiggsPostH2tau.subDirs = ['HLT/Higgs/H2tau']
hltHiggsPostH2tau.efficiencyProfile = efficiency_strings


hltHiggsPostHtaunu = hltHiggsPostProcessor.clone()
hltHiggsPostHtaunu.subDirs = ['HLT/Higgs/Htaunu']
hltHiggsPostHtaunu.efficiencyProfile = efficiency_strings


efficiency_strings_TTHbbej = list(efficiency_strings)
efficiency_strings_TTHbbej = []
#add the summary plots
for an in _config.analysis:
for trig in triggers:
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")

efficiency_strings_TTHbbej.extend(get_reco_strings(efficiency_strings_TTHbbej))
efficiency_strings_TTHbbej.extend(efficiency_strings)

hltHiggsPostTTHbbej = hltHiggsPostProcessor.clone()
hltHiggsPostTTHbbej.subDirs = ['HLT/Higgs/TTHbbej']
hltHiggsPostTTHbbej.efficiencyProfile = efficiency_strings_TTHbbej

hltHiggsPostAHttH = hltHiggsPostProcessor.clone()
hltHiggsPostAHttH.subDirs = ['HLT/Higgs/AHttH']
hltHiggsPostAHttH.efficiencyProfile = efficiency_strings

#Specific plots for VBFHbb_2btag
#dEtaqq, mqq, dPhibb, CVS1, maxCSV_jets, maxCSV_E, MET, pt1, pt2, pt3, pt4
NminOneCutNames = ("EffdEtaqq", "Effmqq", "EffdPhibb", "EffCSV1", "EffCSV2", "EffCSV3", "EffmaxCSV", "", "", "TurnOn1", "TurnOn2", "TurnOn3", "TurnOn4")
Expand All @@ -191,14 +197,14 @@ def get_reco_strings(strings):
efficiency_strings.append(efficiency_string(obj,type,trig))

efficiency_strings = get_reco_strings(efficiency_strings)
efficiency_strings.extend(get_reco_strings(efficiency_summary_strings))

hltHiggsPostVBFHbb_2btag = hltHiggsPostProcessor.clone()
hltHiggsPostVBFHbb_2btag.subDirs = ['HLT/Higgs/VBFHbb_2btag']
hltHiggsPostVBFHbb_2btag.efficiencyProfile = efficiency_strings

#Specific plots for VBFHbb_1btag
#dEtaqq, mqq, dPhibb, CVS1, maxCSV_jets, maxCSV_E, MET, pt1, pt2, pt3, pt4
NminOneCutNames = ("EffdEtaqq", "Effmqq", "EffdPhibb", "EffCSV1", "EffCSV2", "EffCSV3", "EffmaxCSV", "", "", "TurnOn1", "TurnOn2", "TurnOn3", "TurnOn4")
plot_types = []
NminOneCuts = (_config.__getattribute__("VBFHbb_1btag")).__getattribute__("NminOneCuts")
if NminOneCuts:
Expand All @@ -207,27 +213,45 @@ def get_reco_strings(strings):
if( NminOneCutNames[iCut] == "EffmaxCSV" ):
plot_types.pop()
plot_types.append(NminOneCutNames[iCut])

efficiency_strings = []
for type in plot_types:
for obj in ["Jet"]:
for trig in triggers:
efficiency_strings.append(efficiency_string(obj,type,trig))

efficiency_strings = get_reco_strings(efficiency_strings)
efficiency_strings.extend(get_reco_strings(efficiency_summary_strings))

hltHiggsPostVBFHbb_1btag = hltHiggsPostProcessor.clone()
hltHiggsPostVBFHbb_1btag.subDirs = ['HLT/Higgs/VBFHbb_1btag']
hltHiggsPostVBFHbb_1btag.efficiencyProfile = efficiency_strings

#Specific plots for VBFHbb_0btag
#dEtaqq, mqq, dPhibb, CVS1, maxCSV_jets, maxCSV_E, MET, pt1, pt2, pt3, pt4
NminOneCutNames = ("EffdEtaqq", "Effmqq", "EffdPhibb", "EffCSV1", "EffCSV2", "EffCSV3", "EffmaxCSV", "", "", "TurnOn1", "TurnOn2", "TurnOn3", "TurnOn4")
plot_types = []
NminOneCuts = (_config.__getattribute__("VBFHbb_0btag")).__getattribute__("NminOneCuts")
if NminOneCuts:
for iCut in range(0,len(NminOneCuts)):
if( NminOneCuts[iCut] and NminOneCutNames[iCut] ):
if( NminOneCutNames[iCut] == "EffmaxCSV" ):
plot_types.pop()
plot_types.append(NminOneCutNames[iCut])

efficiency_strings = []
for type in plot_types:
for obj in ["Jet"]:
for trig in triggers:
efficiency_strings.append(efficiency_string(obj,type,trig))

efficiency_strings = get_reco_strings(efficiency_strings)
efficiency_strings.extend(get_reco_strings(efficiency_summary_strings))

hltHiggsPostVBFHbb_0btag = hltHiggsPostProcessor.clone()
hltHiggsPostVBFHbb_0btag.subDirs = ['HLT/Higgs/VBFHbb_0btag']
hltHiggsPostVBFHbb_0btag.efficiencyProfile = efficiency_strings



#Specific plots for ZnnHbb
#Jet plots
plot_types = ["EffEta", "EffPhi"]
Expand Down Expand Up @@ -255,6 +279,7 @@ def get_reco_strings(strings):

efficiency_strings2 = get_reco_strings(efficiency_strings2)
efficiency_strings += efficiency_strings2
efficiency_strings.extend(get_reco_strings(efficiency_summary_strings))

hltHiggsPostZnnHbb = hltHiggsPostProcessor.clone()
hltHiggsPostZnnHbb.subDirs = ['HLT/Higgs/ZnnHbb']
Expand All @@ -276,6 +301,7 @@ def get_reco_strings(strings):
efficiency_strings.append(efficiency_string(obj,type,trig))

efficiency_strings = get_reco_strings(efficiency_strings)
efficiency_strings.extend(get_reco_strings(efficiency_summary_strings))

hltHiggsPostX4b = hltHiggsPostProcessor.clone()
hltHiggsPostX4b.subDirs = ['HLT/Higgs/X4b']
Expand All @@ -287,9 +313,11 @@ def get_reco_strings(strings):
hltHiggsPostHWW+
hltHiggsPostHZZ+
hltHiggsPostHgg+
hltHiggsPostHggControlPaths+
hltHiggsPostHtaunu+
hltHiggsPostH2tau+
hltHiggsPostTTHbbej+
hltHiggsPostAHttH+
hltHiggsPostVBFHbb_0btag+
hltHiggsPostVBFHbb_1btag+
hltHiggsPostVBFHbb_2btag+
Expand Down
26 changes: 23 additions & 3 deletions HLTriggerOffline/Higgs/python/hltHiggsValidator_cfi.py
Expand Up @@ -4,7 +4,7 @@
hltHiggsValidator = cms.EDAnalyzer("HLTHiggsValidator",

hltProcessName = cms.string("HLT"),
analysis = cms.vstring("HWW", "HZZ", "Hgg", "Htaunu", "H2tau", "VBFHbb_0btag", "VBFHbb_1btag", "VBFHbb_2btag", "ZnnHbb","DoubleHinTaus","HiggsDalitz","X4b","TTHbbej"),
analysis = cms.vstring("HWW", "HZZ", "Hgg", "HggControlPaths", "Htaunu", "H2tau", "VBFHbb_0btag", "VBFHbb_1btag", "VBFHbb_2btag", "ZnnHbb","DoubleHinTaus","HiggsDalitz","X4b","TTHbbej","AHttH"),
histDirectory = cms.string("HLT/Higgs"),

# -- The instance name of the reco::GenParticles collection
Expand All @@ -31,7 +31,7 @@
# -- (NBins, minVal, maxValue) for the Eta,Phi and nInterations efficiency plots
parametersEta = cms.vdouble(48, -2.400, 2.400),
parametersPhi = cms.vdouble(50, -3.142, 3.142),
parametersPu = cms.vdouble(10, 0, 20),
parametersPu = cms.vdouble(10, 0, 50),
parametersHt = cms.untracked.vdouble(100, 0, 1000),

# TO BE DEPRECATED --------------------------------------------
Expand Down Expand Up @@ -157,7 +157,6 @@
hltPathsToCheck = cms.vstring(
"HLT_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_ForMC_v",
"HLT_Diphoton30_18_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v",
"HLT_Diphoton30_18_R9Id_OR_IsoCaloId_AND_HE_R9Id_DoublePixelSeedMatch_Mass70_v",
"HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_DoublePixelVeto_Mass55_v",
"HLT_Diphoton30_18_Solid_R9Id_AND_IsoCaloId_AND_HE_R9Id_Mass55_v",
"HLT_Diphoton30EB_18EB_R9Id_OR_IsoCaloId_AND_HE_R9Id_DoublePixelVeto_Mass55_v"
Expand All @@ -166,6 +165,14 @@
# -- Analysis specific cuts
minCandidates = cms.uint32(2),
),
HggControlPaths = cms.PSet(
hltPathsToCheck = cms.vstring(
"HLT_Diphoton30_18_R9Id_OR_IsoCaloId_AND_HE_R9Id_DoublePixelSeedMatch_Mass70_v"
),
recPhotonLabel = cms.string("photons"),
# -- Analysis specific cuts
minCandidates = cms.uint32(2),
),
DoubleHinTaus = cms.PSet(
hltPathsToCheck = cms.vstring(
"HLT_Mu17_Mu8_SameSign_v",
Expand Down Expand Up @@ -326,4 +333,17 @@
HtJetPtMin = cms.untracked.double(30),
HtJetEtaMax = cms.untracked.double(3.0),
),
AHttH = cms.PSet(
hltPathsToCheck = cms.vstring(
"HLT_PFHT450_SixJet40_PFBTagCSV_v",
"HLT_PFHT400_SixJet30_BTagCSV0p5_2PFBTagCSV_v",
"HLT_PFHT450_SixJet40_v",
"HLT_PFHT400_SixJet30_v",
),
#recElecLabel = cms.string("gedGsfElectrons"),
recJetLabel = cms.string("ak4PFJetsCHS"),
jetTagLabel = cms.string("pfCombinedSecondaryVertexBJetTags"),
## -- Analysis specific cuts
minCandidates = cms.uint32(6),
),
)
8 changes: 4 additions & 4 deletions HLTriggerOffline/Higgs/src/HLTHiggsSubAnalysis.cc
Expand Up @@ -341,7 +341,7 @@ void HLTHiggsSubAnalysis::bookHistograms(DQMStore::IBooker &ibooker)
double minHt = paramsHt[1];
double maxHt = paramsHt[2];

_elements[nameVtxPlot] = ibooker.book1D(nameVtxPlot.c_str(), titlePu.c_str(), nBinsPu, minPu, maxPu);
if( (! _useNminOneCuts) || sources[i] == "rec" ) _elements[nameVtxPlot] = ibooker.book1D(nameVtxPlot.c_str(), titlePu.c_str(), nBinsPu, minPu, maxPu);
if( _bookHtPlots ) _elements[nameHtPlot] = ibooker.book1D(nameHtPlot.c_str(), titleHt.c_str(), nBinsHt, minHt, maxHt);
for (size_t j = 0 ; j < _hltPathsToCheck.size() ; j++){
//declare the efficiency vs interaction plots
Expand All @@ -352,7 +352,7 @@ void HLTHiggsSubAnalysis::bookHistograms(DQMStore::IBooker &ibooker)
shortpath = path.substr(0, path.rfind("_v"));
}
std::string titlePassingPu = "nb of interations in the event passing path " + shortpath;
_elements[nameVtxPlot+"_"+shortpath] = ibooker.book1D(nameVtxPlot+"_"+shortpath, titlePassingPu.c_str(), nBinsPu, minPu, maxPu);
if( (! _useNminOneCuts) || sources[i] == "rec" ) _elements[nameVtxPlot+"_"+shortpath] = ibooker.book1D(nameVtxPlot+"_"+shortpath, titlePassingPu.c_str(), nBinsPu, minPu, maxPu);

std::string titlePassingHt = "sum of jet pT in the event passing path " + shortpath;
if( _bookHtPlots ) _elements[nameHtPlot+"_"+shortpath] = ibooker.book1D(nameHtPlot+"_"+shortpath, titlePassingHt.c_str(), nBinsHt, minHt, maxHt);
Expand Down Expand Up @@ -678,7 +678,7 @@ void HLTHiggsSubAnalysis::analyze(const edm::Event & iEvent, const edm::EventSet

//fill the efficiency vs nb of interactions
std::string nameVtxPlot = "trueVtxDist_"+_analysisname+"_"+u2str[it->first];
_elements[nameVtxPlot]->Fill(nbMCvtx);
if( (! _useNminOneCuts) || it->first == RECO ) _elements[nameVtxPlot]->Fill(nbMCvtx);

//fill the efficiency vs sum pT of jets
std::string nameHtPlot = "HtDist_"+_analysisname+"_"+u2str[it->first];
Expand Down Expand Up @@ -710,7 +710,7 @@ void HLTHiggsSubAnalysis::analyze(const edm::Event & iEvent, const edm::EventSet
_elements[SummaryName]->Fill(refOfThePath);
if (ispassTrigger) {
_elements[SummaryName+"_passingHLT"]->Fill(refOfThePath,1);
_elements[nameVtxPlot+"_"+fillShortPath.c_str()]->Fill(nbMCvtx);
if( (! _useNminOneCuts) || it->first == RECO ) _elements[nameVtxPlot+"_"+fillShortPath.c_str()]->Fill(nbMCvtx);
if( _bookHtPlots ) _elements[nameHtPlot+"_"+fillShortPath.c_str()]->Fill(Htmap[it->first]);
}
else {
Expand Down

0 comments on commit b67ebb0

Please sign in to comment.