Skip to content
Snippets Groups Projects
Commit d349977c authored by Siarhei Harkusha's avatar Siarhei Harkusha
Browse files

TileMonitoring: Add Tile monitoring histograms with masking for all partitions for Run 3

Tile monitoring histograms with masked channels/cells vs luminosity block
for all partitions have been added for Run 3.
parent aa2aec5c
No related branches found
No related tags found
No related merge requests found
...@@ -181,7 +181,7 @@ def TileCellMonitoringConfig(flags, **kwargs): ...@@ -181,7 +181,7 @@ def TileCellMonitoringConfig(flags, **kwargs):
xvalue = 'lumiBlock', value= 'nMaskedChannelsOnFly', title = titleMaskOnFlyLB, xvalue = 'lumiBlock', value= 'nMaskedChannelsOnFly', title = titleMaskOnFlyLB,
xbins = 1000, xmin = -0.5, xmax = 999.5, type = 'TProfile', run = run, triggers = [], xbins = 1000, xmin = -0.5, xmax = 999.5, type = 'TProfile', run = run, triggers = [],
perPartition = True, perSample = False, perGain = False, subDirectory = False, perPartition = True, perSample = False, perGain = False, subDirectory = False,
opt = 'kAddBinsDynamically') opt = 'kAddBinsDynamically', allPartitions = True)
# 17) Configure histograms with number of masked Tile cells on the fly vs lumi block per partition # 17) Configure histograms with number of masked Tile cells on the fly vs lumi block per partition
titleMaskCellLB = 'Number of masked cells on the fly' titleMaskCellLB = 'Number of masked cells on the fly'
...@@ -190,7 +190,7 @@ def TileCellMonitoringConfig(flags, **kwargs): ...@@ -190,7 +190,7 @@ def TileCellMonitoringConfig(flags, **kwargs):
xvalue = 'lumiBlock', value = 'nMaskedCells', title = titleMaskCellLB, xvalue = 'lumiBlock', value = 'nMaskedCells', title = titleMaskCellLB,
xbins = 1000, xmin = -0.5, xmax = 999.5, type='TProfile', run = run, triggers = [], xbins = 1000, xmin = -0.5, xmax = 999.5, type='TProfile', run = run, triggers = [],
subDirectory = False, perPartition = True, perSample = False, perGain = False, subDirectory = False, perPartition = True, perSample = False, perGain = False,
opt = 'kAddBinsDynamically') opt = 'kAddBinsDynamically', allPartitions = True)
# 18) Configure histograms with number of masked Tile channels on the fly due to bad DQ status vs lumi block per partition # 18) Configure histograms with number of masked Tile channels on the fly due to bad DQ status vs lumi block per partition
titleMaskDueDQ = 'Number of masked channels on the fly due to bad DQ status' titleMaskDueDQ = 'Number of masked channels on the fly due to bad DQ status'
...@@ -199,7 +199,7 @@ def TileCellMonitoringConfig(flags, **kwargs): ...@@ -199,7 +199,7 @@ def TileCellMonitoringConfig(flags, **kwargs):
xvalue = 'lumiBlock', value = 'nMaskedChannelsDueDQ', title = titleMaskDueDQ, xvalue = 'lumiBlock', value = 'nMaskedChannelsDueDQ', title = titleMaskDueDQ,
xbins = 1000, xmin = -0.5, xmax = 999.5, type='TProfile', run = run, triggers = [], xbins = 1000, xmin = -0.5, xmax = 999.5, type='TProfile', run = run, triggers = [],
subDirectory = False, perPartition = True, perSample = False, perGain = False, subDirectory = False, perPartition = True, perSample = False, perGain = False,
opt = 'kAddBinsDynamically') opt = 'kAddBinsDynamically', allPartitions = True)
# 19) Configure histograms with number of masked Tile cells on the fly due to bad DQ status vs lumi block per partition # 19) Configure histograms with number of masked Tile cells on the fly due to bad DQ status vs lumi block per partition
titleMaskCellDueDQ = 'Number of masked cells on the fly due to bad DQ status' titleMaskCellDueDQ = 'Number of masked cells on the fly due to bad DQ status'
...@@ -208,7 +208,7 @@ def TileCellMonitoringConfig(flags, **kwargs): ...@@ -208,7 +208,7 @@ def TileCellMonitoringConfig(flags, **kwargs):
xvalue = 'lumiBlock', value = 'nMaskedCellsDueDQ', title = titleMaskCellDueDQ, xvalue = 'lumiBlock', value = 'nMaskedCellsDueDQ', title = titleMaskCellDueDQ,
xbins = 1000, xmin = -0.5, xmax = 999.5, type='TProfile', run = run, triggers = [], xbins = 1000, xmin = -0.5, xmax = 999.5, type='TProfile', run = run, triggers = [],
subDirectory = False, perPartition = True, perSample = False, perGain = False, subDirectory = False, perPartition = True, perSample = False, perGain = False,
opt = 'kAddBinsDynamically') opt = 'kAddBinsDynamically', allPartitions = True)
if kwargs['fillChannelTimeHistograms']: if kwargs['fillChannelTimeHistograms']:
# Configure histograms with Tile channel time per partition and sample # Configure histograms with Tile channel time per partition and sample
......
...@@ -42,11 +42,11 @@ StatusCode TileCellMonitorAlgorithm::initialize() { ...@@ -42,11 +42,11 @@ StatusCode TileCellMonitorAlgorithm::initialize() {
m_energyBalModPartGroups = buildToolMap<int>(m_tools, "TileCellEneBalModPart", nL1Triggers); m_energyBalModPartGroups = buildToolMap<int>(m_tools, "TileCellEneBalModPart", nL1Triggers);
m_timeBalModPartGroups = buildToolMap<int>(m_tools, "TileCellTimeBalModPart", nL1Triggers); m_timeBalModPartGroups = buildToolMap<int>(m_tools, "TileCellTimeBalModPart", nL1Triggers);
m_maskedOnFlyGroups = buildToolMap<int>(m_tools, "TileCellStatusOnFly", Tile::MAX_ROS - 1); m_maskedOnFlyGroups = buildToolMap<int>(m_tools, "TileCellStatusOnFly", Tile::MAX_ROS - 1);
m_maskedDueDQGroups = buildToolMap<int>(m_tools, "TileMaskChannelDueDQvsLB", Tile::MAX_ROS - 1); m_maskedDueDQGroups = buildToolMap<int>(m_tools, "TileMaskChannelDueDQvsLB", MAX_PART);
m_maskedCellsDueDQGroups = buildToolMap<int>(m_tools, "TileMaskedCellDueDQvsLB", Tile::MAX_ROS - 1); m_maskedCellsDueDQGroups = buildToolMap<int>(m_tools, "TileMaskedCellDueDQvsLB", MAX_PART);
m_maskedOnFlyLBGroups = buildToolMap<int>(m_tools, "TileMaskChannelOnFlyLB", Tile::MAX_ROS - 1); m_maskedOnFlyLBGroups = buildToolMap<int>(m_tools, "TileMaskChannelOnFlyLB", MAX_PART);
m_maskedCellsLBGroups = buildToolMap<int>(m_tools, "TileMaskCellLB", Tile::MAX_ROS - 1); m_maskedCellsLBGroups = buildToolMap<int>(m_tools, "TileMaskCellLB", MAX_PART);
m_maskedGroups = buildToolMap<std::vector<int>>(m_tools, "TileCellStatusInDB", m_maskedGroups = buildToolMap<std::vector<int>>(m_tools, "TileCellStatusInDB",
Tile::MAX_ROS - 1, Tile::MAX_GAIN); Tile::MAX_ROS - 1, Tile::MAX_GAIN);
...@@ -721,18 +721,6 @@ StatusCode TileCellMonitorAlgorithm::fillHistograms( const EventContext& ctx ) c ...@@ -721,18 +721,6 @@ StatusCode TileCellMonitorAlgorithm::fillHistograms( const EventContext& ctx ) c
for (unsigned int partition = 0; partition < Tile::MAX_ROS - 1; ++partition) { for (unsigned int partition = 0; partition < Tile::MAX_ROS - 1; ++partition) {
auto monMaskedDueDQ = Monitored::Scalar<int>("nMaskedChannelsDueDQ", nMaskedChannelsDueDQ[partition]);
fill(m_tools[m_maskedDueDQGroups[partition]], lumiBlock, monMaskedDueDQ);
auto monMaskedCellsDueDQ = Monitored::Scalar<int>("nMaskedCellsDueDQ", nMaskedCellsDueDQ[partition]);
fill(m_tools[m_maskedCellsDueDQGroups[partition]], lumiBlock, monMaskedCellsDueDQ);
auto monMaskedOnFly = Monitored::Scalar<int>("nMaskedChannelsOnFly", nBadChannelsOnFly[partition]);
fill(m_tools[m_maskedOnFlyLBGroups[partition]], lumiBlock, monMaskedOnFly);
auto monMaskedCellsOnFly = Monitored::Scalar<int>("nMaskedCells", nBadCells[partition]);
fill(m_tools[m_maskedCellsLBGroups[partition]], lumiBlock, monMaskedCellsOnFly);
if (!maskedOnFlyDrawers[partition].empty()) { if (!maskedOnFlyDrawers[partition].empty()) {
auto monModule = Monitored::Collection("module", maskedOnFlyDrawers[partition]); auto monModule = Monitored::Collection("module", maskedOnFlyDrawers[partition]);
auto monChannel = Monitored::Collection("channel", maskedOnFlyChannel[partition]); auto monChannel = Monitored::Collection("channel", maskedOnFlyChannel[partition]);
...@@ -857,6 +845,19 @@ StatusCode TileCellMonitorAlgorithm::fillHistograms( const EventContext& ctx ) c ...@@ -857,6 +845,19 @@ StatusCode TileCellMonitorAlgorithm::fillHistograms( const EventContext& ctx ) c
} }
for (int partition = 0; partition < MAX_PART; ++partition) { for (int partition = 0; partition < MAX_PART; ++partition) {
auto monMaskedDueDQ = Monitored::Scalar<int>("nMaskedChannelsDueDQ", nMaskedChannelsDueDQ[partition]);
fill(m_tools[m_maskedDueDQGroups[partition]], lumiBlock, monMaskedDueDQ);
auto monMaskedCellsDueDQ = Monitored::Scalar<int>("nMaskedCellsDueDQ", nMaskedCellsDueDQ[partition]);
fill(m_tools[m_maskedCellsDueDQGroups[partition]], lumiBlock, monMaskedCellsDueDQ);
auto monMaskedOnFly = Monitored::Scalar<int>("nMaskedChannelsOnFly", nBadChannelsOnFly[partition]);
fill(m_tools[m_maskedOnFlyLBGroups[partition]], lumiBlock, monMaskedOnFly);
auto monMaskedCellsOnFly = Monitored::Scalar<int>("nMaskedCells", nBadCells[partition]);
fill(m_tools[m_maskedCellsLBGroups[partition]], lumiBlock, monMaskedCellsOnFly);
if (moduleCorr[partition].numberOfPairs() > 0) { if (moduleCorr[partition].numberOfPairs() > 0) {
const PairBuilder::PairVector pairs = moduleCorr[partition].pairs(); const PairBuilder::PairVector pairs = moduleCorr[partition].pairs();
auto monModule1 = Monitored::Collection("firstModule", pairs, [] (const PairBuilder::XYPair& p) {return (double) p.first;}); auto monModule1 = Monitored::Collection("firstModule", pairs, [] (const PairBuilder::XYPair& p) {return (double) p.first;});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment