CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Attributes | Private Member Functions
ecaldqm::MESetEcal Class Reference

#include <MESetEcal.h>

Inheritance diagram for ecaldqm::MESetEcal:
ecaldqm::MESet ecaldqm::MESetDet0D ecaldqm::MESetDet1D ecaldqm::MESetDet2D ecaldqm::MESetProjection ecaldqm::MESetTrend

Public Member Functions

void book (DQMStore::IBooker &, EcalElectronicsMapping const *) override
 
MESetclone (std::string const &="") const override
 
void fill (EcalDQMSetupObjects const, DetId const &, double=1., double=1., double=1.) override
 
void fill (EcalDQMSetupObjects const, EcalElectronicsId const &, double=1., double=1., double=1.) override
 
void fill (EcalDQMSetupObjects const, int, double=1., double=1., double=1.) override
 
void fill (EcalDQMSetupObjects const, double, double=1., double=1.) override
 
virtual int findBin (EcalDQMSetupObjects const, DetId const &, double, double=0.) const
 
virtual int findBin (EcalDQMSetupObjects const, EcalElectronicsId const &, double, double=0.) const
 
virtual int findBin (EcalDQMSetupObjects const, int, double, double=0.) const
 
std::vector< std::string > generatePaths (EcalElectronicsMapping const *) const
 
double getBinContent (EcalDQMSetupObjects const, DetId const &, int) const override
 
double getBinContent (EcalDQMSetupObjects const, EcalElectronicsId const &, int) const override
 
double getBinContent (EcalDQMSetupObjects const, int, int) const override
 
double getBinEntries (EcalDQMSetupObjects const, DetId const &, int) const override
 
double getBinEntries (EcalDQMSetupObjects const, EcalElectronicsId const &, int) const override
 
double getBinEntries (EcalDQMSetupObjects const, int, int) const override
 
double getBinError (EcalDQMSetupObjects const, DetId const &, int) const override
 
double getBinError (EcalDQMSetupObjects const, EcalElectronicsId const &, int) const override
 
double getBinError (EcalDQMSetupObjects const, int, int) const override
 
bool isVariableBinning () const override
 
 MESetEcal (std::string const &, binning::ObjectType, binning::BinningType, MonitorElement::Kind, unsigned, binning::AxisSpecs const *=nullptr, binning::AxisSpecs const *=nullptr, binning::AxisSpecs const *=nullptr)
 
 MESetEcal (MESetEcal const &)
 
MESetoperator= (MESet const &) override
 
bool retrieve (EcalElectronicsMapping const *, DQMStore::IGetter &, std::string *=nullptr) const override
 
void setBinContent (EcalDQMSetupObjects const, DetId const &, int, double) override
 
void setBinContent (EcalDQMSetupObjects const, EcalElectronicsId const &, int, double) override
 
void setBinContent (EcalDQMSetupObjects const, int, int, double) override
 
void setBinEntries (EcalDQMSetupObjects const, DetId const &, int, double) override
 
void setBinEntries (EcalDQMSetupObjects const, EcalElectronicsId const &, int, double) override
 
void setBinEntries (EcalDQMSetupObjects const, int, int, double) override
 
void setBinError (EcalDQMSetupObjects const, DetId const &, int, double) override
 
void setBinError (EcalDQMSetupObjects const, EcalElectronicsId const &, int, double) override
 
void setBinError (EcalDQMSetupObjects const, int, int, double) override
 
 ~MESetEcal () override
 
- Public Member Functions inherited from ecaldqm::MESet
virtual const_iterator begin (EcalElectronicsMapping const *electronicsMap) const
 
virtual iterator begin (EcalElectronicsMapping const *electronicsMap)
 
virtual const_iterator beginChannel (EcalElectronicsMapping const *electronicsMap) const
 
virtual iterator beginChannel (EcalElectronicsMapping const *electronicsMap)
 
virtual void clear () const
 
virtual const_iterator end (EcalElectronicsMapping const *electronicsMap) const
 
virtual iterator end (EcalElectronicsMapping const *electronicsMap)
 
std::string formPath (PathReplacements const &) const
 
bool getBatchMode () const
 
binning::BinningType getBinType () const
 
MonitorElement::Kind getKind () const
 
bool getLumiFlag () const
 
virtual MonitorElement const * getME (unsigned _iME) const
 
virtual MonitorElementgetME (unsigned _iME)
 
binning::ObjectType getObjType () const
 
virtual std::string const & getPath () const
 
bool isActive () const
 
virtual bool maskMatches (DetId const &, uint32_t, StatusManager const *, EcalTrigTowerConstituentsMap const *) const
 
 MESet ()
 
 MESet (std::string const &, binning::ObjectType, binning::BinningType, MonitorElement::Kind)
 
 MESet (MESet const &)
 
virtual void reset (EcalElectronicsMapping const *, double=0., double=0., double=0.)
 
virtual void resetAll (double=0., double=0., double=0.)
 
virtual void setAxisTitle (std::string const &, int=1)
 
void setBatchMode ()
 
virtual void setBinContent (EcalDQMSetupObjects const, DetId const &, double)
 
virtual void setBinContent (EcalDQMSetupObjects const, EcalElectronicsId const &, double)
 
virtual void setBinContent (EcalDQMSetupObjects const, int, double)
 
virtual void setBinEntries (EcalDQMSetupObjects const, DetId const &, double)
 
virtual void setBinEntries (EcalDQMSetupObjects const, EcalElectronicsId const &, double)
 
virtual void setBinEntries (EcalDQMSetupObjects const, int, double)
 
virtual void setBinError (EcalDQMSetupObjects const, DetId const &, double)
 
virtual void setBinError (EcalDQMSetupObjects const, EcalElectronicsId const &, double)
 
virtual void setBinError (EcalDQMSetupObjects const, int, double)
 
void setLumiFlag ()
 
virtual ~MESet ()
 

Protected Attributes

unsigned logicalDimensions_
 
binning::AxisSpecs const * xaxis_
 
binning::AxisSpecs const * yaxis_
 
