test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Types | Protected Attributes
hcaldqm::DigiRunSummary Class Reference

#include <DigiRunSummary.h>

Inheritance diagram for hcaldqm::DigiRunSummary:
hcaldqm::DQClient hcaldqm::DQModule

Public Member Functions

virtual void beginRun (edm::Run const &, edm::EventSetup const &)
 
 DigiRunSummary (std::string const &, std::string const &, edm::ParameterSet const &)
 
virtual std::vector< flag::FlagendJob (DQMStore::IBooker &, DQMStore::IGetter &)
 
virtual void endLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual ~DigiRunSummary ()
 
- Public Member Functions inherited from hcaldqm::DQClient
 DQClient (std::string const &, std::string const &, edm::ParameterSet const &)
 
virtual ~DQClient ()
 
- Public Member Functions inherited from hcaldqm::DQModule
 DQModule (edm::ParameterSet const &)
 
virtual ~DQModule ()
 

Protected Types

enum  DigiLSFlag {
  fDigiSize = 0, fNChsHF =1, fUnknownIds =2, nLSFlags =3,
  fUniHF =4, fDead =5, nDigiFlag = 6
}
 

Protected Attributes

bool _booked
 
Container2D _cOccupancy_depth
 
electronicsmap::ElectronicsMap _ehashmap
 
filter::HashFilter _filter_FEDHF
 
filter::HashFilter _filter_uTCA
 
filter::HashFilter _filter_VME
 
MonitorElement_meNumEvents
 
double _thresh_unihf
 
std::vector< int > _vFEDsuTCA
 
std::vector< int > _vFEDsVME
 
std::vector< LSSummary_vflagsLS
 
std::vector< uint32_t > _vhashFEDHF
 
std::vector< uint32_t > _vhashuTCA
 
std::vector< uint32_t > _vhashVME
 
ContainerXXX< uint32_t > _xDead
 
ContainerXXX< uint32_t > _xDigiSize
 
ContainerXXX< uint32_t > _xNChs
 
ContainerXXX< uint32_t > _xNChsNominal
 
ContainerXXX< uint32_t > _xUni
 
ContainerXXX< uint32_t > _xUniHF
 
- Protected Attributes inherited from hcaldqm::DQClient
HcalElectronicsMap const * _emap
 
int _maxProcessedLS
 
std::string _taskname
 
int _totalLS
 
std::vector< uint32_t > _vcdaqEids
 
std::vector< int > _vFEDs
 
std::vector< uint32_t > _vhashFEDs
 
ContainerXXX< uint32_t > _xQuality
 
- Protected Attributes inherited from hcaldqm::DQModule
int _currentLS
 
int _debug
 
int _evsPerLS
 
int _evsTotal
 
Logger _logger
 
int _maxLS
 
ModuleType _mtype
 
std::string _name
 
ProcessingType _ptype
 
std::string _runkeyName
 
int _runkeyVal
 
std::string _subsystem
 

Detailed Description

Definition at line 9 of file DigiRunSummary.h.

Member Enumeration Documentation

Enumerator
fDigiSize 
fNChsHF 
fUnknownIds 
nLSFlags 
fUniHF 
fDead 
nDigiFlag 

Definition at line 42 of file DigiRunSummary.h.

Constructor & Destructor Documentation

hcaldqm::DigiRunSummary::DigiRunSummary ( std::string const &  name,
std::string const &  taskname,
edm::ParameterSet const &  ps 
)

Definition at line 5 of file DigiRunSummary.cc.

References _thresh_unihf, and edm::ParameterSet::getUntrackedParameter().

6  :
7  DQClient(name, taskname, ps), _booked(false)
8  {
9  _thresh_unihf = ps.getUntrackedParameter<double>("thresh_unihf",
10  0.2);
11  }
DQClient(std::string const &, std::string const &, edm::ParameterSet const &)
Definition: DQClient.cc:5
virtual hcaldqm::DigiRunSummary::~DigiRunSummary ( )
inlinevirtual

Definition at line 14 of file DigiRunSummary.h.

14 {}

Member Function Documentation

void hcaldqm::DigiRunSummary::beginRun ( edm::Run const &  r,
edm::EventSetup const &  es 
)
virtual

Reimplemented from hcaldqm::DQClient.

