File indexing completed on 2023-03-17 10:54:21
0001 #ifndef MESetMulti_H
0002 #define MESetMulti_H
0003
0004 #include "MESet.h"
0005
0006 namespace ecaldqm {
0007
0008
0009
0010
0011
0012
0013 class MESetMulti : public MESet {
0014 public:
0015 typedef std::map<std::string, std::vector<std::string>> ReplCandidates;
0016
0017 MESetMulti(MESet const &, ReplCandidates const &);
0018 MESetMulti(MESetMulti const &);
0019 ~MESetMulti() override;
0020
0021 MESet &operator=(MESet const &) override;
0022
0023 MESet *clone(std::string const & = "") const override;
0024
0025 void book(DQMStore::IBooker &, EcalElectronicsMapping const *) override;
0026 bool retrieve(EcalElectronicsMapping const *, DQMStore::IGetter &, std::string * = nullptr) const override;
0027 void clear() const override;
0028
0029 void fill(
0030 EcalDQMSetupObjects const edso, DetId const &_id, double _xyw = 1., double _yw = 1., double _w = 1.) override {
0031 current_->fill(edso, _id, _xyw, _yw, _w);
0032 }
0033 void fill(EcalDQMSetupObjects const edso,
0034 EcalElectronicsId const &_id,
0035 double _xyw = 1.,
0036 double _yw = 1.,
0037 double _w = 1.) override {
0038 current_->fill(edso, _id, _xyw, _yw, _w);
0039 }
0040 void fill(
0041 EcalDQMSetupObjects const edso, int _dcctccid, double _xyw = 1., double _yw = 1., double _w = 1.) override {
0042 current_->fill(edso, _dcctccid, _xyw, _yw, _w);
0043 }
0044 void fill(EcalDQMSetupObjects const edso, double _x, double _yw = 1., double _w = 1.) override {
0045 current_->fill(edso, _x, _yw, _w);
0046 }
0047
0048 void setBinContent(EcalDQMSetupObjects const edso, DetId const &_id, double _content) override {
0049 current_->setBinContent(edso, _id, _content);
0050 }
0051 void setBinContent(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, double _content) override {
0052 current_->setBinContent(edso, _id, _content);
0053 }
0054 void setBinContent(EcalDQMSetupObjects const edso, int _dcctccid, double _content) override {
0055 current_->setBinContent(edso, _dcctccid, _content);
0056 }
0057 void setBinContent(EcalDQMSetupObjects const edso, DetId const &_id, int _bin, double _content) override {
0058 current_->setBinContent(edso, _id, _bin, _content);
0059 }
0060 void setBinContent(EcalDQMSetupObjects const edso,
0061 EcalElectronicsId const &_id,
0062 int _bin,
0063 double _content) override {
0064 current_->setBinContent(edso, _id, _bin, _content);
0065 }
0066 void setBinContent(EcalDQMSetupObjects const edso, int _dcctccid, int _bin, double _content) override {
0067 current_->setBinContent(edso, _dcctccid, _bin, _content);
0068 }
0069
0070 void setBinError(EcalDQMSetupObjects const edso, DetId const &_id, double _error) override {
0071 current_->setBinError(edso, _id, _error);
0072 }
0073 void setBinError(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, double _error) override {
0074 current_->setBinError(edso, _id, _error);
0075 }
0076 void setBinError(EcalDQMSetupObjects const edso, int _dcctccid, double _error) override {
0077 current_->setBinError(edso, _dcctccid, _error);
0078 }
0079 void setBinError(EcalDQMSetupObjects const edso, DetId const &_id, int _bin, double _error) override {
0080 current_->setBinError(edso, _id, _bin, _error);
0081 }
0082 void setBinError(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, int _bin, double _error) override {
0083 current_->setBinError(edso, _id, _bin, _error);
0084 }
0085 void setBinError(EcalDQMSetupObjects const edso, int _dcctccid, int _bin, double _error) override {
0086 current_->setBinError(edso, _dcctccid, _bin, _error);
0087 }
0088
0089 void setBinEntries(EcalDQMSetupObjects const edso, DetId const &_id, double _entries) override {
0090 current_->setBinEntries(edso, _id, _entries);
0091 }
0092 void setBinEntries(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, double _entries) override {
0093 current_->setBinEntries(edso, _id, _entries);
0094 }
0095 void setBinEntries(EcalDQMSetupObjects const edso, int _dcctccid, double _entries) override {
0096 current_->setBinEntries(edso, _dcctccid, _entries);
0097 }
0098 void setBinEntries(EcalDQMSetupObjects const edso, DetId const &_id, int _bin, double _entries) override {
0099 current_->setBinEntries(edso, _id, _bin, _entries);
0100 }
0101 void setBinEntries(EcalDQMSetupObjects const edso,
0102 EcalElectronicsId const &_id,
0103 int _bin,
0104 double _entries) override {
0105 current_->setBinEntries(edso, _id, _bin, _entries);
0106 }
0107 void setBinEntries(EcalDQMSetupObjects const edso, int _dcctccid, int _bin, double _entries) override {
0108 current_->setBinEntries(edso, _dcctccid, _bin, _entries);
0109 }
0110
0111 double getBinContent(EcalDQMSetupObjects const edso, DetId const &_id, int _bin = 0) const override {
0112 return current_->getBinContent(edso, _id, _bin);
0113 }
0114 double getBinContent(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, int _bin = 0) const override {
0115 return current_->getBinContent(edso, _id, _bin);
0116 }
0117 double getBinContent(EcalDQMSetupObjects const edso, int _dcctccid, int _bin = 0) const override {
0118 return current_->getBinContent(edso, _dcctccid, _bin);
0119 }
0120
0121 double getBinError(EcalDQMSetupObjects const edso, DetId const &_id, int _bin = 0) const override {
0122 return current_->getBinError(edso, _id, _bin);
0123 }
0124 double getBinError(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, int _bin = 0) const override {
0125 return current_->getBinError(edso, _id, _bin);
0126 }
0127 double getBinError(EcalDQMSetupObjects const edso, int _dcctccid, int _bin = 0) const override {
0128 return current_->getBinError(edso, _dcctccid, _bin);
0129 }
0130
0131 double getBinEntries(EcalDQMSetupObjects const edso, DetId const &_id, int _bin = 0) const override {
0132 return current_->getBinEntries(edso, _id, _bin);
0133 }
0134 double getBinEntries(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, int _bin = 0) const override {
0135 return current_->getBinEntries(edso, _id, _bin);
0136 }
0137 double getBinEntries(EcalDQMSetupObjects const edso, int _dcctccid, int _bin = 0) const override {
0138 return current_->getBinEntries(edso, _dcctccid, _bin);
0139 }
0140
0141 void reset(EcalElectronicsMapping const *, double = 0., double = 0., double = 0.) override;
0142 void resetAll(double = 0., double = 0., double = 0.) override;
0143
0144 bool maskMatches(DetId const &_id,
0145 uint32_t _mask,
0146 StatusManager const *_statusManager,
0147 EcalTrigTowerConstituentsMap const *trigTowerMap) const override {
0148 return current_ && current_->maskMatches(_id, _mask, _statusManager, trigTowerMap);
0149 }
0150
0151 bool isVariableBinning() const override { return current_->isVariableBinning(); }
0152
0153 std::string const &getPath() const override { return current_->getPath(); }
0154 MonitorElement const *getME(unsigned _iME) const override { return current_->getME(_iME); }
0155 MonitorElement *getME(unsigned _iME) override { return current_->getME(_iME); }
0156
0157 void use(unsigned) const;
0158 MESet *getCurrent() const { return current_; }
0159 unsigned getMultiplicity() const { return sets_.size(); }
0160 unsigned getIndex(PathReplacements const &) const;
0161
0162 const_iterator begin(EcalElectronicsMapping const *electronicsMap) const override {
0163 return const_iterator(electronicsMap, *current_);
0164 }
0165 const_iterator end(EcalElectronicsMapping const *electronicsMap) const override {
0166 return const_iterator(electronicsMap, *current_, -1, -1);
0167 }
0168 const_iterator beginChannel(EcalElectronicsMapping const *electronicsMap) const override {
0169 return current_->beginChannel(electronicsMap);
0170 }
0171 iterator begin(EcalElectronicsMapping const *electronicsMap) override {
0172 return iterator(electronicsMap, *current_);
0173 }
0174 iterator end(EcalElectronicsMapping const *electronicsMap) override {
0175 return iterator(electronicsMap, *current_, -1, -1);
0176 }
0177 iterator beginChannel(EcalElectronicsMapping const *electronicsMap) override {
0178 return current_->beginChannel(electronicsMap);
0179 }
0180
0181 protected:
0182 mutable MESet *current_;
0183 std::vector<MESet *> sets_;
0184 ReplCandidates replCandidates_;
0185 };
0186 }
0187
0188 #endif