ATLAS Offline Software
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
AthenaSummarySvc Class Reference

#include <AthenaSummarySvc.h>

Inheritance diagram for AthenaSummarySvc:
Collaboration diagram for AthenaSummarySvc:

Public Member Functions

 AthenaSummarySvc (const std::string &name, ISvcLocator *svc)
 
virtual StatusCode initialize () override
 
virtual StatusCode reinitialize () override
 
virtual StatusCode finalize () override
 
virtual StatusCode createSummary () override
 
virtual void setStatus (int s) override
 
virtual void addListener (const std::string &incident_name) override
 
virtual void addSummary (const std::string &dict_key, const std::string &data) override
 
virtual const std::string & getOutputFile () const override
 

Private Member Functions

void createDict (std::ofstream &)
 
void createASCII (std::ofstream &)
 
virtual void handle (const Incident &inc) override
 

Static Private Member Functions

static void newHandler ()
 

Private Attributes

StringProperty m_summaryFile
 
StringProperty m_summaryFormat
 
StringArrayProperty m_extraInc
 
StringArrayProperty m_keywords
 
ServiceHandle< IIncidentSvc > p_incSvc
 
ILoggedMessageSvcp_logMsg {nullptr}
 
std::list< std::string > m_inputFilesRead
 
std::list< std::string > m_outputFiles
 
std::list< std::string > m_outputFilesError
 
std::map< std::string, std::map< std::string, int > > m_extraIncidents
 
std::vector< std::pair< std::string, std::string > > m_extraInfo
 
std::new_handler m_new {nullptr}
 
int m_status {0}
 
unsigned int m_eventsRead {0}
 
unsigned int m_eventsWritten {0}
 
unsigned int m_eventsSkipped {0}
 
unsigned int m_runs {0}
 

Static Private Attributes

static char *s_block ATLAS_THREAD_SAFE
 
static bool s_badalloc ATLAS_THREAD_SAFE
 

Detailed Description

Definition at line 35 of file AthenaSummarySvc.h.

Constructor & Destructor Documentation

◆ AthenaSummarySvc()

AthenaSummarySvc::AthenaSummarySvc ( const std::string &  name,
ISvcLocator *  svc 
)

Definition at line 124 of file AthenaSummarySvc.cxx.

125  : base_class( name, svc ),
126  p_incSvc("IncidentSvc",name),
127  m_new (std::set_new_handler( &AthenaSummarySvc::newHandler ))
128 {
129 }

Member Function Documentation

◆ addListener()

void AthenaSummarySvc::addListener ( const std::string &  incident_name)
overridevirtual

Definition at line 219 of file AthenaSummarySvc.cxx.

219  {
220 
221  ATH_MSG_DEBUG("now listening to incident " << inc);
222 
223  if (m_extraIncidents.find( inc ) == m_extraIncidents.end()) {
224  p_incSvc->addListener( this, inc, 100, true);
225  m_extraIncidents[inc] = map<string,int>();
226  } else {
227  ATH_MSG_INFO("already listening to Incident " << inc);
228  }
229 
230 }

◆ addSummary()

void AthenaSummarySvc::addSummary ( const std::string &  dict_key,
const std::string &  data 
)
overridevirtual

Definition at line 235 of file AthenaSummarySvc.cxx.

235  {
236 
237  ATH_MSG_DEBUG("adding extra info: " << dict << "/" << info);
238 
239  m_extraInfo.push_back( make_pair(dict,info) );
240 
241 }

◆ createASCII()

void AthenaSummarySvc::createASCII ( std::ofstream &  ofs)
private

Definition at line 369 of file AthenaSummarySvc.cxx.

