#include <RPCMonitorRaw.h>
Public Member Functions | |
virtual void | analyze (const edm::Event &, const edm::EventSetup &) |
get data, convert to digis attach againe to Event | |
virtual void | beginJob () |
virtual void | endJob () |
RPCMonitorRaw (const edm::ParameterSet &cfg) | |
virtual | ~RPCMonitorRaw () |
Private Attributes | |
MonitorElement * | me_e [3] |
MonitorElement * | me_mapBadEvents |
MonitorElement * | me_mapGoodEvents |
MonitorElement * | me_t [3] |
edm::ParameterSet | theConfig |
unsigned int | theWatchedErrorHistoPos [10] |
std::vector< MonitorElement * > | theWatchedErrorHistos [3] |
Analyse errors in raw data stream as RPCRawDataCounts produced by RPCRawToDigi
Definition at line 18 of file RPCMonitorRaw.h.
RPCMonitorRaw::RPCMonitorRaw | ( | const edm::ParameterSet & | cfg | ) | [explicit] |
Definition at line 29 of file RPCMonitorRaw.cc.
References edm::ParameterSet::getUntrackedParameter(), i, and theWatchedErrorHistoPos.
: theConfig(cfg) { for (unsigned int i=0; i<10;i++) theWatchedErrorHistoPos[i]=0; std::vector<int> algos = cfg.getUntrackedParameter<std::vector<int> >("watchedErrors"); for (std::vector<int>::const_iterator it=algos.begin();it!= algos.end(); ++it) { unsigned int ialgo = *it; if (ialgo < 10) theWatchedErrorHistoPos[ialgo]=1; // real position initialisain is in begin job. here mark just switched on. } }
RPCMonitorRaw::~RPCMonitorRaw | ( | ) | [virtual] |
Definition at line 40 of file RPCMonitorRaw.cc.
References LogTrace.
{ LogTrace("") << "RPCMonitorRaw destructor"; }
void RPCMonitorRaw::analyze | ( | const edm::Event & | ev, |
const edm::EventSetup & | es | ||
) | [virtual] |
get data, convert to digis attach againe to Event
Implements edm::EDAnalyzer.
Definition at line 103 of file RPCMonitorRaw.cc.
References LinkBoardElectronicIndex::dccInputChannelNum, error, MonitorElement::Fill(), edm::Event::getByType(), UserOptions_cff::idx, me_e, me_mapBadEvents, me_mapGoodEvents, me_t, edm::Handle< T >::product(), LinkBoardElectronicIndex::tbLinkInputNum, RPCRawDataCounts::theBadEvents, RPCRawDataCounts::theGoodEvents, RPCRawDataCounts::theReadoutErrors, RPCRawDataCounts::theRecordTypes, theWatchedErrorHistoPos, theWatchedErrorHistos, rpcrawtodigi::ReadoutError::type(), and rpcrawtodigi::ReadoutError::where().
{ edm::Handle<RPCRawDataCounts> rawCounts; ev.getByType( rawCounts); const RPCRawDataCounts & counts = *rawCounts.product(); // // record type // for (IT it=counts.theRecordTypes.begin(); it != counts.theRecordTypes.end(); ++it) me_t[it->first.first-790]->Fill(it->first.second,it->second); // // good events topology // for (IT it = counts.theGoodEvents.begin(); it != counts.theGoodEvents.end(); ++it) me_mapGoodEvents->Fill(it->first.second, it->first.first, it->second); // // bad events topology // for (IT it = counts.theBadEvents.begin(); it != counts.theBadEvents.end(); ++it) me_mapBadEvents->Fill(it->first.second, it->first.first, it->second); // // readout errors // for (IT it=counts.theReadoutErrors.begin(); it != counts.theReadoutErrors.end(); ++it) { rpcrawtodigi::ReadoutError error(it->first.second); LinkBoardElectronicIndex ele = error.where(); rpcrawtodigi::ReadoutError::ReadoutErrorType type = error.type(); int fed = it->first.first; me_e[fed-790]->Fill(type, it->second); // // in addition fill location map for selected errors // int idx = theWatchedErrorHistoPos[type]-1; if ( idx >= 0) { std::vector<MonitorElement* > & wh = theWatchedErrorHistos[fed-790]; MonitorElement* me = wh[idx]; me->Fill(ele.dccInputChannelNum, ele.tbLinkInputNum, it->second); } } // for (int i=0; i<3; ++i) { // me_t[i]->update(); // me_e[i]->update(); // std::vector<MonitorElement* > & wh = theWatchedErrorHistos[i]; // for (std::vector<MonitorElement* >::iterator it=wh.begin(); it != wh.end(); ++it) (*it)->update(); // } // me_mapGoodEvents->update(); // me_mapBadEvents->update(); }
void RPCMonitorRaw::beginJob | ( | void | ) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 42 of file RPCMonitorRaw.cc.
References DQMStore::book1D(), DQMStore::book2D(), RPCRawDataCountsHistoMaker::emptyReadoutErrorHisto(), RPCRawDataCountsHistoMaker::emptyReadoutErrorMapHisto(), RPCRawDataCountsHistoMaker::emptyRecordTypeHisto(), getTH1F(), MonitorElement::getTH2F(), timingPdfMaker::histo, i, me_e, me_mapBadEvents, me_mapGoodEvents, me_t, cmsCodeRules::cppFunctionSkipper::operator, DQMStore::setCurrentFolder(), theWatchedErrorHistoPos, and theWatchedErrorHistos.
{ // Get DQM interface DQMStore* theDMBE = edm::Service<DQMStore>().operator->(); theDMBE->setCurrentFolder("RPC/LinkMonitor"); me_t[0]=theDMBE->book1D("recordType_790",RPCRawDataCountsHistoMaker::emptyRecordTypeHisto(790)); me_t[1]=theDMBE->book1D("recordType_791",RPCRawDataCountsHistoMaker::emptyRecordTypeHisto(791)); me_t[2]=theDMBE->book1D("recordType_792",RPCRawDataCountsHistoMaker::emptyRecordTypeHisto(792)); for (int i=0;i<3;++i)me_t[i]->getTH1F()->SetStats(0); me_e[0]=theDMBE->book1D("readoutErrors_790",RPCRawDataCountsHistoMaker::emptyReadoutErrorHisto(790)); me_e[1]=theDMBE->book1D("readoutErrors_791",RPCRawDataCountsHistoMaker::emptyReadoutErrorHisto(791)); me_e[2]=theDMBE->book1D("readoutErrors_792",RPCRawDataCountsHistoMaker::emptyReadoutErrorHisto(792)); for (int i=0;i<3;++i)me_e[i]->getTH1F()->SetStats(0); me_mapGoodEvents=theDMBE->book2D("mapGoodRecords","mapGoodRecords",36,-0.5,35.5, 3, 789.5,792.5); me_mapGoodEvents->getTH2F()->SetNdivisions(3,"y"); me_mapGoodEvents->getTH2F()->SetXTitle("rmb"); me_mapGoodEvents->getTH2F()->SetYTitle("fed"); me_mapGoodEvents->getTH2F()->SetStats(0); me_mapBadEvents =theDMBE->book2D("mapErrorRecords", "mapErrorRecords", 36,-0.5,35.5, 3, 789.5,792.5); me_mapBadEvents->getTH2F()->SetXTitle("fed"); me_mapBadEvents->getTH2F()->SetYTitle("rmb"); me_mapBadEvents->getTH2F()->SetNdivisions(3,"y"); me_mapBadEvents->getTH2F()->SetStats(0); for (unsigned int i=0; i<=9; ++i) { if (theWatchedErrorHistoPos[i]) { for (unsigned int fed=790; fed <=792; ++fed) { TH2F * histo = RPCRawDataCountsHistoMaker::emptyReadoutErrorMapHisto(fed,i); MonitorElement* watched = theDMBE->book2D(histo->GetName(),histo); theWatchedErrorHistos[fed-790].push_back(watched); theWatchedErrorHistoPos[i] = theWatchedErrorHistos[fed-790].size(); } } } }
void RPCMonitorRaw::endJob | ( | void | ) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 83 of file RPCMonitorRaw.cc.
References f, MonitorElement::getTH1F(), MonitorElement::getTH2F(), edm::ParameterSet::getUntrackedParameter(), histoFile, i, me_e, me_mapBadEvents, me_mapGoodEvents, me_t, theConfig, and theWatchedErrorHistos.
{ bool writeHistos = theConfig.getUntrackedParameter<bool>("writeHistograms", false); if (writeHistos) { std::string histoFile = theConfig.getUntrackedParameter<std::string>("histoFileName"); TFile f(histoFile.c_str(),"RECREATE"); for (int i=0; i<3; ++i) { me_t[i]->getTH1F()->Write(); me_e[i]->getTH1F()->Write(); std::vector<MonitorElement* > & wh = theWatchedErrorHistos[i]; for (std::vector<MonitorElement* >::const_iterator it=wh.begin(); it != wh.end(); ++it)(*it)->getTH2F()->Write(); } me_mapGoodEvents->getTH2F()->Write(); me_mapBadEvents->getTH2F()->Write(); edm::LogInfo(" END JOB, histos saved!"); f.Close(); } }
MonitorElement* RPCMonitorRaw::me_e[3] [private] |
Definition at line 34 of file RPCMonitorRaw.h.
Referenced by analyze(), beginJob(), and endJob().
MonitorElement* RPCMonitorRaw::me_mapBadEvents [private] |
Definition at line 36 of file RPCMonitorRaw.h.
Referenced by analyze(), beginJob(), and endJob().
MonitorElement* RPCMonitorRaw::me_mapGoodEvents [private] |
Definition at line 35 of file RPCMonitorRaw.h.
Referenced by analyze(), beginJob(), and endJob().
MonitorElement* RPCMonitorRaw::me_t[3] [private] |
Definition at line 33 of file RPCMonitorRaw.h.
Referenced by analyze(), beginJob(), and endJob().
edm::ParameterSet RPCMonitorRaw::theConfig [private] |
Definition at line 38 of file RPCMonitorRaw.h.
Referenced by endJob().
unsigned int RPCMonitorRaw::theWatchedErrorHistoPos[10] [private] |
Definition at line 42 of file RPCMonitorRaw.h.
Referenced by analyze(), beginJob(), and RPCMonitorRaw().
std::vector<MonitorElement* > RPCMonitorRaw::theWatchedErrorHistos[3] [private] |
Definition at line 39 of file RPCMonitorRaw.h.
Referenced by analyze(), beginJob(), and endJob().