CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions | Private Attributes
edm::JobReport Class Reference

#include <JobReport.h>

Inheritance diagram for edm::JobReport:
edm::service::JobReportService

Classes

struct  InputFile
 
struct  JobReportImpl
 
struct  LumiSectionReport
 
struct  OutputFile
 
struct  RunReport
 

Public Types

typedef unsigned int RunNumber
 
typedef std::size_t Token
 

Public Member Functions

void childAfterFork (std::string const &jobReportFile, unsigned int childIndex, unsigned int numberOfChildren)
 New output file for child. More...
 
std::string dumpFiles (void)
 debug/test util More...
 
void eventReadFromFile (Token fileToken, unsigned int run, unsigned int event)
 
void eventWrittenToFile (Token fileToken, unsigned int run, unsigned int event)
 
void inputFileClosed (Token fileToken)
 
Token inputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &inputType, std::string const &inputSourceClassName, std::string const &moduleLabel, std::string const &guid, std::vector< std::string > const &branchNames)
 
 JobReport ()
 
 JobReport (std::ostream *outputStream)
 
void outputFileClosed (Token fileToken)
 
Token outputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &outputModuleClassName, std::string const &moduleLabel, std::string const &guid, std::string const &dataType, std::string const &branchHash, std::vector< std::string > const &branchNames)
 
void overrideContributingInputs (Token outputToken, std::vector< Token > const &inputTokens)
 
void overrideEventsRead (Token fileToken, int const eventsRead)
 
void overrideEventsWritten (Token fileToken, int const eventsWritten)
 
void parentAfterFork (std::string const &jobReportFile)
 
void parentBeforeFork (std::string const &jobReportFile, unsigned int numberOfChildren)
 
void reportAnalysisFile (std::string const &fileName, std::map< std::string, std::string > const &fileData)
 
void reportDataType (Token fileToken, std::string const &dataType)
 
void reportError (std::string const &shortDesc, std::string const &longDesc)
 
void reportError (std::string const &shortDesc, std::string const &longDesc, int const &exitCode)
 
void reportFastCopyingStatus (Token t, std::string const &inputFileName, bool fastCopying)
 
void reportGeneratorInfo (std::string const &name, std::string const &value)
 
void reportInputLumiSection (unsigned int run, unsigned int lumiSectId)
 
void reportInputRunNumber (unsigned int run)
 
void reportLumiSection (unsigned int run, unsigned int lumiSectId)
 
void reportMemoryInfo (std::vector< std::string > const &memoryData)
 
void reportMessageInfo (std::map< std::string, double > const &messageData)
 
void reportPerformanceForModule (std::string const &metricClass, std::string const &moduleName, std::map< std::string, std::string > const &metrics)
 
void reportPerformanceSummary (std::string const &metricClass, std::map< std::string, std::string > const &metrics)
 
void reportPSetHash (std::string const &hashValue)
 
void reportRandomStateFile (std::string const &name)
 
void reportRunNumber (unsigned int run)
 
void reportSkippedEvent (unsigned int run, unsigned int event)
 
void reportSkippedFile (std::string const &pfn, std::string const &lfn)
 
 ~JobReport ()
 

Protected Member Functions

boost::scoped_ptr
< JobReportImpl > & 
impl ()
 

Private Attributes

boost::scoped_ptr< JobReportImplimpl_
 

Detailed Description

Definition at line 41 of file JobReport.h.

Member Typedef Documentation

typedef unsigned int edm::JobReport::RunNumber

Definition at line 43 of file JobReport.h.

typedef std::size_t edm::JobReport::Token

Definition at line 44 of file JobReport.h.

Constructor & Destructor Documentation

JobReport::JobReport ( )

Definition at line 404 of file JobReport.cc.

