#include <iDie.h>
Classes | |
class | commonLsStat |
class | lsStat |
struct | sorted_indices |
Public Member Functions | |
void | actionPerformed (xdata::Event &e) |
void | defaultWeb (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
void | detailsTable (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
void | dumpTable (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
xoap::MessageReference | fsmCallback (xoap::MessageReference msg) throw (xoap::exception::Exception) |
void | iChoke (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
void | iChokeMiniInterface (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
iDie (xdaq::ApplicationStub *s) | |
void | postEntry (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
void | postEntryiChoke (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
void | spotlight (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
void | summaryTable (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
void | updater (xgi::Input *in, xgi::Output *out) throw (xgi::exception::Exception) |
XDAQ_INSTANTIATOR () | |
virtual | ~iDie () |
Private Member Functions | |
void | deleteFramework () |
void | doFlush () |
void | fillDQMModFractionHist (unsigned int nbsIdx, unsigned int lsid, unsigned int nonIdle, std::vector< std::pair< unsigned int, unsigned int >> offenders) |
void | fillDQMStatHist (unsigned int nbsIdx, unsigned int lsid) |
void | initFramework () |
void | initMonitorElements () |
void | parseModuleHisto (const char *, unsigned int) |
void | parseModuleLegenda (std::string) |
void | parsePathHisto (const unsigned char *, unsigned int) |
void | parsePathLegenda (std::string) |
void | perLumiFileSaver (unsigned int lsid) |
void | reset () |
void | updateRollingHistos (unsigned int nbsIdx, unsigned int lsid, lsStat &lst, commonLsStat &clst, bool roll) |
Private Attributes | |
TBranch * | b1_ |
TBranch * | b2_ |
TBranch * | b3_ |
TBranch * | b4_ |
TBranch * | b_ |
MonitorElement * | busySummary2_ |
MonitorElement * | busySummary_ |
xdata::String | class_ |
std::deque< commonLsStat > | commonLsHistory |
std::string | configString_ |
std::vector< int > | cpuentries_ |
std::vector< std::vector< int > > | cpustat_ |
std::vector< unsigned int > | currentLs_ |
MonitorElement * | daqBusySummary_ |
int * | datap_ |
xdata::String | dqmCollectorHost_ |
xdata::String | dqmCollectorPort_ |
xdata::Boolean | dqmEnabled_ |
xdata::Boolean | dqmFilesWritable_ |
xdata::String | dqmSaveDir_ |
DQMService * | dqmService_ |
std::string | dqmState_ |
DQMStore * | dqmStore_ |
std::vector< unsigned int > | epInstances |
std::vector< unsigned int > | epMax |
edm::EventProcessor * | evtProcessor_ |
TFile * | f_ |
std::string | fileBaseName_ |
MonitorElement * | fuReportsSummary_ |
fmap | fus_ |
xdata::String | hostname_ |
std::vector< float > | HTscaling |
unsigned int | ilumiprev_ |
xdata::UnsignedInteger32 | instance_ |
unsigned int | last_ls_ |
timeval | lastModuleLegendaMessageTimeStamp_ |
timeval | lastPathLegendaMessageTimeStamp_ |
Logger | log_ |
std::deque< lsStat > * | lsHistory |
std::vector< float > | machineWeight |
std::vector< float > | machineWeightInst |
std::vector< std::string > | mapmod_ |
std::vector< std::string > | mappath_ |
bool | meInitialized_ |
std::vector< MonitorElement * > | meVecOffenders_ |
std::vector< MonitorElement * > | meVecRate_ |
std::vector< MonitorElement * > | meVecTime_ |
std::vector< unsigned int > | nbMachines |
unsigned int | nbSubsClasses |
std::map< unsigned int, int > | nbSubsList |
std::map< int, unsigned int > | nbSubsListInv |
int | nModuleHistoMessageReceived_ |
int | nModuleLegendaMessageReceived_ |
int | nModuleLegendaMessageWithDataReceived_ |
int | nPathHistoMessageReceived_ |
int | nPathLegendaMessageReceived_ |
int | nPathLegendaMessageWithDataReceived_ |
unsigned int | nstates_ |
std::vector< std::map < unsigned int, unsigned int > > | occupancyNameMap |
std::list< std::string > | pastSavedFiles_ |
boost::shared_ptr< std::vector < edm::ParameterSet > > | pServiceSets_ |
internal::rate | r_ |
MonitorElement * | rateSummary_ |
xdata::UnsignedInteger32 | runNumber_ |
timeval | runStartDetectedTimeStamp_ |
unsigned int | savedForLs_ |
xdata::UnsignedInteger32 | saveLsInterval_ |
edm::ServiceToken | serviceToken_ |
unsigned int | summaryLastLs_ |
TTree * | t_ |
MonitorElement * | timingSummary_ |
xdata::String | topLevelFolder_ |
unsigned int | totalCores_ |
std::vector< TriggerReportStatic > | trp_ |
std::vector< int > | trpentries_ |
TriggerReportStatic * | trppriv_ |
xdata::String | url_ |
bool | writeDirectoryPresent_ |
iDie::iDie | ( | xdaq::ApplicationStub * | s | ) |
Definition at line 51 of file iDie.cc.
References class_, configString_, currentLs_, defaultWeb(), detailsTable(), dqmCollectorHost_, dqmCollectorPort_, dqmEnabled_, dqmFilesWritable_, dqmSaveDir_, dumpTable(), epInstances, epMax, fsmCallback(), hostname_, HTscaling, i, iChoke(), iChokeMiniInterface(), instance_, lastModuleLegendaMessageTimeStamp_, lastPathLegendaMessageTimeStamp_, lsHistory, machineWeight, machineWeightInst, nbSubsClasses, nbSubsList, nbSubsListInv, occupancyNameMap, postEntry(), postEntryiChoke(), runNumber_, runStartDetectedTimeStamp_, saveLsInterval_, spotlight(), summaryTable(), topLevelFolder_, updater(), and url_.
: xdaq::Application(s) , log_(getApplicationLogger()) , dqmState_("Null") , instance_(0) , runNumber_(0) // , dqmCollectorHost_() // , dqmCollectorPort_() , totalCores_(0) , nstates_(0) , cpustat_(std::vector<std::vector<int> >(0)) , last_ls_(0) , f_(0) , t_(0) , b_(0) , b1_(0) , b2_(0) , b3_(0) , b4_(0) , datap_(0) , trppriv_(0) , nModuleLegendaMessageReceived_(0) , nPathLegendaMessageReceived_(0) , nModuleLegendaMessageWithDataReceived_(0) , nPathLegendaMessageWithDataReceived_(0) , nModuleHistoMessageReceived_(0) , nPathHistoMessageReceived_(0) , evtProcessor_(0) , meInitialized_(false) , dqmService_(nullptr) , dqmStore_(nullptr) , dqmEnabled_(true) , saveLsInterval_(10) , ilumiprev_(0) , dqmSaveDir_("") , dqmFilesWritable_(false) , topLevelFolder_("DAQ") , savedForLs_(0) { // initialize application info url_ = getApplicationDescriptor()->getContextDescriptor()->getURL()+"/"+ getApplicationDescriptor()->getURN(); class_ =getApplicationDescriptor()->getClassName(); instance_=getApplicationDescriptor()->getInstance(); hostname_=getApplicationDescriptor()->getContextDescriptor()->getURL(); getApplicationDescriptor()->setAttribute("icon", "/evf/images/idieapp.jpg"); //soap interface xoap::bind(this,&evf::iDie::fsmCallback,"Configure",XDAQ_NS_URI); xoap::bind(this,&evf::iDie::fsmCallback,"Enable", XDAQ_NS_URI); xoap::bind(this,&evf::iDie::fsmCallback,"Stop", XDAQ_NS_URI); xoap::bind(this,&evf::iDie::fsmCallback,"Halt", XDAQ_NS_URI); // web interface xgi::bind(this,&evf::iDie::defaultWeb, "Default"); xgi::bind(this,&evf::iDie::summaryTable, "summary"); xgi::bind(this,&evf::iDie::detailsTable, "details"); xgi::bind(this,&evf::iDie::dumpTable, "dump" ); xgi::bind(this,&evf::iDie::updater, "updater"); xgi::bind(this,&evf::iDie::iChoke, "iChoke" ); xgi::bind(this,&evf::iDie::iChokeMiniInterface, "iChokeMiniInterface" ); xgi::bind(this,&evf::iDie::spotlight, "Spotlight" ); xgi::bind(this,&evf::iDie::postEntry, "postEntry"); xgi::bind(this,&evf::iDie::postEntryiChoke, "postChoke"); // gui_->setSmallAppIcon("/evf/images/Hilton.gif"); // gui_->setLargeAppIcon("/evf/images/Hilton.gif"); xdata::InfoSpace *ispace = getApplicationInfoSpace(); ispace->fireItemAvailable("runNumber", &runNumber_ ); getApplicationInfoSpace()->addItemChangedListener("runNumber", this); ispace->fireItemAvailable("dqmCollectorHost", &dqmCollectorHost_ ); ispace->fireItemAvailable("dqmCollectorPort", &dqmCollectorPort_ ); ispace->fireItemAvailable("saveLsInterval", &saveLsInterval_ ); ispace->fireItemAvailable("dqmSaveDir", &dqmSaveDir_ ); ispace->fireItemAvailable("dqmFilesWritableByAll", &dqmFilesWritable_ ); ispace->fireItemAvailable("dqmTopLevelFolder", &topLevelFolder_ ); ispace->fireItemAvailable("dqmEnabled", &dqmEnabled_ ); // timestamps lastModuleLegendaMessageTimeStamp_.tv_sec=0; lastModuleLegendaMessageTimeStamp_.tv_usec=0; lastPathLegendaMessageTimeStamp_.tv_sec=0; lastPathLegendaMessageTimeStamp_.tv_usec=0; runStartDetectedTimeStamp_.tv_sec=0; runStartDetectedTimeStamp_.tv_usec=0; //dqm python configuration configString_= "import FWCore.ParameterSet.Config as cms\n"; configString_+="process = cms.Process(\"iDieDQM\")\n"; configString_+="process.source = cms.Source(\"EmptySource\")\n"; configString_+="process.DQMStore = cms.Service(\"DQMStore\",\n"; configString_+=" referenceFileName = cms.untracked.string(''),\n"; configString_+=" verbose = cms.untracked.int32(0),\n"; configString_+=" verboseQT = cms.untracked.int32(0),\n"; configString_+=" collateHistograms = cms.untracked.bool(False))\n"; configString_+="process.DQM = cms.Service(\"DQM\",\n"; configString_+=" debug = cms.untracked.bool(False),\n"; configString_+=" publishFrequency = cms.untracked.double(1.0),\n"; configString_+=" collectorPort = cms.untracked.int32(EMPTYPORT),\n"; configString_+=" collectorHost = cms.untracked.string('EMPTYHOST'),\n"; configString_+=" filter = cms.untracked.string(''),\n"; configString_+=" verbose = cms.untracked.bool(False))\n"; configString_+="process.p = cms.Path()\n"; epInstances = {7, 8, 12, 16, 22, 24, 32}; epMax = {8, 8, 24, 32, 24, 24, 32}; HTscaling = {1, 1, 0.28,0.28,0.28,0.28,0.28}; machineWeight = {91.6, 91.6, 253, 352, 253, 253, 352}; machineWeightInst = {80.15,91.6, 196, 352, 237, 253, 352}; for (unsigned int i=0;i<epInstances.size();i++) { currentLs_.push_back(0); nbSubsList[epInstances[i]]=i; nbSubsListInv[i]=epInstances[i]; std::map<unsigned int, unsigned int> mptmp; occupancyNameMap.push_back(mptmp); } nbSubsClasses = epInstances.size(); lsHistory = new std::deque<lsStat>[nbSubsClasses]; //umask for setting permissions of created directories umask(000); }
void iDie::actionPerformed | ( | xdata::Event & | e | ) |
Definition at line 183 of file iDie.cc.
References dqmState_, alignCSCRings::e, and reset().
void iDie::defaultWeb | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 274 of file iDie.cc.
References evf::internal::fu::ccount, recoMuon::in, PFRecoTauDiscriminationAgainstElectronMVA_cfi::method, dbtoconf::out, reset(), DTTTrigCorrFirst::run, and sistrip::runNumber_.
Referenced by iDie().
{ cgicc::Cgicc cgi(in); std::string method = cgi.getEnvironment().getRequestMethod(); if(method == "POST"){ unsigned int run = 0; std::vector<cgicc::FormEntry> el1 = cgi.getElements(); cgi.getElement("run",el1); if(el1.size()!=0){ run = el1[0].getIntegerValue(); if(run > runNumber_.value_ || runNumber_.value_==0){ runNumber_.value_ = run; if(runNumber_.value_!=0) { reset(); if(f_ == 0) { std::ostringstream ost; ost << "microReport"<<runNumber_<<".root"; f_ = new TFile(ost.str().c_str(),"RECREATE","microreport"); } } } } internal::fu fuinstance; fuinstance.ccount = 0; std::string hostname = cgi.getEnvironment().getRemoteHost(); std::transform(hostname.begin(), hostname.end(), hostname.begin(), ::toupper); fus_[hostname] = fuinstance; } else{ *out << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">" << "<html><head><title>" << getApplicationDescriptor()->getClassName() << getApplicationDescriptor()->getInstance() << "</title>" << "<meta https-equiv=\"REFRESH\" content=\"0;url=/evf/html/idiePage.html\">" << "</head></html>"; } }
void iDie::deleteFramework | ( | ) | [private] |
Definition at line 1085 of file iDie.cc.
References evtProcessor_.
{ if (evtProcessor_) delete evtProcessor_; }
void iDie::detailsTable | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 331 of file iDie.cc.
References i, cmsPerfSuiteHarvest::now, and dbtoconf::out.
Referenced by iDie().
{ timeval tv; gettimeofday(&tv,0); time_t now = tv.tv_sec; for(ifmap i = fus_.begin(); i != fus_.end(); i++) if((*i).second.ccount != 0){ *out << "<tr><td " << (now-(*i).second.tstamp<300 ? "style=\"background-color:red\"" : "") << ">"<<(*i).first<<"</td><td>" << (*i).second.ccount << "</td>" << "<td onClick=loaddump(\'" << url_.value_ << "/dump?name=" << (*i).first << "\')>" << (*i).second.cpids.back() << "</td><td>" <<(*i).second.signals.back() << "</td></tr>" << std::endl; } }
void iDie::doFlush | ( | ) | [private] |
Definition at line 1292 of file iDie.cc.
References dqmEnabled_, dqmService_, and DQMService::flushStandalone().
Referenced by parseModuleHisto(), and reset().
{ if (dqmEnabled_.value_) dqmService_->flushStandalone(); }
void iDie::dumpTable | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 351 of file iDie.cc.
References gather_cfg::cout, recoMuon::in, and dbtoconf::out.
Referenced by iDie().
{ cgicc::Cgicc cgi(in); std::vector<cgicc::FormEntry> el1; cgi.getElement("name",el1); if(el1.size()!=0){ std::string hostname = el1[0].getValue(); std::transform(hostname.begin(), hostname.end(), hostname.begin(), ::toupper); ifmap fi = fus_.find(hostname); if(fi!=fus_.end()){ *out << (*fi).second.stacktraces.back() << std::endl; } else{ for(fi=fus_.begin(); fi != fus_.end(); fi++) std::cout << "known hosts: " << (*fi).first << std::endl; } } }
void iDie::fillDQMModFractionHist | ( | unsigned int | nbsIdx, |
unsigned int | lsid, | ||
unsigned int | nonIdle, | ||
std::vector< std::pair< unsigned int, unsigned int >> | offenders | ||
) | [private] |
Definition at line 1206 of file iDie.cc.
References begin, newFWLiteAna::bin, prof2calltree::count, evtProcessor_, MonitorElement::getBinContent(), i, j, gen::k, combine::key, mapmod_, meVecOffenders_, MODLZSIZE, MODLZSIZELUMI, occupancyNameMap, MonitorElement::setBinContent(), MonitorElement::setBinLabel(), x, and detailsBasic3DVector::y.
Referenced by parseModuleHisto().
{ if (!evtProcessor_) return; MonitorElement * me = meVecOffenders_[nbsIdx]; //shift bin names by 1 unsigned int xBinToFill=lsid; if (lsid>MODLZSIZELUMI) { for (unsigned int i=1;i<=MODLZSIZELUMI;i++) { for (unsigned int j=1;j<=MODLZSIZE;j++) { if (i<MODLZSIZELUMI) me->setBinContent(i,j,me->getBinContent(i+1,j)); else me->setBinContent(i,j,0); } std::ostringstream ostr; ostr << lsid-MODLZSIZELUMI+i; me->setBinLabel(i,ostr.str(),1); } std::ostringstream ostr; ostr << lsid; //me->setBinLabel(MODLZSIZELUMI,ostr.str(),1); //me->setBinContent(MODLZSIZELUMI,ostr.str(),1); xBinToFill=MODLZSIZELUMI; } float nonIdleInv=0.; if (nonIdle>0.)nonIdleInv=1./nonIdle; for (unsigned int i=0;i<offenders.size();i++) { unsigned int x=offenders[i].first; float percentageUsed=offenders[i].second*nonIdleInv; if (percentageUsed>0.03) {//3% threshold if (occupancyNameMap[nbsIdx].count(x)==0) { unsigned int y=occupancyNameMap[nbsIdx].size(); if (y<MODLZSIZE) { (occupancyNameMap[nbsIdx])[x]=y; me->setBinContent(xBinToFill,y+1,((int)(1000.*percentageUsed))/1000.); me->setBinLabel(y+1,mapmod_[x],2); } } } } for (unsigned int i=0;i<offenders.size();i++) { unsigned int x=offenders[i].first; float percentageUsed=offenders[i].second*nonIdleInv; if (percentageUsed>0.02) {//3% threshold if (occupancyNameMap[nbsIdx].count(x)==0) { unsigned int y=occupancyNameMap[nbsIdx].size(); if (y>=MODLZSIZE && xBinToFill>1) { //filled up, replace another one float minbinval=1.; unsigned int toReplace=0; for (size_t j=1;j<=MODLZSIZE;j++) { //decide based on the smallest value float bin=me->getBinContent(xBinToFill,j); if (bin<minbinval) {toReplace=j;minbinval=bin;} } if (percentageUsed>minbinval && toReplace) { int key=-1; for (auto it = occupancyNameMap[nbsIdx].begin(); it != occupancyNameMap[nbsIdx].end(); ++it) { if (it->second == toReplace-1) { key = it->first; break; } } if (key>-1) { //erase old occupancyNameMap[nbsIdx].erase(key); //add new (occupancyNameMap[nbsIdx])[x]=toReplace-1; //fill histogram me->setBinContent(xBinToFill,toReplace,((int)(100.*percentageUsed))/100.); me->setBinLabel(toReplace,mapmod_[x],2); //reset fields for previous lumis for (size_t k=1;k<xBinToFill;k++) me->setBinContent(k,toReplace,0); } } } } else { unsigned int y=(occupancyNameMap[nbsIdx])[x]; me->setBinContent(xBinToFill,y,((int)(100.*percentageUsed))/100.); } } } }
void iDie::fillDQMStatHist | ( | unsigned int | nbsIdx, |
unsigned int | lsid | ||
) | [private] |
Definition at line 1090 of file iDie.cc.
References commonLsHistory, evtProcessor_, evf::iDie::lsStat::getEvtTime(), evf::iDie::lsStat::getEvtTimeErr(), evf::iDie::lsStat::getRateErrPerMachine(), evf::iDie::lsStat::getRatePerMachine(), evf::iDie::lsStat::ls_, lsHistory, lst, meVecRate_, meVecTime_, and updateRollingHistos().
Referenced by parseModuleHisto().
{ if (!evtProcessor_ || lsid==0) return; unsigned int qsize = lsHistory[nbsIdx].size(); lsStat & lst = (lsHistory[nbsIdx])[qsize-1]; commonLsStat & clst = commonLsHistory[qsize-1]; meVecRate_[nbsIdx]->setBinContent(lsid,lst.getRatePerMachine()); meVecRate_[nbsIdx]->setBinError(lsid,lst.getRateErrPerMachine()); meVecTime_[nbsIdx]->setBinContent(lsid>2? lsid:0,lst.getEvtTime()*1000);//msec meVecTime_[nbsIdx]->setBinError(lsid>2? lsid:0,lst.getEvtTimeErr()*1000);//msec updateRollingHistos(nbsIdx, lsid,lst,clst,true); if (qsize>1) { lsStat & prevLst = (lsHistory[nbsIdx])[qsize-2]; commonLsStat prevClst = commonLsHistory[qsize-2]; if (prevLst.ls_==lsid-1) { meVecRate_[nbsIdx]->setBinContent(lsid-1,prevLst.getRatePerMachine()); meVecRate_[nbsIdx]->setBinError(lsid-1,prevLst.getRateErrPerMachine()); meVecTime_[nbsIdx]->setBinContent(lsid-1>2 ? lsid-1:0,prevLst.getEvtTime()*1000);//msec meVecTime_[nbsIdx]->setBinError(lsid-1>2 ? lsid-1:0,prevLst.getEvtTimeErr()*1000);//msec updateRollingHistos(nbsIdx, lsid-1,prevLst, prevClst, false); } } }
xoap::MessageReference iDie::fsmCallback | ( | xoap::MessageReference | msg | ) | throw (xoap::exception::Exception) |
Definition at line 200 of file iDie.cc.
References edmPickEvents::command, alignCSCRings::e, Exception, i, lumiQueryAPI::msg, python::Node::node, stor::utils::sleep(), and evf::utils::state.
Referenced by iDie().
{ xoap::SOAPPart part =msg->getSOAPPart(); xoap::SOAPEnvelope env =part.getEnvelope(); xoap::SOAPBody body =env.getBody(); DOMNode *node =body.getDOMNode(); DOMNodeList *bodyList=node->getChildNodes(); DOMNode *command =0; std::string commandName; for (unsigned int i=0;i<bodyList->getLength();i++) { command = bodyList->item(i); if(command->getNodeType() == DOMNode::ELEMENT_NODE) { commandName = xoap::XMLCh2String(command->getLocalName()); break; } } if (commandName.empty()) { XCEPT_RAISE(xoap::exception::Exception,"Command not found."); } // fire appropriate event and create according response message try { // response string xoap::MessageReference reply = xoap::createMessage(); xoap::SOAPEnvelope envelope = reply->getSOAPPart().getEnvelope(); xoap::SOAPName responseName = envelope.createName(commandName+"Response", "xdaq",XDAQ_NS_URI); xoap::SOAPBodyElement responseElem = envelope.getBody().addBodyElement(responseName); // generate correct return state string std::string state; if(commandName == "Configure") {dqmState_ = "Ready"; state = "Ready";} else if(commandName == "Enable") {dqmState_ = "Enabled"; state = "Enabled";} else if(commandName == "Stop") { //remove histograms if (meInitialized_) { sleep(1); dqmState_ = "Removed"; meInitialized_=false; dqmStore_->setCurrentFolder(topLevelFolder_.value_ + "/EventInfo/"); dqmStore_->removeContents(); dqmStore_->setCurrentFolder(topLevelFolder_.value_ + "/Layouts/"); dqmStore_->removeContents(); doFlush(); } state = "Ready"; } else if(commandName == "Halt") state = "Halted"; else state = "BOH"; xoap::SOAPName stateName = envelope.createName("state", "xdaq",XDAQ_NS_URI); xoap::SOAPElement stateElem = responseElem.addChildElement(stateName); xoap::SOAPName attributeName = envelope.createName("stateName", "xdaq",XDAQ_NS_URI); stateElem.addAttribute(attributeName,state); return reply; } catch (toolbox::fsm::exception::Exception & e) { XCEPT_RETHROW(xoap::exception::Exception,"invalid command.",e); } }
void iDie::iChoke | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 430 of file iDie.cc.
References dbtoconf::out.
Referenced by iDie().
{ *out << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">" << "<html><head><title>" << getApplicationDescriptor()->getClassName() << getApplicationDescriptor()->getInstance() << "</title>" << "<meta https-equiv=\"REFRESH\" content=\"0;url=/evf/html/ichokePage.html\">" << "</head></html>"; }
void iDie::iChokeMiniInterface | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 374 of file iDie.cc.
References begin, i, evf::iDie::sorted_indices::ii(), j, dbtoconf::out, and tmp.
Referenced by iDie().
{ unsigned int i = 0; if(last_ls_==0) return; //wait until at least one complete cycle so we have all arrays sized correctly !!! *out << "<div id=\"cls\">" << last_ls_ << "</div>" << "<div id=\"clr\">" << cpuentries_[last_ls_-1] << "</div>" << std::endl; sorted_indices tmp(cpustat_[last_ls_-1]); // std::sort(tmp.begin(),tmp.end());// figure out how to remap indices of legenda *out << "<tbody id=\"cpue\">"; while(i<nstates_){ if(tmp[i]!=0) *out << "<tr><td>" << mapmod_[tmp.ii(i)] << "</td>" << "<td>" << float(tmp[i])/float(cpuentries_[last_ls_-1]) << "</td></tr>"; i++; } *out << "</tbody>\n"; *out << "<tbody id=\"cpui\"><tr><td></td>"; unsigned int begin = last_ls_<5 ? 0 : last_ls_-5; for(i=begin; i < last_ls_; i++) *out << "<td>" << i +1 << "</td>"; *out << "</tr><tr><td></td>"; for(i=begin; i < last_ls_; i++) *out << "<td>" << float(cpustat_[i][2])/float(cpuentries_[i]) << "</td>"; *out << "</tr></tbody>\n"; *out << "<tbody id=\"rate\"><tr><td></td>"; begin = last_ls_<5 ? 0 : last_ls_-5; for(i=begin; i < last_ls_; i++) *out << "<td>" << float(trp_[i].eventSummary.totalEventsPassed)/float(trp_[i].eventSummary.totalEvents) << "</td>"; *out << "</tr>\n<tr><td></td>"; for(i=begin; i < last_ls_; i++) *out << "<td>" << trp_[i].eventSummary.totalEvents << "</td>"; *out << "</tr>\n<tr><td></td>"; for(int j = 0; j < trp_[0].trigPathsInMenu; j++) { *out << "<tr><td></td>"; for(i=begin; i < last_ls_; i++) *out << "<td>" << trp_[i].trigPathSummaries[j].timesPassed << "(" << trp_[i].trigPathSummaries[j].timesPassedL1 << ")(" << trp_[i].trigPathSummaries[j].timesPassedPs << ")</td>"; *out << "<td>" << mappath_[j] << "</td>"; *out << "</tr>\n"; } for(int j = 0; j < trp_[0].endPathsInMenu; j++) { *out << "<tr><td></td>"; for(i=begin; i < last_ls_; i++) *out << "<td>" << trp_[i].endPathSummaries[j].timesPassed << "</td>"; *out << "<td>" << mappath_[j+trp_[last_ls_-1].trigPathsInMenu] << "</td>"; *out << "</tr>\n"; } *out << "</tbody>\n"; }
void iDie::initFramework | ( | ) | [private] |
Definition at line 924 of file iDie.cc.
References edmplugin::standard::config(), configString_, edmplugin::PluginManager::configure(), gather_cfg::cout, edm::ServiceRegistry::createSet(), dqmCollectorHost_, dqmCollectorPort_, dqmEnabled_, dqmService_, dqmState_, dqmStore_, alignCSCRings::e, evtProcessor_, exception, reco::get(), initMonitorElements(), edm::serviceregistry::kTokenOverrides, edm::PresenceFactory::makePresence(), cmsCodeRules::cppFunctionSkipper::operator, PythonProcessDesc::processDesc(), pServiceSets_, serviceToken_, and cms::Exception::what().
Referenced by reset().
{ //ParameterSetRetriever pr(configString_); //std::string configuration_ = pr.getAsString(); if (!dqmEnabled_.value_ || !dqmCollectorHost_.value_.size() || !dqmCollectorPort_.value_.size()) { dqmEnabled_.value_=false; std::cout << " DQM connection parameters not present. Disabling DQM histograms" << std::endl; return; } std::string configuration_ = configString_; configuration_.replace(configuration_.find("EMPTYHOST"),9,dqmCollectorHost_.value_); configuration_.replace(configuration_.find("EMPTYPORT"),9,dqmCollectorPort_.value_); PythonProcessDesc ppdesc = PythonProcessDesc(configuration_); boost::shared_ptr<edm::ProcessDesc> pdesc; std::vector<std::string> defaultServices = {"InitRootHandlers"}; pdesc = ppdesc.processDesc(); pdesc->addServices(defaultServices); if (!pServiceSets_) { pServiceSets_ = pdesc->getServicesPSets(); edmplugin::PluginManager::configure(edmplugin::standard::config()); } try { edm::PresenceFactory *pf = edm::PresenceFactory::get(); if(pf != 0) { pf->makePresence("MessageServicePresence").release(); } else { std::cout << "SLAVE: Unable to create message service presence "<<std::endl; } } catch(edm::Exception e) { std::cout << "edm::Exception: "<< e.what() << std::endl; } catch(cms::Exception e) { std::cout << "cms::Exception: "<< e.what() << std::endl; } catch(std::exception e) { std::cout << "std::exception: "<< e.what() << std::endl; } catch(...) { std::cout <<"SLAVE: Unknown Exception (Message Presence)"<<std::endl; } try { serviceToken_ = edm::ServiceRegistry::createSet(*pServiceSets_); } catch (...) { std::cout << "Failed creation of service token "<<std::endl; dqmEnabled_.value_=false; } edm::ServiceRegistry::Operate operate(serviceToken_); evtProcessor_ = new edm::EventProcessor(pdesc, serviceToken_, edm::serviceregistry::kTokenOverrides); try{ if(edm::Service<DQMStore>().isAvailable()) dqmStore_ = edm::Service<DQMStore>().operator->(); } catch(...) { LOG4CPLUS_WARN(getApplicationLogger(),"exception when trying to get service DQMStore"); dqmEnabled_.value_=false; } try{ if(edm::Service<DQMService>().isAvailable()) dqmService_ = edm::Service<DQMService>().operator->(); } catch(...) { LOG4CPLUS_WARN(getApplicationLogger(),"exception when trying to get service DQMService"); dqmEnabled_.value_=false; } if (dqmState_!="Removed") initMonitorElements(); }
void iDie::initMonitorElements | ( | ) | [private] |
Definition at line 1006 of file iDie.cc.
References DQMStore::book1D(), DQMStore::book2D(), busySummary2_, busySummary_, DQMStore::cd(), commonLsHistory, currentLs_, daqBusySummary_, dqmStore_, epInstances, evtProcessor_, fuReportsSummary_, i, ilumiprev_, lsHistory, meInitialized_, meVecOffenders_, meVecRate_, meVecTime_, MODLZSIZE, MODLZSIZELUMI, nbSubsClasses, nbSubsListInv, occupancyNameMap, pastSavedFiles_, rateSummary_, ROLL, savedForLs_, MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), summaryLastLs_, timingSummary_, and topLevelFolder_.
Referenced by initFramework(), and reset().
{ if (!evtProcessor_) return; dqmStore_->cd(); meVecRate_.clear(); meVecTime_.clear(); meVecOffenders_.clear(); for (unsigned int i=0;i<epInstances.size();i++) { currentLs_[i]=0; } ilumiprev_ = 0; savedForLs_=0; pastSavedFiles_.clear(); dqmStore_->setCurrentFolder(topLevelFolder_.value_ + "/Layouts/"); for (unsigned int i=0;i<nbSubsClasses;i++) { std::ostringstream str; str << nbSubsListInv[i]; meVecRate_.push_back(dqmStore_->book1D("EVENT_RATE_"+TString(str.str().c_str()), "Average event rate for nodes with " + TString(str.str().c_str()) + " EP instances", 4000,1.,4001)); meVecTime_.push_back(dqmStore_->book1D("EVENT_TIME_"+TString(str.str().c_str()), "Average event processing time for nodes with " + TString(str.str().c_str()) + " EP instances", 4000,1.,4001)); meVecOffenders_.push_back(dqmStore_->book2D("MODULE_FRACTION_"+TString(str.str().c_str()), "Module processing time fraction_"+ TString(str.str().c_str()), MODLZSIZELUMI,1.,1.+MODLZSIZELUMI,MODLZSIZE,0,MODLZSIZE)); //fill 1 in underrflow bin meVecOffenders_[i]->Fill(0,1); occupancyNameMap[i].clear(); } rateSummary_ = dqmStore_->book2D("00_RATE_SUMMARY","Rate Summary (Hz)",ROLL,0,ROLL,epInstances.size()+1,0,epInstances.size()+1); timingSummary_ = dqmStore_->book2D("01_TIMING_SUMMARY","Event Time Summary (ms)",ROLL,0,ROLL,epInstances.size()+1,0,epInstances.size()+1); busySummary_ = dqmStore_->book2D("02_BUSY_SUMMARY","Busy fraction ",ROLL,0,ROLL,epInstances.size()+2,0,epInstances.size()+2); busySummary2_ = dqmStore_->book2D("03_BUSY_SUMMARY_PROCSTAT","Busy fraction from /proc/stat",ROLL,0,ROLL,epInstances.size()+2,0,epInstances.size()+2); fuReportsSummary_ = dqmStore_->book2D("04_EP_REPORTS_SUMMARY","Number of reports received",ROLL,0,ROLL,epInstances.size()+1,0,epInstances.size()+1); //everything goes into layouts folder //dqmStore_->setCurrentFolder(topLevelFolder_.value_ + "/EventInfo/"); daqBusySummary_ = dqmStore_->book1D("reportSummaryMap","DAQ HLT Farm busy (%)",4000,1,4001.); summaryLastLs_ = 0; for (size_t i=1;i<=ROLL;i++) { std::ostringstream ostr; ostr << i; rateSummary_->setBinLabel(i,ostr.str(),1); timingSummary_->setBinLabel(i,ostr.str(),1); busySummary_->setBinLabel(i,ostr.str(),1); busySummary2_->setBinLabel(i,ostr.str(),1); fuReportsSummary_->setBinLabel(i,ostr.str(),1); } for (size_t i=1;i<epInstances.size()+1;i++) { std::ostringstream ostr; ostr << epInstances[i-1]; rateSummary_->setBinLabel(i,ostr.str(),2); timingSummary_->setBinLabel(i,ostr.str(),2); busySummary_->setBinLabel(i,ostr.str(),2); busySummary2_->setBinLabel(i,ostr.str(),2); fuReportsSummary_->setBinLabel(i,ostr.str(),2); } rateSummary_->setBinLabel(epInstances.size()+1,"All",2); //timingSummary_->setBinLabel(i,"Avg",2); busySummary_->setBinLabel(epInstances.size()+1,"%Conf",2); busySummary_->setBinLabel(epInstances.size()+2,"%Max",2); busySummary2_->setBinLabel(epInstances.size()+1,"%Conf",2); busySummary2_->setBinLabel(epInstances.size()+2,"%Max",2); fuReportsSummary_->setBinLabel(epInstances.size()+1,"All",2); for (size_t i=0;i<epInstances.size();i++) { lsHistory[i]=std::deque<lsStat>(); } commonLsHistory=std::deque<commonLsStat>(); meInitialized_=true; }
void iDie::parseModuleHisto | ( | const char * | crp, |
unsigned int | lsid | ||
) | [private] |
Definition at line 657 of file iDie.cc.
References b1_, b_, commonLsHistory, cpuentries_, cpustat_, currentLs_, datap_, doFlush(), epInstances, f_, fillDQMModFractionHist(), fillDQMStatHist(), evf::iDie::lsStat::getNSampledNonIdle(), evf::iDie::lsStat::getOffendersVector(), i, lsHistory, lst, mapmod_, meInitialized_, nbSubsList, nModuleHistoMessageReceived_, nModuleLegendaMessageReceived_, nstates_, perLumiFileSaver(), ROLL, findQualityFiles::size, t_, and update.
{ if(lsid==0) return; nModuleHistoMessageReceived_++; int *trp = (int*)crp; if(t_==0 && f_!=0){ datap_ = new int[nstates_+4]; std::ostringstream ost; ost<<mapmod_[0]<<"/I"; for(unsigned int i = 1; i < nstates_; i++) ost<<":"<<mapmod_[i]; ost<<":nsubp:instance:nproc:ncpubusy";//:nprocstat1k f_->cd(); t_ = new TTree("microReport","microstate report tree"); t_->SetAutoSave(500000); b_ = t_->Branch("microstates",datap_,ost.str().c_str()); b1_ = t_->Branch("ls",&lsid,"ls/I"); } memcpy(datap_,trp,(nstates_+4)*sizeof(int)); //check ls for subprocess type unsigned int datapLen_ = nstates_+4; unsigned int nbsubs_ = datap_[datapLen_-4]; unsigned int nbproc_ = datap_[datapLen_-2]; unsigned int ncpubusy_ = datap_[datapLen_-1]; //find index number int nbsIdx = -1; if (meInitialized_ && nbSubsList.find(nbsubs_)!=nbSubsList.end() && lsid) { nbsIdx = nbSubsList[nbsubs_]; if (currentLs_[nbsIdx]<lsid) { if (currentLs_[nbsIdx]!=0) { if (lsHistory[nbsIdx].size()) { //push update lsStat & lst = lsHistory[nbsIdx].back(); fillDQMStatHist(nbsIdx,currentLs_[nbsIdx]); fillDQMModFractionHist(nbsIdx,currentLs_[nbsIdx],lst.getNSampledNonIdle(), lst.getOffendersVector()); lsHistory[nbsIdx].back().deleteModuleSamplingPtr();//clear doFlush(); perLumiFileSaver(currentLs_[nbsIdx]); } } currentLs_[nbsIdx]=lsid; //debug info //if (commonLsHistory.size()>2 && commonLsHistory.back().ls_<lsid) //std::cout << "DQM DEBUG: " << commonLsHistory.back().printInfo() << std::endl; if (!commonLsHistory.size() || commonLsHistory.back().ls_<lsid) commonLsHistory.push_back(commonLsStat(lsid,epInstances.size())); lsHistory[nbsIdx].push_back(lsStat(lsid,nbsubs_,nModuleLegendaMessageReceived_,nstates_)); if (commonLsHistory.size()>ROLL) commonLsHistory.pop_front(); if (lsHistory[nbsIdx].size()>ROLL) lsHistory[nbsIdx].pop_front(); } if (currentLs_[nbsIdx]==lsid-1) { // late update unsigned int qsize=lsHistory[nbsIdx].size(); if (qsize>1) { unsigned int cumulative_ = 0; std::pair<unsigned int,unsigned int> * fillptr = (lsHistory[nbsIdx])[qsize-2].getModuleSamplingPtr(); for (unsigned int i=0;i<nstates_;i++) { cumulative_+=datap_[i]; if (fillptr) { fillptr[i].second+=datap_[i]; } } (lsHistory[nbsIdx])[qsize-2].update(cumulative_-datap_[2],datap_[2],nbproc_,ncpubusy_); } } else if (currentLs_[nbsIdx]==lsid) {//current ls update unsigned int cumulative_ = 0; std::pair<unsigned int,unsigned int> * fillptr = lsHistory[nbsIdx].back().getModuleSamplingPtr(); for (unsigned int i=0;i<nstates_;i++) { cumulative_+=datap_[i]; if (fillptr) { fillptr[i].second+=datap_[i]; } } lsHistory[nbsIdx].back().update(cumulative_-datap_[2],datap_[2],nbproc_,ncpubusy_); } } else { //no defined plots for this number of sub processes } if(t_!=0){ t_->SetEntries(t_->GetEntries()+1); b_->Fill(); b1_->Fill(); } for(unsigned int i=0;i<nstates_; i++) { cpustat_[lsid-1][i] += trp[i]; cpuentries_[lsid-1] += trp[i]; } }
void iDie::parseModuleLegenda | ( | std::string | leg | ) | [private] |
Definition at line 636 of file iDie.cc.
References lastModuleLegendaMessageTimeStamp_, mapmod_, nModuleLegendaMessageReceived_, nModuleLegendaMessageWithDataReceived_, and nstates_.
{ nModuleLegendaMessageReceived_++; if(leg=="") return; gettimeofday(&lastModuleLegendaMessageTimeStamp_,0); nModuleLegendaMessageWithDataReceived_++; mapmod_.clear(); // if(cpustat_) delete cpustat_; boost::char_separator<char> sep(","); boost::tokenizer<boost::char_separator<char> > tokens(leg, sep); for (boost::tokenizer<boost::char_separator<char> >::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter){ mapmod_.push_back((*tok_iter)); } nstates_ = mapmod_.size(); // cpustat_ = new int[nstates_]; // for(int i = 0; i < nstates_; i++) // cpustat_[i]=0; // cpuentries_ = 0; }
void iDie::parsePathHisto | ( | const unsigned char * | crp, |
unsigned int | lsid | ||
) | [private] |
Definition at line 775 of file iDie.cc.
References evf::funcs::addToReport(), b2_, b3_, b4_, evf::TriggerReportStatic::endPathsInMenu, evf::TriggerReportStatic::endPathSummaries, evf::internal::rate::etimesExcept, evf::internal::rate::etimesFailed, evf::internal::rate::etimesPassed, evf::internal::rate::etimesPassedL1, evf::internal::rate::etimesPassedPs, evf::internal::rate::etimesRun, evf::TriggerReportStatic::eventSummary, f_, i, evf::TriggerReportStatic::nbExpected, evf::TriggerReportStatic::nbReporting, nPathHistoMessageReceived_, evf::internal::rate::nproc, evf::internal::rate::nrep, evf::internal::rate::nsub, evf::internal::rate::ptimesExcept, evf::internal::rate::ptimesFailed, evf::internal::rate::ptimesPassed, evf::internal::rate::ptimesPassedL1, evf::internal::rate::ptimesPassedPs, evf::internal::rate::ptimesRun, r_, t_, evf::PathSummaryStatic::timesExcept, evf::PathSummaryStatic::timesFailed, evf::PathSummaryStatic::timesPassed, evf::PathSummaryStatic::timesPassedL1, evf::PathSummaryStatic::timesPassedPs, evf::PathSummaryStatic::timesRun, edm::EventSummary::totalEvents, evf::TriggerReportStatic::trigPathsInMenu, evf::TriggerReportStatic::trigPathSummaries, trp_, trpentries_, and trppriv_.
{ if(lsid==0) return; nPathHistoMessageReceived_++; // if(lsid>=trp_.size()){ // trp_.resize(lsid); // funcs::reset(&trp_[lsid-1]); // trpentries_.resize(lsid,0); // } trppriv_ = (TriggerReportStatic*)crp; for( int i=0; i< trppriv_->trigPathsInMenu; i++) { r_.ptimesRun[i] = trppriv_->trigPathSummaries[i].timesRun; r_.ptimesPassedPs[i] = trppriv_->trigPathSummaries[i].timesPassedPs; r_.ptimesPassedL1[i] = trppriv_->trigPathSummaries[i].timesPassedL1; r_.ptimesPassed[i] = trppriv_->trigPathSummaries[i].timesPassed; r_.ptimesFailed[i] = trppriv_->trigPathSummaries[i].timesFailed; r_.ptimesExcept[i] = trppriv_->trigPathSummaries[i].timesExcept; } for( int i=0; i< trppriv_->endPathsInMenu; i++) { r_.etimesRun[i] = trppriv_->endPathSummaries[i].timesRun; r_.etimesPassedPs[i] = trppriv_->endPathSummaries[i].timesPassedPs; r_.etimesPassedL1[i] = trppriv_->endPathSummaries[i].timesPassedL1; r_.etimesPassed[i] = trppriv_->endPathSummaries[i].timesPassed; r_.etimesFailed[i] = trppriv_->endPathSummaries[i].timesFailed; r_.etimesExcept[i] = trppriv_->endPathSummaries[i].timesExcept; } r_.nproc = trppriv_->eventSummary.totalEvents; r_.nsub = trppriv_->nbExpected; r_.nrep = trppriv_->nbReporting; if(t_!=0 && f_!=0 && b2_==0){ b2_ = t_->Branch("rate",&r_,"nproc/I:nsub:nrep"); std::ostringstream ost1; ost1 << "p_nrun[" << trppriv_->trigPathsInMenu << "]/I:p_npps[" << trppriv_->trigPathsInMenu << "]:p_npl1[" << trppriv_->trigPathsInMenu << "]:p_npp[" << trppriv_->trigPathsInMenu << "]:p_npf[" << trppriv_->trigPathsInMenu << "]:p_npe[" << trppriv_->trigPathsInMenu <<"]"; b3_ = t_->Branch("paths",r_.ptimesRun,ost1.str().c_str()); std::ostringstream ost2; ost2 << "ep_nrun[" << trppriv_->endPathsInMenu << "]/I:en_npps[" << trppriv_->endPathsInMenu << "]:ep_npl1[" << trppriv_->endPathsInMenu << "]:ep_npp[" << trppriv_->endPathsInMenu << "]:ep_npf[" << trppriv_->endPathsInMenu << "]:ep_npe[" << trppriv_->endPathsInMenu << "]"; b4_ = t_->Branch("endpaths",r_.etimesRun,ost2.str().c_str()); } if(b2_!=0) b2_->Fill(); if(b3_!=0) b3_->Fill(); if(b4_!=0) b4_->Fill(); funcs::addToReport(&trp_[lsid-1],trppriv_,lsid); trpentries_[lsid-1]++; }
void iDie::parsePathLegenda | ( | std::string | leg | ) | [private] |
Definition at line 760 of file iDie.cc.
References lastPathLegendaMessageTimeStamp_, mappath_, nPathLegendaMessageReceived_, and nPathLegendaMessageWithDataReceived_.
{ nPathLegendaMessageReceived_++; if(leg=="")return; gettimeofday(&lastPathLegendaMessageTimeStamp_,0); nPathLegendaMessageWithDataReceived_++; mappath_.clear(); boost::char_separator<char> sep(","); boost::tokenizer<boost::char_separator<char> > tokens(leg, sep); for (boost::tokenizer<boost::char_separator<char> >::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter){ mappath_.push_back((*tok_iter)); } }
void iDie::perLumiFileSaver | ( | unsigned int | lsid | ) | [private] |
Definition at line 1297 of file iDie.cc.
References dqmFilesWritable_, dqmSaveDir_, dqmStore_, alignCSCRings::e, f_, fileBaseName_, lut2db_cfg::filename, i, ilumiprev_, pastSavedFiles_, runNumber_, DQMStore::save(), savedForLs_, saveLsInterval_, DQMStore::SaveWithReference, testRegression::stat, ntuplemaker::status, dqm::qstatus::STATUS_OK, createPayload::suffix, topLevelFolder_, BeamSplash_cfg::version, and writeDirectoryPresent_.
Referenced by parseModuleHisto().
{ if (dqmSaveDir_.value_=="") return; //try to create directory if not there if (savedForLs_==0) { struct stat st; if (stat((dqmSaveDir_.value_+"/output").c_str(),&st) != 0) { if (mkdir((dqmSaveDir_.value_+"/output").c_str(), 0777) != 0) { LOG4CPLUS_ERROR(getApplicationLogger(),"iDie could not find nor create DQM \"output\" directory. DQM archiving -> Off."); dqmSaveDir_.value_="";//reset parameter return; } } if (stat((dqmSaveDir_.value_+"/done").c_str(),&st) != 0) { if (mkdir((dqmSaveDir_.value_+"/done").c_str(), 0777) != 0) { LOG4CPLUS_WARN(getApplicationLogger(),"iDie could not find nor create DQM \"done\" directory. DQM archiving might fail."); } } //static filename part char version[8]; sprintf(version, "_V%04d_", int(1)); version[7]='\0'; std::string sDir = dqmSaveDir_.value_; if (sDir[sDir.size()-1]!='/') sDir+="/"; sDir+="output/"; fileBaseName_ = sDir + "DQM" + version; //checking if directory is there if ( access( sDir.c_str(), 0 ) == 0 ) { struct stat status; stat( sDir.c_str(), &status ); if ( status.st_mode & S_IFDIR ) writeDirectoryPresent_=true; else writeDirectoryPresent_=false; } } if (lsid > 0 && (lsid%saveLsInterval_.value_)==0 && lsid>savedForLs_ && writeDirectoryPresent_) { savedForLs_=lsid; char suffix[64]; char rewrite[128]; sprintf(suffix, "_R%09d_L%06d", runNumber_.value_, lsid); sprintf(rewrite, "\\1Run %d/\\2/By Lumi Section %d-%d", runNumber_.value_, ilumiprev_, lsid); std::vector<std::string> systems = {topLevelFolder_.value_}; for (size_t i = 0, e = systems.size(); i != e; ++i) { std::string filename = fileBaseName_ + systems[i] + suffix + ".root"; try { dqmStore_->save(filename, systems[i] , "^(Reference/)?([^/]+)", rewrite, (DQMStore::SaveReferenceTag) DQMStore::SaveWithReference, dqm::qstatus::STATUS_OK); pastSavedFiles_.push_back(filename); if (dqmFilesWritable_.value_) chmod(filename.c_str(),0777);//allow deletion by dqm script //if (pastSavedFiles_.size() > 500) //{ //remove(pastSavedFiles_.front().c_str()); //pastSavedFiles_.pop_front(); //} } catch (...) { LOG4CPLUS_ERROR(getApplicationLogger(),"iDie could not create root file"); } } ilumiprev_ = lsid; //cd() to micro report root file if (f_) f_->cd(); } }
void iDie::postEntry | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 444 of file iDie.cc.
References reco::JetExtendedAssociation::getValue(), query::host, recoMuon::in, cmsPerfSuiteHarvest::now, and DTTTrigCorrFirst::run.
Referenced by iDie().
{ if (!evtProcessor_ && dqmEnabled_.value_) initFramework(); else if (evtProcessor_ && !meInitialized_) { if (dqmState_!="Removed") initMonitorElements(); } timeval tv; gettimeofday(&tv,0); time_t now = tv.tv_sec; cgicc::Cgicc cgi(in); unsigned int run = 0; pid_t cpid = 0; /* cgicc::CgiEnvironment cgie(in); cout << "query = " << cgie.getContentLength() << endl; */ std::vector<cgicc::FormEntry> el1; el1 = cgi.getElements(); // for(unsigned int i = 0; i < el1.size(); i++) // std::cout << "name="<<el1[i].getName() << std::endl; el1.clear(); cgi.getElement("run",el1); if(el1.size()!=0) { run = el1[0].getIntegerValue(); } el1.clear(); cgi.getElement("stacktrace",el1); if(el1.size()!=0) { cpid = run; // std::cout << "=============== stacktrace =============" << std::endl; // std::cout << el1[0].getValue() << std::endl; if(el1[0].getValue().find("Dead")==0){ std::string host = cgi.getEnvironment().getRemoteHost(); std::transform(host.begin(), host.end(), host.begin(), ::toupper); ifmap fi = fus_.find(host); if(fi!=fus_.end()){ fus_.erase(fi); } if(fus_.size()==0) { //close the root file if we know the run is over if(f_!=0){ f_->cd(); f_->Write(); } if(t_ != 0) { delete t_; t_ = 0; } if(f_!=0){ f_->Close(); delete f_; f_ = 0; } } } else{ totalCores_++; std::string st = el1[0].getValue(); std::string sig; size_t psig = st.find("signal"); if(psig != std::string::npos) sig = st.substr(psig,9); std::string host = cgi.getEnvironment().getRemoteHost(); std::transform(host.begin(), host.end(), host.begin(), ::toupper); ifmap fi = fus_.find(host); if(fi!=fus_.end()){ (*fi).second.tstamp = now; (*fi).second.ccount++; (*fi).second.cpids.push_back(cpid); (*fi).second.signals.push_back(sig); (*fi).second.stacktraces.push_back(st); } } } el1.clear(); cgi.getElement("legenda",el1); if(el1.size()!=0) { parsePathLegenda(el1[0].getValue()); } cgi.getElement("trp",el1); if(el1.size()!=0) { unsigned int lsid = run; parsePathHisto((unsigned char*)(el1[0].getValue().c_str()),lsid); } el1.clear(); }
void iDie::postEntryiChoke | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 543 of file iDie.cc.
References reco::JetExtendedAssociation::getValue(), recoMuon::in, and evf::funcs::reset().
Referenced by iDie().
{ // std::cout << "postEntryiChoke " << std::endl; unsigned int lsid = 0; cgicc::Cgicc cgi(in); /* cgicc::CgiEnvironment cgie(in); cout << "query = " << cgie.getContentLength() << endl; */ std::vector<cgicc::FormEntry> el1; el1 = cgi.getElements(); // for(unsigned int i = 0; i < el1.size(); i++) // std::cout << "name="<<el1[i].getName() << std::endl; el1.clear(); cgi.getElement("run",el1); if(el1.size()!=0) { lsid = el1[0].getIntegerValue(); } el1.clear(); //with the first message for the new lsid, resize all containers so // a web access won't address an invalid location in case it interleaves between // the first cpustat update and the first scalers update or viceversa if(lsid!=0){ if(lsid>cpustat_.size()){ cpustat_.resize(lsid,std::vector<int>(nstates_,0)); cpuentries_.resize(lsid,0); } if(lsid>trp_.size()){ trp_.resize(lsid); funcs::reset(&trp_[lsid-1]); trpentries_.resize(lsid,0); } if(last_ls_ < lsid) { last_ls_ = lsid; funcs::reset(&trp_[lsid-1]); if(t_ && (last_ls_%10==0)) t_->Write(); } } cgi.getElement("legenda",el1); if(el1.size()!=0) { parseModuleLegenda(el1[0].getValue()); } cgi.getElement("trp",el1); if(el1.size()!=0) { parseModuleHisto(el1[0].getValue().c_str(),lsid); } el1.clear(); }
void iDie::reset | ( | void | ) | [private] |
Definition at line 598 of file iDie.cc.
References b1_, b2_, b3_, b4_, b_, cpuentries_, cpustat_, datap_, doFlush(), dqmEnabled_, evtProcessor_, f_, fus_, initFramework(), initMonitorElements(), last_ls_, t_, totalCores_, trp_, and trpentries_.
Referenced by actionPerformed().
{ fus_.erase(fus_.begin(),fus_.end()); totalCores_=0; last_ls_ = 0; trp_.clear(); trpentries_.clear(); cpustat_.clear(); cpuentries_.clear(); if(f_!=0){ f_->cd(); f_->Write(); } if(t_ != 0) { delete t_; t_=0; } if(f_!=0){ f_->Close(); delete f_; f_ = 0; } if(datap_ != 0) {delete datap_; datap_ = 0;} b_=0; b1_=0; b2_=0; b3_=0; b4_=0; if (dqmEnabled_.value_) { if (!evtProcessor_) { initFramework(); } else if (evtProcessor_) initMonitorElements(); doFlush(); } }
void iDie::spotlight | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 839 of file iDie.cc.
References dbtoconf::out.
Referenced by iDie().
{ std::string urn = getApplicationDescriptor()->getURN(); *out << "<!-- base href=\"/" << urn << "\"> -->" << std::endl; *out << "<html>" << std::endl; *out << "<head>" << std::endl; *out << "<link type=\"text/css\" rel=\"stylesheet\""; *out << " href=\"/evf/html/styles.css\"/>" << std::endl; *out << "<title>" << getApplicationDescriptor()->getClassName() << getApplicationDescriptor()->getInstance() << " MAIN</title>" << std::endl; *out << "</head>" << std::endl; *out << "<body>" << std::endl; *out << "<table border=\"0\" width=\"100%\">" << std::endl; *out << "<tr>" << std::endl; *out << " <td align=\"left\">" << std::endl; *out << " <img" << std::endl; *out << " align=\"middle\"" << std::endl; *out << " src=\"/evf/images/spoticon.jpg\"" << std::endl; *out << " alt=\"main\"" << std::endl; *out << " width=\"64\"" << std::endl; *out << " height=\"64\"" << std::endl; *out << " border=\"\"/>" << std::endl; *out << " <b>" << std::endl; *out << getApplicationDescriptor()->getClassName() << getApplicationDescriptor()->getInstance() << std::endl; *out << " </b>" << std::endl; *out << " </td>" << std::endl; *out << " <td width=\"32\">" << std::endl; *out << " <a href=\"/urn:xdaq-application:lid=3\">" << std::endl; *out << " <img" << std::endl; *out << " align=\"middle\"" << std::endl; *out << " src=\"/hyperdaq/images/HyperDAQ.jpg\"" << std::endl; *out << " alt=\"HyperDAQ\"" << std::endl; *out << " width=\"32\"" << std::endl; *out << " height=\"32\"" << std::endl; *out << " border=\"\"/>" << std::endl; *out << " </a>" << std::endl; *out << " </td>" << std::endl; *out << " <td width=\"32\">" << std::endl; *out << " </td>" << std::endl; *out << " <td width=\"32\">" << std::endl; *out << " <a href=\"/" << urn << "/\">" << std::endl; *out << " <img" << std::endl; *out << " align=\"middle\"" << std::endl; *out << " src=\"/evf/images/idieapp.jpg\"" << std::endl; *out << " alt=\"main\"" << std::endl; *out << " width=\"32\"" << std::endl; *out << " height=\"32\"" << std::endl; *out << " border=\"\"/>" << std::endl; *out << " </a>" << std::endl; *out << " </td>" << std::endl; *out << "</tr>" << std::endl; *out << "</table>" << std::endl; *out << "<hr/>" << std::endl; *out << "<table><tr><th>Parameter</th><th>Value</th></tr>" << std::endl; *out << "<tr><td>module legenda messages received</td><td>" << nModuleLegendaMessageReceived_ << "</td></tr>" << std::endl; *out << "<tr><td>path legenda messages received</td><td>" << nPathLegendaMessageReceived_ << "</td></tr>" << std::endl; *out << "<tr><td>module legenda messages with data</td><td>" << nModuleLegendaMessageWithDataReceived_ << "</td></tr>" << std::endl; *out << "<tr><td>path legenda messages with data</td><td>" << nPathLegendaMessageWithDataReceived_ << "</td></tr>" << std::endl; *out << "<tr><td>module histo messages received</td><td>" << nModuleHistoMessageReceived_<< "</td></tr>" << std::endl; *out << "<tr><td>path histo messages received</td><td>" << nPathHistoMessageReceived_<< "</td></tr>" << std::endl; tm *uptm = localtime(&lastPathLegendaMessageTimeStamp_.tv_sec); char datestring[256]; strftime(datestring, sizeof(datestring),"%c", uptm); *out << "<tr><td>time stamp of last path legenda with data</td><td>" << datestring << "</td></tr>" << std::endl; uptm = localtime(&lastModuleLegendaMessageTimeStamp_.tv_sec); strftime(datestring, sizeof(datestring),"%c", uptm); *out << "<tr><td>time stamp of last module legenda with data</td><td>" << datestring << "</td></tr>" << std::endl; *out << "</table></body>" << std::endl; }
void iDie::summaryTable | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 323 of file iDie.cc.
References dbtoconf::out.
Referenced by iDie().
{ *out << "<tr><td>"<<fus_.size()<<"</td><td>" << totalCores_ << "</td><td></td></tr>" << std::endl; }
void iDie::updater | ( | xgi::Input * | in, |
xgi::Output * | out | ||
) | throw (xgi::exception::Exception) |
Definition at line 317 of file iDie.cc.
References dbtoconf::out, and sistrip::runNumber_.
Referenced by iDie().
{ *out << runNumber_.value_ << std::endl; }
void iDie::updateRollingHistos | ( | unsigned int | nbsIdx, |
unsigned int | lsid, | ||
lsStat & | lst, | ||
commonLsStat & | clst, | ||
bool | roll | ||
) | [private] |
busyCPU *= (float)epInstances[nbsIdx]/epMax[nbsIdx];
Definition at line 1119 of file iDie.cc.
References busySummary2_, busySummary_, daqBusySummary_, epInstances, epMax, fuReportsSummary_, MonitorElement::getBinContent(), evf::iDie::commonLsStat::getBusyTotalFrac(), evf::iDie::commonLsStat::getBusyTotalFracTheor(), evf::iDie::lsStat::getEvtTime(), evf::iDie::lsStat::getFracBusy(), evf::iDie::lsStat::getFracCPUBusy(), evf::iDie::commonLsStat::getNReports(), evf::iDie::lsStat::getRate(), evf::iDie::lsStat::getReports(), evf::iDie::commonLsStat::getTotalRate(), HTscaling, i, j, machineWeight, machineWeightInst, max(), rateSummary_, ROLL, MonitorElement::setBinContent(), MonitorElement::setBinError(), MonitorElement::setBinLabel(), evf::iDie::commonLsStat::setBusyForClass(), summaryLastLs_, and timingSummary_.
Referenced by fillDQMStatHist().
{ unsigned int lsidBin; if (roll) { if (lsid>ROLL) { lsidBin=ROLL; if (lsid>summaryLastLs_) { //see if plots aren't up to date unsigned int lsdiff = lsid-summaryLastLs_; for (unsigned int i=1;i<=ROLL;i++) { if (i<ROLL) { bool emptyBin=false; if (i<=ROLL-lsdiff) emptyBin=true; for (unsigned int j=1;j<=epInstances.size()+1;j++) { rateSummary_->setBinContent(i,j,emptyBin? 0 : rateSummary_->getBinContent(i+lsdiff,j)); timingSummary_->setBinContent(i,j,emptyBin ? 0 : timingSummary_->getBinContent(i+lsdiff,j)); busySummary_->setBinContent(i,j,emptyBin ? 0 : busySummary_->getBinContent(i+lsdiff,j)); busySummary2_->setBinContent(i,j,emptyBin ? 0 : busySummary2_->getBinContent(i+lsdiff,j)); fuReportsSummary_->setBinContent(i,j,emptyBin ? 0 : fuReportsSummary_->getBinContent(i+lsdiff,j)); } busySummary_->setBinContent(i,epInstances.size()+2,emptyBin ? 0 : busySummary2_->getBinContent(i+lsdiff,epInstances.size()+2)); busySummary2_->setBinContent(i,epInstances.size()+2,emptyBin ? 0 : busySummary2_->getBinContent(i+lsdiff,epInstances.size()+2)); } std::ostringstream ostr; ostr << lsid-ROLL+i; rateSummary_->setBinLabel(i,ostr.str(),1); timingSummary_->setBinLabel(i,ostr.str(),1); busySummary_->setBinLabel(i,ostr.str(),1); busySummary2_->setBinLabel(i,ostr.str(),1); fuReportsSummary_->setBinLabel(i,ostr.str(),1); } summaryLastLs_=lsid; } else if (lsid<summaryLastLs_) { if (summaryLastLs_-lsid>=ROLL) return;//very old lsidBin=ROLL-(summaryLastLs_-lsid); } } else if (lsid) {lsidBin=lsid;} else return; } else {// previous lumisection updates lsidBin=lsid>ROLL-1 ? ROLL-1:lsid; } rateSummary_->setBinContent(lsidBin,nbsIdx+1,lst.getRate()); timingSummary_->setBinContent(lsidBin,nbsIdx+1,lst.getEvtTime()*1000); fuReportsSummary_->setBinContent(lsidBin,nbsIdx+1,lst.getReports()); //float epMaxInv=1/epMax[nbsIdx]; float busyCorr = lst.getFracBusy() * (float)epInstances[nbsIdx]/epMax[nbsIdx];//really how busy is machine (uncorrected) //max based on how much is configured and max possible float fracMax = 0.5 + (std::max(epInstances[nbsIdx]-epMax[nbsIdx]/2.,0.)/(epMax[nbsIdx])) *HTscaling[nbsIdx]; float busyFr=0; float busyCPUFr=0; float busyFrTheor=0; float busyFrCPUTheor=0; if (busyCorr>0.5) {//take into account HT scaling for the busy fraction busyFr=(0.5 + (busyCorr-0.5)*HTscaling[nbsIdx])/fracMax; busyCPUFr=(0.5 + (lst.getFracCPUBusy()-0.5)*HTscaling[nbsIdx])/fracMax; busyFrTheor = (0.5+(busyCorr-0.5)*HTscaling[nbsIdx])/ (0.5+HTscaling[nbsIdx]); busyFrCPUTheor = (0.5+(lst.getFracCPUBusy()-0.5)*HTscaling[nbsIdx])/ (0.5+HTscaling[nbsIdx]); } else {//below the HT threshold busyFr=busyCorr / fracMax; busyCPUFr=lst.getFracCPUBusy() / fracMax; busyFrTheor = busyCorr / (0.5+HTscaling[nbsIdx]); busyFrCPUTheor = lst.getFracCPUBusy() / (0.5+HTscaling[nbsIdx]); } //rolled busySummary_->setBinContent(lsidBin,nbsIdx+1,busyFr);//"corrected" cpu busy fraction busySummary2_->setBinContent(lsidBin,nbsIdx+1,busyCPUFr);//"corrected" cpu busy fraction clst.setBusyForClass(nbsIdx,lst.getRate(),busyFr,busyFrTheor,busyCPUFr,busyFrCPUTheor,lst.getReports()); rateSummary_->setBinContent(lsidBin,epInstances.size()+1,clst.getTotalRate()); fuReportsSummary_->setBinContent(lsidBin,epInstances.size()+1,clst.getNReports()); float busyAvg = clst.getBusyTotalFrac(false,machineWeightInst); busySummary_->setBinContent(lsidBin,epInstances.size()+1,busyAvg); busySummary2_->setBinContent(lsidBin,epInstances.size()+1,clst.getBusyTotalFrac(true,machineWeightInst)); busySummary_->setBinContent(lsidBin,epInstances.size()+2,clst.getBusyTotalFracTheor(false,machineWeight)); busySummary2_->setBinContent(lsidBin,epInstances.size()+2,clst.getBusyTotalFracTheor(true,machineWeight)); //non rolled daqBusySummary_->setBinContent(lsid,busyAvg*100); daqBusySummary_->setBinError(lsid,0); }
evf::iDie::XDAQ_INSTANTIATOR | ( | ) |
TBranch* evf::iDie::b1_ [private] |
Definition at line 197 of file iDie.h.
Referenced by parseModuleHisto(), and reset().
TBranch* evf::iDie::b2_ [private] |
Definition at line 198 of file iDie.h.
Referenced by parsePathHisto(), and reset().
TBranch* evf::iDie::b3_ [private] |
Definition at line 199 of file iDie.h.
Referenced by parsePathHisto(), and reset().
TBranch* evf::iDie::b4_ [private] |
Definition at line 200 of file iDie.h.
Referenced by parsePathHisto(), and reset().
TBranch* evf::iDie::b_ [private] |
Definition at line 196 of file iDie.h.
Referenced by parseModuleHisto(), and reset().
MonitorElement* evf::iDie::busySummary2_ [private] |
Definition at line 486 of file iDie.h.
Referenced by initMonitorElements(), and updateRollingHistos().
MonitorElement* evf::iDie::busySummary_ [private] |
Definition at line 485 of file iDie.h.
Referenced by initMonitorElements(), and updateRollingHistos().
xdata::String evf::iDie::class_ [private] |
std::deque<commonLsStat> evf::iDie::commonLsHistory [private] |
Definition at line 492 of file iDie.h.
Referenced by fillDQMStatHist(), initMonitorElements(), and parseModuleHisto().
std::string evf::iDie::configString_ [private] |
Definition at line 474 of file iDie.h.
Referenced by iDie(), and initFramework().
std::vector<int> evf::iDie::cpuentries_ [private] |
Definition at line 186 of file iDie.h.
Referenced by parseModuleHisto(), and reset().
std::vector<std::vector<int> > evf::iDie::cpustat_ [private] |
Definition at line 187 of file iDie.h.
Referenced by parseModuleHisto(), and reset().
std::vector<unsigned int> evf::iDie::currentLs_ [private] |
Definition at line 495 of file iDie.h.
Referenced by iDie(), initMonitorElements(), and parseModuleHisto().
MonitorElement* evf::iDie::daqBusySummary_ [private] |
Definition at line 488 of file iDie.h.
Referenced by initMonitorElements(), and updateRollingHistos().
int* evf::iDie::datap_ [private] |
Definition at line 201 of file iDie.h.
Referenced by parseModuleHisto(), and reset().
xdata::String evf::iDie::dqmCollectorHost_ [private] |
Definition at line 180 of file iDie.h.
Referenced by iDie(), and initFramework().
xdata::String evf::iDie::dqmCollectorPort_ [private] |
Definition at line 181 of file iDie.h.
Referenced by iDie(), and initFramework().
xdata::Boolean evf::iDie::dqmEnabled_ [private] |
xdata::Boolean evf::iDie::dqmFilesWritable_ [private] |
Definition at line 501 of file iDie.h.
Referenced by iDie(), and perLumiFileSaver().
xdata::String evf::iDie::dqmSaveDir_ [private] |
Definition at line 500 of file iDie.h.
Referenced by iDie(), and perLumiFileSaver().
DQMService* evf::iDie::dqmService_ [private] |
Definition at line 472 of file iDie.h.
Referenced by doFlush(), and initFramework().
std::string evf::iDie::dqmState_ [private] |
Definition at line 173 of file iDie.h.
Referenced by actionPerformed(), and initFramework().
DQMStore* evf::iDie::dqmStore_ [private] |
Definition at line 473 of file iDie.h.
Referenced by initFramework(), initMonitorElements(), and perLumiFileSaver().
std::vector<unsigned int> evf::iDie::epInstances [private] |
Definition at line 217 of file iDie.h.
Referenced by iDie(), initMonitorElements(), parseModuleHisto(), and updateRollingHistos().
std::vector<unsigned int> evf::iDie::epMax [private] |
Definition at line 218 of file iDie.h.
Referenced by iDie(), and updateRollingHistos().
edm::EventProcessor* evf::iDie::evtProcessor_ [private] |
Definition at line 470 of file iDie.h.
Referenced by deleteFramework(), fillDQMModFractionHist(), fillDQMStatHist(), initFramework(), initMonitorElements(), and reset().
TFile* evf::iDie::f_ [private] |
Definition at line 194 of file iDie.h.
Referenced by parseModuleHisto(), parsePathHisto(), perLumiFileSaver(), and reset().
std::string evf::iDie::fileBaseName_ [private] |
Definition at line 504 of file iDie.h.
Referenced by perLumiFileSaver().
MonitorElement* evf::iDie::fuReportsSummary_ [private] |
Definition at line 487 of file iDie.h.
Referenced by initMonitorElements(), and updateRollingHistos().
fmap evf::iDie::fus_ [private] |
xdata::String evf::iDie::hostname_ [private] |
std::vector<float> evf::iDie::HTscaling [private] |
Definition at line 219 of file iDie.h.
Referenced by iDie(), and updateRollingHistos().
unsigned int evf::iDie::ilumiprev_ [private] |
Definition at line 498 of file iDie.h.
Referenced by initMonitorElements(), and perLumiFileSaver().
xdata::UnsignedInteger32 evf::iDie::instance_ [private] |
unsigned int evf::iDie::last_ls_ [private] |
timeval evf::iDie::lastModuleLegendaMessageTimeStamp_ [private] |
Definition at line 213 of file iDie.h.
Referenced by iDie(), and parseModuleLegenda().
timeval evf::iDie::lastPathLegendaMessageTimeStamp_ [private] |
Definition at line 214 of file iDie.h.
Referenced by iDie(), and parsePathLegenda().
Logger evf::iDie::log_ [private] |
std::deque<lsStat>* evf::iDie::lsHistory [private] |
Definition at line 493 of file iDie.h.
Referenced by fillDQMStatHist(), iDie(), initMonitorElements(), and parseModuleHisto().
std::vector<float> evf::iDie::machineWeight [private] |
Definition at line 221 of file iDie.h.
Referenced by iDie(), and updateRollingHistos().
std::vector<float> evf::iDie::machineWeightInst [private] |
Definition at line 222 of file iDie.h.
Referenced by iDie(), and updateRollingHistos().
std::vector<std::string> evf::iDie::mapmod_ [private] |
Definition at line 188 of file iDie.h.
Referenced by fillDQMModFractionHist(), parseModuleHisto(), and parseModuleLegenda().
std::vector<std::string> evf::iDie::mappath_ [private] |
Definition at line 192 of file iDie.h.
Referenced by parsePathLegenda().
bool evf::iDie::meInitialized_ [private] |
Definition at line 471 of file iDie.h.
Referenced by initMonitorElements(), and parseModuleHisto().
std::vector<MonitorElement*> evf::iDie::meVecOffenders_ [private] |
Definition at line 482 of file iDie.h.
Referenced by fillDQMModFractionHist(), and initMonitorElements().
std::vector<MonitorElement*> evf::iDie::meVecRate_ [private] |
Definition at line 480 of file iDie.h.
Referenced by fillDQMStatHist(), and initMonitorElements().
std::vector<MonitorElement*> evf::iDie::meVecTime_ [private] |
Definition at line 481 of file iDie.h.
Referenced by fillDQMStatHist(), and initMonitorElements().
std::vector<unsigned int> evf::iDie::nbMachines [private] |
unsigned int evf::iDie::nbSubsClasses [private] |
Definition at line 479 of file iDie.h.
Referenced by iDie(), and initMonitorElements().
std::map<unsigned int,int> evf::iDie::nbSubsList [private] |
Definition at line 477 of file iDie.h.
Referenced by iDie(), and parseModuleHisto().
std::map<int,unsigned int> evf::iDie::nbSubsListInv [private] |
Definition at line 478 of file iDie.h.
Referenced by iDie(), and initMonitorElements().
int evf::iDie::nModuleHistoMessageReceived_ [private] |
Definition at line 210 of file iDie.h.
Referenced by parseModuleHisto().
int evf::iDie::nModuleLegendaMessageReceived_ [private] |
Definition at line 206 of file iDie.h.
Referenced by parseModuleHisto(), and parseModuleLegenda().
int evf::iDie::nModuleLegendaMessageWithDataReceived_ [private] |
Definition at line 208 of file iDie.h.
Referenced by parseModuleLegenda().
int evf::iDie::nPathHistoMessageReceived_ [private] |
Definition at line 211 of file iDie.h.
Referenced by parsePathHisto().
int evf::iDie::nPathLegendaMessageReceived_ [private] |
Definition at line 207 of file iDie.h.
Referenced by parsePathLegenda().
int evf::iDie::nPathLegendaMessageWithDataReceived_ [private] |
Definition at line 209 of file iDie.h.
Referenced by parsePathLegenda().
unsigned int evf::iDie::nstates_ [private] |
Definition at line 185 of file iDie.h.
Referenced by parseModuleHisto(), and parseModuleLegenda().
std::vector<std::map<unsigned int, unsigned int> > evf::iDie::occupancyNameMap [private] |
Definition at line 490 of file iDie.h.
Referenced by fillDQMModFractionHist(), iDie(), and initMonitorElements().
std::list<std::string> evf::iDie::pastSavedFiles_ [private] |
Definition at line 499 of file iDie.h.
Referenced by initMonitorElements(), and perLumiFileSaver().
boost::shared_ptr<std::vector<edm::ParameterSet> > evf::iDie::pServiceSets_ [private] |
Definition at line 468 of file iDie.h.
Referenced by initFramework().
internal::rate evf::iDie::r_ [private] |
Definition at line 203 of file iDie.h.
Referenced by parsePathHisto().
MonitorElement* evf::iDie::rateSummary_ [private] |
Definition at line 483 of file iDie.h.
Referenced by initMonitorElements(), and updateRollingHistos().
xdata::UnsignedInteger32 evf::iDie::runNumber_ [private] |
Definition at line 179 of file iDie.h.
Referenced by iDie(), and perLumiFileSaver().
timeval evf::iDie::runStartDetectedTimeStamp_ [private] |
unsigned int evf::iDie::savedForLs_ [private] |
Definition at line 503 of file iDie.h.
Referenced by initMonitorElements(), and perLumiFileSaver().
xdata::UnsignedInteger32 evf::iDie::saveLsInterval_ [private] |
Definition at line 497 of file iDie.h.
Referenced by iDie(), and perLumiFileSaver().
edm::ServiceToken evf::iDie::serviceToken_ [private] |
Definition at line 469 of file iDie.h.
Referenced by initFramework().
unsigned int evf::iDie::summaryLastLs_ [private] |
Definition at line 489 of file iDie.h.
Referenced by initMonitorElements(), and updateRollingHistos().
TTree* evf::iDie::t_ [private] |
Definition at line 195 of file iDie.h.
Referenced by parseModuleHisto(), parsePathHisto(), and reset().
MonitorElement* evf::iDie::timingSummary_ [private] |
Definition at line 484 of file iDie.h.
Referenced by initMonitorElements(), and updateRollingHistos().
xdata::String evf::iDie::topLevelFolder_ [private] |
Definition at line 502 of file iDie.h.
Referenced by iDie(), initMonitorElements(), and perLumiFileSaver().
unsigned int evf::iDie::totalCores_ [private] |
std::vector<TriggerReportStatic> evf::iDie::trp_ [private] |
Definition at line 190 of file iDie.h.
Referenced by parsePathHisto(), and reset().
std::vector<int> evf::iDie::trpentries_ [private] |
Definition at line 191 of file iDie.h.
Referenced by parsePathHisto(), and reset().
TriggerReportStatic* evf::iDie::trppriv_ [private] |
Definition at line 202 of file iDie.h.
Referenced by parsePathHisto().
xdata::String evf::iDie::url_ [private] |
bool evf::iDie::writeDirectoryPresent_ [private] |
Definition at line 505 of file iDie.h.
Referenced by perLumiFileSaver().