CMS 3D CMS Logo

RawRunSummary.cc
Go to the documentation of this file.
2 
3 namespace hcaldqm {
4  using namespace constants;
6  std::string const& taskname,
7  edm::ParameterSet const& ps,
9  : DQClient(name, taskname, ps, iC), _booked(false) {}
10 
11  /* virtual */ void RawRunSummary::beginRun(edm::Run const& r, edm::EventSetup const& es) {
12  DQClient::beginRun(r, es);
13 
14  if (_ptype != fOffline)
15  return;
16 
17  // INITIALIZE WHAT NEEDS TO BE INITIALIZE ONLY ONCE!
19  _vhashVME.push_back(
23  _vhashVME); // filter out VME
25  _vhashuTCA); // filter out uTCA
26 
27  // INTIALIZE CONTAINERS ACTING AS HOLDERS OF RUN INFORAMTION
29  "EvnMsm",
34  0);
36  "BcnMsm",
41  0);
43  "EvnMsm",
48  0);
50  "BcnMsm",
55  0);
57  "BadQuality",
62  0);
63 
67  // BOOK CONTAINERSXXX
68  _xEvn.book(_emap);
69  _xBcn.book(_emap);
70  _xBadQ.book(_emap);
71  }
72 
73  /*
74  * END OF LUMINOSITY HARVESTING
75  * RAW FORMAT HAS ONLY LUMI BASED FLAGS!
76  * THEREFORE STEPS ARE:
77  * 1) LOAD CONTAINERS YOU NEED (MUST BE LUMI BASED)
78  * 2) ANALYZE
79  * 3) GENERATE SUMMARY FLAGS AND PUSH THEM
80  */
83  edm::LuminosityBlock const& lb,
84  edm::EventSetup const& es) {
85  DQClient::endLuminosityBlock(ib, ig, lb, es);
86 
87  if (_ptype != fOffline)
88  return;
89 
90  // INITIALIZE WHAT YOU NEED
91  LSSummary lssum; // summary for this LS
92  lssum._LS = _currentLS; // set the LS
93 
94  // RESET CONTAINERS USED FOR ANALYSIS OF THIS LS
95  _xEvn.reset();
96  _xBcn.reset();
97  _xBadQ.reset();
98 
99  // INITIALIZE LUMI BASED HISTOGRAMS
100  Container2D cEvnMsm_ElectronicsVME, cEvnMsm_ElectronicsuTCA;
101  Container2D cBcnMsm_ElectronicsVME, cBcnMsm_ElectronicsuTCA;
102  Container2D cBadQuality_depth;
103  cEvnMsm_ElectronicsVME.initialize(_taskname,
104  "EvnMsm",
109  0);
110  cBcnMsm_ElectronicsVME.initialize(_taskname,
111  "BcnMsm",
116  0);
117  cEvnMsm_ElectronicsuTCA.initialize(_taskname,
118  "EvnMsm",
123  0);
124  cBcnMsm_ElectronicsuTCA.initialize(_taskname,
125  "BcnMsm",
130  0);
131  cBadQuality_depth.initialize(_taskname,
132  "BadQuality",
137  0);
138 
139  // LOAD LUMI BASED HISTOGRAMS
140  cEvnMsm_ElectronicsVME.load(ig, _emap, _filter_uTCA, _subsystem);
141  cBcnMsm_ElectronicsVME.load(ig, _emap, _filter_uTCA, _subsystem);
142  cEvnMsm_ElectronicsuTCA.load(ig, _emap, _filter_VME, _subsystem);
143  cBcnMsm_ElectronicsuTCA.load(ig, _emap, _filter_VME, _subsystem);
144  cBadQuality_depth.load(ig, _emap, _subsystem);
145  MonitorElement* meNumEvents = ig.get(_subsystem + "/RunInfo/NumberOfEvents");
146  int numEvents = meNumEvents->getBinContent(1);
147 
148  // BOOK for the very first time
149  if (!_booked) {
155  _booked = true;
156  }
157 
158  // ANALYZE THIS LS
159  // iterate over all channels
160  std::vector<HcalGenericDetId> gids = _emap->allPrecisionId();
161  for (std::vector<HcalGenericDetId>::const_iterator it = gids.begin(); it != gids.end(); ++it) {
162  if (!it->isHcalDetId())
163  continue;
164  HcalDetId did = HcalDetId(it->rawId());
166 
167  _xBadQ.get(eid) += cBadQuality_depth.getBinContent(did);
168  _cBadQuality_depth.fill(did, cBadQuality_depth.getBinContent(did));
169  if (eid.isVMEid()) {
170  _xEvn.get(eid) += cEvnMsm_ElectronicsVME.getBinContent(eid);
171  _xBcn.get(eid) += cBcnMsm_ElectronicsVME.getBinContent(eid);
172 
173  _cEvnMsm_ElectronicsVME.fill(eid, cEvnMsm_ElectronicsVME.getBinContent(eid));
174  _cBcnMsm_ElectronicsVME.fill(eid, cBcnMsm_ElectronicsVME.getBinContent(eid));
175  } else {
176  _xEvn.get(eid) += cEvnMsm_ElectronicsuTCA.getBinContent(eid);
177  _xBcn.get(eid) += cBcnMsm_ElectronicsuTCA.getBinContent(eid);
178 
179  _cEvnMsm_ElectronicsuTCA.fill(eid, cEvnMsm_ElectronicsuTCA.getBinContent(eid));
180  _cBcnMsm_ElectronicsuTCA.fill(eid, cBcnMsm_ElectronicsuTCA.getBinContent(eid));
181  }
182  }
183 
184  // GENERATE THE SUMMARY FOR THIS LS AND STORE IT
185  std::vector<flag::Flag> vtmpflags; // tmp summary flags vector
186  vtmpflags.resize(nRawFlag);
187  vtmpflags[fEvnMsm] = flag::Flag("EvnMsm");
188  vtmpflags[fBcnMsm] = flag::Flag("BcnMsm");
189  vtmpflags[fBadQ] = flag::Flag("BadQ");
190  for (std::vector<uint32_t>::const_iterator it = _vhashFEDs.begin(); it != _vhashFEDs.end(); ++it) {
191  HcalElectronicsId eid(*it);
192 
193  // reset all the tmp flags to fNA
194  // MUST DO IT NOW! AS NCDAQ MIGHT OVERWRITE IT!
195  for (std::vector<flag::Flag>::iterator ft = vtmpflags.begin(); ft != vtmpflags.end(); ++ft)
196  ft->reset();
197 
198  // check if this FED was @cDAQ
199  std::vector<uint32_t>::const_iterator cit = std::find(_vcdaqEids.begin(), _vcdaqEids.end(), *it);
200  if (cit == _vcdaqEids.end()) {
201  // was not @cDAQ, set all the flags for this FED as fNCDAQ
202  for (std::vector<flag::Flag>::iterator ft = vtmpflags.begin(); ft != vtmpflags.end(); ++ft)
203  ft->_state = flag::fNCDAQ;
204 
205  // push all the flags for this FED
206  // IMPORTANT!!!
207  lssum._vflags.push_back(vtmpflags);
208  continue;
209  }
210 
211  // here only if was registered at cDAQ
213  if (_xEvn.get(eid) > 0)
214  vtmpflags[fEvnMsm]._state = flag::fBAD;
215  else
216  vtmpflags[fEvnMsm]._state = flag::fGOOD;
217  if (_xBcn.get(eid) > 0)
218  vtmpflags[fBcnMsm]._state = flag::fBAD;
219  else
220  vtmpflags[fBcnMsm]._state = flag::fGOOD;
221  if (double(_xBadQ.get(eid)) > double(12 * numEvents))
222  vtmpflags[fBadQ]._state = flag::fBAD;
223  else if (_xBadQ.get(eid) > 0)
224  vtmpflags[fBadQ]._state = flag::fPROBLEMATIC;
225  else
226  vtmpflags[fBadQ]._state = flag::fGOOD;
227  }
228 
229  // push all the flags for this FED
230  lssum._vflags.push_back(vtmpflags);
231  }
232 
233  // push all flags for all FEDs for this LS
234  _vflagsLS.push_back(lssum);
235  }
236 
237  /*
238  * END JOB
239  * BOOK THE SUMMARY CONTAINERS, SET THE FLAGS
240  * RETURN THE LIST OF FLAGS FOR THIS DATATIER
241  */
242  /* virtual */ std::vector<flag::Flag> RawRunSummary::endJob(DQMStore::IBooker& ib, DQMStore::IGetter& ig) {
243  if (_ptype != fOffline)
244  return std::vector<flag::Flag>();
245 
246  // PREPARE LS BASED FLAGS to use it for booking
247  std::vector<flag::Flag> vflagsLS;
248  vflagsLS.resize(nRawFlag);
249  vflagsLS[fEvnMsm] = flag::Flag("EvnMsm");
250  vflagsLS[fBcnMsm] = flag::Flag("BcnMsm");
251  vflagsLS[fBadQ] = flag::Flag("BadQ");
252 
253  // INITIALIZE AND BOOK SUMMARY CONTAINERS
254  ContainerSingle2D cSummaryvsLS; // summary per FED: flag vs LS
255  Container2D cSummaryvsLS_FED; // LS based flags vs LS for each FED
256  cSummaryvsLS.initialize(_name,
257  "SummaryvsLS",
261  0);
262  cSummaryvsLS_FED.initialize(_name,
263  "SummaryvsLS",
266  new quantity::FlagQuantity(vflagsLS),
268  0);
269  cSummaryvsLS_FED.book(ib, _emap, _subsystem);
270  cSummaryvsLS.book(ib, _subsystem);
271 
272  /*
273  * Iterate over each FED
274  * Iterate over each LS SUmmary
275  * Iterate over all flags
276  * set...
277  */
278 
279  std::vector<flag::Flag> sumflags; // flag per FED
280  int ifed = 0;
281  for (std::vector<uint32_t>::const_iterator it = _vhashFEDs.begin(); it != _vhashFEDs.end(); ++it) {
282  flag::Flag fSumRun("RAW"); // summary flag for this FED
283  HcalElectronicsId eid(*it);
284 
285  // ITERATE OVER EACH LS
286  for (std::vector<LSSummary>::const_iterator itls = _vflagsLS.begin(); itls != _vflagsLS.end(); ++itls) {
287  // fill histograms per LS
288  int iflag = 0;
289  flag::Flag fSumLS("RAW");
290  for (std::vector<flag::Flag>::const_iterator ft = itls->_vflags[ifed].begin(); ft != itls->_vflags[ifed].end();
291  ++ft) {
292  // Flag vs LS per FEd
293  cSummaryvsLS_FED.setBinContent(eid, itls->_LS, int(iflag), ft->_state);
294  fSumLS += (*ft);
295  iflag++;
296  }
297  // FED vs LS
298  cSummaryvsLS.setBinContent(eid, itls->_LS, fSumLS._state);
299  fSumRun += fSumLS;
300  }
301 
302  // push the summary flag for this FED for the whole RUN
303  sumflags.push_back(fSumRun);
304 
305  // increment the fed counter
306  ifed++;
307  }
308 
309  return sumflags;
310  }
311 } // namespace hcaldqm
hcaldqm::flag::Flag
Definition: Flag.h:24
hcaldqm::quantity::FEDQuantity
Definition: ElectronicsQuantity.h:356
hcaldqm::DQClient::_vcdaqEids
std::vector< uint32_t > _vcdaqEids
Definition: DQClient.h:74
hcaldqm::RawRunSummary::nRawFlag
Definition: RawRunSummary.h:41
hcaldqm::ContainerXXX::initialize
virtual void initialize(hashfunctions::HashType, int debug=0)
Definition: ContainerXXX.h:81
RawRunSummary.h
hcaldqm::flag::Flag::_state
State _state
Definition: Flag.h:62
hcaldqm::Container1D::load
virtual void load(DQMStore::IGetter &, HcalElectronicsMap const *, std::string const &subsystem="Hcal", std::string const &aux="")
Definition: Container1D.cc:450
hcaldqm::Container2D::initialize
virtual void initialize(std::string const &folder, hashfunctions::HashType, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0)
Definition: Container2D.cc:25
funct::false
false
Definition: Factorize.h:29
hcaldqm::quantity::FlagQuantity
Definition: ValueQuantity.h:374
hcaldqm::electronicsmap::ElectronicsMap::lookup
uint32_t lookup(DetId const &)
Definition: ElectronicsMap.cc:122
hcaldqm::quantity::fSlotuTCA
Definition: ElectronicsQuantity.h:21
hcaldqm::RawRunSummary::endLuminosityBlock
void endLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
Definition: RawRunSummary.cc:81
hcaldqm::DQClient
Definition: DQClient.h:23
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
edm::Run
Definition: Run.h:45
hcaldqm::quantity::ValueQuantity
Definition: ValueQuantity.h:319
hcaldqm::hashfunctions::fElectronics
Definition: HashFunctions.h:154
hcaldqm::DQClient::_vhashFEDs
std::vector< uint32_t > _vhashFEDs
Definition: DQClient.h:68
hcaldqm::flag::fGOOD
Definition: Flag.h:17
hcaldqm
Definition: Constants.h:8
hcaldqm::RawRunSummary::_ehashmap
electronicsmap::ElectronicsMap _ehashmap
Definition: RawRunSummary.h:24
hcaldqm::RawRunSummary::_cEvnMsm_ElectronicsVME
Container2D _cEvnMsm_ElectronicsVME
Definition: RawRunSummary.h:32
hcaldqm::electronicsmap::ElectronicsMap::initialize
void initialize(HcalElectronicsMap const *, ElectronicsMapType etype=fHcalElectronicsMap)
Definition: ElectronicsMap.cc:6
hcaldqm::constants::SPIGOT_MIN
const int SPIGOT_MIN
Definition: Constants.h:120
hcaldqm::constants::SLOT_uTCA_MIN
const int SLOT_uTCA_MIN
Definition: Constants.h:107
hcaldqm::constants::FIBER_uTCA_MIN1
const int FIBER_uTCA_MIN1
Definition: Constants.h:128
hcaldqm::RawRunSummary::_vflagsLS
std::vector< LSSummary > _vflagsLS
Definition: RawRunSummary.h:22
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
constants
hcaldqm::ContainerSingle2D
Definition: ContainerSingle2D.h:20
hcaldqm::DQClient::endLuminosityBlock
virtual void endLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: DQClient.cc:104
hcaldqm::hashfunctions::fFED
Definition: HashFunctions.h:145
hcaldqm::DQModule::_ptype
ProcessingType _ptype
Definition: DQModule.h:44
hcaldqm::flag::fBAD
Definition: Flag.h:19
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
hcaldqm::RawRunSummary::fEvnMsm
Definition: RawRunSummary.h:41
hcaldqm::DQClient::_vFEDs
std::vector< int > _vFEDs
Definition: DQClient.h:67
hcaldqm::hashfunctions::fdepth
Definition: HashFunctions.h:140
HcalElectronicsMap::allPrecisionId
std::vector< HcalGenericDetId > allPrecisionId() const
Definition: HcalElectronicsMap.cc:139
hcaldqm::quantity::fieta
Definition: DetectorQuantity.h:15
hcaldqm::RawRunSummary::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition: RawRunSummary.cc:11
hcaldqm::DQClient::_taskname
std::string _taskname
Definition: DQClient.h:50
hcaldqm::quantity::fiphi
Definition: DetectorQuantity.h:14
hcaldqm::DQModule::_currentLS
int _currentLS
Definition: DQModule.h:53
hcaldqm::Container2D::getBinContent
double getBinContent(HcalDetId const &) override
Definition: Container2D.cc:132
hcaldqm::RawRunSummary::_cEvnMsm_ElectronicsuTCA
Container2D _cEvnMsm_ElectronicsuTCA
Definition: RawRunSummary.h:32
hcaldqm::ContainerXXX::reset
virtual void reset()
Definition: ContainerXXX.h:292
hcaldqm::constants::CRATE_uTCA_MIN
const int CRATE_uTCA_MIN
Definition: Constants.h:100
hcaldqm::RawRunSummary::_filter_uTCA
filter::HashFilter _filter_uTCA
Definition: RawRunSummary.h:29
hcaldqm::filter::HashFilter::initialize
virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:17
hcaldqm::DQClient::beginRun
virtual void beginRun(edm::Run const &, edm::EventSetup const &)
Definition: DQClient.cc:23
hcaldqm::constants::FIBER_VME_MIN
const int FIBER_VME_MIN
Definition: Constants.h:125
HcalElectronicsId
Readout chain identification for Hcal.
Definition: HcalElectronicsId.h:32
hcaldqm::DQModule::_name
std::string _name
Definition: DQModule.h:42
hcaldqm::RawRunSummary::endJob
std::vector< flag::Flag > endJob(DQMStore::IBooker &, DQMStore::IGetter &) override
Definition: RawRunSummary.cc:242
hcaldqm::constants::FIBERCH_MIN
const int FIBERCH_MIN
Definition: Constants.h:134
hcaldqm::DQClient::_maxProcessedLS
int _maxProcessedLS
Definition: DQClient.h:54
hcaldqm::quantity::DetectorQuantity
Definition: DetectorQuantity.h:59
hcaldqm::utilities::isFEDHF
bool isFEDHF(HcalElectronicsId const &)
Definition: Utilities.cc:170
hcaldqm::Container2D::setBinContent
void setBinContent(HcalDetId const &, int) override
Definition: Container2D.cc:163
hcaldqm::quantity::fN
Definition: ValueQuantity.h:11
hcaldqm::RawRunSummary::_xEvn
ContainerXXX< uint32_t > _xEvn
Definition: RawRunSummary.h:39
hcaldqm::RawRunSummary::_vFEDsuTCA
std::vector< int > _vFEDsuTCA
Definition: RawRunSummary.h:28
hcaldqm::RawRunSummary::_xBadQ
ContainerXXX< uint32_t > _xBadQ
Definition: RawRunSummary.h:39
edm::ParameterSet
Definition: ParameterSet.h:47
hcaldqm::Container2D::book
void book(DQMStore::IBooker &, HcalElectronicsMap const *, std::string subsystem="Hcal", std::string aux="") override
Definition: Container2D.cc:567
hcaldqm::RawRunSummary::_cBcnMsm_ElectronicsuTCA
Container2D _cBcnMsm_ElectronicsuTCA
Definition: RawRunSummary.h:33
hcaldqm::Container2D::fill
void fill(HcalDetId const &) override
Definition: Container2D.cc:52
hcaldqm::RawRunSummary::_cBcnMsm_ElectronicsVME
Container2D _cBcnMsm_ElectronicsVME
Definition: RawRunSummary.h:33
hcaldqm::RawRunSummary::fBadQ
Definition: RawRunSummary.h:41
hcaldqm::RawRunSummary::fBcnMsm
Definition: RawRunSummary.h:41
HcalDetId
Definition: HcalDetId.h:12
runTauDisplay.eid
eid
Definition: runTauDisplay.py:298
cuy.ib
ib
Definition: cuy.py:661
edm::EventSetup
Definition: EventSetup.h:58
hcaldqm::quantity::fSpigot
Definition: ElectronicsQuantity.h:23
hcaldqm::RawRunSummary::_vhashuTCA
std::vector< uint32_t > _vhashuTCA
Definition: RawRunSummary.h:27
hcaldqm::RawRunSummary::_vhashVME
std::vector< uint32_t > _vhashVME
Definition: RawRunSummary.h:27
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
hcaldqm::RawRunSummary::_filter_VME
filter::HashFilter _filter_VME
Definition: RawRunSummary.h:29
hcaldqm::DQModule::_subsystem
std::string _subsystem
Definition: DQModule.h:49
alignCSCRings.r
r
Definition: alignCSCRings.py:93
hcaldqm::RawRunSummary::RawRunSummary
RawRunSummary(std::string const &, std::string const &, edm::ParameterSet const &, edm::ConsumesCollector &iC)
Definition: RawRunSummary.cc:5
hcaldqm::flag::fPROBLEMATIC
Definition: Flag.h:18
hcaldqm::quantity::ElectronicsQuantity
Definition: ElectronicsQuantity.h:333
hcaldqm::RawRunSummary::_cBadQuality_depth
Container2D _cBadQuality_depth
Definition: RawRunSummary.h:34
hcaldqm::electronicsmap::fD2EHashMap
Definition: ElectronicsMap.h:25
hcaldqm::DQClient::_emap
const HcalElectronicsMap * _emap
Definition: DQClient.h:60
hcaldqm::utilities::isFEDHBHE
bool isFEDHBHE(HcalElectronicsId const &)
Definition: Utilities.cc:156
dqm::implementation::IGetter
Definition: DQMStore.h:484
nanoDQM_cff.Flag
Flag
Definition: nanoDQM_cff.py:98
hcaldqm::ContainerSingle2D::setBinContent
virtual void setBinContent(int, int, int)
Definition: ContainerSingle2D.cc:154
simpleEdmComparison.numEvents
numEvents
Definition: simpleEdmComparison.py:139
hcaldqm::ContainerSingle2D::book
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
Definition: ContainerSingle2D.cc:68
dqm::implementation::IGetter::get
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:673
hcaldqm::utilities::isFEDHO
bool isFEDHO(HcalElectronicsId const &)
Definition: Utilities.cc:182
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
hcaldqm::ContainerXXX::book
virtual void book(HcalElectronicsMap const *)
Definition: ContainerXXX.h:87
hcaldqm::ContainerXXX::get
virtual STDTYPE & get(HcalDetId const &)
Definition: ContainerXXX.h:197
dqm::implementation::IBooker
Definition: DQMStore.h:43
hcaldqm::RawRunSummary::_booked
bool _booked
Definition: RawRunSummary.h:36
hcaldqm::ContainerSingle2D::initialize
virtual void initialize(std::string const &folder, quantity::Quantity *, quantity::Quantity *, quantity::Quantity *qz=new quantity::ValueQuantity(quantity::fN), int debug=0)
Definition: ContainerSingle2D.cc:46
hcaldqm::flag::fNCDAQ
Definition: Flag.h:15
hcaldqm::RawRunSummary::_xBcn
ContainerXXX< uint32_t > _xBcn
Definition: RawRunSummary.h:39
hcaldqm::quantity::fState
Definition: ValueQuantity.h:49
hcaldqm::RawRunSummary::_vFEDsVME
std::vector< int > _vFEDsVME
Definition: RawRunSummary.h:28
dqm::impl::MonitorElement::getBinContent
virtual double getBinContent(int binx) const
get content of bin (1-D)
Definition: MonitorElement.cc:583
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
hcaldqm::constants::CRATE_VME_MIN
const int CRATE_VME_MIN
Definition: Constants.h:95
hcaldqm::filter::fFilter
Definition: HashFilter.h:19
hcaldqm::fOffline
Definition: DQModule.h:26
hcaldqm::Container2D
Definition: Container2D.h:19
hcaldqm::quantity::LumiSection
Definition: ValueQuantity.h:400