36 if (
path_.empty() ||
path_.find(
'/') == std::string::npos ||
38 throw_(_path +
" cannot be used for ME path name");
48 throw_(
"Unsupported MonitorElement kind");
58 lumiFlag_(_orig.lumiFlag_),
59 batchMode_(_orig.batchMode_),
60 active_(_orig.active_) {}
93 unsigned nME(
mes_.size());
94 for (
unsigned iME(0); iME < nME; iME++)
109 unsigned nME(
mes_.size());
112 for (
unsigned iME(0); iME < nME; iME++)
118 if (
_content != 0. || _err != 0. || _entries != 0.)
121 for (
unsigned iME(0); iME < nME; iME++) {
122 TH1 *
h(
mes_[iME]->getTH1());
130 for (
int ix(1); ix <=
nbinsX; ix++) {
131 for (
int iy(1); iy <=
nbinsY; iy++) {
132 int bin(
h->GetBin(ix, iy));
134 h->SetBinError(
bin, _err);
136 static_cast<TProfile *>(
h)->SetBinEntries(
bin, _entries);
139 static_cast<TProfile2D *>(
h)->SetBinEntries(
bin, _entries);
146 h->SetEntries(_entries);
153 for (
typename MESet::PathReplacements::const_iterator repItr(_replacements.begin()); repItr != _replacements.end();
161 re.Substitute(
path, repItr->second,
"g");
189 if (searchNeighborsInTower) {
191 for (std::vector<DetId>::iterator idItr(ids.begin()); idItr != ids.end(); ++idItr)
192 if ((_statusManager->
getStatus(idItr->rawId()) & _mask) != 0)
200 for (
int ix(1); ix <= 5; ix++) {
201 for (
int iy(1); iy <= 5; iy++) {
202 int iix((scId.
ix() - 1) * 5 + ix);
203 int iiy((scId.
iy() - 1) * 5 + iy);
213 if ((_statusManager->
getStatus(scId.rawId()) & _mask) != 0)
216 if (searchNeighborsInTower) {
217 for (
int ix(1); ix <= 5; ix++) {
218 for (
int iy(1); iy <= 5; iy++) {
219 int iix((scId.ix() - 1) * 5 + ix);
220 int iiy((scId.iy() - 1) * 5 + iy);
223 if ((_statusManager->
getStatus(
EEDetId(iix, iiy, scId.zside()).rawId()) & _mask) != 0)
234 for (std::vector<DetId>::iterator idItr(ids.begin()); idItr != ids.end(); ++idItr)
235 if ((_statusManager->
getStatus(idItr->rawId()) & _mask) != 0)
254 TH1 *
h(
me->getTH1());
258 double x(
h->GetXaxis()->GetBinCenter(_bin % (
nbinsX + 2)));
263 double y(
h->GetYaxis()->GetBinCenter(_bin / (
nbinsX + 2)));
276 TH1 *
h(
me->getTH1());
280 double x(
h->GetXaxis()->GetBinCenter(_bin % (
nbinsX + 2)));
294 me->Fill(_x, _wy, _w);
299 if (
iME ==
unsigned(-1))
308 throw cms::Exception(
"InvalidOperation") <<
"MESet::ConstBin::Ctor: const_iterator only available for MESet of "
315 <<
"MESet::ConstBin::Ctor: ME " <<
iME <<
" does not exist for MESet " <<
meSet_->
getPath();
318 iBin =
me->getNbinsX() + 3;
327 <<
" to otype " << meSet_->getObjType() <<
" and btype " << meSet_->getBinType() <<
" ("
328 << _rhs.
meSet_->
getPath() <<
" to " << meSet_->getPath() <<
")";
340 if (iME ==
unsigned(-1))
355 unsigned &iME(bin_.iME);
356 MESet const *meSet(bin_.getMESet());
358 if (iME ==
unsigned(-1))
372 me = meSet->getME(iME);
383 me = meSet->getME(iME);
405 if (!bin_.getMESet())
409 while (bin_.iME !=
unsigned(-1) && !bin_.isChannel());
415 MESet const *meSet(bin_.getMESet());
416 if (bin_.iME ==
unsigned(-1) || bin_.iBin < 1)
425 if (bin_.iBin / (
me->getNbinsX() + 2) >=
me->getNbinsY())
428 bin_.iBin +=
me->getNbinsX() + 2;
434 MESet const *meSet(bin_.getMESet());
435 if (bin_.iME ==
unsigned(-1) || bin_.iBin < 1)
444 if (bin_.iBin / (
me->getNbinsX() + 2) <= 1)
447 bin_.iBin -=
me->getNbinsX() + 2;
453 MESet const *meSet(bin_.getMESet());
454 if (bin_.iME ==
unsigned(-1) || bin_.iBin < 1)
463 if (bin_.iBin % (
me->getNbinsX() + 2) <= 1)
472 MESet const *meSet(bin_.getMESet());
473 if (bin_.iME ==
unsigned(-1) || bin_.iBin < 1)
482 if (bin_.iBin % (
me->getNbinsX() + 2) >=
me->getNbinsX())