Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HCALDQM: Fix digi size reference for summary plots (10_1_X backport) #22971

Merged
merged 9 commits into from Apr 20, 2018
1 change: 0 additions & 1 deletion DQM/HcalCommon/interface/Constants.h
Expand Up @@ -180,7 +180,6 @@ namespace hcaldqm
int const HF = 4;
int const SUBDET_NUM = 4;
int const TPSUBDET_NUM = 2;
int const DIGISIZE[SUBDET_NUM] = {10, 10, 10, 3};
std::string const SUBDET_NAME[SUBDET_NUM]={"HB", "HE", "HO", "HF"};
std::string const SUBDETPM_NAME[2*SUBDET_NUM] = { "HBM", "HBP",
"HEM", "HEP", "HOM", "HOP", "HFM", "HFP"};
Expand Down
3 changes: 3 additions & 0 deletions DQM/HcalTasks/interface/DigiRunSummary.h
Expand Up @@ -3,6 +3,7 @@

#include "DQM/HcalCommon/interface/DQClient.h"
#include "DQM/HcalCommon/interface/ElectronicsMap.h"
#include "DataFormats/HcalDetId/interface/HcalSubdetector.h"

namespace hcaldqm
{
Expand Down Expand Up @@ -38,6 +39,8 @@ namespace hcaldqm
ContainerXXX<uint32_t> _xDead, _xDigiSize, _xUniHF,
_xUni, _xNChs, _xNChsNominal;

std::map<HcalSubdetector, uint32_t> _refDigiSize;

// flag enum
enum DigiLSFlag
{
Expand Down
2 changes: 2 additions & 0 deletions DQM/HcalTasks/interface/DigiTask.h
Expand Up @@ -69,6 +69,8 @@ class DigiTask : public hcaldqm::DQTask
// hashes/FED vectors
std::vector<uint32_t> _vhashFEDs;

std::map<HcalSubdetector, int> _refDigiSize;

// emap
hcaldqm::electronicsmap::ElectronicsMap _ehashmap; // online only
hcaldqm::electronicsmap::ElectronicsMap _dhashmap;
Expand Down
15 changes: 11 additions & 4 deletions DQM/HcalTasks/plugins/DigiTask.cc
Expand Up @@ -34,6 +34,13 @@ DigiTask::DigiTask(edm::ParameterSet const& ps):
_vflags[fUnknownIds]=hcaldqm::flag::Flag("UnknownIds");

_qie10InConditions = ps.getUntrackedParameter<bool>("qie10InConditions", true);

// Get reference digi sizes. Convert from unsigned to signed int, because <digi>::size()/samples() return ints for some reason.
std::vector<uint32_t> vrefDigiSize = ps.getUntrackedParameter<std::vector<uint32_t>>("refDigiSize");
_refDigiSize[HcalBarrel] = (int)vrefDigiSize[0];
_refDigiSize[HcalEndcap] = (int)vrefDigiSize[1];
_refDigiSize[HcalOuter] = (int)vrefDigiSize[2];
_refDigiSize[HcalForward] = (int)vrefDigiSize[3];
}

/* virtual */ void DigiTask::bookHistograms(DQMStore::IBooker& ib,
Expand Down Expand Up @@ -645,7 +652,7 @@ DigiTask::DigiTask(edm::ParameterSet const& ps):
if (_ptype==fOnline)
{
_cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
it->size()!=constants::DIGISIZE[did.subdet()-1]?
it->size()!=_refDigiSize[did.subdet()]?
_xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
_cOccupancyvsiphi_SubdetPM.fill(did);
_cOccupancyvsieta_Subdet.fill(did);
Expand Down Expand Up @@ -768,7 +775,7 @@ DigiTask::DigiTask(edm::ParameterSet const& ps):
if (_ptype==fOnline)
{
_cDigiSizevsLS_FED.fill(eid, _currentLS, digi.samples());
digi.samples()!=constants::DIGISIZE[did.subdet()-1]?
digi.samples()!=_refDigiSize[did.subdet()]?
_xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
_cOccupancyvsiphi_SubdetPM.fill(did);
_cOccupancyvsieta_Subdet.fill(did);
Expand Down Expand Up @@ -895,7 +902,7 @@ DigiTask::DigiTask(edm::ParameterSet const& ps):
if (_ptype==fOnline)
{
_cDigiSizevsLS_FED.fill(eid, _currentLS, it->size());
it->size()!=constants::DIGISIZE[did.subdet()-1]?
it->size()!=_refDigiSize[did.subdet()]?
_xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
_cOccupancyvsiphi_SubdetPM.fill(did);
_cOccupancyvsieta_Subdet.fill(did);
Expand Down Expand Up @@ -1039,7 +1046,7 @@ DigiTask::DigiTask(edm::ParameterSet const& ps):
{
_xNChs.get(eid)++;
_cDigiSizevsLS_FED.fill(eid, _currentLS, digi.samples());
digi.samples()!=constants::DIGISIZE[did.subdet()-1]?
digi.samples()!=_refDigiSize[did.subdet()]?
_xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
_cOccupancyvsiphi_SubdetPM.fill(did);
_cOccupancyvsieta_Subdet.fill(did);
Expand Down
8 changes: 8 additions & 0 deletions DQM/HcalTasks/python/DigiTask.py
Expand Up @@ -27,7 +27,15 @@
thresh_unifh = cms.untracked.double(0.2),

qie10InConditions = cms.untracked.bool(False),

# Reference digi sizes
refDigiSize = cms.untracked.vuint32(10, 10, 10, 4), # HB, HE, HO, HF
)

from Configuration.Eras.Modifier_run2_HF_2017_cff import run2_HF_2017
run2_HF_2017.toModify(digiTask, qie10InConditions=cms.untracked.bool(True))
run2_HF_2017.toModify(digiTask, refDigiSize=cms.untracked.vuint32(10, 10, 10, 3))

from Configuration.Eras.Modifier_run2_HCAL_2018_cff import run2_HCAL_2018
run2_HCAL_2018.toModify(digiTask, qie10InConditions=cms.untracked.bool(True))
run2_HCAL_2018.toModify(digiTask, refDigiSize=cms.untracked.vuint32(8, 8, 10, 3))
4 changes: 3 additions & 1 deletion DQM/HcalTasks/python/HcalOfflineHarvesting.py
@@ -1,5 +1,6 @@
import FWCore.ParameterSet.Config as cms
from DQMServices.Core.DQMEDHarvester import DQMEDHarvester
from DQM.HcalTasks.DigiTask import digiTask

hcalOfflineHarvesting = DQMEDHarvester(
"HcalOfflineHarvesting",
Expand All @@ -17,5 +18,6 @@
thresh_FGMsmRate_high = cms.untracked.double(0.2),
thresh_FGMsmRate_low = cms.untracked.double(0.1),
thresh_unihf = cms.untracked.double(0.2),
thresh_tcds = cms.untracked.double(1.5)
thresh_tcds = cms.untracked.double(1.5),
refDigiSize = digiTask.refDigiSize,
)
2 changes: 2 additions & 0 deletions DQM/HcalTasks/python/HcalOnlineHarvesting.py
@@ -1,5 +1,6 @@
import FWCore.ParameterSet.Config as cms
from DQMServices.Core.DQMEDHarvester import DQMEDHarvester
from DQM.HcalTasks.DigiTask import digiTask

hcalOnlineHarvesting = DQMEDHarvester(
"HcalOnlineHarvesting",
Expand All @@ -11,4 +12,5 @@
ptype = cms.untracked.int32(0),
mtype = cms.untracked.bool(True),
subsystem = cms.untracked.string("Hcal"),
refDigiSize = digiTask.refDigiSize,
)
8 changes: 7 additions & 1 deletion DQM/HcalTasks/src/DigiRunSummary.cc
Expand Up @@ -8,6 +8,12 @@ namespace hcaldqm
{
_thresh_unihf = ps.getUntrackedParameter<double>("thresh_unihf",
0.2);

std::vector<uint32_t> vrefDigiSize = ps.getUntrackedParameter<std::vector<uint32_t>>("refDigiSize");
_refDigiSize[HcalBarrel] = vrefDigiSize[0];
_refDigiSize[HcalEndcap] = vrefDigiSize[1];
_refDigiSize[HcalOuter] = vrefDigiSize[2];
_refDigiSize[HcalForward] = vrefDigiSize[3];
}

/* virtual */ void DigiRunSummary::beginRun(edm::Run const& r,
Expand Down Expand Up @@ -140,7 +146,7 @@ namespace hcaldqm
_cOccupancy_depth.fill(did, cOccupancy_depth.getBinContent(did));
// digi size
cDigiSize_Crate.getMean(eid)!=
constants::DIGISIZE[did.subdet()-1]?
_refDigiSize[did.subdet()]?
_xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
cDigiSize_Crate.getRMS(eid)!=0?
_xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
Expand Down