#include <MESetChannel.h>
Public Member Functions | |
void | checkDirectory () const |
void | clear () const |
void | fill (DetId const &, double _w=1., double _unused1=0., double _unused2=0.) |
void | fill (EcalElectronicsId const &, double _w=1., double _unused1=0., double _unused2=0.) |
double | getBinContent (DetId const &, int _bin=0) const |
double | getBinContent (EcalElectronicsId const &, int _bin=0) const |
double | getBinEntries (EcalElectronicsId const &_id, int _bin=0) const |
double | getBinEntries (DetId const &_id, int _bin=0) const |
MESetChannel (std::string const &, MEData const &, bool _readOnly=false) | |
void | reset (double _content=0., double _err=0., double _entries=0.) |
bool | retrieve () const |
void | setBinContent (DetId const &, double, double _err=0.) |
void | setBinContent (EcalElectronicsId const &, double, double _err=0.) |
~MESetChannel () | |
Private Member Functions | |
std::map< uint32_t, unsigned > ::iterator | append_ (std::string const &, uint32_t) |
uint32_t | getIndex_ (EcalElectronicsId const &) const |
uint32_t | getIndex_ (DetId const &) const |
Private Attributes | |
std::vector< MonitorElement * > | mes_ |
std::map< uint32_t, unsigned > | meTable_ |
bool | readMode_ |
Definition at line 11 of file MESetChannel.h.
ecaldqm::MESetChannel::MESetChannel | ( | std::string const & | _fullpath, |
MEData const & | _data, | ||
bool | _readOnly = false |
||
) |
Definition at line 10 of file MESetChannel.cc.
ecaldqm::MESetChannel::~MESetChannel | ( | ) |
Definition at line 16 of file MESetChannel.cc.
{ }
std::map< uint32_t, unsigned >::iterator ecaldqm::MESetChannel::append_ | ( | std::string const & | _name, |
uint32_t | _rawId | ||
) | [private] |
Definition at line 160 of file MESetChannel.cc.
References DQMStore::book1D(), ecaldqm::MESet::dir_, ecaldqm::MESet::dqmStore_, mes_, meTable_, DQMStore::pwd(), alignCSCRings::pwd, and DQMStore::setCurrentFolder().
Referenced by fill(), and setBinContent().
{ std::string pwd(dqmStore_->pwd()); dqmStore_->setCurrentFolder(dir_); MonitorElement* me(dqmStore_->book1D(_name, _name, 1, 0., 1.)); dqmStore_->setCurrentFolder(pwd); if(!me) return meTable_.end(); mes_.push_back(me); std::pair<std::map<uint32_t, unsigned>::iterator, bool> ins(meTable_.insert(std::pair<uint32_t, unsigned>(_rawId, mes_.size() - 1))); return ins.first; }
void ecaldqm::MESetChannel::checkDirectory | ( | ) | const |
Definition at line 143 of file MESetChannel.cc.
References ecaldqm::MESet::binService_, ecaldqm::MESet::dir_, ecaldqm::MESet::dqmStore_, spr::find(), DQMStore::getContents(), errorMatrix2Lands_multiChannel::id, EcalDQMBinningService::idFromName(), mes_, and meTable_.
Referenced by ecaldqm::DQWorkerClient::endLuminosityBlock().
{ using namespace std; vector<MonitorElement*> storeMEs(dqmStore_->getContents(dir_)); for(vector<MonitorElement*>::iterator storeItr(storeMEs.begin()); storeItr != storeMEs.end(); ++storeItr){ if(find(mes_.begin(), mes_.end(), *storeItr) != mes_.end()) continue; uint32_t id(binService_->idFromName((*storeItr)->getName())); if(id != 0){ mes_.push_back(*storeItr); meTable_[id] = mes_.size() - 1; } } }
void ecaldqm::MESetChannel::clear | ( | void | ) | const [virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 28 of file MESetChannel.cc.
References ecaldqm::MESet::dir_, ecaldqm::MESet::dqmStore_, mes_, meTable_, ecaldqm::MESet::readOnly_, and DQMStore::rmdir().
void ecaldqm::MESetChannel::fill | ( | EcalElectronicsId const & | _id, |
double | _w = 1. , |
||
double | _unused1 = 0. , |
||
double | _unused2 = 0. |
||
) | [virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 52 of file MESetChannel.cc.
References append_(), ecaldqm::MESet::binService_, ecaldqm::MEData::btype, EcalDQMBinningService::channelName(), ecaldqm::MESet::data_, getIndex_(), mes_, meTable_, and ecaldqm::MESet::name().
{ uint32_t rawId(getIndex_(_id)); std::map<uint32_t, unsigned>::iterator tableItr(meTable_.find(rawId)); if(tableItr == meTable_.end()){ std::string name(binService_->channelName(rawId, data_->btype)); tableItr = append_(name, rawId); } if(tableItr == meTable_.end()) return; mes_.at(tableItr->second)->Fill(0.5, _w); }
void ecaldqm::MESetChannel::fill | ( | DetId const & | _id, |
double | _w = 1. , |
||
double | _unused1 = 0. , |
||
double | _unused2 = 0. |
||
) | [virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 37 of file MESetChannel.cc.
References append_(), ecaldqm::MESet::binService_, ecaldqm::MEData::btype, EcalDQMBinningService::channelName(), ecaldqm::MESet::data_, getIndex_(), mes_, meTable_, and ecaldqm::MESet::name().
{ uint32_t rawId(getIndex_(_id)); std::map<uint32_t, unsigned>::iterator tableItr(meTable_.find(rawId)); if(tableItr == meTable_.end()){ std::string name(binService_->channelName(rawId, data_->btype)); tableItr = append_(name, rawId); } if(tableItr == meTable_.end()) return; mes_.at(tableItr->second)->Fill(0.5, _w); }
double ecaldqm::MESetChannel::getBinContent | ( | DetId const & | _id, |
int | _bin = 0 |
||
) | const [virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 119 of file MESetChannel.cc.
References getIndex_(), mes_, and meTable_.
Referenced by getBinEntries().
double ecaldqm::MESetChannel::getBinContent | ( | EcalElectronicsId const & | _id, |
int | _bin = 0 |
||
) | const [virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 131 of file MESetChannel.cc.
References getIndex_(), mes_, and meTable_.
double ecaldqm::MESetChannel::getBinEntries | ( | EcalElectronicsId const & | _id, |
int | _bin = 0 |
||
) | const [inline, virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 33 of file MESetChannel.h.
: std::map<uint32_t, unsigned>::iterator append_(std::string const&, uint32_t);
double ecaldqm::MESetChannel::getBinEntries | ( | DetId const & | _id, |
int | _bin = 0 |
||
) | const [inline, virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 32 of file MESetChannel.h.
References getBinContent().
{ return getBinContent(_id, _bin); }
uint32_t ecaldqm::MESetChannel::getIndex_ | ( | DetId const & | _id | ) | const [private] |
Definition at line 178 of file MESetChannel.cc.
References ecaldqm::MEData::btype, ecaldqm::MESet::data_, EcalElectronicsId::dccId(), EcalTriggerTower, Exception, EcalElectronicsMapping::getElectronicsId(), ecaldqm::getElectronicsMap(), EcalDQMBinningService::kCrystal, EcalDQMBinningService::kDCC, EcalDQMBinningService::kSuperCrystal, EcalDQMBinningService::kTCC, EcalDQMBinningService::kTriggerTower, EcalDQMBinningService::nDCC, EcalElectronicsId::rawId(), EcalTriggerElectronicsId::rawId(), DetId::subdetId(), EcalTriggerElectronicsId::tccId(), EcalElectronicsId::towerId(), and EcalTriggerElectronicsId::ttId().
Referenced by fill(), getBinContent(), and setBinContent().
{ switch(data_->btype){ case BinService::kCrystal: return getElectronicsMap()->getElectronicsId(_id).rawId(); case BinService::kTriggerTower: { if(_id.subdetId() == EcalTriggerTower){ EcalTrigTowerDetId ttid(_id); return EcalTriggerElectronicsId(getElectronicsMap()->TCCid(ttid), getElectronicsMap()->iTT(ttid), 1, 1).rawId(); } else{ EcalTriggerElectronicsId teid(getElectronicsMap()->getTriggerElectronicsId(_id)); return EcalTriggerElectronicsId(teid.tccId(), teid.ttId(), 1, 1).rawId(); } } case BinService::kSuperCrystal: { EcalElectronicsId eid(getElectronicsMap()->getElectronicsId(_id)); return EcalElectronicsId(eid.dccId(), eid.towerId(), 1, 1).rawId(); } case BinService::kTCC: { EcalTriggerElectronicsId teid(getElectronicsMap()->getTriggerElectronicsId(_id)); return BinService::nDCC + teid.tccId(); } case BinService::kDCC: { EcalElectronicsId eid(getElectronicsMap()->getElectronicsId(_id)); return eid.dccId(); } default: throw cms::Exception("InvalidConfiguration") << "MESetChannel configured with bin type " << data_->btype; return 0; } }
uint32_t ecaldqm::MESetChannel::getIndex_ | ( | EcalElectronicsId const & | _id | ) | const [private] |
Definition at line 216 of file MESetChannel.cc.
References ecaldqm::MEData::btype, ecaldqm::MESet::data_, EcalElectronicsId::dccId(), Exception, ecaldqm::getElectronicsMap(), EcalDQMBinningService::kCrystal, EcalDQMBinningService::kDCC, EcalDQMBinningService::kSuperCrystal, EcalDQMBinningService::kTCC, EcalDQMBinningService::kTriggerTower, EcalDQMBinningService::nDCC, EcalElectronicsId::rawId(), EcalTriggerElectronicsId::tccId(), EcalElectronicsId::towerId(), and EcalTriggerElectronicsId::ttId().
{ switch(data_->btype){ case BinService::kCrystal: return _id.rawId(); case BinService::kTriggerTower: { EcalTriggerElectronicsId teid(getElectronicsMap()->getTriggerElectronicsId(_id)); return EcalTriggerElectronicsId(teid.tccId(), teid.ttId(), 1, 1).rawId(); } case BinService::kSuperCrystal: return EcalElectronicsId(_id.dccId(), _id.towerId(), 1, 1).rawId(); case BinService::kTCC: { EcalTriggerElectronicsId teid(getElectronicsMap()->getTriggerElectronicsId(_id)); return BinService::nDCC + teid.tccId(); } case BinService::kDCC: return _id.dccId(); default: throw cms::Exception("InvalidConfiguration") << "MESetChannel configured with bin type " << data_->btype; return 0; } }
void ecaldqm::MESetChannel::reset | ( | double | _content = 0. , |
double | _err = 0. , |
||
double | _entries = 0. |
||
) | [virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 99 of file MESetChannel.cc.
References ecaldqm::MESet::data_, ecaldqm::MESet::dir_, MonitorElement::DQM_KIND_TPROFILE, ecaldqm::MESet::dqmStore_, ecaldqm::MEData::kind, mes_, meTable_, ecaldqm::MESet::readOnly_, and DQMStore::rmdir().
{ if(readOnly_) return; if(_content == 0. && _entries == 0.){ mes_.clear(); meTable_.clear(); dqmStore_->rmdir(dir_); return; } for(unsigned iME(0); iME < mes_.size(); iME++){ mes_[iME]->setBinContent(1, _content); mes_[iME]->setBinContent(1, _err); if(data_->kind == MonitorElement::DQM_KIND_TPROFILE) mes_[iME]->setBinEntries(1, _entries); } }
bool ecaldqm::MESetChannel::retrieve | ( | ) | const [virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 21 of file MESetChannel.cc.
References ecaldqm::MESet::active_.
{ active_ = true; return true; }
void ecaldqm::MESetChannel::setBinContent | ( | EcalElectronicsId const & | _id, |
double | _content, | ||
double | _err = 0. |
||
) | [virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 83 of file MESetChannel.cc.
References append_(), ecaldqm::MESet::binService_, ecaldqm::MEData::btype, EcalDQMBinningService::channelName(), ecaldqm::MESet::data_, getIndex_(), mes_, meTable_, and ecaldqm::MESet::name().
{ uint32_t rawId(getIndex_(_id)); std::map<uint32_t, unsigned>::iterator tableItr(meTable_.find(rawId)); if(tableItr == meTable_.end()){ std::string name(binService_->channelName(rawId, data_->btype)); tableItr = append_(name, rawId); } if(tableItr == meTable_.end()) return; mes_.at(tableItr->second)->setBinContent(1, _content); mes_.at(tableItr->second)->setBinError(1, _err); }
void ecaldqm::MESetChannel::setBinContent | ( | DetId const & | _id, |
double | _content, | ||
double | _err = 0. |
||
) | [virtual] |
Reimplemented from ecaldqm::MESet.
Definition at line 67 of file MESetChannel.cc.
References append_(), ecaldqm::MESet::binService_, ecaldqm::MEData::btype, EcalDQMBinningService::channelName(), ecaldqm::MESet::data_, getIndex_(), mes_, meTable_, and ecaldqm::MESet::name().
{ uint32_t rawId(getIndex_(_id)); std::map<uint32_t, unsigned>::iterator tableItr(meTable_.find(rawId)); if(tableItr == meTable_.end()){ std::string name(binService_->channelName(rawId, data_->btype)); tableItr = append_(name, rawId); } if(tableItr == meTable_.end()) return; mes_.at(tableItr->second)->setBinContent(1, _content); mes_.at(tableItr->second)->setBinError(1, _err); }
std::vector<MonitorElement*> ecaldqm::MESetChannel::mes_ [mutable, private] |
Reimplemented from ecaldqm::MESet.
Definition at line 42 of file MESetChannel.h.
Referenced by append_(), checkDirectory(), clear(), fill(), getBinContent(), reset(), and setBinContent().
std::map<uint32_t, unsigned> ecaldqm::MESetChannel::meTable_ [mutable, private] |
Definition at line 43 of file MESetChannel.h.
Referenced by append_(), checkDirectory(), clear(), fill(), getBinContent(), reset(), and setBinContent().
bool ecaldqm::MESetChannel::readMode_ [mutable, private] |
Definition at line 46 of file MESetChannel.h.