13 #include "toolbox/task/WorkLoopFactory.h"
14 #include "xdaq/ApplicationDescriptorImpl.h"
15 #include "xdaq/ContextDescriptor.h"
16 #include "xdaq/ApplicationContext.h"
17 #include "xdata/Boolean.h"
18 #include "xdata/TableIterator.h"
19 #include "xdata/exdr/Serializer.h"
20 #include "xdata/exdr/AutoSizeOutputStreamBuffer.h"
33 #include "xoap/MessageFactory.h"
34 #include "xoap/SOAPEnvelope.h"
35 #include "xoap/SOAPBody.h"
36 #include "xoap/domutils.h"
37 #include "xoap/Method.h"
38 #include "xmas/xmas.h"
40 #include "cgicc/CgiDefs.h"
41 #include "cgicc/Cgicc.h"
42 #include "cgicc/FormEntry.h"
54 , servicesDone_(
false)
55 , epInitialized_(
false)
59 , hasPrescaleService_(
false)
60 , hasModuleWebRegistry_(
false)
61 , hasServiceWebRegistry_(
false)
62 , monitorInfoSpace_(0)
63 , monitorInfoSpaceLegend_(0)
70 , wlMonitoringActive_(
false)
72 , allPastLumiProcessed_(0)
75 , lsTimeOut_(100000000)
76 , lumiSectionIndex_(1)
77 , prescaleSetIndex_(0)
78 , lastLumiPrescaleIndex_(0)
79 , lastLumiUsingEol_(0)
81 , lsToBeRecovered_(
true)
82 , scalersUpdateAttempted_(0)
83 , scalersUpdateCounter_(0)
84 , lumiSectionsCtr_(lsRollSize_+1)
85 , lumiSectionsTo_(lsRollSize_)
86 , rollingLsIndex_(lsRollSize_-1)
87 , rollingLsWrap_(
false)
90 , waitingForLs_(
false)
93 names_.push_back(
"lumiSectionIndex");
94 names_.push_back(
"prescaleSetIndex");
95 names_.push_back(
"scalersTable");
154 std::stringstream oss;
160 oss << i <<
"=" <<
"NotStarted ";
163 std::stringstream oss2;
164 oss2 << 0 <<
"=Invalid ";
193 bool instanceZero = serviceMap & 0x8;
199 LOG4CPLUS_INFO(
log_,
"CMSSW EventProcessor already initialized: skip!");
203 LOG4CPLUS_INFO(
log_,
"Initialize CMSSW EventProcessor.");
204 LOG4CPLUS_INFO(
log_,
"CMSSW_BASE:"<<getenv(
"CMSSW_BASE"));
213 boost::shared_ptr<edm::ParameterSet> params;
214 boost::shared_ptr<std::vector<edm::ParameterSet> > pServiceSets;
215 boost::shared_ptr<edm::ProcessDesc> pdesc;
223 pServiceSets = pdesc->getServicesPSets();
228 internal::addServiceMaybe(*pServiceSets,
"DQMStore");
229 internal::addServiceMaybe(*pServiceSets,
"DQM");
232 internal::removeServiceMaybe(*pServiceSets,
"DQMStore");
233 internal::removeServiceMaybe(*pServiceSets,
"DQM");
235 internal::addServiceMaybe(*pServiceSets,
"MLlog4cplus");
236 internal::addServiceMaybe(*pServiceSets,
"MicroStateService");
237 internal::addServiceMaybe(*pServiceSets,
"ShmOutputModuleRegistry");
244 internal::addServiceMaybe(*pServiceSets,
"DQMStore");
245 internal::addServiceMaybe(*pServiceSets,
"DQM");
252 LOG4CPLUS_ERROR(
log_,e.what());
255 LOG4CPLUS_ERROR(
log_,
"Unknown Exception");
264 edm::LogInfo(
"FWEPWrapper")<<
"started MessageLogger Service.";
274 "exception when trying to get service DQMStore");
276 if(dqm!=0) dqm->
rmdir(
"");
286 "exception when trying to get service ModuleWebRegistry");
289 if(mwr) mwr->
clear();
298 "exception when trying to get service ModuleWebRegistry");
308 "exception when trying to get service ShmOutputModuleRegistry");
311 if(sor) sor->
clear();
317 std::vector<std::string> defaultServices;
318 std::vector<std::string> forcedServices;
319 defaultServices.push_back(
"MessageLogger");
320 defaultServices.push_back(
"InitRootHandlers");
321 defaultServices.push_back(
"JobReportService");
322 pdesc->addServices(defaultServices, forcedServices);
349 "Checking for edm::service::PrescaleService!");
354 "edm::service::PrescaleService is available!");
357 "Obtained pointer to PrescaleService");
362 "exception when trying to get service "
363 <<
"edm::service::PrescaleService");
365 const edm::ParameterSet *prescaleSvcConfig = internal::findService(*pServiceSets,
"PrescaleService");
372 std::stringstream oss2;
373 unsigned int outcount = 0;
374 oss2 << 0 <<
"=Invalid ";
375 oss2 << 1 <<
"=FwkOvh ";
376 oss2 << 2 <<
"=Input ";
385 for(
unsigned int j = 0;
j <
descs_.size();
j++)
387 if(
descs_[
j]->moduleName() ==
"ShmStreamConsumer")
390 oss2 << outcount <<
"=" <<
descs_[
j]->moduleLabel() <<
" ";
392 mapmod_[outcount] = descs_[
j]->moduleLabel();
397 oss2 << outcount+1 <<
"=DQMHistograms ";
398 unsigned int modcount = 1;
399 for(
unsigned int i = 0;
i <
descs_.size();
i++)
401 if(
descs_[
i]->moduleName() !=
"ShmStreamConsumer")
404 oss2 << outcount+modcount <<
"=" <<
descs_[
i]->moduleLabel() <<
" ";
406 mapmod_[outcount+modcount] = descs_[
i]->moduleLabel();
424 LOG4CPLUS_ERROR(
log_,
"Exception from fireItemGroupChanged: " << e.what());
426 LOG4CPLUS_INFO(
log_,
" edm::EventProcessor configuration finished.");
445 LOG4CPLUS_WARN(
log_,
"FUEventProcessor::stopEventProcessor.1 state "
454 "FUEventProcessor::stopEventProcessor.2 After 1s - state: "
459 LOG4CPLUS_WARN(
log_,
"FUEventProcessor::stopEventProcessor.3 state "
490 "exception when trying to get service ModuleWebRegistry");
505 "exception when trying to get service ModuleWebRegistry");
536 pid_t
pid = getpid();
539 struct timezone timezone;
542 std::ostringstream ost;
543 ost <<
"Monitoring" <<
pid;
546 toolbox::task::getWorkLoopFactory()->getWorkLoop(ost.str().c_str(),
558 std::string
msg =
"Failed to start workloop 'Monitoring'.";
570 struct timeval monEndTime;
571 struct timezone timezone;
572 gettimeofday(&monEndTime,&timezone);
593 "exception when trying to get service MicroStateService");
621 LOG4CPLUS_DEBUG(
log_,
"getTriggerReport action invoked");
631 "exception when trying to get service ModuleWebRegistry");
635 if(mwr==0)
return false;
686 "exception when trying to get service ShmOutputModuleRegistry");
723 if(
rcms_==0)
return false;
729 catch(...){
return false;}
739 *out <<
"<table>" << std::endl;
741 *out <<
"<tr valign=\"top\">" << std::endl;
742 *out <<
"<td>" << std::endl;
746 *out <<
"<table border=1 bgcolor=\"#CFCFCF\">" << std::endl;
747 *out <<
" <tr>" << std::endl;
748 *out <<
" <th colspan=7>" << std::endl;
749 *out <<
" " <<
"Trigger Summary up to LS "
751 *out <<
" </th>" << std::endl;
752 *out <<
" </tr>" << std::endl;
754 *out <<
" <tr >" << std::endl;
755 *out <<
" <th >Path</th>" << std::endl;
756 *out <<
" <th >Exec</th>" << std::endl;
757 *out <<
" <th >Pass</th>" << std::endl;
758 *out <<
" <th >Fail</th>" << std::endl;
759 *out <<
" <th >Except</th>" << std::endl;
760 *out <<
" </tr>" << std::endl;
764 *out <<
" <tr>" << std::endl;
765 *out <<
" <td>"<<
i <<
"</td>" << std::endl;
771 *out <<
"bgcolor=\"red\"" << std::endl;
773 *out <<
" </tr >" << std::endl;
776 *out <<
" <tr><th colspan=7>EndPaths</th></tr>" << std::endl;
779 *out <<
" <tr>" << std::endl;
780 *out <<
" <td>"<<
i <<
"</td>" << std::endl;
786 *out <<
"bgcolor=\"red\"" << std::endl;
788 *out <<
" </tr >" << std::endl;
793 *out <<
"</table>" << std::endl;
794 *out <<
"</td>" << std::endl;
795 *out <<
"</tr>" << std::endl;
796 *out <<
"</table>" << std::endl;
812 "Exception when trying to get service ModuleWebRegistry");
822 *out <<
"<table>" << std::endl;
824 *out <<
"<tr valign=\"top\">" << std::endl;
825 *out <<
"<td>" << std::endl;
832 *out <<
"<table border=1 bgcolor=\"#CFCFCF\">" << std::endl;
833 *out <<
" <tr>" << std::endl;
834 *out <<
" <th colspan=7>" << std::endl;
835 *out <<
" " <<
"Trigger Summary" << std::endl;
836 *out <<
" </th>" << std::endl;
837 *out <<
" </tr>" << std::endl;
839 *out <<
" <tr >" << std::endl;
840 *out <<
" <th >Path</th>" << std::endl;
841 *out <<
" <th >Exec</th>" << std::endl;
842 *out <<
" <th >Pass</th>" << std::endl;
843 *out <<
" <th >Fail</th>" << std::endl;
844 *out <<
" <th >Except</th>" << std::endl;
845 *out <<
" <th >TargetPF</th>" << std::endl;
846 *out <<
" </tr>" << std::endl;
847 xdata::Serializable *psid = 0;
860 "exception when trying to get service ShmOutputModuleRegistry");
865 *out <<
" <tr>" << std::endl;
874 *out <<
"bgcolor=\"red\"" << std::endl;
880 <<
"</td>" << std::endl;
882 else *out <<
" <td>N/A</td>" << std::endl;
883 *out <<
" </tr >" << std::endl;
891 i,
"ShmStreamConsumer");
893 *out <<
" <tr>" << std::endl;
896 *out <<
" <td>" << (o ? o->
getCounts() : -1) <<
"</td>" << std::endl;
900 *out <<
"bgcolor=\"red\"" << std::endl;
902 *out <<
" <td>N/A</td>" << std::endl;
903 *out <<
" </tr >" << std::endl;
907 *out <<
"</table>" << std::endl;
909 *out <<
"</td>" << std::endl;
913 *out <<
"<td>" << std::endl;
915 *out <<
"<table frame=\"void\" rules=\"rows\" class=\"modules\">" << std::endl;
916 *out <<
" <tr>" << std::endl;
917 *out <<
" <th colspan=3>" << std::endl;
918 *out <<
" " <<
"HLT" << std::endl;
920 *out <<
" (Process " <<
descs_[0]->processName() <<
")" << std::endl;
921 *out <<
" </th>" << std::endl;
922 *out <<
" </tr>" << std::endl;
924 *out <<
" <tr >" << std::endl;
925 *out <<
" <th >" << std::endl;
926 *out <<
" Module" << std::endl;
927 *out <<
" </th>" << std::endl;
928 *out <<
" <th >" << std::endl;
929 *out <<
" Label" << std::endl;
930 *out <<
" </th>" << std::endl;
931 *out <<
" <th >" << std::endl;
932 *out <<
" Version" << std::endl;
933 *out <<
" </th>" << std::endl;
936 *out <<
" <th >" << std::endl;
937 *out <<
" first" << std::endl;
938 *out <<
" </th>" << std::endl;
939 *out <<
" <th >" << std::endl;
940 *out <<
" ave" << std::endl;
941 *out <<
" </th>" << std::endl;
942 *out <<
" <th >" << std::endl;
943 *out <<
" max" << std::endl;
944 *out <<
" </th>" << std::endl;
946 *out <<
" </tr>" << std::endl;
947 if(mwr && mwr->
checkWeb(
"DaqSource"))
948 *out <<
" <tr><td ><a href=\"/" << urn
949 <<
"module=DaqSource\">DaqSource</a> </td></tr>";
951 for(
unsigned int idesc = 0; idesc <
descs_.size(); idesc++)
953 *out <<
" <tr>" << std::endl;
956 *out <<
"<a href=\"/" << urn
958 <<
descs_[idesc]->moduleName() <<
"\">"
959 <<
descs_[idesc]->moduleName() <<
"</a>";
961 *out <<
descs_[idesc]->moduleName();
962 *out <<
"</td>" << std::endl;
964 *out <<
descs_[idesc]->moduleLabel();
965 *out <<
"</td>" << std::endl;
967 *out <<
descs_[idesc]->releaseVersion();
968 *out <<
"</td>" << std::endl;
971 *out <<
" <td align=\"right\">";
973 *out <<
"</td>" << std::endl;
974 *out <<
" <td align=\"right\"";
978 *out <<
"</td>" << std::endl;
979 *out <<
" <td align=\"right\">";
981 *out <<
"</td>" << std::endl;
983 *out <<
" </tr>" << std::endl;
985 *out <<
"</table>" << std::endl;
986 *out <<
"</td>" << std::endl;
992 using namespace cgicc;
994 std::vector<FormEntry> el1;
995 cgi.getElement(
"module",el1);
998 std::string
mod = el1[0].getValue();
1006 LOG4CPLUS_WARN(
log_,
1007 "Exception when trying to get service ModuleWebRegistry");
1009 mwr->invoke(in,out,mod);
1013 *out<<
"EventProcessor just disappeared "<<std::endl;
1021 using namespace cgicc;
1023 std::vector<FormEntry> el1;
1024 cgi.getElement(
"service",el1);
1027 std::string ser = el1[0].getValue();
1035 LOG4CPLUS_WARN(
log_,
1036 "Exception when trying to get service ModuleWebRegistry");
1038 swr->invoke(in,out,ser);
1042 *out<<
"EventProcessor just disappeared "<<std::endl;
1051 std::string micro1 =
"unavailable";
1053 micro1 =
"initialized";
1054 std::string micro2 =
"unavailable";
1061 LOG4CPLUS_INFO(
log_,
1062 "exception when trying to get service MicroStateService");
1074 *out <<
"<td>" << micro1 <<
"</td>";
1075 *out <<
"<td>" << micro2 <<
"</td>";
1079 *out <<
"<td>" <<
psid_ <<
"</td>";
1087 *out <<
" <table border=1 bgcolor=\"#CFCFCF\">" << std::endl;
1088 *out <<
" <tr>" << std::endl;
1089 *out <<
" <td> LS </td>";
1104 *out <<
" </tr>" << std::endl;
1105 *out <<
" <tr>" << std::endl;
1106 *out <<
" <td> Ev </td>";
1117 *out <<
" </tr>" << std::endl;
1118 *out <<
" <tr>" << std::endl;
1119 *out <<
" <td> Acc </td>";
1130 *out <<
" </tr>" << std::endl;
1131 *out <<
"</table>" << std::endl;
1144 xdata::UnsignedInteger32* lsp = 0;
1145 xdata::UnsignedInteger32* psp = 0;
1152 xdata::Serializable *psid = 0;
1153 xdata::Serializable *lsid = 0;
1154 xdata::Serializable *nbs = 0;
1155 xdata::Serializable *nbsr = 0;
1159 lsp = ((xdata::UnsignedInteger32*)lsid);
1164 psp = ((xdata::UnsignedInteger32*)psid);
1176 it->setField(
"lsid", *lsp);
1178 it->setField(
"psid", *psp);
1180 it->setField(
"exprep", *nbs);
1182 std::cout <<
"nbSubProcesses item not found !!!" << std::endl;
1184 it->setField(
"effrep", *nbsr);
1186 std::cout <<
"nbSubProcessesReporting item not found !!!" << std::endl;
1198 toolbox::net::URL url(
rcms_->getContextDescriptor()->getURL());
1200 toolbox::net::URL properurl(url.getProtocol(),url.getHost(),url.getPort(),
"");
1201 xdaq::ContextDescriptor *ctxdsc =
new xdaq::ContextDescriptor(properurl.toString());
1202 xdaq::ApplicationDescriptor *appdesc =
new xdaq::ApplicationDescriptorImpl(ctxdsc,
rcms_->getClassName(),
rcms_->getLocalId(),
"pippo");
1204 appdesc->setAttribute(
"path",
"/rcms/servlet/monitorreceiver");
1206 xoap::MessageReference
msg = xoap::createMessage();
1207 xoap::SOAPEnvelope envelope = msg->getSOAPPart().getEnvelope();
1208 xoap::SOAPName responseName = envelope.createName(
"report", xmas::NamespacePrefix, xmas::NamespaceUri);
1209 (void) envelope.getBody().addBodyElement ( responseName );
1210 xoap::SOAPName reportName (
"report", xmas::NamespacePrefix, xmas::NamespaceUri);
1211 xoap::SOAPElement reportElement = envelope.getBody().getChildElements(reportName)[0];
1212 reportElement.addNamespaceDeclaration (xmas::sensor::NamespacePrefix, xmas::sensor::NamespaceUri);
1213 xoap::SOAPName sampleName = envelope.createName(
"sample", xmas::NamespacePrefix, xmas::NamespaceUri);
1214 xoap::SOAPElement sampleElement = reportElement.addChildElement(sampleName);
1215 xoap::SOAPName flashListName = envelope.createName(
"flashlist",
"",
"");
1216 sampleElement.addAttribute(flashListName,
"urn:xdaq-flashlist:scalers");
1217 xoap::SOAPName
tagName = envelope.createName(
"tag",
"",
"");
1218 sampleElement.addAttribute(tagName,
"tag");
1219 xoap::MimeHeaders* headers = msg->getMimeHeaders();
1220 headers->removeHeader(
"x-xdaq-tags");
1221 headers->addHeader(
"x-xdaq-tags",
"tag");
1222 tagName = envelope.createName(
"originator",
"",
"");
1223 sampleElement.addAttribute(tagName,
at.toString());
1225 xdata::exdr::AutoSizeOutputStreamBuffer outBuffer;
1226 xdata::exdr::Serializer serializer;
1233 LOG4CPLUS_WARN(
log_,
1234 "Exception in serialization of scalers table");
1239 xoap::AttachmentPart * attachment = msg->createAttachmentPart(outBuffer.getBuffer(), outBuffer.tellp(),
"application/x-xdata+exdr");
1240 attachment->setContentEncoding(
"binary");
1241 tagName = envelope.createName(
"tag",
"",
"");
1242 sampleElement.addAttribute(tagName,
"tag");
1243 std::stringstream contentId;
1245 contentId <<
"<" <<
"urn:xdaq-flashlist:scalers" <<
"@" <<
at.getHost() <<
">";
1246 attachment->setContentId(contentId.str());
1247 std::stringstream contentLocation;
1248 contentId <<
at.toString();
1249 attachment->setContentLocation(contentLocation.str());
1251 std::stringstream disposition;
1252 disposition <<
"attachment; filename=" <<
"urn:xdaq-flashlist:scalers" <<
".exdr; creation-date=" <<
"\"" <<
"dummy" <<
"\"";
1253 attachment->addMimeHeader(
"Content-Disposition",disposition.str());
1254 msg->addAttachmentPart(attachment);
1261 std::string
message =
"exception when posting SOAP message to MonitorReceiver";
1262 message += ex.what();
1263 LOG4CPLUS_WARN(
log_,message.c_str());
1264 std::string lmessage =
"-W- "+
message;
xdata::InfoSpace * monitorLegendaInfoSpace_
xdata::String macro_state_legend_
void summaryWebPage(xgi::Input *, xgi::Output *, const std::string &)
std::vector< PathSummary > endPathSummaries
unsigned int getfailed(unsigned int ind)
FWEPWrapper(log4cplus::Logger &, unsigned int instance)
std::vector< bool > lumiSectionsTo_
event_processor::State getState() const
double getAve(std::string const &name) const
void setIndex(unsigned int lvl1Index)
void updateRollingReport()
TriggerReportStatic * getPackedTriggerReportAsStruct()
void rmdir(const std::string &fullpath)
void serviceWeb(xgi::Input *in, xgi::Output *out)
bool checkWeb(const std::string &)
xdata::Integer epmAltState_
void moduleWeb(xgi::Input *in, xgi::Output *out)
std::string findLabelOfModuleTypeInEndPath(edm::TriggerReport &, std::vector< edm::ModuleDescription const * > &, unsigned int, std::string)
void startMonitoringWorkLoop()
TrainProcessor *const proc
virtual std::string explainSelf() const
void taskWebPage(xgi::Input *, xgi::Output *, const std::string &)
struct timeval monStartTime_
void createAndSendScalersMessage()
std::string configString_
void init(unsigned short, std::string &)
xdata::InfoSpace * scalersInfoSpace_
xdata::UnsignedInteger32 localLsIncludingTimeOuts_
xdaq::ApplicationContext * xappCtxt_
xdata::UnsignedInteger32 lastLumiPrescaleIndex_
xdata::Table & getTable()
xdata::Boolean lsToBeRecovered_
double getFirst(std::string const &name) const
xdata::UnsignedInteger32 & getProcThisLumi()
xdata::Table & getTableWithNames()
xdata::InfoSpace * scalersLegendaInfoSpace_
std::vector< std::string > mapmod_
StatusCode waitTillDoneAsync(unsigned int timeout_seconds=0)
std::string const & getMicroState2()
toolbox::task::WorkLoop * wlMonitoring_
void openBackDoor(const std::string &, unsigned int timeout_sec=0)
static const std::string unknown
bool checkLumiSection(unsigned int ls)
int notstarted_state_code_
unsigned int getexcept(unsigned int ind)
std::list< std::string > namesScalersLegenda_
std::string getAsString() const
xdata::Boolean lsTimedOut_
std::vector< PathSummary > trigPathSummaries
static const unsigned int lsRollSize_
void publish(xdata::InfoSpace *)
void lumiSumTable(xgi::Output *out)
std::vector< std::string > statmod_
edm::ServiceToken serviceToken_
unsigned int getLumiSectionReferenceIndex()
bool monitoring(toolbox::task::WorkLoop *wl)
void reconfigure(ParameterSet const &ps)
std::string getPathTableAsString() const
xdata::UnsignedInteger32 & getAccThisLumi()
std::list< std::string > namesStatusLegenda_
void publish(xdata::InfoSpace *)
double getMax(std::string const &name) const
xdata::Table scalersComplete_
xdata::String micro_state_legend_
std::list< std::string > names_
unsigned int getl1pre(unsigned int ind)
static ServiceToken createSet(std::vector< ParameterSet > &)
xdata::InfoSpace * monitorInfoSpace_
std::map< std::string, int > modmap_
char const * stateName(event_processor::State s) const
char const * currentStateName() const
unsigned int allPastLumiProcessed_
std::vector< edm::ModuleDescription const * > descs_
unsigned int getaccept(unsigned int ind)
xdata::UnsignedInteger32 lumiSectionIndex_
Log< T >::type log(const T &t)
edm::EventProcessor::StatusCode stop()
edm::FUShmOutputModule * get(std::string &name)
xdata::UnsignedInteger32 nbProcessed_
boost::shared_ptr< edm::ProcessDesc > processDesc()
evf::MsgBuf & getPackedTriggerReport()
xdata::String * getPathLegenda()
void formatReportTable(edm::TriggerReport &, std::vector< edm::ModuleDescription const * > &, std::string &pathIndexTable, bool noNukeLegenda)
bool getTriggerReport(bool useLock)
void closeBackDoor(const std::string &)
xdata::UnsignedInteger32 lastLumiUsingEol_
pthread_mutex_t ep_guard_lock_
edm::service::PrescaleService * prescaleSvc_
xdata::UnsignedInteger32 instance_
xdata::UnsignedInteger32 monSleepSec_
void publishConfigAndMonitorItemsSP()
unsigned int scalersUpdateCounter_
toolbox::task::ActionSignature * asMonitoring_
xdata::UnsignedInteger32 prescaleSetIndex_
unsigned int rollingLsIndex_
std::vector< lsTriplet > lumiSectionsCtr_
fuep::TriggerReportHelpers trh_
edm::EventProcessor * evtProcessor_
xdata::Integer epMAltState_
void sumAndPackTriggerReport(MsgBuf &)
edm::EventSummary eventSummary
std::string lsidTimedOutAsString_
bool hasServiceWebRegistry_
void packTriggerReport(edm::TriggerReport &, ShmOutputModuleRegistry *)
void microState(xgi::Input *in, xgi::Output *out)
std::vector< ModuleDescription const * > getAllModuleDescriptions() const
void sumAndPackTriggerReport(MsgBuf &buf)
void packedTriggerReportToTable()
xdaq::ApplicationDescriptor * rcms_
T mod(const T &a, const T &b)
bool hasModuleWebRegistry_
unsigned int scalersUpdateAttempted_
int totalEventsPassed() const
xdata::InfoSpace * applicationInfoSpace_
xdata::UnsignedInteger32 lsTimeOut_
void publishConfigAndMonitorItems(bool)
std::string configuration_
void triggerReportUpdate(edm::TriggerReport &, unsigned int, unsigned int, bool=true)
xdaq::ApplicationDescriptor * xappDesc_
xdata::UnsignedInteger32 timeoutOnStop_
void publishToXmas(xdata::InfoSpace *)
xdata::UnsignedInteger32 nbAccepted_
const std::string * moduleLabel() const
void getTriggerReport(TriggerReport &rep) const
unsigned int getPrescale(unsigned int lvl1Index, std::string const &prescaledPath)
unsigned int prescaleIndex