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)
80 , lsToBeRecovered_(
true)
81 , scalersUpdateAttempted_(0)
82 , scalersUpdateCounter_(0)
83 , lumiSectionsCtr_(lsRollSize_+1)
84 , lumiSectionsTo_(lsRollSize_)
85 , rollingLsIndex_(lsRollSize_-1)
86 , rollingLsWrap_(
false)
89 , waitingForLs_(
false)
92 names_.push_back(
"lumiSectionIndex");
93 names_.push_back(
"prescaleSetIndex");
94 names_.push_back(
"scalersTable");
151 std::stringstream oss;
157 oss << i <<
"=" <<
"NotStarted ";
160 std::stringstream oss2;
161 oss2 << 0 <<
"=Invalid ";
190 bool instanceZero = serviceMap & 0x8;
196 LOG4CPLUS_INFO(
log_,
"CMSSW EventProcessor already initialized: skip!");
200 LOG4CPLUS_INFO(
log_,
"Initialize CMSSW EventProcessor.");
201 LOG4CPLUS_INFO(
log_,
"CMSSW_BASE:"<<getenv(
"CMSSW_BASE"));
210 boost::shared_ptr<edm::ParameterSet> params;
211 boost::shared_ptr<std::vector<edm::ParameterSet> > pServiceSets;
212 boost::shared_ptr<edm::ProcessDesc> pdesc;
220 pServiceSets = pdesc->getServicesPSets();
225 internal::addServiceMaybe(*pServiceSets,
"DQMStore");
226 internal::addServiceMaybe(*pServiceSets,
"DQM");
229 internal::removeServiceMaybe(*pServiceSets,
"DQMStore");
230 internal::removeServiceMaybe(*pServiceSets,
"DQM");
232 internal::addServiceMaybe(*pServiceSets,
"MLlog4cplus");
233 internal::addServiceMaybe(*pServiceSets,
"MicroStateService");
234 internal::addServiceMaybe(*pServiceSets,
"ShmOutputModuleRegistry");
241 internal::addServiceMaybe(*pServiceSets,
"DQMStore");
242 internal::addServiceMaybe(*pServiceSets,
"DQM");
249 LOG4CPLUS_ERROR(
log_,e.what());
252 LOG4CPLUS_ERROR(
log_,
"Unknown Exception");
261 edm::LogInfo(
"FWEPWrapper")<<
"started MessageLogger Service.";
271 "exception when trying to get service DQMStore");
273 if(dqm!=0) dqm->
rmdir(
"");
283 "exception when trying to get service ModuleWebRegistry");
286 if(mwr) mwr->
clear();
295 "exception when trying to get service ModuleWebRegistry");
305 "exception when trying to get service ShmOutputModuleRegistry");
308 if(sor) sor->
clear();
314 std::vector<std::string> defaultServices;
315 std::vector<std::string> forcedServices;
316 defaultServices.push_back(
"MessageLogger");
317 defaultServices.push_back(
"InitRootHandlers");
318 defaultServices.push_back(
"JobReportService");
319 pdesc->addServices(defaultServices, forcedServices);
346 "Checking for edm::service::PrescaleService!");
351 "edm::service::PrescaleService is available!");
354 "Obtained pointer to PrescaleService");
359 "exception when trying to get service "
360 <<
"edm::service::PrescaleService");
362 const edm::ParameterSet *prescaleSvcConfig = internal::findService(*pServiceSets,
"PrescaleService");
369 std::stringstream oss2;
370 unsigned int outcount = 0;
371 oss2 << 0 <<
"=Invalid ";
372 oss2 << 1 <<
"=FwkOvh ";
373 oss2 << 2 <<
"=Input ";
382 for(
unsigned int j = 0;
j <
descs_.size();
j++)
384 if(
descs_[
j]->moduleName() ==
"ShmStreamConsumer")
387 oss2 << outcount <<
"=" <<
descs_[
j]->moduleLabel() <<
" ";
389 mapmod_[outcount] = descs_[
j]->moduleLabel();
394 oss2 << outcount+1 <<
"=DQMHistograms ";
395 unsigned int modcount = 1;
396 for(
unsigned int i = 0;
i <
descs_.size();
i++)
398 if(
descs_[
i]->moduleName() !=
"ShmStreamConsumer")
401 oss2 << outcount+modcount <<
"=" <<
descs_[
i]->moduleLabel() <<
" ";
403 mapmod_[outcount+modcount] = descs_[
i]->moduleLabel();
421 LOG4CPLUS_ERROR(
log_,
"Exception from fireItemGroupChanged: " << e.what());
423 LOG4CPLUS_INFO(
log_,
" edm::EventProcessor configuration finished.");
442 LOG4CPLUS_WARN(
log_,
"FUEventProcessor::stopEventProcessor.1 state "
451 "FUEventProcessor::stopEventProcessor.2 After 1s - state: "
456 LOG4CPLUS_WARN(
log_,
"FUEventProcessor::stopEventProcessor.3 state "
487 "exception when trying to get service ModuleWebRegistry");
502 "exception when trying to get service ModuleWebRegistry");
533 pid_t
pid = getpid();
536 struct timezone timezone;
539 std::ostringstream ost;
540 ost <<
"Monitoring" <<
pid;
543 toolbox::task::getWorkLoopFactory()->getWorkLoop(ost.str().c_str(),
555 std::string
msg =
"Failed to start workloop 'Monitoring'.";
567 struct timeval monEndTime;
568 struct timezone timezone;
569 gettimeofday(&monEndTime,&timezone);
590 "exception when trying to get service MicroStateService");
618 LOG4CPLUS_DEBUG(
log_,
"getTriggerReport action invoked");
628 "exception when trying to get service ModuleWebRegistry");
632 if(mwr==0)
return false;
683 "exception when trying to get service ShmOutputModuleRegistry");
706 LOG4CPLUS_ERROR(
log_,
"Exception from fireItemGroupChanged: " << e.what());
711 if(
rcms_==0)
return false;
717 catch(...){
return false;}
727 *out <<
"<table>" << std::endl;
729 *out <<
"<tr valign=\"top\">" << std::endl;
730 *out <<
"<td>" << std::endl;
734 *out <<
"<table border=1 bgcolor=\"#CFCFCF\">" << std::endl;
735 *out <<
" <tr>" << std::endl;
736 *out <<
" <th colspan=7>" << std::endl;
737 *out <<
" " <<
"Trigger Summary up to LS "
739 *out <<
" </th>" << std::endl;
740 *out <<
" </tr>" << std::endl;
742 *out <<
" <tr >" << std::endl;
743 *out <<
" <th >Path</th>" << std::endl;
744 *out <<
" <th >Exec</th>" << std::endl;
745 *out <<
" <th >Pass</th>" << std::endl;
746 *out <<
" <th >Fail</th>" << std::endl;
747 *out <<
" <th >Except</th>" << std::endl;
748 *out <<
" </tr>" << std::endl;
752 *out <<
" <tr>" << std::endl;
753 *out <<
" <td>"<<
i <<
"</td>" << std::endl;
759 *out <<
"bgcolor=\"red\"" << std::endl;
761 *out <<
" </tr >" << std::endl;
764 *out <<
" <tr><th colspan=7>EndPaths</th></tr>" << std::endl;
767 *out <<
" <tr>" << std::endl;
768 *out <<
" <td>"<<
i <<
"</td>" << std::endl;
774 *out <<
"bgcolor=\"red\"" << std::endl;
776 *out <<
" </tr >" << std::endl;
781 *out <<
"</table>" << std::endl;
782 *out <<
"</td>" << std::endl;
783 *out <<
"</tr>" << std::endl;
784 *out <<
"</table>" << std::endl;
800 "Exception when trying to get service ModuleWebRegistry");
810 *out <<
"<table>" << std::endl;
812 *out <<
"<tr valign=\"top\">" << std::endl;
813 *out <<
"<td>" << std::endl;
820 *out <<
"<table border=1 bgcolor=\"#CFCFCF\">" << std::endl;
821 *out <<
" <tr>" << std::endl;
822 *out <<
" <th colspan=7>" << std::endl;
823 *out <<
" " <<
"Trigger Summary" << std::endl;
824 *out <<
" </th>" << std::endl;
825 *out <<
" </tr>" << std::endl;
827 *out <<
" <tr >" << std::endl;
828 *out <<
" <th >Path</th>" << std::endl;
829 *out <<
" <th >Exec</th>" << std::endl;
830 *out <<
" <th >Pass</th>" << std::endl;
831 *out <<
" <th >Fail</th>" << std::endl;
832 *out <<
" <th >Except</th>" << std::endl;
833 *out <<
" <th >TargetPF</th>" << std::endl;
834 *out <<
" </tr>" << std::endl;
835 xdata::Serializable *psid = 0;
848 "exception when trying to get service ShmOutputModuleRegistry");
853 *out <<
" <tr>" << std::endl;
862 *out <<
"bgcolor=\"red\"" << std::endl;
868 <<
"</td>" << std::endl;
870 else *out <<
" <td>N/A</td>" << std::endl;
871 *out <<
" </tr >" << std::endl;
879 i,
"ShmStreamConsumer");
881 *out <<
" <tr>" << std::endl;
884 *out <<
" <td>" << (o ? o->
getCounts() : -1) <<
"</td>" << std::endl;
888 *out <<
"bgcolor=\"red\"" << std::endl;
890 *out <<
" <td>N/A</td>" << std::endl;
891 *out <<
" </tr >" << std::endl;
895 *out <<
"</table>" << std::endl;
897 *out <<
"</td>" << std::endl;
901 *out <<
"<td>" << std::endl;
903 *out <<
"<table frame=\"void\" rules=\"rows\" class=\"modules\">" << std::endl;
904 *out <<
" <tr>" << std::endl;
905 *out <<
" <th colspan=3>" << std::endl;
906 *out <<
" " <<
"HLT" << std::endl;
908 *out <<
" (Process " <<
descs_[0]->processName() <<
")" << std::endl;
909 *out <<
" </th>" << std::endl;
910 *out <<
" </tr>" << std::endl;
912 *out <<
" <tr >" << std::endl;
913 *out <<
" <th >" << std::endl;
914 *out <<
" Module" << std::endl;
915 *out <<
" </th>" << std::endl;
916 *out <<
" <th >" << std::endl;
917 *out <<
" Label" << std::endl;
918 *out <<
" </th>" << std::endl;
919 *out <<
" <th >" << std::endl;
920 *out <<
" Version" << std::endl;
921 *out <<
" </th>" << std::endl;
924 *out <<
" <th >" << std::endl;
925 *out <<
" first" << std::endl;
926 *out <<
" </th>" << std::endl;
927 *out <<
" <th >" << std::endl;
928 *out <<
" ave" << std::endl;
929 *out <<
" </th>" << std::endl;
930 *out <<
" <th >" << std::endl;
931 *out <<
" max" << std::endl;
932 *out <<
" </th>" << std::endl;
934 *out <<
" </tr>" << std::endl;
935 if(mwr && mwr->
checkWeb(
"DaqSource"))
936 *out <<
" <tr><td ><a href=\"/" << urn
937 <<
"module=DaqSource\">DaqSource</a> </td></tr>";
939 for(
unsigned int idesc = 0; idesc <
descs_.size(); idesc++)
941 *out <<
" <tr>" << std::endl;
944 *out <<
"<a href=\"/" << urn
946 <<
descs_[idesc]->moduleName() <<
"\">"
947 <<
descs_[idesc]->moduleName() <<
"</a>";
949 *out <<
descs_[idesc]->moduleName();
950 *out <<
"</td>" << std::endl;
952 *out <<
descs_[idesc]->moduleLabel();
953 *out <<
"</td>" << std::endl;
955 *out <<
descs_[idesc]->releaseVersion();
956 *out <<
"</td>" << std::endl;
959 *out <<
" <td align=\"right\">";
961 *out <<
"</td>" << std::endl;
962 *out <<
" <td align=\"right\"";
966 *out <<
"</td>" << std::endl;
967 *out <<
" <td align=\"right\">";
969 *out <<
"</td>" << std::endl;
971 *out <<
" </tr>" << std::endl;
973 *out <<
"</table>" << std::endl;
974 *out <<
"</td>" << std::endl;
980 using namespace cgicc;
982 std::vector<FormEntry> el1;
983 cgi.getElement(
"module",el1);
986 std::string
mod = el1[0].getValue();
995 "Exception when trying to get service ModuleWebRegistry");
997 mwr->invoke(in,out,mod);
1001 *out<<
"EventProcessor just disappeared "<<std::endl;
1009 using namespace cgicc;
1011 std::vector<FormEntry> el1;
1012 cgi.getElement(
"service",el1);
1015 std::string ser = el1[0].getValue();
1023 LOG4CPLUS_WARN(
log_,
1024 "Exception when trying to get service ModuleWebRegistry");
1026 swr->invoke(in,out,ser);
1030 *out<<
"EventProcessor just disappeared "<<std::endl;
1039 std::string micro1 =
"unavailable";
1041 micro1 =
"initialized";
1042 std::string micro2 =
"unavailable";
1049 LOG4CPLUS_INFO(
log_,
1050 "exception when trying to get service MicroStateService");
1062 *out <<
"<td>" << micro1 <<
"</td>";
1063 *out <<
"<td>" << micro2 <<
"</td>";
1067 *out <<
"<td>" <<
psid_ <<
"</td>";
1075 *out <<
" <table border=1 bgcolor=\"#CFCFCF\">" << std::endl;
1076 *out <<
" <tr>" << std::endl;
1077 *out <<
" <td> LS </td>";
1092 *out <<
" </tr>" << std::endl;
1093 *out <<
" <tr>" << std::endl;
1094 *out <<
" <td> Ev </td>";
1105 *out <<
" </tr>" << std::endl;
1106 *out <<
" <tr>" << std::endl;
1107 *out <<
" <td> Acc </td>";
1118 *out <<
" </tr>" << std::endl;
1119 *out <<
"</table>" << std::endl;
1132 xdata::UnsignedInteger32* lsp = 0;
1133 xdata::UnsignedInteger32* psp = 0;
1140 xdata::Serializable *psid = 0;
1141 xdata::Serializable *lsid = 0;
1142 xdata::Serializable *nbs = 0;
1143 xdata::Serializable *nbsr = 0;
1147 lsp = ((xdata::UnsignedInteger32*)lsid);
1152 psp = ((xdata::UnsignedInteger32*)psid);
1164 it->setField(
"lsid", *lsp);
1166 it->setField(
"psid", *psp);
1168 it->setField(
"exprep", *nbs);
1170 std::cout <<
"nbSubProcesses item not found !!!" << std::endl;
1172 it->setField(
"effrep", *nbsr);
1174 std::cout <<
"nbSubProcessesReporting item not found !!!" << std::endl;
1186 toolbox::net::URL url(
rcms_->getContextDescriptor()->getURL());
1188 toolbox::net::URL properurl(url.getProtocol(),url.getHost(),url.getPort(),
"");
1189 xdaq::ContextDescriptor *ctxdsc =
new xdaq::ContextDescriptor(properurl.toString());
1190 xdaq::ApplicationDescriptor *appdesc =
new xdaq::ApplicationDescriptorImpl(ctxdsc,
rcms_->getClassName(),
rcms_->getLocalId(),
"pippo");
1192 appdesc->setAttribute(
"path",
"/rcms/servlet/monitorreceiver");
1194 xoap::MessageReference
msg = xoap::createMessage();
1195 xoap::SOAPEnvelope envelope = msg->getSOAPPart().getEnvelope();
1196 xoap::SOAPName responseName = envelope.createName(
"report", xmas::NamespacePrefix, xmas::NamespaceUri);
1197 (void) envelope.getBody().addBodyElement ( responseName );
1198 xoap::SOAPName reportName (
"report", xmas::NamespacePrefix, xmas::NamespaceUri);
1199 xoap::SOAPElement reportElement = envelope.getBody().getChildElements(reportName)[0];
1200 reportElement.addNamespaceDeclaration (xmas::sensor::NamespacePrefix, xmas::sensor::NamespaceUri);
1201 xoap::SOAPName sampleName = envelope.createName(
"sample", xmas::NamespacePrefix, xmas::NamespaceUri);
1202 xoap::SOAPElement sampleElement = reportElement.addChildElement(sampleName);
1203 xoap::SOAPName flashListName = envelope.createName(
"flashlist",
"",
"");
1204 sampleElement.addAttribute(flashListName,
"urn:xdaq-flashlist:scalers");
1205 xoap::SOAPName
tagName = envelope.createName(
"tag",
"",
"");
1206 sampleElement.addAttribute(tagName,
"tag");
1207 xoap::MimeHeaders* headers = msg->getMimeHeaders();
1208 headers->removeHeader(
"x-xdaq-tags");
1209 headers->addHeader(
"x-xdaq-tags",
"tag");
1210 tagName = envelope.createName(
"originator",
"",
"");
1211 sampleElement.addAttribute(tagName,
at.toString());
1213 xdata::exdr::AutoSizeOutputStreamBuffer outBuffer;
1214 xdata::exdr::Serializer serializer;
1221 LOG4CPLUS_WARN(
log_,
1222 "Exception in serialization of scalers table");
1227 xoap::AttachmentPart * attachment = msg->createAttachmentPart(outBuffer.getBuffer(), outBuffer.tellp(),
"application/x-xdata+exdr");
1228 attachment->setContentEncoding(
"binary");
1229 tagName = envelope.createName(
"tag",
"",
"");
1230 sampleElement.addAttribute(tagName,
"tag");
1231 std::stringstream contentId;
1233 contentId <<
"<" <<
"urn:xdaq-flashlist:scalers" <<
"@" <<
at.getHost() <<
">";
1234 attachment->setContentId(contentId.str());
1235 std::stringstream contentLocation;
1236 contentId <<
at.toString();
1237 attachment->setContentLocation(contentLocation.str());
1239 std::stringstream disposition;
1240 disposition <<
"attachment; filename=" <<
"urn:xdaq-flashlist:scalers" <<
".exdr; creation-date=" <<
"\"" <<
"dummy" <<
"\"";
1241 attachment->addMimeHeader(
"Content-Disposition",disposition.str());
1242 msg->addAttachmentPart(attachment);
1249 std::string
message =
"exception when posting SOAP message to MonitorReceiver";
1250 message += ex.what();
1251 LOG4CPLUS_WARN(
log_,message.c_str());
1252 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)
static ServiceToken createSet(std::vector< ParameterSet > &)
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_
std::string getMicroState2()
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)
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)
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 &)
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