Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #21835 from thomreis/l1tmuondqm_upgrades
L1T DQM offline muon efficiency upgrades
- Loading branch information
Showing
5 changed files
with
488 additions
and
444 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,40 +1,54 @@ | ||
import FWCore.ParameterSet.Config as cms | ||
|
||
from DQMOffline.L1Trigger.L1TMuonDQMOffline_cfi import muonEfficiencyThresholds, muonEfficiencyThresholds_HI | ||
# generate the efficiency strings for the DQMGenericClient from the pt and quality cuts | ||
def generateEfficiencyStrings(ptQualCuts): | ||
numDenDir = "numerators_and_denominators/" | ||
varStrings = ['pt', 'eta', 'phi', 'vtx'] | ||
etaStrings = ['etaMin0_etaMax0p83', 'etaMin0p83_etaMax1p24', 'etaMin1p24_etaMax2p4', 'etaMin0_etaMax2p4'] | ||
qualStrings = {0:'qualAll', 4:'qualOpen', 8:'qualDouble', 12:'qualSingle'} | ||
|
||
plots = ["EffvsPt", "EffvsEta", "EffvsPhi", | ||
"EffvsPt_OPEN", "EffvsEta_OPEN", "EffvsPhi_OPEN", | ||
"EffvsPt_DOUBLE", "EffvsEta_DOUBLE", "EffvsPhi_DOUBLE", | ||
"EffvsPt_SINGLE", "EffvsEta_SINGLE", "EffvsPhi_SINGLE"] | ||
efficiencyStrings = [] | ||
for ptQualCut in ptQualCuts: | ||
effDenNamePrefix = numDenDir+"effDen_" | ||
effNumNamePrefix = numDenDir+"effNum_" | ||
effNamePrefix = "eff_" | ||
for varString in varStrings: | ||
effDenNameVar = effDenNamePrefix+varString | ||
effNumNameVar = effNumNamePrefix+varString+"_"+str(ptQualCut[0]) | ||
effNameVar = effNamePrefix+varString+"_"+str(ptQualCut[0]) | ||
if varString != "pt": | ||
effDenNameVar += "_"+str(ptQualCut[0]) | ||
effDenNameEta = '' | ||
effNumNameEta = '' | ||
effNameEta = '' | ||
if varString != "eta": | ||
for etaString in etaStrings: | ||
effDenName = effDenNameVar+"_"+etaString | ||
effNumName = effNumNameVar+"_"+etaString+"_"+qualStrings[ptQualCut[1]] | ||
effName = effNameVar+"_"+etaString+"_"+qualStrings[ptQualCut[1]] | ||
efficiencyStrings.append(effName+" '"+effName+";;L1 muon efficiency' "+effNumName+" "+effDenName) | ||
else: | ||
effDenName = effDenNameVar | ||
effNumName = effNumNameVar+"_"+qualStrings[ptQualCut[1]] | ||
effName = effNameVar+"_"+qualStrings[ptQualCut[1]] | ||
efficiencyStrings.append(effName+" '"+effName+";;L1 muon efficiency' "+effNumName+" "+effDenName) | ||
return efficiencyStrings | ||
|
||
allEfficiencyPlots = [] | ||
for plot in plots: | ||
for threshold in muonEfficiencyThresholds: | ||
plotName = '{0}_{1}'.format(plot, threshold) | ||
allEfficiencyPlots.append(plotName) | ||
from DQMServices.Core.DQMEDHarvester import DQMEDHarvester | ||
from DQMOffline.L1Trigger.L1TMuonDQMOffline_cfi import ptQualCuts, ptQualCuts_HI | ||
|
||
allEfficiencyPlots_HI = [] | ||
for plot in plots: | ||
for threshold in muonEfficiencyThresholds_HI: | ||
plotName = '{0}_{1}'.format(plot, threshold) | ||
allEfficiencyPlots_HI.append(plotName) | ||
|
||
from DQMOffline.L1Trigger.L1TEfficiencyHarvesting_cfi import l1tEfficiencyHarvesting | ||
l1tMuonDQMEfficiency = l1tEfficiencyHarvesting.clone( | ||
plotCfgs = cms.untracked.VPSet( | ||
cms.untracked.PSet( | ||
numeratorDir = cms.untracked.string("L1T/L1TMuon/numerators_and_denominators"), | ||
outputDir = cms.untracked.string("L1T/L1TMuon"), | ||
numeratorSuffix = cms.untracked.string("_Num"), | ||
denominatorSuffix = cms.untracked.string("_Den"), | ||
plots = cms.untracked.vstring(allEfficiencyPlots) | ||
) | ||
) | ||
l1tMuonDQMEfficiency = DQMEDHarvester("DQMGenericClient", | ||
subDirs = cms.untracked.vstring("L1T/L1TMuon/"), | ||
efficiency = cms.vstring(), | ||
efficiencyProfile = cms.untracked.vstring(generateEfficiencyStrings(ptQualCuts)), | ||
resolution = cms.vstring(), | ||
outputFileName = cms.untracked.string(""), | ||
verbose = cms.untracked.uint32(0) | ||
) | ||
|
||
# modifications for the pp reference run | ||
from Configuration.Eras.Modifier_ppRef_2017_cff import ppRef_2017 | ||
ppRef_2017.toModify(l1tMuonDQMEfficiency, | ||
plotCfgs = {0:dict(plots = allEfficiencyPlots_HI)} | ||
efficiencyProfile = cms.untracked.vstring(generateEfficiencyStrings(ptQualCuts_HI)) | ||
) | ||
|
Oops, something went wrong.