369  {
370 
371  ATH_MSG_DEBUG("createASCII");
372 
373  list<string>::const_iterator itr;
374 
375  ofs << "Files read: " << m_inputFilesRead.size() << std::endl;
376  for (itr=m_inputFilesRead.begin(); itr != m_inputFilesRead.end(); ++itr) {
377  ofs << " " << *itr << endl;
378  }
379 
380  ofs << "Files written: " << m_outputFiles.size() << std::endl;
381  for (itr=m_outputFiles.begin(); itr != m_outputFiles.end(); ++itr) {
382  ofs << " " << *itr << endl;
383  }
384 
385  ofs << "File Write Error: " << m_outputFilesError.size() << std::endl;
386  for (itr=m_outputFilesError.begin(); itr != m_outputFilesError.end(); ++itr) {
387  ofs << " " << *itr << endl;
388  }
389 
390  ofs << "Events Read: " << m_eventsRead << endl;
391  ofs << "Events Written: " << m_eventsWritten << endl;
392  ofs << "Events Skipped: " << m_eventsSkipped << endl;
393 
394  ofs << "Runs: " << m_runs << endl;
395 
396 
397  ofs << "Message Count: " << endl;
398  ofs << " FATAL: " << msgSvc()->messageCount( MSG::FATAL ) << endl;
399  ofs << " ERROR: " << msgSvc()->messageCount( MSG::ERROR ) << endl;
400  ofs << " WARNING: " << msgSvc()->messageCount( MSG::WARNING ) << endl;
401  ofs << " INFO: " << msgSvc()->messageCount( MSG::INFO ) << endl;
402 
403  if (p_logMsg != nullptr) {
404 
405  IntegerProperty thresh("loggingLevel",MSG::VERBOSE);
406  IProperty *ip = dynamic_cast<IProperty*>( p_logMsg );
407  if (ip != nullptr) {
408  if (ip->getProperty(&thresh).isFailure()) {
409  ATH_MSG_ERROR("could not get loggingLevel property of LoggedMessageSvc");
410  }
411  } else {
412  ATH_MSG_ERROR("could not dcast LoggedMessageSvc to IProperty");
413  }
414 
415 
416 
417  ofs << "Message Log: " << endl;
418  vector<pair<string,string> > msgs;
419  vector<pair<string,string> >::const_iterator mitr;
420  for (unsigned int l=thresh.value(); l < MSG::ALWAYS; l++) {
421  ofs << " " << levelNames[l];
422  msgs = p_logMsg->getMessages( MSG::Level(l) );
423  ofs << " " << msgs.size() << endl;
424  for (mitr=msgs.begin(); mitr != msgs.end(); ++mitr) {
425  ofs << " " << mitr->first << " : " << mitr->second << endl;
426  }
427  }
428 
429  ofs << "Keyword tracked messages: " << endl;
430  vector<ILoggedMessageSvc::LoggedMessage>::const_iterator ilm = p_logMsg->getKeyMessages().begin();
431  for (;ilm != p_logMsg->getKeyMessages().end(); ++ilm) {
432  ofs << " " << levelNames[ilm->level] << " " << ilm->source << " " << ilm->message
433  << endl;
434  }
435 
436  }
437 
438  if (m_extraInfo.size() > 0) {
439  ofs << "Extra Summary Info:" << endl;
440  vector<pair<string,string> >::const_iterator itr (m_extraInfo.begin() );
441  for (; itr != m_extraInfo.end(); ++itr) {
442  ofs << " " << itr->first << " : " << itr->second << endl;
443  }
444  }
445 
446  if (m_extraIncidents.size() > 0) {
447  ofs << "Extra Incident Counts:" << endl;
448  map<string, map<string,int> >::const_iterator itr(m_extraIncidents.begin());
449  for (; itr != m_extraIncidents.end(); ++itr) {
450  ofs << " " << itr->first;
451  if (itr->second.begin() == itr->second.end()) {
452  ofs << " : 0" << endl;
453  } else {
454  for (map<string,int>::const_iterator it=itr->second.begin();
455  it != itr->second.end(); ++it) {
456  ofs << " :: " << it->first << ":" << it->second;
457  }
458  ofs << endl;
459  }
460  }
461  }
462 
463  // Get Perfmon data
464  IPerfMonSvc *ipms;
465  if (service("PerfMonSvc",ipms,false).isFailure()) {
466  ATH_MSG_DEBUG("unable to get the PerfMonSvc: not printing perf summaries");
467  } else {
468 
469  ofs << "Monitored Components:" << endl;
470  vector<string>::const_iterator itr;
471 
472  vector<string> cmp_i = ipms->components("ini");
473  vector<string> cmp_e = ipms->components("exe");
474  vector<string> cmp_f = ipms->components("fin");
475 
476  for (itr=cmp_i.begin(); itr!=cmp_i.end(); ++itr) {
477  ofs << " " << *itr << endl;
478  }
479  }
480 
481  if (s_badalloc) {
482  ofs << "std::bad_alloc caught: out of memory condition detected"
483  << endl;
484  }
485 
486  ofs << "Exit Status: " << m_status << endl;
487 
488 
489 }