binning::AxisSpecs const * zaxis_
 
- Protected Attributes inherited from ecaldqm::MESet
bool active_
 
bool batchMode_
 
binning::BinningType btype_
 
MonitorElement::Kind kind_
 
bool lumiFlag_
 
std::vector< MonitorElement * > mes_
 
binning::ObjectType otype_
 
std::string path_
 

Private Member Functions

template<class Bookable >
void doBook_ (Bookable &)
 

Additional Inherited Members

- Public Types inherited from ecaldqm::MESet
typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 
typedef std::map< std::string, std::string > PathReplacements
 
- Protected Member Functions inherited from ecaldqm::MESet
virtual void checkME_ (unsigned _iME) const
 
virtual void fill_ (unsigned, int, double)
 
virtual void fill_ (unsigned, int, double, double)
 
virtual void fill_ (unsigned, double, double, double)
 
void throw_ (std::string const &_message) const
 

Detailed Description

Definition at line 15 of file MESetEcal.h.

Constructor & Destructor Documentation

◆ MESetEcal() [1/2]

ecaldqm::MESetEcal::MESetEcal ( std::string const &  _fullPath,
binning::ObjectType  _otype,
binning::BinningType  _btype,
MonitorElement::Kind  _kind,
unsigned  _logicalDimensions,
binning::AxisSpecs const *  _xaxis = nullptr,
binning::AxisSpecs const *  _yaxis = nullptr,
binning::AxisSpecs const *  _zaxis = nullptr 
)

Definition at line 10 of file MESetEcal.cc.

References ecaldqm::MESet::btype_, ecaldqm::binning::kUser, logicalDimensions_, ecaldqm::MESet::throw_(), xaxis_, and yaxis_.

Referenced by clone().

18  : MESet(_fullPath, _otype, _btype, _kind),
19  logicalDimensions_(_logicalDimensions),
20  xaxis_(_xaxis ? new binning::AxisSpecs(*_xaxis) : nullptr),
21  yaxis_(_yaxis ? new binning::AxisSpecs(*_yaxis) : nullptr),
22  zaxis_(_zaxis ? new binning::AxisSpecs(*_zaxis) : nullptr) {
23  if (btype_ == binning::kUser && ((logicalDimensions_ > 0 && !xaxis_) || (logicalDimensions_ > 1 && !yaxis_)))
24  throw_("Need axis specifications");
25  }
void throw_(std::string const &_message) const
Definition: MESet.h:149
binning::AxisSpecs const * zaxis_
Definition: MESetEcal.h:76
binning::AxisSpecs const * xaxis_
Definition: MESetEcal.h:74
binning::AxisSpecs const * yaxis_
Definition: MESetEcal.h:75
binning::BinningType btype_
Definition: MESet.h:155
unsigned logicalDimensions_
Definition: MESetEcal.h:73

◆ MESetEcal() [2/2]

ecaldqm::MESetEcal::MESetEcal ( MESetEcal const &  _orig)

Definition at line 27 of file MESetEcal.cc.

28  : MESet(_orig),
29  logicalDimensions_(_orig.logicalDimensions_),
30  xaxis_(_orig.xaxis_ ? new binning::AxisSpecs(*_orig.xaxis_) : nullptr),
31  yaxis_(_orig.yaxis_ ? new binning::AxisSpecs(*_orig.yaxis_) : nullptr),
32  zaxis_(_orig.zaxis_ ? new binning::AxisSpecs(*_orig.zaxis_) : nullptr) {}
binning::AxisSpecs const * zaxis_
Definition: MESetEcal.h:76
binning::AxisSpecs const * xaxis_
Definition: MESetEcal.h:74
binning::AxisSpecs const * yaxis_
Definition: MESetEcal.h:75
unsigned logicalDimensions_
Definition: MESetEcal.h:73

◆ ~MESetEcal()

ecaldqm::MESetEcal::~MESetEcal ( )
override

Definition at line 34 of file MESetEcal.cc.

References xaxis_, yaxis_, and zaxis_.

34  {
35  delete xaxis_;
36  delete yaxis_;
37  delete zaxis_;
38  }
binning::AxisSpecs const * zaxis_
Definition: MESetEcal.h:76
binning::AxisSpecs const * xaxis_
Definition: MESetEcal.h:74
binning::AxisSpecs const * yaxis_
Definition: MESetEcal.h:75

Member Function Documentation

◆ book()

