CMS 3D CMS Logo

Classes | Public Member Functions | Private Member Functions | Private Attributes

evf::iDie Class Reference

#include <iDie.h>

List of all members.

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_
MonitorElementbusySummary2_
MonitorElementbusySummary_
xdata::String class_
std::deque< commonLsStatcommonLsHistory
std::string configString_
std::vector< int > cpuentries_
std::vector< std::vector< int > > cpustat_
std::vector< unsigned int > currentLs_
MonitorElementdaqBusySummary_
int * datap_
xdata::String dqmCollectorHost_
xdata::String dqmCollectorPort_
xdata::Boolean dqmEnabled_
xdata::Boolean dqmFilesWritable_
xdata::String dqmSaveDir_
DQMServicedqmService_
std::string dqmState_
DQMStoredqmStore_
std::vector< unsigned int > epInstances
std::vector< unsigned int > epMax
edm::EventProcessorevtProcessor_
TFile * f_
std::string fileBaseName_
MonitorElementfuReportsSummary_
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_
MonitorElementrateSummary_
xdata::UnsignedInteger32 runNumber_
timeval runStartDetectedTimeStamp_
unsigned int savedForLs_
xdata::UnsignedInteger32 saveLsInterval_
edm::ServiceToken serviceToken_
unsigned int summaryLastLs_
TTree * t_
MonitorElementtimingSummary_
xdata::String topLevelFolder_
unsigned int totalCores_
std::vector< TriggerReportStatictrp_
std::vector< int > trpentries_
TriggerReportStatictrppriv_
xdata::String url_
bool writeDirectoryPresent_

Detailed Description

Definition at line 80 of file iDie.h.


Constructor & Destructor Documentation

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);

}
iDie::~iDie ( ) [virtual]

Definition at line 178 of file iDie.cc.

{
}

Member Function Documentation

void iDie::actionPerformed ( xdata::Event &  e)

Definition at line 183 of file iDie.cc.

References dqmState_, alignCSCRings::e, and reset().

{
  
  if (e.type()=="ItemChangedEvent" ) {
    std::string item = dynamic_cast<xdata::ItemChangedEvent&>(e).itemName();
    
    if ( item == "runNumber") {
      LOG4CPLUS_WARN(getApplicationLogger(),
                     "New Run was started - iDie will reset");
      dqmState_ = "Prepared";
      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().

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 ( )

Member Data Documentation

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().

Definition at line 486 of file iDie.h.

Referenced by initMonitorElements(), and updateRollingHistos().

Definition at line 485 of file iDie.h.

Referenced by initMonitorElements(), and updateRollingHistos().

xdata::String evf::iDie::class_ [private]

Definition at line 176 of file iDie.h.

Referenced by iDie().

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().

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]

Definition at line 475 of file iDie.h.

Referenced by doFlush(), iDie(), initFramework(), and reset().

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().

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().

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().

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().

Definition at line 487 of file iDie.h.

Referenced by initMonitorElements(), and updateRollingHistos().

fmap evf::iDie::fus_ [private]

Definition at line 182 of file iDie.h.

Referenced by reset().

xdata::String evf::iDie::hostname_ [private]

Definition at line 178 of file iDie.h.

Referenced by iDie().

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]

Definition at line 177 of file iDie.h.

Referenced by iDie().

unsigned int evf::iDie::last_ls_ [private]

Definition at line 189 of file iDie.h.

Referenced by reset().

Definition at line 213 of file iDie.h.

Referenced by iDie(), and parseModuleLegenda().

Definition at line 214 of file iDie.h.

Referenced by iDie(), and parsePathLegenda().

Logger evf::iDie::log_ [private]

Definition at line 172 of file iDie.h.

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]

Definition at line 220 of file iDie.h.

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().

Definition at line 210 of file iDie.h.

Referenced by parseModuleHisto().

Definition at line 206 of file iDie.h.

Referenced by parseModuleHisto(), and parseModuleLegenda().

Definition at line 208 of file iDie.h.

Referenced by parseModuleLegenda().

Definition at line 211 of file iDie.h.

Referenced by parsePathHisto().

Definition at line 207 of file iDie.h.

Referenced by parsePathLegenda().

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().

Definition at line 203 of file iDie.h.

Referenced by parsePathHisto().

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().

Definition at line 212 of file iDie.h.

Referenced by iDie().

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().

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().

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]

Definition at line 184 of file iDie.h.

Referenced by reset().

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().

Definition at line 202 of file iDie.h.

Referenced by parsePathHisto().

xdata::String evf::iDie::url_ [private]

Definition at line 175 of file iDie.h.

Referenced by iDie().

Definition at line 505 of file iDie.h.

Referenced by perLumiFileSaver().