diff --git a/DQM/L1TMonitorClient/python/L1TStage2uGMTClient_cff.py b/DQM/L1TMonitorClient/python/L1TStage2uGMTClient_cff.py index 1d3a17422b27c..649ffcbccf551 100644 --- a/DQM/L1TMonitorClient/python/L1TStage2uGMTClient_cff.py +++ b/DQM/L1TMonitorClient/python/L1TStage2uGMTClient_cff.py @@ -48,6 +48,44 @@ inputDen = ugmtMuCpyDqmDir+'/uGMTMuonCopy5/'+errHistDenStr, ratioTitle = 'Summary of mismatch rates between uGMT muons and uGMT muon copy 5' ) + +# Showers +l1tStage2uGMTShowerVsuGMTShowerCopy1RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy2', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy1/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy1/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 1', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) +l1tStage2uGMTShowerVsuGMTShowerCopy2RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy2', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy2/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy2/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 2', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) +l1tStage2uGMTShowerVsuGMTShowerCopy3RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy3', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy3/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy3/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 3', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) +l1tStage2uGMTShowerVsuGMTShowerCopy4RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy4', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy4/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy4/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 4', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) +l1tStage2uGMTShowerVsuGMTShowerCopy5RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy5', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy5/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy5/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 5', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) + # RegionalMuonCands l1tStage2BmtfOutVsuGMTInRatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( monitorDir = ugmtDqmDir+'/BMTFoutput_vs_uGMTinput', @@ -71,6 +109,15 @@ ignoreBin = ignoreBins['Emtf'] ) +# RegionalShowerCands +l1tStage2EmtfOutVsuGMTInShowerRatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtDqmDir+'/EMTFoutput_vs_uGMTinput/Muon Showers', + inputNum = ugmtDqmDir+'/EMTFoutput_vs_uGMTinput/Muon Showers/'+errHistNumStr, + inputDen = ugmtDqmDir+'/EMTFoutput_vs_uGMTinput/Muon Showers/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between EMTF output showers and uGMT input showers from EMTF', + ignoreBin = ignoreBins['EmtfShowers'] +) + # sequences l1tStage2uGMTMuonCompClient = cms.Sequence( l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient @@ -79,12 +126,25 @@ + l1tStage2uGMTMuonVsuGMTMuonCopy4RatioClient + l1tStage2uGMTMuonVsuGMTMuonCopy5RatioClient ) +# Add shower copy tests for Run-3 +_run3_l1tStage2uGMTMuonCompClient = cms.Sequence( + l1tStage2uGMTMuonCompClient.copy() + + l1tStage2uGMTShowerVsuGMTShowerCopy1RatioClient + + l1tStage2uGMTShowerVsuGMTShowerCopy2RatioClient + + l1tStage2uGMTShowerVsuGMTShowerCopy3RatioClient + + l1tStage2uGMTShowerVsuGMTShowerCopy4RatioClient + + l1tStage2uGMTShowerVsuGMTShowerCopy5RatioClient +) +stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTMuonCompClient, _run3_l1tStage2uGMTMuonCompClient) l1tStage2uGMTRegionalMuonCandCompClient = cms.Sequence( l1tStage2BmtfOutVsuGMTInRatioClient + l1tStage2OmtfOutVsuGMTInRatioClient + l1tStage2EmtfOutVsuGMTInRatioClient ) +# Add input vs. output shower tests in Run-3. +_run3_l1tStage2uGMTRegionalMuonCandCompClient = cms.Sequence(l1tStage2uGMTRegionalMuonCandCompClient.copy() + l1tStage2EmtfOutVsuGMTInShowerRatioClient) +stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTRegionalMuonCandCompClient, _run3_l1tStage2uGMTRegionalMuonCandCompClient) l1tStage2uGMTClient = cms.Sequence( l1tStage2uGMTMuonCompClient diff --git a/DQM/L1TMonitorClient/python/L1TStage2uGMTEmulatorClient_cff.py b/DQM/L1TMonitorClient/python/L1TStage2uGMTEmulatorClient_cff.py index 9f21b57dae44e..7e389315e3ee8 100644 --- a/DQM/L1TMonitorClient/python/L1TStage2uGMTEmulatorClient_cff.py +++ b/DQM/L1TMonitorClient/python/L1TStage2uGMTEmulatorClient_cff.py @@ -22,7 +22,19 @@ ) ## Era: Run3_2021; Ignore BX range mismatches. This is necessary because we only read out the central BX for the inputs, so that is what the emulator has to work on. from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 -stage2L1Trigger_2021.toModify(l1tStage2uGMTEmulatorCompRatioClient, ignoreBin = ignoreFinalsBinsRun3) +stage2L1Trigger_2021.toModify(l1tStage2uGMTEmulatorCompRatioClient, ignoreBin = cms.untracked.vint32(ignoreFinalsBinsRun3)) + +# Showers +l1tStage2uGMTShowerEmulatorCompRatioClient = DQMEDHarvester("L1TStage2RatioClient", + monitorDir = cms.untracked.string(ugmtEmuDEDqmDir+"/Muon showers"), + inputNum = cms.untracked.string(ugmtEmuDEDqmDir+'/Muon showers/'+errHistNumStr), + inputDen = cms.untracked.string(ugmtEmuDEDqmDir+'/Muon showers/'+errHistDenStr), + ratioName = cms.untracked.string('mismatchRatio'), + ratioTitle = cms.untracked.string('Summary of mismatch rates between uGMT showers and uGMT emulator showers'), + yAxisTitle = cms.untracked.string('# mismatch / # total'), + binomialErr = cms.untracked.bool(True), + ignoreBin = cms.untracked.vint32(ignoreFinalsBinsRun3), # Ignore BX range mismatches. This is necessary because we only read out the central BX for the inputs, so that is what the emulator has to work on. +) # intermediate muons titleStr = 'Summary of mismatch rates between uGMT intermediate muons and uGMT emulator intermediate muons from ' @@ -70,3 +82,6 @@ + l1tStage2uGMTEmulImdMuEMTFPosCompRatioClient ) +# Add shower tests for Run3 +_run3_l1tStage2uGMTEmulatorClient = cms.Sequence(l1tStage2uGMTEmulatorClient.copy() + l1tStage2uGMTShowerEmulatorCompRatioClient) +stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTEmulatorClient, _run3_l1tStage2uGMTEmulatorClient)