404  :
405  impl_(new JobReportImpl(0)) {
406  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
JobReport::JobReport ( std::ostream *  outputStream)

Definition at line 408 of file JobReport.cc.

References impl_.

408  : impl_(new JobReportImpl(iOstream)) {
409  if(impl_->ost_) {
410  *(impl_->ost_) << "<FrameworkJobReport>\n";
411  }
412  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
JobReport::~JobReport ( )

Definition at line 396 of file JobReport.cc.

References impl_.

396  {
397  impl_->writeGeneratorInfo();
398  impl_->flushFiles();
399  if(impl_->ost_) {
400  *(impl_->ost_) << "</FrameworkJobReport>\n" << std::flush;
401  }
402  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416

Member Function Documentation

void JobReport::childAfterFork ( std::string const &  jobReportFile,
unsigned int  childIndex,
unsigned int  numberOfChildren 
)

New output file for child.

Definition at line 460 of file JobReport.cc.

References impl_, and L1TEmulatorMonitor_cff::p.

460  {
461  std::ofstream* p = dynamic_cast<std::ofstream *>(impl_->ost_);
462  if (!p) return;
463  std::ostringstream ofilename;
464  toFileName(jobReportFile, childIndex, numberOfChildren, ofilename);
465  p->open(ofilename.str().c_str());
466  *p << "<FrameworkJobReport>\n";
467  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
std::string JobReport::dumpFiles ( void  )

debug/test util

Definition at line 805 of file JobReport.cc.

References f, edm::findOrDefault(), impl_, edm::JobReport::InputFile::logicalFileName, runTheMatrix::msg, and edm::JobReport::InputFile::physicalFileName.

805  {
806  std::ostringstream msg;
807 
808  typedef std::vector<JobReport::OutputFile>::iterator iterator;
809 
810  for (iterator f = impl_->outputFiles_.begin(), fEnd = impl_->outputFiles_.end(); f != fEnd; ++f) {
811 
812  msg << "\n<File>";
813  msg << *f;
814 
815  msg << "\n<LumiSections>";
816  //typedef std::vector<JobReport::LumiSectionReport>::iterator Iter;
817  //for (Iter iLumi = f->lumiSections.begin(),
818  // iLumiEnd = f->lumiSections.end();
819  // iLumi != iLumiEnd; ++iLumi) {
820  // msg << *iLumi;
821  //}
822  //msg << "\n</LumiSections>\n";
823  msg << "\n<Inputs>";
824  typedef std::vector<JobReport::Token>::iterator iterator;
825  for (iterator iInput = f->contributingInputs.begin(),
826  iInputEnd = f->contributingInputs.end();
827  iInput != iInputEnd; ++iInput) {
828  JobReport::InputFile inpFile = impl_->inputFiles_[*iInput];
829  msg << "\n<Input>";
830  msg << "\n <LFN>" << TiXmlText(inpFile.logicalFileName) << "</LFN>";
831  msg << "\n <PFN>" << TiXmlText(inpFile.physicalFileName) << "</PFN>";
832  msg << "\n <FastCopying>" << findOrDefault(f->fastCopyingInputs, inpFile.physicalFileName) << "</FastCopying>";
833  msg << "\n</Input>";
834  }
835  msg << "\n</Inputs>";
836  msg << "\n</File>";
837 
838  }
839  return msg.str();
840  }
tuple InputFile
Open Root file and provide MEs ############.
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
Value const & findOrDefault(std::map< Key, Value > const &m, Key const &k, Value const &defaultValue)
Definition: Map.h:28
void JobReport::eventReadFromFile ( JobReport::Token  fileToken,
unsigned int  run,
unsigned int  event 
)

Report that the event with the given id has been read from the file identified by the given Token.

Definition at line 504 of file JobReport.cc.

References f, impl_, and edm::JobReport::InputFile::numEventsRead.

504  {
505  JobReport::InputFile& f = impl_->getInputFileForToken(fileToken);
506  ++f.numEventsRead;
507  //f.runsSeen.insert(run);
508  }
tuple InputFile
Open Root file and provide MEs ############.
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::eventWrittenToFile ( JobReport::Token  fileToken,
unsigned int  run,
unsigned int  event 
)

Report that the event with the given id has been written to the file identified by the given Token.

Definition at line 560 of file JobReport.cc.

References f, impl_, and edm::JobReport::OutputFile::numEventsWritten.

560  {
561  JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken);
562  ++f.numEventsWritten;
563  //f.runsSeen.insert(run);
564  }
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
boost::scoped_ptr<JobReportImpl>& edm::JobReport::impl ( )
inlineprotected

Definition at line 413 of file JobReport.h.

References impl_.

Referenced by edm::service::JobReportService::frameworkShutdownOnFailure(), and edm::service::JobReportService::postEndJob().

413 {return impl_;}
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::inputFileClosed ( JobReport::Token  fileToken)

Report that the input file identified by the given Token has been closed. An exception will be thrown if the given Token was not obtained from inputFileOpened.

Definition at line 517 of file JobReport.cc.

References f, edm::JobReport::InputFile::fileHasBeenClosed, and impl_.

Referenced by DQMRootSource::closeFile_().

517  {
518  JobReport::InputFile& f = impl_->getInputFileForToken(fileToken);
519  // Dump information to the MessageLogger's JobSummary
520  // about this file.
521  // After setting the file to 'closed', we will no longer be able
522  // to reference it by ID.
523  f.fileHasBeenClosed = true;
524  impl_->writeInputFile(f);
525  }
tuple InputFile
Open Root file and provide MEs ############.
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
JobReport::Token JobReport::inputFileOpened ( std::string const &  physicalFileName,
std::string const &  logicalFileName,
std::string const &  catalog,
std::string const &  inputType,
std::string const &  inputSourceClassName,
std::string const &  moduleLabel,
std::string const &  guid,
std::vector< std::string > const &  branchNames 
)

Report that an input file has been opened. The returned Token should be used for later identification of this file.

Definition at line 470 of file JobReport.cc.

References edm::JobReport::InputFile::branchNames, validate_alignment_devdb10_cfg::catalog, edm::JobReport::InputFile::catalog, edm::JobReport::InputFile::fileHasBeenClosed, edm::JobReport::InputFile::guid, impl_, edm::JobReport::InputFile::inputSourceClassName, edm::JobReport::InputFile::inputType, edm::JobReport::InputFile::logicalFileName, moduleLabel(), edm::JobReport::InputFile::moduleLabel, edm::JobReport::InputFile::numEventsRead, edm::JobReport::InputFile::physicalFileName, and csvReporter::r.

Referenced by DQMRootSource::readFile_().

477  {
478  // Do we have to worry about thread safety here? Or is this
479  // service used in a way to make this safe?
480  impl_->inputFiles_.push_back(JobReport::InputFile());
481  JobReport::InputFile& r = impl_->inputFiles_.back();
482 
483  r.logicalFileName = logicalFileName;
484  r.physicalFileName = physicalFileName;
485  r.catalog = catalog;
486  r.inputType = inputType;
487  r.inputSourceClassName = inputSourceClassName;
488  r.moduleLabel = moduleLabel;
489  r.guid = guid;
490  // r.runsSeen is not modified
491  r.numEventsRead = 0;
492  r.branchNames = branchNames;
493  r.fileHasBeenClosed = false;
494 
495  JobReport::Token newToken = impl_->inputFiles_.size()-1;
496  //
497  // Add the new input file token to all output files
498  // currently open.
499  impl_->insertInputForOutputs(newToken);
500  return newToken;
501  }
tuple InputFile
Open Root file and provide MEs ############.
std::size_t Token
Definition: JobReport.h:44
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
const std::string * moduleLabel() const
Definition: HLTadd.h:40
void JobReport::outputFileClosed ( JobReport::Token  fileToken)

Report that the output file identified by the given Token has been closed. An exception will be thrown if the given Token was not obtained from outputFileOpened.

Definition at line 567 of file JobReport.cc.

References f, edm::JobReport::OutputFile::fileHasBeenClosed, and impl_.

Referenced by DQMRootOutputModule::finishEndFile().

567  {
568  JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken);
569  // Dump information to the MessageLogger's JobSummary
570  // about this file.
571  // After setting the file to 'closed', we will no longer be able
572  // to reference it by ID.
573  f.fileHasBeenClosed = true;
574  impl_->writeOutputFile(f);
575  }
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
JobReport::Token JobReport::outputFileOpened ( std::string const &  physicalFileName,
std::string const &  logicalFileName,
std::string const &  catalog,
std::string const &  outputModuleClassName,
std::string const &  moduleLabel,
std::string const &  guid,
std::string const &  dataType,
std::string const &  branchHash,
std::vector< std::string > const &  branchNames 
)

Report that an output file has been opened. The returned Token should be used for later identification of this file.

Definition at line 528 of file JobReport.cc.

References edm::JobReport::OutputFile::branchHash, edm::JobReport::OutputFile::branchNames, validate_alignment_devdb10_cfg::catalog, edm::JobReport::OutputFile::catalog, edm::JobReport::OutputFile::contributingInputs, dtT0WireCalibration_cfg::dataType, edm::JobReport::OutputFile::dataType, edm::JobReport::OutputFile::fileHasBeenClosed, edm::JobReport::OutputFile::guid, impl_, edm::JobReport::OutputFile::logicalFileName, moduleLabel(), edm::JobReport::OutputFile::moduleLabel, edm::JobReport::OutputFile::numEventsWritten, edm::JobReport::OutputFile::outputModuleClassName, edm::JobReport::OutputFile::physicalFileName, and csvReporter::r.

Referenced by DQMRootOutputModule::DQMRootOutputModule().

536  {
537  impl_->outputFiles_.push_back(JobReport::OutputFile());
538  JobReport::OutputFile& r = impl_->outputFiles_.back();
539 
540  r.logicalFileName = logicalFileName;
541  r.physicalFileName = physicalFileName;
542  r.catalog = catalog;
543  r.outputModuleClassName = outputModuleClassName;
544  r.moduleLabel = moduleLabel;
545  r.guid = guid;
546  r.dataType = dataType;
547  r.branchHash = branchHash;
548  // r.runsSeen is not modified
549  r.numEventsWritten = 0;
550  r.branchNames = branchNames;
551  r.fileHasBeenClosed = false;
552  //
553  // Init list of contributors to list of open input file Tokens
554  //
555  impl_->openInputFiles(r.contributingInputs);
556  return impl_->outputFiles_.size()-1;
557  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
const std::string * moduleLabel() const
Definition: HLTadd.h:40
void JobReport::overrideContributingInputs ( Token  outputToken,
std::vector< Token > const &  inputTokens 
)

Override the list of input files seen by an output file for use with EdmFastMerge

Definition at line 600 of file JobReport.cc.

References edm::JobReport::OutputFile::contributingInputs, f, and impl_.

601  {
602  // Get the required output file instance using the token
603  JobReport::OutputFile& f = impl_->getOutputFileForToken(outputToken);
604  // override its contributing inputs data
605  f.contributingInputs = inputTokens;
606  }
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::overrideEventsRead ( Token  fileToken,
int const  eventsRead 
)

For use by fast merge: Since the event by event counter cant be used for fast merges, use this method to forcibly set the events read count for an input file before reporting it closed

Definition at line 592 of file JobReport.cc.

References f, impl_, and edm::JobReport::InputFile::numEventsRead.

592  {
593  // Get the required input file instance using the token
594  JobReport::InputFile& f = impl_->getInputFileForToken(fileToken);
595  // set the events read parameter to the provided value
596  f.numEventsRead = eventsRead;
597  }
tuple InputFile
Open Root file and provide MEs ############.
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::overrideEventsWritten ( Token  fileToken,
int const  eventsWritten 
)

For use by fast merge: Since the event by event counter cant be used for fast merges, use this method to forcibly set the events written count for an output file before reporting it closed

Definition at line 584 of file JobReport.cc.

References f, impl_, and edm::JobReport::OutputFile::numEventsWritten.

584  {
585  // Get the required output file instance using the token
586  JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken);
587  // set the eventsWritten parameter to the provided value
588  f.numEventsWritten = eventsWritten;
589  }
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::parentAfterFork ( std::string const &  jobReportFile)

Definition at line 456 of file JobReport.cc.

456  {
457  }
void JobReport::parentBeforeFork ( std::string const &  jobReportFile,
unsigned int  numberOfChildren 
)

Definition at line 438 of file JobReport.cc.

References i, impl_, and L1TEmulatorMonitor_cff::p.

438  {
439  if(impl_->ost_) {
440  *(impl_->ost_) << "<ChildProcessFiles>\n";
441  for (unsigned int i = 0; i < numberOfChildren; ++i) {
442  std::ostringstream ofilename;
443  toFileName(jobReportFile, i, numberOfChildren, ofilename);
444  *(impl_->ost_) << " <ChildProcessFile>" << ofilename.str() << "</ChildProcessFile>\n";
445  }
446  *(impl_->ost_) << "</ChildProcessFiles>\n";
447  *(impl_->ost_) << "</FrameworkJobReport>\n";
448  std::ofstream* p = dynamic_cast<std::ofstream *>(impl_->ost_);
449  if (p) {
450  p->close();
451  }
452  }
453  }
int i
Definition: DBlmapReader.cc:9
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportAnalysisFile ( std::string const &  fileName,
std::map< std::string, std::string > const &  fileData 
)

Definition at line 652 of file JobReport.cc.

References impl_, runTheMatrix::msg, and pos.

Referenced by TFileService::afterBeginJob(), DQMStoreStats::calcstats(), PCLMetadataWriter::endRun(), and DQMFileSaver::saveJobReport().

652  {
653  if(impl_->ost_) {
654  std::ostream& msg = *(impl_->ost_);
655  //std::ostringstream msg;
656  msg << "<AnalysisFile>\n"
657  << " <FileName>" << TiXmlText(fileName) << "</FileName>\n";
658 
659  typedef std::map<std::string, std::string>::const_iterator const_iterator;
660  for (const_iterator pos = fileData.begin(), posEnd = fileData.end(); pos != posEnd; ++pos) {
661  msg << " <" << pos->first
662  << " Value=\"" << pos->second << "\" />"
663  << "\n";
664  }
665  msg << "</AnalysisFile>\n";
666  //LogError("FwkJob") << msg.str();
667  msg << std::flush;
668  }
669  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportDataType ( Token  fileToken,
std::string const &  dataType 
)

Report the data type of a file after it has been opened Needed since the data type isnt known until an event has been read

Definition at line 511 of file JobReport.cc.

References dtT0WireCalibration_cfg::dataType, edm::JobReport::OutputFile::dataType, f, and impl_.

511  {
512  JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken);
513  f.dataType = dataType;
514  }
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportError ( std::string const &  shortDesc,
std::string const &  longDesc 
)

Report an exception, providing details of the problem as a short description (Eg "XXXError") and a long description (Eg "XXX crashed because...") Also overload this method to accept an optional standard exit code

Definition at line 639 of file JobReport.cc.

References impl_, and runTheMatrix::msg.

Referenced by edm::printBadAllocException(), edm::printCmsException(), edm::printStdException(), and edm::printUnknownException().

640  {
641  if(impl_->ost_) {
642  std::ostream& msg = *(impl_->ost_);
643  msg << "<FrameworkError ExitStatus=\"1\" Type=\"" << shortDesc << "\" >\n";
644  msg << "<![CDATA[\n" << longDesc << "\n]]>\n";
645  msg << "</FrameworkError>\n";
646  //LogError("FwkJob") << msg.str();
647  msg << std::flush;
648  }
649  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportError ( std::string const &  shortDesc,
std::string const &  longDesc,
int const &  exitCode 
)

Definition at line 672 of file JobReport.cc.

References impl_, and runTheMatrix::msg.

674  {
675  if(impl_->ost_) {
676  std::ostream& msg = *(impl_->ost_);
677  //std::ostringstream msg;
678  msg << "<FrameworkError ExitStatus=\""<< exitCode
679  << "\" Type=\"" << shortDesc << "\" >\n";
680  msg << "<![CDATA[\n" << longDesc << "\n]]>\n";
681  msg << "</FrameworkError>\n";
682  //LogError("FwkJob") << msg.str();
683  msg << std::flush;
684  }
685  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportFastCopyingStatus ( JobReport::Token  fileToken,
std::string const &  inputFileName,
bool  fastCopying 
)

Definition at line 578 of file JobReport.cc.

References f, edm::JobReport::OutputFile::fastCopyingInputs, and impl_.

578  {
579  JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken);
580  f.fastCopyingInputs.insert(std::make_pair(inputFileName, fastCopying));
581  }
double f[11][100]
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportGeneratorInfo ( std::string const &  name,
std::string const &  value 
)

Report key/value style generator/lumi information Eg: reportGeneratorInfo("CrossSection" , "ValueHere") No special chars in the value string.

Definition at line 733 of file JobReport.cc.

References impl_.

733  {
734  impl_->addGeneratorInfo(name, value);
735  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportInputLumiSection ( unsigned int  run,
unsigned int  lumiSectId 
)

API for reporting a Lumi Section to the job report. for input files, call only if lumi section is physically read from the input file

Definition at line 625 of file JobReport.cc.

References impl_.

Referenced by DQMRootSource::readLuminosityBlock_().

625  {
626  impl_->associateInputLumiSection(run, lumiSectId);
627  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportInputRunNumber ( unsigned int  run)

API to report a run read from input

Definition at line 634 of file JobReport.cc.

References impl_.

Referenced by DQMRootSource::readRun_().

634  {
635  impl_->associateInputRun(run);
636  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportLumiSection ( unsigned int  run,
unsigned int  lumiSectId 
)

API for reporting a Lumi Section to the job report. for output files, call only if lumi section is written to the output file

Definition at line 620 of file JobReport.cc.

References impl_.

Referenced by DQMRootOutputModule::writeLuminosityBlock().

620  {
621  impl_->associateLumiSection(run, lumiSectId);
622  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportMemoryInfo ( std::vector< std::string > const &  memoryData)

Report Memory statistics ALTERNATE FORM - USING THIS MAY NECESSITATE CHANGES IN PARSING XML! Invoked by the Memory service to send an end of job summary about memory usage for inclusion in the job report

Definition at line 702 of file JobReport.cc.

References impl_, runTheMatrix::msg, and pos.

702  {
703  if(impl_->ost_) {
704  std::ostream& msg = *(impl_->ost_);
705  msg << "<MemoryService>\n";
706 
707  typedef std::vector<std::string>::const_iterator const_iterator;
708  for (const_iterator pos = memoryData.begin(), posEnd = memoryData.end(); pos != posEnd; ++pos) {
709  msg << *pos << "\n";
710  }
711  msg << "</MemoryService>\n";
712  msg << std::flush;
713  }
714  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportMessageInfo ( std::map< std::string, double > const &  messageData)

Report Message statistics Invoked by the MessageLogger service to send an end of job summary about numbers of various categories messages issued for inclusion in the job report

Definition at line 717 of file JobReport.cc.

References impl_, runTheMatrix::msg, and pos.

Referenced by edm::service::MessageLogger::SummarizeInJobReport().

717  {
718  if(impl_->ost_) {
719  std::ostream& msg = *(impl_->ost_);
720  msg << "<MessageSummary>\n";
721  typedef std::map<std::string, double>::const_iterator const_iterator;
722  for (const_iterator pos = messageData.begin(), posEnd = messageData.end(); pos != posEnd; ++pos) {
723  msg << " <" << pos->first
724  << " Value=\"" << pos->second << "\" />"
725  << "\n";
726  }
727  msg << "</MessageSummary>\n";
728  msg << std::flush;
729  }
730  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportPerformanceForModule ( std::string const &  metricClass,
std::string const &  moduleName,
std::map< std::string, std::string > const &  metrics 
)

Definition at line 782 of file JobReport.cc.

References impl_, and runTheMatrix::msg.

784  {
785  if(impl_->ost_) {
786  std::ostream& msg = *(impl_->ost_);
787  msg << "<PerformanceReport>\n"
788  << " <PerformanceModule Metric=\"" << metricClass << "\" "
789  << " Module=\"" << moduleName << "\" >\n";
790 
791  typedef std::map<std::string, std::string>::const_iterator const_iterator;
792  for(const_iterator iter = metrics.begin(), iterEnd = metrics.end(); iter != iterEnd; ++iter) {
793  msg << " <Metric Name=\"" << iter->first << "\" "
794  << "Value=\"" << iter->second << "\"/>\n";
795  }
796 
797  msg << " </PerformanceModule>\n"
798  << "</PerformanceReport>\n";
799  msg << std::flush;
800  //LogInfo("FwkJob") << msg.str();
801  }
802  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportPerformanceSummary ( std::string const &  metricClass,
std::map< std::string, std::string > const &  metrics 
)

Performance Reports

Two categories: Summary for entire job and module for a specific module Each one requires a performance metric class such as Timing, Memory, CPU, Trigger etc.

Definition at line 761 of file JobReport.cc.

References impl_, and runTheMatrix::msg.

Referenced by TFileAdaptor::termination().

762  {
763  if(impl_->ost_) {
764  std::ostream& msg = *(impl_->ost_);
765  msg << "<PerformanceReport>\n"
766  << " <PerformanceSummary Metric=\"" << metricClass << "\">\n";
767 
768  typedef std::map<std::string, std::string>::const_iterator const_iterator;
769  for(const_iterator iter = metrics.begin(), iterEnd = metrics.end(); iter != iterEnd; ++iter) {
770  msg << " <Metric Name=\"" << iter->first << "\" "
771  << "Value=\"" << iter->second << "\"/>\n";
772  }
773 
774  msg << " </PerformanceSummary>\n"
775  << "</PerformanceReport>\n";
776  msg << std::flush;
777  //LogInfo("FwkJob") << msg.str();
778  }
779  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportPSetHash ( std::string const &  hashValue)

Report PSetHash

Definition at line 749 of file JobReport.cc.

References impl_, and runTheMatrix::msg.

749  {
750  if(impl_->ost_) {
751  std::ostream& msg = *(impl_->ost_);
752  msg << "<PSetHash>"
753  << hashValue
754  << "</PSetHash>\n";
755  //LogInfo("FwkJob") << msg.str();
756  msg << std::flush;
757  }
758  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportRandomStateFile ( std::string const &  name)

Report the name of the random engine persistency file

Definition at line 737 of file JobReport.cc.

References impl_, and runTheMatrix::msg.

737  {
738  if(impl_->ost_) {
739  std::ostream& msg = *(impl_->ost_);
740  msg << "<RandomServiceStateFile>\n"
741  << TiXmlText(name) << "\n"
742  << "</RandomServiceStateFile>\n";
743  //LogInfo("FwkJob") << msg.str();
744  msg << std::flush;
745  }
746  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportRunNumber ( unsigned int  run)

API to report the a run written to output

Definition at line 630 of file JobReport.cc.

References impl_.

Referenced by DQMRootOutputModule::writeRun().

630  {
631  impl_->associateRun(run);
632  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportSkippedEvent ( unsigned int  run,
unsigned int  event 
)

Definition at line 609 of file JobReport.cc.

References impl_, and runTheMatrix::msg.

609  {
610  if(impl_->ost_) {
611  std::ostream& msg = *(impl_->ost_);
612  msg << "<SkippedEvent Run=\"" << run << "\"";
613  msg << " Event=\"" << event << "\" />\n";
614  msg << std::flush;
615  //LogInfo("FwkJob") << msg.str();
616  }
617  }
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416
void JobReport::reportSkippedFile ( std::string const &  pfn,
std::string const &  lfn 
)

Report Skipped File

Report that a file has been skipped due to it not being found.

Definition at line 688 of file JobReport.cc.

References impl_, runTheMatrix::msg, and TiXmlElement::SetAttribute().

689  {
690  if(impl_->ost_) {
691  std::ostream& msg = *(impl_->ost_);
692  TiXmlElement skipped("SkippedFile");
693  skipped.SetAttribute("Pfn", pfn);
694  skipped.SetAttribute("Lfn", lfn);
695  msg << skipped << "\n";
696  msg << std::flush;
697  //LogInfo("FwkJob") << msg.str();
698  }
699  }
list pfn
Definition: dbtoconf.py:76
boost::scoped_ptr< JobReportImpl > impl_
Definition: JobReport.h:416

Member Data Documentation

boost::scoped_ptr<JobReportImpl> edm::JobReport::impl_
private