void ecaldqm::MESetEcal::book ( DQMStore::IBooker _ibooker,
EcalElectronicsMapping const *  electronicsMap 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetTrend.

Definition at line 70 of file MESetEcal.cc.

References ecaldqm::MESet::active_, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookFloat(), dqm::implementation::IBooker::bookProfile(), dqm::implementation::IBooker::bookProfile2D(), ecaldqm::MESet::btype_, dqm::implementation::NavigatorBase::cd(), ecaldqm::MESet::clear(), filterCSVwithJSON::copy, SelectiveReadoutTask_cfi::edges, generatePaths(), ecaldqm::binning::getBinning(), ecaldqm::binning::getObject(), LaserClient_cfi::high, mps_fire::i, ecaldqm::MESet::kind_, SummaryClient_cfi::labels, logicalDimensions_, LaserClient_cfi::low, ecaldqm::MESet::lumiFlag_, WZElectronSkims53X_cff::max, hlt_dqm_clientPB-live_cfg::me, ecaldqm::MESet::mes_, mergeVDriftHistosByStation::name, LaserClient_cfi::nbins, ecaldqm::MESet::otype_, EnsembleCalibrationLA_cfg::path, MonitorElementData::REAL, dqm::implementation::NavigatorBase::setCurrentFolder(), dqm::implementation::IBooker::setScope(), HistogramManager_cfi::specs, AlCaHLTBitMon_QueryRunRegistry::string, MonitorElementData::TH1F, MonitorElementData::TH2F, ecaldqm::MESet::throw_(), runGCPTkAlMap::title, MonitorElementData::TPROFILE, MonitorElementData::TPROFILE2D, LaserClient_cfi::xaxis, xaxis_, TimingClient_cfi::yaxis, yaxis_, LaserClient_cfi::zaxis, and zaxis_.

Referenced by ecaldqm::MESetDet2D::book(), ecaldqm::MESetDet1D::book(), and ecaldqm::MESetTrend::book().

70  {
71  using namespace std;
72 
73  auto oldscope = MonitorElementData::Scope::RUN;
74  if (lumiFlag_)
75  oldscope = _ibooker.setScope(MonitorElementData::Scope::LUMI);
76 
77  clear();
78 
79  vector<string> mePaths(generatePaths(electronicsMap));
80 
81  for (unsigned iME(0); iME < mePaths.size(); iME++) {
82  string &path(mePaths[iME]);
83  if (path.find('%') != string::npos)
84  throw_("book() called with incompletely formed path [" + path + "]");
85 
86  binning::ObjectType actualObject(binning::getObject(otype_, iME));
87 
88  binning::AxisSpecs xaxis, yaxis, zaxis;
89 
90  bool isHistogram(logicalDimensions_ > 0);
91  bool isMap(logicalDimensions_ > 1);
92 
93  if (isHistogram) {
94  if (xaxis_)
95  xaxis = *xaxis_;
96  if (yaxis_)
97  yaxis = *yaxis_;
98  if (zaxis_)
99  zaxis = *zaxis_;
100 
101  if (xaxis.nbins == 0) { // uses preset
102  binning::AxisSpecs xdef(binning::getBinning(electronicsMap, actualObject, btype_, isMap, 1, iME));
103  if (!xaxis.labels.empty() || !xaxis.title.empty()) { // PSet specifies title / label only
104  std::vector<string> labels(xaxis.labels);
105  std::string title(xaxis.title);
106  xaxis = xdef;
107  xaxis.labels = labels;
108  xaxis.title = title;
109  } else
110  xaxis = xdef;
111  }
112 
113  if (isMap && yaxis.nbins == 0) {
114  binning::AxisSpecs ydef(binning::getBinning(electronicsMap, actualObject, btype_, isMap, 2, iME));
115  if (!yaxis.labels.empty() || !yaxis.title.empty()) { // PSet specifies title / label only
116  std::vector<string> labels(yaxis.labels);
117  std::string title(yaxis.title);
118  yaxis = ydef;
119  yaxis.labels = labels;
120  yaxis.title = title;
121  } else
122  yaxis = ydef;
123  }
124 
125  if (yaxis.high - yaxis.low < 1.e-10) {
128  }
129 
130  if (zaxis.high - zaxis.low < 1.e-10) {
133  }
134  }
135 
136  size_t slashPos(path.find_last_of('/'));
137  string name(path.substr(slashPos + 1));
138  _ibooker.cd();
139  _ibooker.setCurrentFolder(path.substr(0, slashPos));
140 
141  MonitorElement *me(nullptr);
142 
143  switch (kind_) {
145  me = _ibooker.bookFloat(name);
146 
147  break;
148 
150  if (xaxis.edges.empty())
151  me = _ibooker.book1D(name, name, xaxis.nbins, xaxis.low, xaxis.high);
152  else
153  me = _ibooker.book1D(name, name, xaxis.nbins, &(xaxis.edges[0]));
154 
155  break;
156 
158  if (xaxis.edges.empty()) {
159  me = _ibooker.bookProfile(name, name, xaxis.nbins, xaxis.low, xaxis.high, yaxis.low, yaxis.high, "");
160  } else {
161  // DQMStore bookProfile interface uses double* for bin edges
162  double *edges(new double[xaxis.nbins + 1]);
163  std::copy(xaxis.edges.begin(), xaxis.edges.end(), edges);
164  me = _ibooker.bookProfile(name, name, xaxis.nbins, edges, yaxis.low, yaxis.high, "");
165  delete[] edges;
166  }
167 
168  break;
169 
171  if (xaxis.edges.empty() && yaxis.edges.empty()) {
172  me = _ibooker.book2D(name, name, xaxis.nbins, xaxis.low, xaxis.high, yaxis.nbins, yaxis.low, yaxis.high);
173  } else {
174  binning::AxisSpecs *specs[] = {&xaxis, &yaxis};
175  for (int iSpec(0); iSpec < 2; iSpec++) {
176  if (specs[iSpec]->edges.empty()) {
177  specs[iSpec]->edges = std::vector<float>(specs[iSpec]->nbins + 1);
178  int nbins(specs[iSpec]->nbins);
179  double low(specs[iSpec]->low), high(specs[iSpec]->high);
180  for (int i(0); i < nbins + 1; i++)
181  specs[iSpec]->edges[i] = low + (high - low) / nbins * i;
182  }
183  }
184  me = _ibooker.book2D(name, name, xaxis.nbins, &(xaxis.edges[0]), yaxis.nbins, &(yaxis.edges[0]));
185  }
186 
187  break;
188 
190  if (!zaxis.edges.empty()) {
191  zaxis.low = zaxis.edges[0];
192  zaxis.high = zaxis.edges[zaxis.nbins];
193  }
194  if (!(xaxis.edges.empty() && yaxis.edges.empty()))
195  throw_("Variable bin size for 2D profile not implemented");
196  me = _ibooker.bookProfile2D(name,
197  name,
198  xaxis.nbins,
199  xaxis.low,
200  xaxis.high,
201  yaxis.nbins,
202  yaxis.low,
203  yaxis.high,
204  zaxis.low,
205  zaxis.high,
206  "");
207 
208  break;
209 
210  default:
211  break;
212  }
213 
214  if (!me)
215  throw_("ME could not be booked");
216 
217  if (isHistogram) {
218  me->setAxisTitle(xaxis.title, 1);
219  me->setAxisTitle(yaxis.title, 2);
220  if (isMap)
221  me->setAxisTitle(zaxis.title, 3);
222 
223  if (!xaxis.labels.empty()) {
224  for (int iBin(1); iBin <= xaxis.nbins; ++iBin)
225  me->setBinLabel(iBin, xaxis.labels[iBin - 1], 1);
226  }
227  if (!yaxis.labels.empty()) {
228  for (int iBin(1); iBin <= yaxis.nbins; ++iBin)
229  me->setBinLabel(iBin, yaxis.labels[iBin - 1], 2);
230  }
231  if (!zaxis.labels.empty()) {
232  for (int iBin(1); iBin <= zaxis.nbins; ++iBin)
233  me->setBinLabel(iBin, zaxis.labels[iBin - 1], 3);
234  }
235 
236  /* FIX: In ROOT 6.0.12 bit 20 is used by ROOT (bit 19 was already in use
237  in 6.0.x). Talking with the ROOT team, users should never use SetBit for
238  their own purpose since those bits are reserved for ROOT internally. See
239  https://github.com/cms-sw/cmssw/issues/21423 for some alternative ways of
240  attaching additional information to a TH1
241 
242  // For plot tagging in RenderPlugin; default values are 1 for both
243  // bits 19 - 23 are free in TH1::fBits
244  // can only pack object + logical dimensions into 5 bits (4 bits for
245  object, 1 bit for dim (1 -> dim >= 2))
246  me->getTH1()->SetBit(uint32_t(actualObject + 1) << 20);
247  if(isMap) me->getTH1()->SetBit(0x1 << 19);
248  */
249 
250  // The render plugin requires some metadata in order to set the correct
251  // rendering for each plot. The original solution was to use bits number
252  // 19 to 23 in TH1::fBits, but these were meant for ROOT's internal usage
253  // and eventually started breaking things, see:
254  // https://github.com/cms-sw/cmssw/issues/21423 The current solution is to
255  // use the UniqueID field in the parent TObject, which is expected to work
256  // if there is no TRef pointing to the TObject.
257 
258  // To check that indeed there is no such TRef, one can use
259  // TestBit(kIsReferenced), e.g. std::cout << "Need to set unique ID at
260  // path = " << path << "; for this path, TestBit(kIsReferenced) is: " <<
261  // (me->getTH1()->TestBit(kIsReferenced)? "true": "false") << std::endl;
262  // // should always output false for the solution to work
263 
264  // Originally, bit 19 in TH1::fBits was set to isMap, while bits 20-23
265  // contained (actualObject+1). The idea is to make sure that both these
266  // variables are easily recoverable in the render plugin, as in this
267  // solution, where isMap is the last bit.
268  me->getTH1()->SetUniqueID(uint32_t(2 * (actualObject + 1) + (isMap ? 1 : 0)));
269  }
270 
271  mes_.push_back(me);
272  }
273 
274  if (lumiFlag_)
275  _ibooker.setScope(oldscope);
276 
277  active_ = true;
278  }
MonitorElement::Kind kind_
Definition: MESet.h:156
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:80
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:485
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
virtual MonitorElementData::Scope setScope(MonitorElementData::Scope newscope)
Definition: DQMStore.cc:50
void throw_(std::string const &_message) const
Definition: MESet.h:149
ObjectType getObject(ObjectType, unsigned)
std::vector< std::string > generatePaths(EcalElectronicsMapping const *) const
Definition: MESetEcal.cc:597
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:408
bool lumiFlag_
Definition: MESet.h:157
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:221
binning::AxisSpecs const * zaxis_
Definition: MESetEcal.h:76
bool active_
Definition: MESet.h:161
AxisSpecs getBinning(EcalElectronicsMapping const *, ObjectType, BinningType, bool, int, unsigned)
binning::ObjectType otype_
Definition: MESet.h:154
binning::AxisSpecs const * xaxis_
Definition: MESetEcal.h:74
binning::AxisSpecs const * yaxis_
Definition: MESetEcal.h:75
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
binning::BinningType btype_
Definition: MESet.h:155
virtual void clear() const
Definition: MESet.cc:84
std::vector< MonitorElement * > mes_
Definition: MESet.h:151
unsigned logicalDimensions_
Definition: MESetEcal.h:73

◆ clone()

MESet * ecaldqm::MESetEcal::clone ( std::string const &  _path = "") const
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetTrend, and ecaldqm::MESetProjection.

Definition at line 61 of file MESetEcal.cc.

References filterCSVwithJSON::copy, MESetEcal(), EnsembleCalibrationLA_cfg::path, ecaldqm::MESet::path_, and AlCaHLTBitMon_QueryRunRegistry::string.

61  {
63  if (!_path.empty())
64  path_ = _path;
65  MESet *copy(new MESetEcal(*this));
66  path_ = path;
67  return copy;
68  }
MESetEcal(std::string const &, binning::ObjectType, binning::BinningType, MonitorElement::Kind, unsigned, binning::AxisSpecs const *=nullptr, binning::AxisSpecs const *=nullptr, binning::AxisSpecs const *=nullptr)
Definition: MESetEcal.cc:10
std::string path_
Definition: MESet.h:153

◆ doBook_()

template<class Bookable >
void ecaldqm::MESetEcal::doBook_ ( Bookable &  )
private

◆ fill() [1/4]

void ecaldqm::MESetEcal::fill ( EcalDQMSetupObjects const  edso,
DetId const &  _id,
double  _x = 1.,
double  _wy = 1.,
double  _w = 1. 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetTrend, and ecaldqm::MESetProjection.

Definition at line 312 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::MESet::fill_(), ecaldqm::binning::findPlotIndex(), and ecaldqm::MESet::otype_.

316  {
317  if (!active_)
318  return;
319 
320  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
321  checkME_(iME);
322 
323  fill_(iME, _x, _wy, _w);
324  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
virtual void fill_(unsigned, int, double)
Definition: MESet.cc:252
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154

◆ fill() [2/4]

void ecaldqm::MESetEcal::fill ( EcalDQMSetupObjects const  edso,
EcalElectronicsId const &  _id,
double  _x = 1.,
double  _wy = 1.,
double  _w = 1. 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetTrend.

Definition at line 326 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::MESet::fill_(), ecaldqm::binning::findPlotIndex(), and ecaldqm::MESet::otype_.

330  {
331  if (!active_)
332  return;
333 
334  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
335  checkME_(iME);
336 
337  fill_(iME, _x, _wy, _w);
338  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
virtual void fill_(unsigned, int, double)
Definition: MESet.cc:252
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154

◆ fill() [3/4]

void ecaldqm::MESetEcal::fill ( EcalDQMSetupObjects const  edso,
int  _dcctccid,
double  _x = 1.,
double  _wy = 1.,
double  _w = 1. 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetTrend, and ecaldqm::MESetProjection.

Definition at line 340 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::btype_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::MESet::fill_(), ecaldqm::binning::findPlotIndex(), and ecaldqm::MESet::otype_.

341  {
342  if (!active_)
343  return;
344 
345  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _dcctccid, btype_));
346  checkME_(iME);
347 
348  fill_(iME, _x, _wy, _w);
349  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
virtual void fill_(unsigned, int, double)
Definition: MESet.cc:252
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
binning::BinningType btype_
Definition: MESet.h:155

◆ fill() [4/4]

void ecaldqm::MESetEcal::fill ( EcalDQMSetupObjects const  edso,
double  _x,
double  _wy = 1.,
double  _w = 1. 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetTrend, and ecaldqm::MESetProjection.

Definition at line 351 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::fill_(), and ecaldqm::MESet::mes_.

351  {
352  if (!active_)
353  return;
354 
355  if (mes_.size() != 1)
356  return;
357 
358  fill_(0, _x, _wy, _w);
359  }
virtual void fill_(unsigned, int, double)
Definition: MESet.cc:252
bool active_
Definition: MESet.h:161
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ findBin() [1/3]

int ecaldqm::MESetEcal::findBin ( EcalDQMSetupObjects const  edso,
DetId const &  _id,
double  _x,
double  _y = 0. 
) const
virtual

Reimplemented in ecaldqm::MESetDet1D, and ecaldqm::MESetTrend.

Definition at line 559 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

559  {
560  if (!active_)
561  return -1;
562 
563  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
564  checkME_(iME);
565 
566  return mes_[iME]->getTH1()->FindBin(_x, _y);
567  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ findBin() [2/3]

int ecaldqm::MESetEcal::findBin ( EcalDQMSetupObjects const  edso,
EcalElectronicsId const &  _id,
double  _x,
double  _y = 0. 
) const
virtual

Reimplemented in ecaldqm::MESetDet1D, and ecaldqm::MESetTrend.

Definition at line 569 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

572  {
573  if (!active_)
574  return -1;
575 
576  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
577  checkME_(iME);
578 
579  return mes_[iME]->getTH1()->FindBin(_x, _y);
580  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ findBin() [3/3]

int ecaldqm::MESetEcal::findBin ( EcalDQMSetupObjects const  edso,
int  _dcctccid,
double  _x,
double  _y = 0. 
) const
virtual

Reimplemented in ecaldqm::MESetDet1D, and ecaldqm::MESetTrend.

Definition at line 582 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::btype_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

582  {
583  if (!active_)
584  return -1;
585 
586  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _dcctccid, btype_));
587  checkME_(iME);
588 
589  return mes_[iME]->getTH1()->FindBin(_x, _y);
590  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
binning::BinningType btype_
Definition: MESet.h:155
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ generatePaths()

std::vector< std::string > ecaldqm::MESetEcal::generatePaths ( EcalElectronicsMapping const *  electronicsMap) const

Definition at line 597 of file MESetEcal.cc.

References ecaldqm::binning::channelName(), ecaldqm::MESet::formPath(), ecaldqm::binning::getNObjects(), ecaldqm::binning::getObject(), ecaldqm::binning::kEB, ecaldqm::binning::kEBMEM, ecaldqm::kEBmLow, ecaldqm::binning::kEBSM, ecaldqm::binning::kEBSMMEM, ecaldqm::binning::kEE, ecaldqm::binning::kEEm, ecaldqm::binning::kEEMEM, ecaldqm::kEEmHigh, ecaldqm::binning::kEEp, ecaldqm::kEEpLow, ecaldqm::binning::kEESM, ecaldqm::binning::kEESMMEM, ecaldqm::binning::kSM, ecaldqm::binning::kSMMEM, ecaldqm::memDCCId(), getGTfromDQMFile::obj, ecaldqm::MESet::otype_, EnsembleCalibrationLA_cfg::path, ecaldqm::MESet::path_, and Skims_PA_cff::paths.

Referenced by book(), and retrieve().

597  {
598  using namespace std;
599 
600  vector<string> paths(0);
601 
602  unsigned nME(binning::getNObjects(otype_));
603 
604  for (unsigned iME(0); iME < nME; iME++) {
606 
607  string path(path_);
608  map<string, string> replacements;
609 
610  switch (obj) {
611  case binning::kEB:
612  case binning::kEBMEM:
613  replacements["subdet"] = "EcalBarrel";
614  replacements["prefix"] = "EB";
615  replacements["suffix"] = "";
616  replacements["subdetshort"] = "EB";
617  replacements["subdetshortsig"] = "EB";
618  replacements["supercrystal"] = "trigger tower";
619  break;
620  case binning::kEE:
621  case binning::kEEMEM:
622  replacements["subdet"] = "EcalEndcap";
623  replacements["prefix"] = "EE";
624  replacements["subdetshort"] = "EE";
625  replacements["subdetshortsig"] = "EE";
626  replacements["supercrystal"] = "super crystal";
627  break;
628  case binning::kEEm:
629  replacements["subdet"] = "EcalEndcap";
630  replacements["prefix"] = "EE";
631  replacements["suffix"] = " EE -";
632  replacements["subdetshort"] = "EE";
633  replacements["subdetshortsig"] = "EEM";
634  replacements["supercrystal"] = "super crystal";
635  break;
636  case binning::kEEp:
637  replacements["subdet"] = "EcalEndcap";
638  replacements["prefix"] = "EE";
639  replacements["suffix"] = " EE +";
640  replacements["subdetshort"] = "EE";
641  replacements["subdetshortsig"] = "EEP";
642  replacements["supercrystal"] = "super crystal";
643  break;
644  case binning::kSM:
645  if (iME <= kEEmHigh || iME >= kEEpLow) {
646  replacements["subdet"] = "EcalEndcap";
647  replacements["prefix"] = "EE";
648  replacements["supercrystal"] = "super crystal";
649  } else {
650  replacements["subdet"] = "EcalBarrel";
651  replacements["prefix"] = "EB";
652  replacements["supercrystal"] = "trigger tower";
653  }
654  replacements["sm"] = binning::channelName(electronicsMap, iME + 1);
655  break;
656  case binning::kEBSM:
657  replacements["subdet"] = "EcalBarrel";
658  replacements["prefix"] = "EB";
659  replacements["sm"] = binning::channelName(electronicsMap, iME + kEBmLow + 1);
660  replacements["supercrystal"] = "trigger tower";
661  break;
662  case binning::kEESM:
663  replacements["subdet"] = "EcalEndcap";
664  replacements["prefix"] = "EE";
665  replacements["sm"] = binning::channelName(electronicsMap, iME <= kEEmHigh ? iME + 1 : iME + 37);
666  replacements["supercrystal"] = "super crystal";
667  break;
668  case binning::kSMMEM: {
669  unsigned iDCC(memDCCId(iME) - 1);
670  // dccId(unsigned) skips DCCs without MEM
671  if (iDCC <= kEEmHigh || iDCC >= kEEpLow) {
672  replacements["subdet"] = "EcalEndcap";
673  replacements["prefix"] = "EE";
674  } else {
675  replacements["subdet"] = "EcalBarrel";
676  replacements["prefix"] = "EB";
677  }
678  replacements["sm"] = binning::channelName(electronicsMap, iDCC + 1);
679  } break;
680  case binning::kEBSMMEM: {
681  unsigned iDCC(memDCCId(iME + 4) - 1);
682  replacements["subdet"] = "EcalBarrel";
683  replacements["prefix"] = "EB";
684  replacements["sm"] = binning::channelName(electronicsMap, iDCC + 1);
685  } break;
686  case binning::kEESMMEM: {
687  unsigned iDCC(memDCCId(iME < 4 ? iME : iME + 36) - 1);
688  replacements["subdet"] = "EcalEndcap";
689  replacements["prefix"] = "EE";
690  replacements["sm"] = binning::channelName(electronicsMap, iDCC + 1);
691  }
692  default:
693  break;
694  }
695 
696  paths.push_back(formPath(replacements));
697  }
698 
699  return paths;
700  }
unsigned getNObjects(ObjectType)
ObjectType getObject(ObjectType, unsigned)
unsigned memDCCId(unsigned)
binning::ObjectType otype_
Definition: MESet.h:154
std::string channelName(EcalElectronicsMapping const *, uint32_t, BinningType _btype=kDCC)
std::string path_
Definition: MESet.h:153
std::string formPath(PathReplacements const &) const
Definition: MESet.cc:153

◆ getBinContent() [1/3]

double ecaldqm::MESetEcal::getBinContent ( EcalDQMSetupObjects const  edso,
DetId const &  _id,
int  _bin 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetProjection.

Definition at line 463 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

463  {
464  if (!active_)
465  return 0.;
466 
467  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
468  checkME_(iME);
469 
470  return mes_[iME]->getBinContent(_bin);
471  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ getBinContent() [2/3]

double ecaldqm::MESetEcal::getBinContent ( EcalDQMSetupObjects const  edso,
EcalElectronicsId const &  _id,
int  _bin 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 473 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

473  {
474  if (!active_)
475  return 0.;
476 
477  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
478  checkME_(iME);
479 
480  return mes_[iME]->getBinContent(_bin);
481  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ getBinContent() [3/3]

double ecaldqm::MESetEcal::getBinContent ( EcalDQMSetupObjects const  edso,
int  _dcctccid,
int  _bin 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 483 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::btype_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

483  {
484  if (!active_)
485  return 0.;
486 
487  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _dcctccid, btype_));
488  checkME_(iME);
489 
490  return mes_[iME]->getBinContent(_bin);
491  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
binning::BinningType btype_
Definition: MESet.h:155
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ getBinEntries() [1/3]

double ecaldqm::MESetEcal::getBinEntries ( EcalDQMSetupObjects const  edso,
DetId const &  _id,
int  _bin 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetProjection.

Definition at line 523 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::kind_, ecaldqm::MESet::mes_, ecaldqm::MESet::otype_, MonitorElementData::TPROFILE, and MonitorElementData::TPROFILE2D.

523  {
524  if (!active_)
525  return 0.;
527  return 0.;
528 
529  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
530  checkME_(iME);
531 
532  return mes_[iME]->getBinEntries(_bin);
533  }
MonitorElement::Kind kind_
Definition: MESet.h:156
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ getBinEntries() [2/3]

double ecaldqm::MESetEcal::getBinEntries ( EcalDQMSetupObjects const  edso,
EcalElectronicsId const &  _id,
int  _bin 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 535 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::kind_, ecaldqm::MESet::mes_, ecaldqm::MESet::otype_, MonitorElementData::TPROFILE, and MonitorElementData::TPROFILE2D.

535  {
536  if (!active_)
537  return 0.;
539  return 0.;
540 
541  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
542  checkME_(iME);
543 
544  return mes_[iME]->getBinEntries(_bin);
545  }
MonitorElement::Kind kind_
Definition: MESet.h:156
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ getBinEntries() [3/3]

double ecaldqm::MESetEcal::getBinEntries ( EcalDQMSetupObjects const  edso,
int  _dcctccid,
int  _bin 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 547 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::btype_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::kind_, ecaldqm::MESet::mes_, ecaldqm::MESet::otype_, MonitorElementData::TPROFILE, and MonitorElementData::TPROFILE2D.

547  {
548  if (!active_)
549  return 0.;
551  return 0.;
552 
553  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _dcctccid, btype_));
554  checkME_(iME);
555 
556  return mes_[iME]->getBinEntries(_bin);
557  }
MonitorElement::Kind kind_
Definition: MESet.h:156
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
binning::BinningType btype_
Definition: MESet.h:155
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ getBinError() [1/3]

double ecaldqm::MESetEcal::getBinError ( EcalDQMSetupObjects const  edso,
DetId const &  _id,
int  _bin 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetProjection.

Definition at line 493 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

493  {
494  if (!active_)
495  return 0.;
496 
497  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
498  checkME_(iME);
499 
500  return mes_[iME]->getBinError(_bin);
501  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ getBinError() [2/3]

double ecaldqm::MESetEcal::getBinError ( EcalDQMSetupObjects const  edso,
EcalElectronicsId const &  _id,
int  _bin 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 503 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

503  {
504  if (!active_)
505  return 0.;
506 
507  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
508  checkME_(iME);
509 
510  return mes_[iME]->getBinError(_bin);
511  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ getBinError() [3/3]

double ecaldqm::MESetEcal::getBinError ( EcalDQMSetupObjects const  edso,
int  _dcctccid,
int  _bin 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 513 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::btype_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

513  {
514  if (!active_)
515  return 0.;
516 
517  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _dcctccid, btype_));
518  checkME_(iME);
519 
520  return mes_[iME]->getBinError(_bin);
521  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
binning::BinningType btype_
Definition: MESet.h:155
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ isVariableBinning()

bool ecaldqm::MESetEcal::isVariableBinning ( ) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetTrend.

Definition at line 592 of file MESetEcal.cc.

References ecaldqm::binning::AxisSpecs::edges, xaxis_, yaxis_, and zaxis_.

592  {
593  return (xaxis_ && !xaxis_->edges.empty()) || (yaxis_ && !yaxis_->edges.empty()) ||
594  (zaxis_ && !zaxis_->edges.empty());
595  }
std::vector< float > edges
binning::AxisSpecs const * zaxis_
Definition: MESetEcal.h:76
binning::AxisSpecs const * xaxis_
Definition: MESetEcal.h:74
binning::AxisSpecs const * yaxis_
Definition: MESetEcal.h:75

◆ operator=()

MESet & ecaldqm::MESetEcal::operator= ( MESet const &  _rhs)
overridevirtual

Reimplemented from ecaldqm::MESet.

Reimplemented in ecaldqm::MESetTrend.

Definition at line 40 of file MESetEcal.cc.

References logicalDimensions_, ecaldqm::MESet::operator=(), xaxis_, yaxis_, and zaxis_.

Referenced by ecaldqm::MESetTrend::operator=().

40  {
41  delete xaxis_;
42  delete yaxis_;
43  delete zaxis_;
44  xaxis_ = nullptr;
45  yaxis_ = nullptr;
46  zaxis_ = nullptr;
47 
48  MESetEcal const *pRhs(dynamic_cast<MESetEcal const *>(&_rhs));
49  if (pRhs) {
50  logicalDimensions_ = pRhs->logicalDimensions_;
51  if (pRhs->xaxis_)
52  xaxis_ = new binning::AxisSpecs(*pRhs->xaxis_);
53  if (pRhs->yaxis_)
54  yaxis_ = new binning::AxisSpecs(*pRhs->yaxis_);
55  if (pRhs->zaxis_)
56  zaxis_ = new binning::AxisSpecs(*pRhs->zaxis_);
57  }
58  return MESet::operator=(_rhs);
59  }
MESetEcal(std::string const &, binning::ObjectType, binning::BinningType, MonitorElement::Kind, unsigned, binning::AxisSpecs const *=nullptr, binning::AxisSpecs const *=nullptr, binning::AxisSpecs const *=nullptr)
Definition: MESetEcal.cc:10
binning::AxisSpecs const * zaxis_
Definition: MESetEcal.h:76
binning::AxisSpecs const * xaxis_
Definition: MESetEcal.h:74
virtual MESet & operator=(MESet const &)
Definition: MESet.cc:64
binning::AxisSpecs const * yaxis_
Definition: MESetEcal.h:75
unsigned logicalDimensions_
Definition: MESetEcal.h:73

◆ retrieve()

bool ecaldqm::MESetEcal::retrieve ( EcalElectronicsMapping const *  electronicsMap,
DQMStore::IGetter _igetter,
std::string *  _failedPath = nullptr 
) const
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 280 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::clear(), generatePaths(), dqm::implementation::IGetter::get(), hlt_dqm_clientPB-live_cfg::me, ecaldqm::MESet::mes_, EnsembleCalibrationLA_cfg::path, AlCaHLTBitMon_QueryRunRegistry::string, and ecaldqm::MESet::throw_().

282  {
283  clear();
284 
285  std::vector<std::string> mePaths(generatePaths(electronicsMap));
286  if (mePaths.empty()) {
287  if (_failedPath)
288  _failedPath->clear();
289  return false;
290  }
291 
292  for (unsigned iME(0); iME < mePaths.size(); iME++) {
293  std::string &path(mePaths[iME]);
294  if (path.find('%') != std::string::npos)
295  throw_("retrieve() called with incompletely formed path [" + path + "]");
296 
297  MonitorElement *me(_igetter.get(path));
298  if (me)
299  mes_.push_back(me);
300  else {
301  clear();
302  if (_failedPath)
303  *_failedPath = path;
304  return false;
305  }
306  }
307 
308  active_ = true;
309  return true;
310  }
void throw_(std::string const &_message) const
Definition: MESet.h:149
std::vector< std::string > generatePaths(EcalElectronicsMapping const *) const
Definition: MESetEcal.cc:597
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:712
bool active_
Definition: MESet.h:161
virtual void clear() const
Definition: MESet.cc:84
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ setBinContent() [1/3]

void ecaldqm::MESetEcal::setBinContent ( EcalDQMSetupObjects const  edso,
DetId const &  _id,
int  _bin,
double  _content 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 361 of file MESetEcal.cc.

References btvTracks_cfi::_content, ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

361  {
362  if (!active_)
363  return;
364 
365  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
366  checkME_(iME);
367 
368  mes_[iME]->setBinContent(_bin, _content);
369  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ setBinContent() [2/3]

void ecaldqm::MESetEcal::setBinContent ( EcalDQMSetupObjects const  edso,
EcalElectronicsId const &  _id,
int  _bin,
double  _content 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 371 of file MESetEcal.cc.

References btvTracks_cfi::_content, ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

374  {
375  if (!active_)
376  return;
377 
378  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
379  checkME_(iME);
380 
381  mes_[iME]->setBinContent(_bin, _content);
382  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ setBinContent() [3/3]

void ecaldqm::MESetEcal::setBinContent ( EcalDQMSetupObjects const  edso,
int  _dcctccid,
int  _bin,
double  _content 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 384 of file MESetEcal.cc.

References btvTracks_cfi::_content, ecaldqm::MESet::active_, ecaldqm::MESet::btype_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

384  {
385  if (!active_)
386  return;
387 
388  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _dcctccid, btype_));
389  checkME_(iME);
390 
391  mes_[iME]->setBinContent(_bin, _content);
392  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
binning::BinningType btype_
Definition: MESet.h:155
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ setBinEntries() [1/3]

void ecaldqm::MESetEcal::setBinEntries ( EcalDQMSetupObjects const  edso,
DetId const &  _id,
int  _bin,
double  _entries 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 424 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::kind_, ecaldqm::MESet::mes_, ecaldqm::MESet::otype_, MonitorElementData::TPROFILE, and MonitorElementData::TPROFILE2D.

424  {
425  if (!active_)
426  return;
428  return;
429 
430  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
431  checkME_(iME);
432 
433  mes_[iME]->setBinEntries(_bin, _entries);
434  }
MonitorElement::Kind kind_
Definition: MESet.h:156
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ setBinEntries() [2/3]

void ecaldqm::MESetEcal::setBinEntries ( EcalDQMSetupObjects const  edso,
EcalElectronicsId const &  _id,
int  _bin,
double  _entries 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 436 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::kind_, ecaldqm::MESet::mes_, ecaldqm::MESet::otype_, MonitorElementData::TPROFILE, and MonitorElementData::TPROFILE2D.

439  {
440  if (!active_)
441  return;
443  return;
444 
445  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
446  checkME_(iME);
447 
448  mes_[iME]->setBinEntries(_bin, _entries);
449  }
MonitorElement::Kind kind_
Definition: MESet.h:156
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ setBinEntries() [3/3]

void ecaldqm::MESetEcal::setBinEntries ( EcalDQMSetupObjects const  edso,
int  _dcctccid,
int  _bin,
double  _entries 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 451 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::btype_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::kind_, ecaldqm::MESet::mes_, ecaldqm::MESet::otype_, MonitorElementData::TPROFILE, and MonitorElementData::TPROFILE2D.

451  {
452  if (!active_)
453  return;
455  return;
456 
457  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _dcctccid, btype_));
458  checkME_(iME);
459 
460  mes_[iME]->setBinEntries(_bin, _entries);
461  }
MonitorElement::Kind kind_
Definition: MESet.h:156
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
binning::BinningType btype_
Definition: MESet.h:155
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ setBinError() [1/3]

void ecaldqm::MESetEcal::setBinError ( EcalDQMSetupObjects const  edso,
DetId const &  _id,
int  _bin,
double  _error 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 394 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

394  {
395  if (!active_)
396  return;
397 
398  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
399  checkME_(iME);
400 
401  mes_[iME]->setBinError(_bin, _error);
402  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ setBinError() [2/3]

void ecaldqm::MESetEcal::setBinError ( EcalDQMSetupObjects const  edso,
EcalElectronicsId const &  _id,
int  _bin,
double  _error 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 404 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

404  {
405  if (!active_)
406  return;
407 
408  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _id));
409  checkME_(iME);
410 
411  mes_[iME]->setBinError(_bin, _error);
412  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

◆ setBinError() [3/3]

void ecaldqm::MESetEcal::setBinError ( EcalDQMSetupObjects const  edso,
int  _dcctccid,
int  _bin,
double  _error 
)
overridevirtual

Reimplemented from ecaldqm::MESet.

Definition at line 414 of file MESetEcal.cc.

References ecaldqm::MESet::active_, ecaldqm::MESet::btype_, ecaldqm::MESet::checkME_(), ecaldqm::EcalDQMSetupObjects::electronicsMap, ecaldqm::binning::findPlotIndex(), ecaldqm::MESet::mes_, and ecaldqm::MESet::otype_.

414  {
415  if (!active_)
416  return;
417 
418  unsigned iME(binning::findPlotIndex(edso.electronicsMap, otype_, _dcctccid, btype_));
419  checkME_(iME);
420 
421  mes_[iME]->setBinError(_bin, _error);
422  }
virtual void checkME_(unsigned _iME) const
Definition: MESet.h:141
unsigned findPlotIndex(EcalElectronicsMapping const *, ObjectType, DetId const &)
bool active_
Definition: MESet.h:161
binning::ObjectType otype_
Definition: MESet.h:154
binning::BinningType btype_
Definition: MESet.h:155
std::vector< MonitorElement * > mes_
Definition: MESet.h:151

Member Data Documentation

◆ logicalDimensions_

unsigned ecaldqm::MESetEcal::logicalDimensions_
protected

Definition at line 73 of file MESetEcal.h.

Referenced by book(), MESetEcal(), and operator=().

◆ xaxis_

binning::AxisSpecs const* ecaldqm::MESetEcal::xaxis_
protected

◆ yaxis_

binning::AxisSpecs const* ecaldqm::MESetEcal::yaxis_
protected

Definition at line 75 of file MESetEcal.h.

Referenced by book(), isVariableBinning(), MESetEcal(), operator=(), and ~MESetEcal().

◆ zaxis_

binning::AxisSpecs const* ecaldqm::MESetEcal::zaxis_
protected

Definition at line 76 of file MESetEcal.h.

Referenced by book(), isVariableBinning(), operator=(), and ~MESetEcal().