Definition at line 13 of file DigiRunSummary.cc.

References _cOccupancy_depth, _ehashmap, hcaldqm::DQClient::_emap, _filter_FEDHF, _filter_uTCA, _filter_VME, hcaldqm::DQModule::_name, hcaldqm::DQModule::_ptype, _vhashFEDHF, _vhashuTCA, _vhashVME, _xDead, _xDigiSize, _xNChs, _xNChsNominal, _xUni, _xUniHF, HcalElectronicsMap::allPrecisionId(), hcaldqm::DQClient::beginRun(), hcaldqm::ContainerXXX< STDTYPE >::book(), hcaldqm::constants::CRATE_uTCA_MIN, hcaldqm::constants::CRATE_VME_MIN, hcaldqm::electronicsmap::fD2EHashMap, hcaldqm::hashfunctions::fdepth, hcaldqm::hashfunctions::fElectronics, hcaldqm::hashfunctions::fFED, hcaldqm::hashfunctions::fFEDSlot, hcaldqm::filter::fFilter, hcaldqm::constants::FIBER_uTCA_MIN1, hcaldqm::constants::FIBER_VME_MIN, hcaldqm::constants::FIBERCH_MIN, hcaldqm::quantity::fieta, hcaldqm::quantity::fiphi, hcaldqm::quantity::fN, hcaldqm::fOffline, hcaldqm::filter::fPreserver, hcaldqm::ContainerXXX< STDTYPE >::get(), hcaldqm::Container2D::initialize(), hcaldqm::ContainerXXX< STDTYPE >::initialize(), hcaldqm::filter::HashFilter::initialize(), hcaldqm::electronicsmap::ElectronicsMap::initialize(), hcaldqm::electronicsmap::ElectronicsMap::lookup(), hcaldqm::constants::SLOT_uTCA_MIN, and hcaldqm::constants::SPIGOT_MIN.