◆ createDict()

void AthenaSummarySvc::createDict ( std::ofstream &  ofd)
private

Definition at line 493 of file AthenaSummarySvc.cxx.

493  {
494 
495  ATH_MSG_DEBUG("createDict");
496 
497  list<string>::const_iterator itr;
498 
499  PD p;
500 
501  PD files;
502  string f;
503  for (itr=m_inputFilesRead.begin(); itr != m_inputFilesRead.end(); ++itr) {
504  if (f.length() > 0) { f += ","; }
505  f += *itr;
506  }
507  files.add("read",f);
508 
509  f.clear();
510  for (itr=m_outputFiles.begin(); itr != m_outputFiles.end(); ++itr) {
511  if (f.length() > 0) { f += ","; }
512  f += *itr;
513  }
514  files.add("write",f);
515 
516  f.clear();
517  for (itr=m_outputFilesError.begin(); itr != m_outputFilesError.end(); ++itr) {
518  if (f.length() > 0) { f += ","; }
519  f += *itr;
520  }
521  files.add("write error",f);
522 
523  p.add("files",files);
524 
525  PD events;
526  events.add("read",m_eventsRead);
527  events.add("write",m_eventsWritten);
528  events.add("skip",m_eventsSkipped);
529 
530  p.add("events",events);
531 
532  p.add("runs",m_runs);
533 
534  PD msg;
535  msg.add("FATAL",msgSvc()->messageCount( MSG::FATAL ));
536  msg.add("ERROR",msgSvc()->messageCount( MSG::ERROR ));
537  msg.add("WARNING",msgSvc()->messageCount( MSG::WARNING ));
538  msg.add("INFO",msgSvc()->messageCount( MSG::INFO ));
539 
540  p.add("message count",msg);
541 
542  if (p_logMsg != nullptr) {
543 
544  IntegerProperty thresh("loggingLevel",MSG::VERBOSE);
545  IProperty *ip = dynamic_cast<IProperty*>( p_logMsg );
546  if (ip != nullptr) {
547  if (ip->getProperty(&thresh).isFailure()) {
548  ATH_MSG_ERROR("could not get loggingLevel property of LoggedMessageSvc");
549  }
550  } else {
551  ATH_MSG_ERROR("could not dcast LoggedMessageSvc to IProperty");
552  }
553 
554  PD mlog;
555  vector<pair<string,string> > msgs;
556  vector<pair<string,string> >::const_iterator mitr;
557  for (unsigned int l=thresh.value(); l < MSG::ALWAYS; l++) {
558  PD slog;
559  msgs = p_logMsg->getMessages( MSG::Level(l) );
560  for (mitr=msgs.begin(); mitr != msgs.end(); ++mitr) {
561  slog.add(mitr->first, mitr->second);
562  }
563  mlog.add(levelNames[l],slog);
564  }
565 
566  p.add("messages",mlog);
567 
568  }
569 
570  if (m_extraInfo.size() > 0) {
571  PD user;
572  vector<pair<string,string> >::const_iterator itr (m_extraInfo.begin() );
573  for (; itr != m_extraInfo.end(); ++itr) {
574  string dat = itr->second;
575  while( dat.find("\n") != string::npos) {
576  dat.erase(dat.find("\n"),1);
577  }
578  user.add(itr->first, dat);
579  }
580  p.add("user data",user);
581  }
582 
583  if (m_extraIncidents.size() > 0) {
584  PD inc;
585  map<string, map<string,int> >::const_iterator itr(m_extraIncidents.begin());
586  for (; itr != m_extraIncidents.end(); ++itr) {
587  if (itr->second.begin() == itr->second.end()) {
588  inc.add(itr->first,0);
589  } else {
590  PD inc2;
591  for (map<string,int>::const_iterator it=itr->second.begin();
592  it != itr->second.end(); ++it) {
593  inc2.add(it->first, it->second);
594  }
595  inc.add(itr->first, inc2);
596  }
597  }
598 
599 // PD inc;
600 // map<string, int>::const_iterator itr(m_extraIncidents.begin());
601 // for (; itr != m_extraIncidents.end(); ++itr) {
602 // inc.add(itr->first, itr->second);
603 // }
604 
605  p.add("extra incidents",inc);
606  }
607 
608  // Get Perfmon data
609  IPerfMonSvc *ipms;
610  if (service("PerfMonSvc",ipms,false).isFailure()) {
611  ATH_MSG_DEBUG("unable to get the PerfMonSvc: not printing perf summaries");
612  } else {
613 
614  PD mon,ini,exe,fin;
615  vector<string>::const_iterator itr;
616 
617  vector<string> cmp_i = ipms->components("ini");
618  vector<string> cmp_e = ipms->components("exe");
619  vector<string> cmp_f = ipms->components("fin");
620 
621  for (itr=cmp_i.begin(); itr!=cmp_i.end(); ++itr) {
622  const PerfMon::Component* cmp = ipms->component("ini",*itr);
623  PD prf;
624  prf.add("cpu",cmp->cpu.user);
625  prf.add("cpu",cmp->cpu.sys);
626  prf.add("cpu",cmp->cpu.real);
627  prf.add("mem",cmp->mem.dVmem());
628  prf.add("mem",cmp->mem.dRss());
629  ini.add(*itr,prf);
630  }
631  for (itr=cmp_e.begin(); itr!=cmp_e.end(); ++itr) {
632  const PerfMon::Component* cmp = ipms->component("exe",*itr);
633  PD prf;
634  prf.add("cpu",cmp->cpu.user);
635  prf.add("cpu",cmp->cpu.sys);
636  prf.add("cpu",cmp->cpu.real);
637  prf.add("mem",cmp->mem.dVmem());
638  prf.add("mem",cmp->mem.dRss());
639  exe.add(*itr,prf);
640  }
641  for (itr=cmp_f.begin(); itr!=cmp_f.end(); ++itr) {
642  const PerfMon::Component* cmp = ipms->component("fin",*itr);
643  PD prf;
644  prf.add("cpu",cmp->cpu.user);
645  prf.add("cpu",cmp->cpu.sys);
646  prf.add("cpu",cmp->cpu.real);
647  prf.add("mem",cmp->mem.dVmem());
648  prf.add("mem",cmp->mem.dRss());
649  fin.add(*itr,prf);
650  }
651  mon.add("ini",ini);
652  mon.add("fin",fin);
653  mon.add("exe",exe);
654 
655  p.add("monitored components",mon);
656 
657  }
658 
659  p.add("exit",m_status);
660  p.add("bad_alloc",s_badalloc);
661 
662  ofd << p.dump() << endl;
663 
664 }

