MESetMulti

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
#ifndef MESetMulti_H
#define MESetMulti_H

#include "MESet.h"

namespace ecaldqm {
  /* class MESetMulti
   wrapper for a set of MESets
   limit() filters out unused MESets
   use() method sets the MESet to be used
*/

  class MESetMulti : public MESet {
  public:
    typedef std::map<std::string, std::vector<std::string>> ReplCandidates;

    MESetMulti(MESet const &, ReplCandidates const &);
    MESetMulti(MESetMulti const &);
    ~MESetMulti() override;

    MESet &operator=(MESet const &) override;

    MESet *clone(std::string const & = "") const override;

    void book(DQMStore::IBooker &, EcalElectronicsMapping const *) override;
    bool retrieve(EcalElectronicsMapping const *, DQMStore::IGetter &, std::string * = nullptr) const override;
    void clear() const override;

    void fill(
        EcalDQMSetupObjects const edso, DetId const &_id, double _xyw = 1., double _yw = 1., double _w = 1.) override {
      current_->fill(edso, _id, _xyw, _yw, _w);
    }
    void fill(EcalDQMSetupObjects const edso,
              EcalElectronicsId const &_id,
              double _xyw = 1.,
              double _yw = 1.,
              double _w = 1.) override {
      current_->fill(edso, _id, _xyw, _yw, _w);
    }
    void fill(
        EcalDQMSetupObjects const edso, int _dcctccid, double _xyw = 1., double _yw = 1., double _w = 1.) override {
      current_->fill(edso, _dcctccid, _xyw, _yw, _w);
    }
    void fill(EcalDQMSetupObjects const edso, double _x, double _yw = 1., double _w = 1.) override {
      current_->fill(edso, _x, _yw, _w);
    }

    void setBinContent(EcalDQMSetupObjects const edso, DetId const &_id, double _content) override {
      current_->setBinContent(edso, _id, _content);
    }
    void setBinContent(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, double _content) override {
      current_->setBinContent(edso, _id, _content);
    }
    void setBinContent(EcalDQMSetupObjects const edso, int _dcctccid, double _content) override {
      current_->setBinContent(edso, _dcctccid, _content);
    }
    void setBinContent(EcalDQMSetupObjects const edso, DetId const &_id, int _bin, double _content) override {
      current_->setBinContent(edso, _id, _bin, _content);
    }
    void setBinContent(EcalDQMSetupObjects const edso,
                       EcalElectronicsId const &_id,
                       int _bin,
                       double _content) override {
      current_->setBinContent(edso, _id, _bin, _content);
    }
    void setBinContent(EcalDQMSetupObjects const edso, int _dcctccid, int _bin, double _content) override {
      current_->setBinContent(edso, _dcctccid, _bin, _content);
    }

    void setBinError(EcalDQMSetupObjects const edso, DetId const &_id, double _error) override {
      current_->setBinError(edso, _id, _error);
    }
    void setBinError(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, double _error) override {
      current_->setBinError(edso, _id, _error);
    }
    void setBinError(EcalDQMSetupObjects const edso, int _dcctccid, double _error) override {
      current_->setBinError(edso, _dcctccid, _error);
    }
    void setBinError(EcalDQMSetupObjects const edso, DetId const &_id, int _bin, double _error) override {
      current_->setBinError(edso, _id, _bin, _error);
    }
    void setBinError(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, int _bin, double _error) override {
      current_->setBinError(edso, _id, _bin, _error);
    }
    void setBinError(EcalDQMSetupObjects const edso, int _dcctccid, int _bin, double _error) override {
      current_->setBinError(edso, _dcctccid, _bin, _error);
    }