15  {
17 
18  if (_ptype!=fOffline)
19  return;
20 
21  // INITIALIZE WHAT NEEDS TO BE INITIALIZE ONLY ONCE!
26  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
28  _vhashVME); // filter out VME
30  _vhashuTCA); // filter out uTCA
32  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
34  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
36  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
38  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
40  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
42  FIBER_uTCA_MIN1, FIBERCH_MIN, false).rawId());
44  _vhashFEDHF); // preserve only HF FEDs
45 
50 
56 
57  _cOccupancy_depth.initialize(_name, "Occupancy",
59  new quantity::DetectorQuantity(quantity::fieta),
60  new quantity::DetectorQuantity(quantity::fiphi),
61  new quantity::ValueQuantity(quantity::fN));
62 
63  // GET THE NOMINAL NUMBER OF CHANNELS PER FED
64  std::vector<HcalGenericDetId> gids = _emap->allPrecisionId();
65  for (std::vector<HcalGenericDetId>::const_iterator it=gids.begin();
66  it!=gids.end(); ++it)
67  {
68  if (!it->isHcalDetId())
69  continue;
70  HcalDetId did(it->rawId());
72  _xNChsNominal.get(eid)++;
73  }
74  }
ContainerXXX< uint32_t > _xDigiSize
int const CRATE_VME_MIN
Definition: Constants.h:60
ContainerXXX< uint32_t > _xUni
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
virtual void beginRun(edm::Run const &, edm::EventSetup const &)
Definition: DQClient.cc:15
int const SPIGOT_MIN
Definition: Constants.h:85
HcalElectronicsMap const * _emap
Definition: DQClient.h:54
filter::HashFilter _filter_FEDHF
int const FIBER_VME_MIN
Definition: Constants.h:90
int const FIBERCH_MIN
Definition: Constants.h:100
ProcessingType _ptype
Definition: DQModule.h:59
std::vector< uint32_t > _vhashuTCA
filter::HashFilter _filter_uTCA
Container2D _cOccupancy_depth
virtual void initialize(std::string const &folder, hashfunctions::HashType, Quantity *, Quantity *, Quantity *qz=new ValueQuantity(quantity::fN), int debug=0)
Definition: Container2D.cc:32
int const FIBER_uTCA_MIN1
Definition: Constants.h:93
ContainerXXX< uint32_t > _xNChsNominal
std::vector< HcalGenericDetId > allPrecisionId() const
std::string _name
Definition: DQModule.h:57
std::vector< uint32_t > _vhashFEDHF
int const CRATE_uTCA_MIN
Definition: Constants.h:65
std::vector< uint32_t > _vhashVME
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:99
ContainerXXX< uint32_t > _xNChs
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:249
electronicsmap::ElectronicsMap _ehashmap
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:91
virtual void initialize(FilterType ftype, HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:26
filter::HashFilter _filter_VME
Readout chain identification for Hcal.
ContainerXXX< uint32_t > _xUniHF
int const SLOT_uTCA_MIN
Definition: Constants.h:72
ContainerXXX< uint32_t > _xDead
std::vector< flag::Flag > hcaldqm::DigiRunSummary::endJob ( DQMStore::IBooker ib,
DQMStore::IGetter ig 
)
virtual

Reimplemented from hcaldqm::DQClient.

Definition at line 212 of file DigiRunSummary.cc.

References _cOccupancy_depth, _ehashmap, hcaldqm::DQClient::_emap, _filter_uTCA, _filter_VME, hcaldqm::DQClient::_maxProcessedLS, hcaldqm::DQModule::_name, hcaldqm::DQModule::_ptype, hcaldqm::flag::Flag::_state, hcaldqm::DQModule::_subsystem, hcaldqm::DQClient::_taskname, _thresh_unihf, hcaldqm::DQClient::_vFEDs, _vflagsLS, hcaldqm::DQClient::_vhashFEDs, _xDead, _xUni, _xUniHF, HcalElectronicsMap::allPrecisionId(), hcaldqm::ContainerXXX< STDTYPE >::begin(), hcaldqm::ContainerSingle2D::book(), hcaldqm::Container2D::book(), hcaldqm::ContainerXXX< STDTYPE >::end(), hcaldqm::flag::fBAD, fDead, hcaldqm::hashfunctions::fdepth, fDigiSize, hcaldqm::hashfunctions::fFED, hcaldqm::quantity::fFiberuTCAFiberCh, hcaldqm::quantity::fFiberVMEFiberCh, hcaldqm::flag::fGOOD, hcaldqm::quantity::fieta, hcaldqm::Container2D::fill(), hcaldqm::quantity::fiphi, hcaldqm::quantity::fN, fNChsHF, hcaldqm::fOffline, hcaldqm::quantity::fSlotuTCA, hcaldqm::quantity::fSpigot, hcaldqm::quantity::fState, fUniHF, hcaldqm::ContainerXXX< STDTYPE >::get(), hcaldqm::Container2D::getBinContent(), HcalForward, reco::if(), hcaldqm::Container2D::initialize(), hcaldqm::ContainerSingle2D::initialize(), hcaldqm::utilities::isFEDHBHE(), hcaldqm::utilities::isFEDHF(), hcaldqm::utilities::isFEDHO(), hcaldqm::Container1D::load(), hcaldqm::electronicsmap::ElectronicsMap::lookup(), nDigiFlag, nLSFlags, hcaldqm::ContainerXXX< STDTYPE >::reset(), hcaldqm::Container2D::setBinContent(), hcaldqm::ContainerSingle2D::setBinContent(), and HcalDetId::subdet().

214  {
215  if (_ptype!=fOffline)
216  return std::vector<flag::Flag>();
217 
219 
220  // PREPARE LS AND RUN BASED FLAGS TO USE IT FOR BOOKING
221  std::vector<flag::Flag> vflagsPerLS;
222  std::vector<flag::Flag> vflagsPerRun;
223  vflagsPerLS.resize(nLSFlags);
224  vflagsPerRun.resize(nDigiFlag-nLSFlags+1);
225  vflagsPerLS[fDigiSize]=flag::Flag("DigiSize");
226  vflagsPerLS[fNChsHF]=flag::Flag("NChsHF");
227  vflagsPerRun[fDigiSize]=flag::Flag("DigiSize");
228  vflagsPerRun[fNChsHF]=flag::Flag("NChsHF");
229  vflagsPerRun[fUniHF-nLSFlags+1]=flag::Flag("UniSlotHF");
230  vflagsPerRun[fDead-nLSFlags+1]=flag::Flag("Dead");
231 
232  // INITIALIZE SUMMARY CONTAINERS
233  ContainerSingle2D cSummaryvsLS;
234  Container2D cSummaryvsLS_FED;
235  cSummaryvsLS.initialize(_name, "SummaryvsLS",
236  new quantity::LumiSection(_maxProcessedLS),
237  new quantity::FEDQuantity(_vFEDs),
238  new quantity::ValueQuantity(quantity::fState));
239  cSummaryvsLS_FED.initialize(_name, "SummaryvsLS",
241  new quantity::LumiSection(_maxProcessedLS),
242  new quantity::FlagQuantity(vflagsPerLS),
243  new quantity::ValueQuantity(quantity::fState));
244  cSummaryvsLS_FED.book(ib, _emap, _subsystem);
245  cSummaryvsLS.book(ib, _subsystem);
246 
247  // INITIALIZE CONTAINERS WE NEED TO LOAD or BOOK
248  Container2D cOccupancyCut_depth;
249  Container2D cDead_depth, cDead_FEDVME, cDead_FEDuTCA;
250  cOccupancyCut_depth.initialize(_taskname, "OccupancyCut",
252  new quantity::DetectorQuantity(quantity::fieta),
253  new quantity::DetectorQuantity(quantity::fiphi),
254  new quantity::ValueQuantity(quantity::fN));
255  cDead_depth.initialize(_name, "Dead",
257  new quantity::DetectorQuantity(quantity::fieta),
258  new quantity::DetectorQuantity(quantity::fiphi),
259  new quantity::ValueQuantity(quantity::fN));
260  cDead_FEDVME.initialize(_name, "Dead",
262  new quantity::ElectronicsQuantity(quantity::fSpigot),
263  new quantity::ElectronicsQuantity(quantity::fFiberVMEFiberCh),
264  new quantity::ValueQuantity(quantity::fN));
265  cDead_FEDuTCA.initialize(_name, "Dead",
267  new quantity::ElectronicsQuantity(quantity::fSlotuTCA),
268  new quantity::ElectronicsQuantity(quantity::fFiberuTCAFiberCh),
269  new quantity::ValueQuantity(quantity::fN));
270 
271  // LOAD
272  cOccupancyCut_depth.load(ig, _emap, _subsystem);
273  cDead_depth.book(ib, _emap, _subsystem);
274  cDead_FEDVME.book(ib, _emap, _filter_uTCA, _subsystem);
275  cDead_FEDuTCA.book(ib, _emap, _filter_VME, _subsystem);
276 
277  // ANALYZE RUN BASED QUANTITIES
278  std::vector<HcalGenericDetId> gids = _emap->allPrecisionId();
279  for (std::vector<HcalGenericDetId>::const_iterator it=gids.begin();
280  it!=gids.end(); ++it)
281  {
282  if (!it->isHcalDetId())
283  continue;
284 
285  HcalDetId did = HcalDetId(it->rawId());
287 
288  if (_cOccupancy_depth.getBinContent(did)<1)
289  {
290  _xDead.get(eid)++;
291  cDead_depth.fill(did);
292  eid.isVMEid()?cDead_FEDVME.fill(eid):cDead_FEDuTCA.fill(eid);
293  }
294  if (did.subdet()==HcalForward)
295  _xUniHF.get(eid)+=cOccupancyCut_depth.getBinContent(did);
296  }
297  // ANALYZE FOR HF SLOT UNIFORMITY
298  for (uintCompactMap::const_iterator it=_xUniHF.begin();
299  it!=_xUniHF.end(); ++it)
300  {
301  uint32_t hash1 = it->first;
302  HcalElectronicsId eid1(hash1);
303  double x1 = it->second;
304 
305  for (uintCompactMap::const_iterator jt=_xUniHF.begin();
306  jt!=_xUniHF.end(); ++jt)
307  {
308  if (jt==it)
309  continue;
310 
311  double x2 = jt->second;
312  if (x2==0)
313  continue;
314  if (x1/x2<_thresh_unihf)
315  _xUni.get(eid1)++;
316  }
317  }
318 
319  /*
320  * Iterate over each FED
321  * Iterate over each LS Summary
322  * Iterate over all flags
323  * set...
324  */
325  // iterate over all FEDs
326  std::vector<flag::Flag> sumflags;
327  int ifed=0;
328  for (std::vector<uint32_t>::const_iterator it=_vhashFEDs.begin();
329  it!=_vhashFEDs.end(); ++it)
330  {
331  flag::Flag fSumRun("DIGI"); // summary flag for this FED
332  flag::Flag ffDead("Dead");
333  flag::Flag ffUniSlotHF("UniSlotHF");
334  HcalElectronicsId eid(*it);
335 
336  // ITERATE OVER EACH LS
337  for (std::vector<LSSummary>::const_iterator itls=_vflagsLS.begin();
338  itls!=_vflagsLS.end(); ++itls)
339  {
340  int iflag=0;
341  flag::Flag fSumLS("DIGI");
342  for (std::vector<flag::Flag>::const_iterator ft=
343  itls->_vflags[ifed].begin(); ft!=itls->_vflags[ifed].end();
344  ++ft)
345  {
346  cSummaryvsLS_FED.setBinContent(eid, itls->_LS, int(iflag),
347  ft->_state);
348  fSumLS+=(*ft);
349  iflag++;
350  }
351  cSummaryvsLS.setBinContent(eid, itls->_LS, fSumLS._state);
352  fSumRun+=fSumLS;
353  }
354 
355  // EVALUATE RUN BASED FLAGS
356  // NOTE, THAT IF THE FED IS NOT @cDAQ fSumRun state will be fNCDAQ
357  if (utilities::isFEDHBHE(eid) || utilities::isFEDHF(eid) ||
358  utilities::isFEDHO(eid))
359  {
360  if (_xDead.get(eid)>0)
361  ffDead._state = flag::fBAD;
362  else
363  ffDead._state = flag::fGOOD;
364  if (utilities::isFEDHF(eid))
365  {
366  if (_xUni.get(eid)>0)
367  ffUniSlotHF._state = flag::fBAD;
368  else
369  ffUniSlotHF._state = flag::fGOOD;
370  }
371  }
372  fSumRun+=ffDead+ffUniSlotHF;
373 
374  // push the summary flag for this FED for the Whole Run
375  sumflags.push_back(fSumRun);
376 
377  // increment fed
378  ifed++;
379  }
380 
381  return sumflags;
382  }
std::vector< LSSummary > _vflagsLS
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:49
ContainerXXX< uint32_t > _xUni
std::vector< uint32_t > _vhashFEDs
Definition: DQClient.h:58
virtual CompactMap::const_iterator begin()
Definition: ContainerXXX.h:75
std::string _taskname
Definition: DQClient.h:47
HcalElectronicsMap const * _emap
Definition: DQClient.h:54
virtual void reset()
Definition: ContainerXXX.h:366
virtual CompactMap::const_iterator end()
Definition: ContainerXXX.h:77
ProcessingType _ptype
Definition: DQModule.h:59
filter::HashFilter _filter_uTCA
Container2D _cOccupancy_depth
std::vector< HcalGenericDetId > allPrecisionId() const
std::string _name
Definition: DQModule.h:57
bool isFEDHBHE(HcalElectronicsId const &)
Definition: Utilities.cc:131
std::vector< int > _vFEDs
Definition: DQClient.h:57
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:249
if(dp >Float(M_PI)) dp-
electronicsmap::ElectronicsMap _ehashmap
std::string _subsystem
Definition: DQModule.h:64
bool isFEDHO(HcalElectronicsId const &)
Definition: Utilities.cc:178
filter::HashFilter _filter_VME
Readout chain identification for Hcal.
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:153
ContainerXXX< uint32_t > _xUniHF
virtual double getBinContent(HcalDetId const &)
Definition: Container2D.cc:184
ContainerXXX< uint32_t > _xDead
void hcaldqm::DigiRunSummary::endLuminosityBlock ( DQMStore::IBooker ib,
DQMStore::IGetter ig,
edm::LuminosityBlock const &  lb,
edm::EventSetup const &  es 
)
virtual

Reimplemented from hcaldqm::DQClient.

Definition at line 79 of file DigiRunSummary.cc.

References _booked, _cOccupancy_depth, hcaldqm::DQModule::_currentLS, _ehashmap, hcaldqm::DQClient::_emap, hcaldqm::DQClient::LSSummary::_LS, _meNumEvents, hcaldqm::DQModule::_ptype, hcaldqm::DQModule::_subsystem, hcaldqm::DQClient::_taskname, hcaldqm::DQClient::_vcdaqEids, hcaldqm::DQClient::LSSummary::_vflags, _vflagsLS, hcaldqm::DQClient::_vhashFEDs, _xDigiSize, _xNChs, _xNChsNominal, HcalElectronicsMap::allPrecisionId(), hcaldqm::Container2D::book(), DQMStore::IBooker::book1D(), hcaldqm::constants::DIGISIZE, hcaldqm::DQClient::endLuminosityBlock(), hcaldqm::flag::fBAD, hcaldqm::hashfunctions::fdepth, hcaldqm::quantity::fDigiSize, fDigiSize, hcaldqm::hashfunctions::fFED, hcaldqm::flag::fGOOD, hcaldqm::quantity::fieta, hcaldqm::Container2D::fill(), spr::find(), hcaldqm::quantity::fiphi, hcaldqm::quantity::fN, hcaldqm::flag::fNCDAQ, fNChsHF, hcaldqm::fOffline, fUnknownIds, hcaldqm::ContainerXXX< STDTYPE >::get(), DQMStore::IGetter::get(), hcaldqm::Container2D::getBinContent(), MonitorElement::getBinContent(), hcaldqm::Container1D::getMean(), hcaldqm::Container1D::getRMS(), MonitorElement::getTH1(), hcaldqm::Container2D::initialize(), hcaldqm::utilities::isFEDHBHE(), hcaldqm::utilities::isFEDHF(), hcaldqm::utilities::isFEDHO(), hcaldqm::Container1D::load(), hcaldqm::electronicsmap::ElectronicsMap::lookup(), nLSFlags, simpleEdmComparison::numEvents, hcaldqm::ContainerXXX< STDTYPE >::reset(), MonitorElement::setBinContent(), DQMStore::IBooker::setCurrentFolder(), and HcalDetId::subdet().

82  {
83  DQClient::endLuminosityBlock(ib, ig, lb, es);
84 
85  if (_ptype!=fOffline)
86  return;
87 
88  LSSummary lssum;
89  lssum._LS=_currentLS;
90 
92 
93  // INITIALIZE LUMI BASED HISTOGRAMS
94  Container2D cDigiSize_FED, cOccupancy_depth;
95  cDigiSize_FED.initialize(_taskname, "DigiSize",
97  new quantity::ValueQuantity(quantity::fDigiSize),
98  new quantity::ValueQuantity(quantity::fN));
99  cOccupancy_depth.initialize(_taskname, "Occupancy",
101  new quantity::DetectorQuantity(quantity::fieta),
102  new quantity::DetectorQuantity(quantity::fiphi),
103  new quantity::ValueQuantity(quantity::fN));
104 
105  // LOAD LUMI BASED HISTOGRAMS
106  cOccupancy_depth.load(ig, _emap, _subsystem);
107  cDigiSize_FED.load(ig, _emap, _subsystem);
108  MonitorElement *meNumEvents = ig.get(_subsystem+
109  "/RunInfo/NumberOfEvents");
110  int numEvents = meNumEvents->getBinContent(1);
111  bool unknownIdsPresent = ig.get(_subsystem+"/"
112  +_taskname+"/UnknownIds")->getBinContent(1)>0;
113 
114  // book the Numer of Events - set axis extendable
115  if (!_booked)
116  {
118  _meNumEvents = ib.book1D("NumberOfEvents", "NumberOfEvents",
119  1000, 1, 1001); // 1000 to start with
120  _meNumEvents->getTH1()->SetCanExtend(TH1::kXaxis);
121 
123  _booked=true;
124  }
126 
127  // ANALYZE THIS LS for LS BASED FLAGS
128  std::vector<HcalGenericDetId> gids = _emap->allPrecisionId();
129  for (std::vector<HcalGenericDetId>::const_iterator it=gids.begin();
130  it!=gids.end(); ++it)
131  {
132  if (!it->isHcalDetId())
133  continue;
134 
135  HcalDetId did = HcalDetId(it->rawId());
137 
138  cOccupancy_depth.getBinContent(did)>0?_xNChs.get(eid)++:
139  _xNChs.get(eid)+=0;
140  _cOccupancy_depth.fill(did, cOccupancy_depth.getBinContent(did));
141  // digi size
142  cDigiSize_FED.getMean(eid)!=
143  constants::DIGISIZE[did.subdet()-1]?
144  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
145  cDigiSize_FED.getRMS(eid)!=0?
146  _xDigiSize.get(eid)++:_xDigiSize.get(eid)+=0;
147  }
148 
149  // GENERATE SUMMARY AND STORE IT
150  std::vector<flag::Flag> vtmpflags;
151  vtmpflags.resize(nLSFlags);
152  vtmpflags[fDigiSize]=flag::Flag("DigiSize");
153  vtmpflags[fNChsHF]=flag::Flag("NChsHF");
154  vtmpflags[fUnknownIds]=flag::Flag("UnknownIds");
155  for (std::vector<uint32_t>::const_iterator it=_vhashFEDs.begin();
156  it!=_vhashFEDs.end(); ++it)
157  {
158  HcalElectronicsId eid(*it);
159 
160  // reset all the tmp flags to fNA
161  // MUST DO IT NOW! AS NCDAQ MIGHT OVERWRITE IT!
162  for (std::vector<flag::Flag>::iterator ft=vtmpflags.begin();
163  ft!=vtmpflags.end(); ++ft)
164  ft->reset();
165 
166  std::vector<uint32_t>::const_iterator cit=std::find(
167  _vcdaqEids.begin(), _vcdaqEids.end(), *it);
168  if (cit==_vcdaqEids.end())
169  {
170  // was not @cDAQ, set all the flags for this FED as fNCDAQ
171  for (std::vector<flag::Flag>::iterator ft=vtmpflags.begin();
172  ft!=vtmpflags.end(); ++ft)
173  ft->_state = flag::fNCDAQ;
174 
175  // push all the flags for this FED
176  // IMPORTANT!!!
177  lssum._vflags.push_back(vtmpflags);
178  continue;
179  }
180 
181  if (utilities::isFEDHBHE(eid) || utilities::isFEDHF(eid) ||
182  utilities::isFEDHO(eid))
183  {
184  if (_xDigiSize.get(eid)>0)
185  vtmpflags[fDigiSize]._state = flag::fBAD;
186  else
187  vtmpflags[fDigiSize]._state = flag::fGOOD;
188  if (utilities::isFEDHF(eid))
189  {
190  if (_xNChs.get(eid)!=_xNChsNominal.get(eid))
191  vtmpflags[fNChsHF]._state = flag::fBAD;
192  else
193  vtmpflags[fNChsHF]._state = flag::fGOOD;
194  }
195  }
196  if (unknownIdsPresent)
197  vtmpflags[fUnknownIds]._state = flag::fBAD;
198  else
199  vtmpflags[fUnknownIds]._state = flag::fGOOD;
200 
201  // push all the flags for this FED
202  lssum._vflags.push_back(vtmpflags);
203  }
204 
205  // push all the flags for all FEDs for this LS
206  _vflagsLS.push_back(lssum);
207  }
std::vector< uint32_t > _vcdaqEids
Definition: DQClient.h:64
std::vector< LSSummary > _vflagsLS
MonitorElement * _meNumEvents
void setBinContent(int binx, double content)
set content of bin (1-D)
ContainerXXX< uint32_t > _xDigiSize
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:49
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:304
std::vector< uint32_t > _vhashFEDs
Definition: DQClient.h:58
std::string _taskname
Definition: DQClient.h:47
HcalElectronicsMap const * _emap
Definition: DQClient.h:54
virtual void reset()
Definition: ContainerXXX.h:366
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
virtual void fill(HcalDetId const &)
Definition: Container2D.cc:59
ProcessingType _ptype
Definition: DQModule.h:59
Container2D _cOccupancy_depth
virtual void endLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: DQClient.cc:105
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
ContainerXXX< uint32_t > _xNChsNominal
TH1 * getTH1(void) const
std::vector< HcalGenericDetId > allPrecisionId() const
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:276
bool isFEDHBHE(HcalElectronicsId const &)
Definition: Utilities.cc:131
virtual void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="")
Definition: Container2D.cc:895
int const DIGISIZE[SUBDET_NUM]
Definition: Constants.h:132
ContainerXXX< uint32_t > _xNChs
double getBinContent(int binx) const
get content of bin (1-D)
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:249
electronicsmap::ElectronicsMap _ehashmap
std::string _subsystem
Definition: DQModule.h:64
bool isFEDHO(HcalElectronicsId const &)
Definition: Utilities.cc:178
Readout chain identification for Hcal.
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:153

