Skip to content

Commit

Permalink
Merge pull request #22971 from DryRun/CMSSW_10_1_0_pre2_digisize
Browse files Browse the repository at this point in the history
HCALDQM: Fix digi size reference for summary plots (10_1_X backport)
  • Loading branch information
cmsbuild committed Apr 20, 2018
2 parents c80d306 + c02a24b commit d503623
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 7 deletions.
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

0 comments on commit d503623

Please sign in to comment.