◆ createSummary()

StatusCode AthenaSummarySvc::createSummary ( )
overridevirtual

Definition at line 338 of file AthenaSummarySvc.cxx.

338  {
339 
340  ATH_MSG_DEBUG("createSummary");
341 
342  std::ofstream ofs;
343  ofs.open(m_summaryFile.value().c_str());
344  if (!ofs) {
345  ATH_MSG_ERROR("Unable to open output file \"" << m_summaryFile.value() << "\"");
346  return StatusCode::FAILURE;
347  }
348 
349  ATH_MSG_DEBUG("Writing to \"" << m_summaryFile.value() << "\"");
350 
351  if (m_summaryFormat.value() == "ascii" || m_summaryFormat.value() == "both") {
352  createASCII(ofs);
353  }
354 
355  if (m_summaryFormat.value() == "python" || m_summaryFormat.value() == "both") {
356  createDict(ofs);
357  }
358 
359  ofs.close();
360 
361  return StatusCode::SUCCESS;
362 
363 
364 }

◆ finalize()

StatusCode AthenaSummarySvc::finalize ( )
overridevirtual

Definition at line 205 of file AthenaSummarySvc.cxx.

205  {
206 
207  createSummary().ignore();
208 
209  // cleanup
210  delete[] s_block; s_block = nullptr;
211  std::set_new_handler( m_new );
212 
213  return StatusCode::SUCCESS;
214 }