Member Data Documentation

bool hcaldqm::DigiRunSummary::_booked
protected

Definition at line 35 of file DigiRunSummary.h.

Referenced by endLuminosityBlock().

Container2D hcaldqm::DigiRunSummary::_cOccupancy_depth
protected

Definition at line 34 of file DigiRunSummary.h.

Referenced by beginRun(), endJob(), and endLuminosityBlock().

electronicsmap::ElectronicsMap hcaldqm::DigiRunSummary::_ehashmap
protected

Definition at line 28 of file DigiRunSummary.h.

Referenced by beginRun(), endJob(), and endLuminosityBlock().

filter::HashFilter hcaldqm::DigiRunSummary::_filter_FEDHF
protected

Definition at line 32 of file DigiRunSummary.h.

Referenced by beginRun().

filter::HashFilter hcaldqm::DigiRunSummary::_filter_uTCA
protected

Definition at line 32 of file DigiRunSummary.h.

Referenced by beginRun(), and endJob().

filter::HashFilter hcaldqm::DigiRunSummary::_filter_VME
protected

Definition at line 32 of file DigiRunSummary.h.

Referenced by beginRun(), and endJob().

MonitorElement* hcaldqm::DigiRunSummary::_meNumEvents
protected

Definition at line 36 of file DigiRunSummary.h.