    void setBinEntries(EcalDQMSetupObjects const edso, DetId const &_id, double _entries) override {
      current_->setBinEntries(edso, _id, _entries);
    }
    void setBinEntries(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, double _entries) override {
      current_->setBinEntries(edso, _id, _entries);
    }
    void setBinEntries(EcalDQMSetupObjects const edso, int _dcctccid, double _entries) override {
      current_->setBinEntries(edso, _dcctccid, _entries);
    }
    void setBinEntries(EcalDQMSetupObjects const edso, DetId const &_id, int _bin, double _entries) override {
      current_->setBinEntries(edso, _id, _bin, _entries);
    }
    void setBinEntries(EcalDQMSetupObjects const edso,
                       EcalElectronicsId const &_id,
                       int _bin,
                       double _entries) override {
      current_->setBinEntries(edso, _id, _bin, _entries);
    }
    void setBinEntries(EcalDQMSetupObjects const edso, int _dcctccid, int _bin, double _entries) override {
      current_->setBinEntries(edso, _dcctccid, _bin, _entries);
    }

    double getBinContent(EcalDQMSetupObjects const edso, DetId const &_id, int _bin = 0) const override {
      return current_->getBinContent(edso, _id, _bin);
    }
    double getBinContent(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, int _bin = 0) const override {
      return current_->getBinContent(edso, _id, _bin);
    }
    double getBinContent(EcalDQMSetupObjects const edso, int _dcctccid, int _bin = 0) const override {
      return current_->getBinContent(edso, _dcctccid, _bin);
    }

    double getBinError(EcalDQMSetupObjects const edso, DetId const &_id, int _bin = 0) const override {
      return current_->getBinError(edso, _id, _bin);
    }
    double getBinError(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, int _bin = 0) const override {
      return current_->getBinError(edso, _id, _bin);
    }
    double getBinError(EcalDQMSetupObjects const edso, int _dcctccid, int _bin = 0) const override {
      return current_->getBinError(edso, _dcctccid, _bin);
    }

    double getBinEntries(EcalDQMSetupObjects const edso, DetId const &_id, int _bin = 0) const override {
      return current_->getBinEntries(edso, _id, _bin);
    }
    double getBinEntries(EcalDQMSetupObjects const edso, EcalElectronicsId const &_id, int _bin = 0) const override {
      return current_->getBinEntries(edso, _id, _bin);
    }
    double getBinEntries(EcalDQMSetupObjects const edso, int _dcctccid, int _bin = 0) const override {
      return current_->getBinEntries(edso, _dcctccid, _bin);
    }

    void reset(EcalElectronicsMapping const *, double = 0., double = 0., double = 0.) override;
    void resetAll(double = 0., double = 0., double = 0.) override;

    bool maskMatches(DetId const &_id,
                     uint32_t _mask,
                     StatusManager const *_statusManager,
                     EcalTrigTowerConstituentsMap const *trigTowerMap) const override {
      return current_ && current_->maskMatches(_id, _mask, _statusManager, trigTowerMap);
    }

    bool isVariableBinning() const override { return current_->isVariableBinning(); }

    std::string const &getPath() const override { return current_->getPath(); }
    MonitorElement const *getME(unsigned _iME) const override { return current_->getME(_iME); }
    MonitorElement *getME(unsigned _iME) override { return current_->getME(_iME); }

    void use(unsigned) const;
    MESet *getCurrent() const { return current_; }
    unsigned getMultiplicity() const { return sets_.size(); }
    unsigned getIndex(PathReplacements const &) const;

    const_iterator begin(EcalElectronicsMapping const *electronicsMap) const override {
      return const_iterator(electronicsMap, *current_);
    }
    const_iterator end(EcalElectronicsMapping const *electronicsMap) const override {
      return const_iterator(electronicsMap, *current_, -1, -1);
    }
    const_iterator beginChannel(EcalElectronicsMapping const *electronicsMap) const override {
      return current_->beginChannel(electronicsMap);
    }
    iterator begin(EcalElectronicsMapping const *electronicsMap) override {
      return iterator(electronicsMap, *current_);
    }
    iterator end(EcalElectronicsMapping const *electronicsMap) override {
      return iterator(electronicsMap, *current_, -1, -1);
    }
    iterator beginChannel(EcalElectronicsMapping const *electronicsMap) override {
      return current_->beginChannel(electronicsMap);
    }

  protected:
    mutable MESet *current_;
    std::vector<MESet *> sets_;
    ReplCandidates replCandidates_;
  };
}  // namespace ecaldqm

#endif