◆ getOutputFile()

virtual const std::string& AthenaSummarySvc::getOutputFile ( ) const
inlineoverridevirtual

Definition at line 59 of file AthenaSummarySvc.h.

60 {this, "SummaryFile", "AthSummary.txt",

◆ handle()

void AthenaSummarySvc::handle ( const Incident &  inc)
overrideprivatevirtual

Definition at line 288 of file AthenaSummarySvc.cxx.

288  {
289 
290  ATH_MSG_DEBUG("handle incident: " << inc.type() << " " << inc.source());
291 
292  string fileName;
293 
294  const FileIncident *fi = dynamic_cast<const FileIncident*>( &inc );
295  if (fi != nullptr) {
296  // FIXME!!! waiting on AthenaPoolKernel-00-00-07
297  ATH_MSG_INFO(" -> file incident: " << fi->fileName() << " [GUID: " << fi->fileGuid() << "]");
298  fileName = fi->fileName();
299  } else {
300  fileName = inc.source();
301  }
302 
303  if (inc.type() == "BeginInputFile" ) {
304  m_inputFilesRead.push_back( fileName );
305  } else if (inc.type() == "BeginOutputFile") {
306  m_outputFiles.push_back( fileName );
307  } else if (inc.type() == "FailOutputFile") {
308  m_outputFilesError.push_back( fileName );
309  } else if (inc.type() == "BeginEvent") {
310  m_eventsRead ++;
311  } else if (inc.type() == "SkipEvent") {
312  m_eventsSkipped ++;
313  } else if (inc.type() == "WriteEvent") {
314  m_eventsWritten ++;
315  } else if (inc.type() == "BeginRun") {
316  m_runs ++;
317  } else if (inc.type() == "EndRun") {
318  }
319 
320  map<std::string, map<string,int> >::iterator itr
321  ( m_extraIncidents.find(inc.type()) );
322 
323  if (itr != m_extraIncidents.end()) {
324  map<string,int>::iterator it = itr->second.find(inc.source());
325  if (it != itr->second.end()) {
326  m_extraIncidents[inc.type()][inc.source()]++;
327  } else {
328  m_extraIncidents[inc.type()][inc.source()] = 1;
329  }
330  }
331 
332 }

◆ initialize()

StatusCode AthenaSummarySvc::initialize ( )
overridevirtual

Definition at line 133 of file AthenaSummarySvc.cxx.

133  {
134 
135  ATH_MSG_DEBUG("Initializing AthenaSummarySvc");
136 
137  int pri=100;
138  p_incSvc->addListener( this, "BeginInputFile", pri, true);
139  p_incSvc->addListener( this, "EndInputFile", pri, true);
140  p_incSvc->addListener( this, "BeginOutputFile", pri, true);
141  p_incSvc->addListener( this, "FailOutputFile", pri, true);
142  p_incSvc->addListener( this, "WroteToOutputFile", pri, true);
143  p_incSvc->addListener( this, "EndOutputFile", pri, true);
144 
145  p_incSvc->addListener( this, "AbortEvent", pri, true);
146 
147  p_incSvc->addListener( this, "BeginEvent", pri, true);
148  p_incSvc->addListener( this, "EndEvent", pri, true);
149  p_incSvc->addListener( this, "BeginRun", pri, true);
150  p_incSvc->addListener( this, "EndRun", pri, true);
151 
152  p_incSvc->addListener( this, "FirstInputFile", pri, true );
153 
154  vector<string>::const_iterator itr;
155  for (itr=m_extraInc.value().begin(); itr != m_extraInc.value().end(); ++itr) {
156  ATH_MSG_DEBUG("Tracking incident \"" << *itr << "\"");
157  addListener(*itr);
158  }
159 
160  p_logMsg = dynamic_cast< ILoggedMessageSvc* > ( msgSvc().get() );
161  if (p_logMsg == nullptr) {
162  ATH_MSG_INFO("unable dcast IMessageSvc to ILoggedMessageSvc: "
163  "not scanning for keywords in logs, or printing logged messages");
164  } else {
165 
166  if (m_keywords.value().size() > 0) {
167  IProperty *ip = dynamic_cast<IProperty*>( p_logMsg );
168  if (ip != nullptr) {
169  if (ip->setProperty(m_keywords).isFailure()) {
170  ATH_MSG_ERROR("could not set keywords property of LoggedMessageSvc");
171  } else {
172  ATH_MSG_INFO("Scanning log for keyword \"" << m_keywords
173  << "\". CAVEAT EMPTOR - THIS IS VERY SLOW!!");
174  }
175  } else {
176  ATH_MSG_ERROR("could not dcast LoggedMessageSvc to IProperty");
177  }
178  }
179  }
180 
181  std::string fmt = m_summaryFormat.value();
182  tolower(fmt);
184 
185  // save some space for the summary output if we run out of memory
186  ATH_MSG_DEBUG("allocating block of 100 pages");
187  s_block = new char[ sysconf( _SC_PAGESIZE ) * 100 ];
188 
189 
190  return StatusCode(s_block!=nullptr);
191 
192 }

◆ newHandler()

void AthenaSummarySvc::newHandler ( )
staticprivate

Definition at line 247 of file AthenaSummarySvc.cxx.

247  {
248 
249  s_badalloc = true;
250 
251  if ( ! s_block )
252  throw std::bad_alloc(); // default behavior (no print-out)
253 
254  // release our block to create working space for finalize()
255  delete[] s_block; s_block = nullptr;
256 
257  // print onto std::cerr rather than MsgStream, as it's more innocuous
258  std::cerr << "AthenaSummarySvc FATAL out of memory: saving summary ..."
259  << std::endl;
260 
261  IAthenaSummarySvc *ipa(nullptr);
262  Gaudi::svcLocator()->service("AthenaSummarySvc",ipa).ignore();
263 
264  if (ipa != nullptr) {
265  std::string btrace;
266  if ( System::backTrace(btrace,5,3) ) {
267  ipa->addSummary("badalloc backtrace",btrace);
268  }
269 
270  ipa->setStatus(99);
271  ipa->createSummary().ignore();
272  } else {
273  std::cerr << "AthenaSummarySvc ERROR unable to get hold of myself and print summary"
274  << std::endl;
275  }
276 
277 
278  // in order to abort the job, throw a bad_alloc, which should make its way
279  // through to python, even if the ExceptionSvc is used, and that will shutdown
280  // (finalize/terminate) the application on exit
281  throw std::bad_alloc();
282 
283 }

◆ reinitialize()

StatusCode AthenaSummarySvc::reinitialize ( )
overridevirtual

Definition at line 196 of file AthenaSummarySvc.cxx.

196  {
197 
198  delete[] s_block; s_block = nullptr;
199  s_block = new char[ sysconf( _SC_PAGESIZE ) * 100 ];
200  return s_block ? StatusCode::SUCCESS : StatusCode::FAILURE;
201 
202 }

◆ setStatus()

virtual void AthenaSummarySvc::setStatus ( int  s)
inlineoverridevirtual

Definition at line 56 of file AthenaSummarySvc.h.

60 {this, "SummaryFile", "AthSummary.txt",

Member Data Documentation

◆ ATLAS_THREAD_SAFE [1/2]

char* s_block AthenaSummarySvc::ATLAS_THREAD_SAFE
staticprivate

Definition at line 82 of file AthenaSummarySvc.h.

◆ ATLAS_THREAD_SAFE [2/2]

bool s_badalloc AthenaSummarySvc::ATLAS_THREAD_SAFE
staticprivate

Definition at line 83 of file AthenaSummarySvc.h.

◆ m_eventsRead

unsigned int AthenaSummarySvc::m_eventsRead {0}
private

Definition at line 94 of file AthenaSummarySvc.h.

◆ m_eventsSkipped

unsigned int AthenaSummarySvc::m_eventsSkipped {0}
private

Definition at line 96 of file AthenaSummarySvc.h.

◆ m_eventsWritten

unsigned int AthenaSummarySvc::m_eventsWritten {0}
private

Definition at line 95 of file AthenaSummarySvc.h.

◆ m_extraInc

StringArrayProperty AthenaSummarySvc::m_extraInc
private
Initial value:
{this, "ExtraIncidents", {},
"user incidets to monitor"}

Definition at line 73 of file AthenaSummarySvc.h.

◆ m_extraIncidents

std::map< std::string, std::map<std::string, int> > AthenaSummarySvc::m_extraIncidents
private

Definition at line 89 of file AthenaSummarySvc.h.

◆ m_extraInfo

std::vector< std::pair<std::string, std::string> > AthenaSummarySvc::m_extraInfo
private

Definition at line 90 of file AthenaSummarySvc.h.

◆ m_inputFilesRead

std::list<std::string> AthenaSummarySvc::m_inputFilesRead
private

Definition at line 85 of file AthenaSummarySvc.h.

◆ m_keywords

StringArrayProperty AthenaSummarySvc::m_keywords
private
Initial value:
{this, "keywords", {},
"kewords to scan for in MessageSvc. WARNING: THIS IS VERY SLOW!!!"}

Definition at line 75 of file AthenaSummarySvc.h.

◆ m_new

std::new_handler AthenaSummarySvc::m_new {nullptr}
private

Definition at line 92 of file AthenaSummarySvc.h.

◆ m_outputFiles

std::list<std::string> AthenaSummarySvc::m_outputFiles
private

Definition at line 86 of file AthenaSummarySvc.h.

◆ m_outputFilesError

std::list<std::string> AthenaSummarySvc::m_outputFilesError
private

Definition at line 87 of file AthenaSummarySvc.h.

◆ m_runs

unsigned int AthenaSummarySvc::m_runs {0}
private

Definition at line 97 of file AthenaSummarySvc.h.

◆ m_status

int AthenaSummarySvc::m_status {0}
private

Definition at line 93 of file AthenaSummarySvc.h.

◆ m_summaryFile

StringProperty AthenaSummarySvc::m_summaryFile
private
Initial value:
{this, "SummaryFile", "AthSummary.txt",
"Output File"}

Definition at line 69 of file AthenaSummarySvc.h.

◆ m_summaryFormat

StringProperty AthenaSummarySvc::m_summaryFormat
private
Initial value:
{this, "SummaryFileFormat", "both",
"output format: one of 'ascii', 'python', 'both'"}

Definition at line 71 of file AthenaSummarySvc.h.

◆ p_incSvc

ServiceHandle<IIncidentSvc> AthenaSummarySvc::p_incSvc
private

Definition at line 79 of file AthenaSummarySvc.h.

◆ p_logMsg

ILoggedMessageSvc* AthenaSummarySvc::p_logMsg {nullptr}
private

Definition at line 80 of file AthenaSummarySvc.h.


The documentation for this class was generated from the following files:
python.EI_Lib.cmp
def cmp(x, y)
Definition: EI_Lib.py:6
grepfile.info
info
Definition: grepfile.py:38
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
ILoggedMessageSvc::getKeyMessages
virtual const std::vector< LoggedMessage > & getKeyMessages() const =0
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
IPerfMonSvc::component
const PerfMon::Component * component(PerfMon::State::Type step, const std::string &compName) const
retrieve the monitored value for the component compName and for the step step (ini,...
Definition: IPerfMonSvc.h:78
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
AthenaSummarySvc::m_summaryFile
StringProperty m_summaryFile
Definition: AthenaSummarySvc.h:69
physval_make_web_display.thresh
thresh
Definition: physval_make_web_display.py:35
IAthenaSummarySvc
Abstract produces summary of Athena stuff.
Definition: IAthenaSummarySvc.h:18
AthenaSummarySvc::createASCII
void createASCII(std::ofstream &)
Definition: AthenaSummarySvc.cxx:369
skel.it
it
Definition: skel.GENtoEVGEN.py:423
AthenaSummarySvc::m_extraInc
StringArrayProperty m_extraInc
Definition: AthenaSummarySvc.h:73
AthenaSummarySvc::m_new
std::new_handler m_new
Definition: AthenaSummarySvc.h:92
AthenaSummarySvc::m_extraInfo
std::vector< std::pair< std::string, std::string > > m_extraInfo
Definition: AthenaSummarySvc.h:90
fmt
const char *const fmt
Definition: TripleGaussCollFit.cxx:84
AthenaSummarySvc::m_summaryFormat
StringProperty m_summaryFormat
Definition: AthenaSummarySvc.h:71
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
AthenaSummarySvc::m_runs
unsigned int m_runs
Definition: AthenaSummarySvc.h:97
AthenaSummarySvc::m_eventsRead
unsigned int m_eventsRead
Definition: AthenaSummarySvc.h:94
ILoggedMessageSvc
Definition: ILoggedMessageSvc.h:25
python.DataFormatRates.events
events
Definition: DataFormatRates.py:105
AthenaSummarySvc::m_eventsSkipped
unsigned int m_eventsSkipped
Definition: AthenaSummarySvc.h:96
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
python.InDetPriVxFinderConfig.mlog
mlog
Definition: InDetPriVxFinderConfig.py:134
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
TrigConf::MSGTC::ALWAYS
@ ALWAYS
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:29
sim_rttUpdate.user
def user
Definition: sim_rttUpdate.py:662
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
tolower
void tolower(std::string &s)
Definition: AthenaSummarySvc.cxx:113
generateReferenceFile.files
files
Definition: generateReferenceFile.py:12
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
PD
Definition: AthenaSummarySvc.cxx:48
PerfMon::Component
Definition: DataModel.h:73
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
AthenaSummarySvc::p_incSvc
ServiceHandle< IIncidentSvc > p_incSvc
Definition: AthenaSummarySvc.h:79
AthenaSummarySvc::m_status
int m_status
Definition: AthenaSummarySvc.h:93
AthenaSummarySvc::createSummary
virtual StatusCode createSummary() override
Definition: AthenaSummarySvc.cxx:338
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
AthenaSummarySvc::newHandler
static void newHandler()
Definition: AthenaSummarySvc.cxx:247
IPerfMonSvc
Definition: IPerfMonSvc.h:38
AthenaSummarySvc::m_outputFiles
std::list< std::string > m_outputFiles
Definition: AthenaSummarySvc.h:86
AthenaSummarySvc::m_extraIncidents
std::map< std::string, std::map< std::string, int > > m_extraIncidents
Definition: AthenaSummarySvc.h:89
AthenaSummarySvc::m_outputFilesError
std::list< std::string > m_outputFilesError
Definition: AthenaSummarySvc.h:87
fmt
AthenaSummarySvc::m_inputFilesRead
std::list< std::string > m_inputFilesRead
Definition: AthenaSummarySvc.h:85
AthenaSummarySvc::m_keywords
StringArrayProperty m_keywords
Definition: AthenaSummarySvc.h:75
plotBeamSpotMon.mon
mon
Definition: plotBeamSpotMon.py:67
PD::add
void add(const string &a, const char *b)
Definition: AthenaSummarySvc.cxx:53
AthenaSummarySvc::createDict
void createDict(std::ofstream &)
Definition: AthenaSummarySvc.cxx:493
ILoggedMessageSvc::getMessages
virtual const std::vector< std::pair< std::string, std::string > > & getMessages(MSG::Level) const =0
checkFileSG.fi
fi
Definition: checkFileSG.py:65
compute_lumi.fin
fin
Definition: compute_lumi.py:19
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
AthenaSummarySvc::p_logMsg
ILoggedMessageSvc * p_logMsg
Definition: AthenaSummarySvc.h:80
AthenaSummarySvc::addListener
virtual void addListener(const std::string &incident_name) override
Definition: AthenaSummarySvc.cxx:219
AthenaSummarySvc::m_eventsWritten
unsigned int m_eventsWritten
Definition: AthenaSummarySvc.h:95
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
IPerfMonSvc::components
std::vector< std::string > components(PerfMon::State::Type step) const
return the list of components' names for a given step
Definition: IPerfMonSvc.h:62