Referenced by endLuminosityBlock().

double hcaldqm::DigiRunSummary::_thresh_unihf
protected

Definition at line 26 of file DigiRunSummary.h.

Referenced by DigiRunSummary(), and endJob().

std::vector<int> hcaldqm::DigiRunSummary::_vFEDsuTCA
protected

Definition at line 31 of file DigiRunSummary.h.

std::vector<int> hcaldqm::DigiRunSummary::_vFEDsVME
protected

Definition at line 31 of file DigiRunSummary.h.

std::vector<LSSummary> hcaldqm::DigiRunSummary::_vflagsLS
protected

Definition at line 24 of file DigiRunSummary.h.

Referenced by endJob(), and endLuminosityBlock().

std::vector<uint32_t> hcaldqm::DigiRunSummary::_vhashFEDHF
protected

Definition at line 30 of file DigiRunSummary.h.

Referenced by beginRun().

std::vector<uint32_t> hcaldqm::DigiRunSummary::_vhashuTCA
protected

Definition at line 30 of file DigiRunSummary.h.

Referenced by beginRun().

std::vector<uint32_t> hcaldqm::DigiRunSummary::_vhashVME
protected

Definition at line 30 of file DigiRunSummary.h.

Referenced by beginRun().

ContainerXXX<uint32_t> hcaldqm::DigiRunSummary::_xDead
protected

Definition at line 38 of file DigiRunSummary.h.

Referenced by beginRun(), and endJob().

ContainerXXX<uint32_t> hcaldqm::DigiRunSummary::_xDigiSize
protected

Definition at line 38 of file DigiRunSummary.h.

Referenced by beginRun(), and endLuminosityBlock().

ContainerXXX<uint32_t> hcaldqm::DigiRunSummary::_xNChs
protected

Definition at line 38 of file DigiRunSummary.h.

Referenced by beginRun(), and endLuminosityBlock().

ContainerXXX<uint32_t> hcaldqm::DigiRunSummary::_xNChsNominal
protected

Definition at line 38 of file DigiRunSummary.h.

Referenced by beginRun(), and endLuminosityBlock().

ContainerXXX<uint32_t> hcaldqm::DigiRunSummary::_xUni
protected

Definition at line 38 of file DigiRunSummary.h.

Referenced by beginRun(), and endJob().

ContainerXXX<uint32_t> hcaldqm::DigiRunSummary::_xUniHF
protected

Definition at line 38 of file DigiRunSummary.h.

Referenced by beginRun(), and endJob().