CMS 3D CMS Logo

edm::JobReport Class Reference

#include <FWCore/MessageLogger/interface/JobReport.h>

Inheritance diagram for edm::JobReport:

edm::service::JobReportService

List of all members.

Public Types

typedef unsigned int RunNumber
typedef std::size_t Token

Public Member Functions

std::string dumpFiles (void)
 debug/test util
void eventReadFromFile (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.
void eventWrittenToFile (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.
void inputFileClosed (Token fileToken)
 Report that the input file identified by the given Token has been closed.
Token inputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &inputSourceClassName, std::string const &moduleLabel, std::vector< std::string > const &branchNames)
Token inputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, 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.
 JobReport (std::ostream *outputStream)
 JobReport ()
void outputFileClosed (Token fileToken)
 Report that the output file identified by the given Token has been closed.
Token outputFileOpened (std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &outputModuleClassName, std::string const &moduleLabel, std::vector< std::string > const &branchNames)
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::vector< std::string > const &branchNames)
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::vector< std::string > const &branchNames)
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)
 Report that an output file has been opened.
void overrideContributingInputs (Token outputToken, std::vector< Token > const &inputTokens)
 Override the list of input files seen by an output file for use with EdmFastMerge.
void overrideEventsRead (Token fileToken, const int 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.
void overrideEventsWritten (Token fileToken, const int 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.
void reportAnalysisFile (std::string const &fileName, std::map< std::string, std::string > const &fileData)
void 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.
void reportError (std::string const &shortDesc, std::string const &longDesc, int const &exitCode)
void 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.
void 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.
void reportInputLumiSection (unsigned int run, unsigned int lumiSectId)
 API for reporting a Lumi Section to the job report.
void reportInputRunNumber (unsigned int run)
 API to report a run read from input.
void reportLumiSection (unsigned int run, unsigned int lumiSectId)
 API for reporting a Lumi Section to the job report.
void 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.
void reportMemoryInfo (std::map< std::string, double > const &memoryData)
 Report Memory statistics Invoked by the Memory service to send an end of job summary about memory usage for inclusion in the job report.
void 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.
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)
 Performance Reports.
void reportPSetHash (std::string const &hashValue)
 Report PSetHash.
void reportRandomStateFile (std::string const &name)
 Report the name of the random engine persistency file.
void reportRunNumber (unsigned int run)
 API to report the a run written to output.
void reportSkippedEvent (unsigned int run, unsigned int event)
void reportSkippedFile (std::string const &pfn, std::string const &lfn)
 Report Skipped File.
void reportStorageStats (std::string const &data)
 Report Storage Statistics.
void reportTimingInfo (std::map< std::string, double > const &timingData)
 Report Timing statistics Invoked by the Timing service to send an end of job summary about time taken for inclusion in the job report.
 ~JobReport ()

Protected Member Functions

boost::scoped_ptr
< JobReportImpl > & 
impl ()

Private Attributes

boost::scoped_ptr< JobReportImplimpl_

Classes

struct  InputFile
 Description: Holds information about an InputFile. More...
struct  JobReportImpl
struct  LumiSectionReport
 Description: Holds information about a Lumi section associated to a file. More...
struct  OutputFile
 Description: Holds information about an OutputFile. More...
struct  RunReport


Detailed Description

Definition at line 37 of file JobReport.h.


Member Typedef Documentation

typedef unsigned int edm::JobReport::RunNumber

Definition at line 39 of file JobReport.h.

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

Definition at line 40 of file JobReport.h.


Constructor & Destructor Documentation

JobReport::JobReport (  ) 

Definition at line 432 of file JobReport.cc.

00432                          :
00433       impl_(new JobReportImpl(0)) {
00434     }

JobReport::JobReport ( std::ostream *  outputStream  ) 

Definition at line 436 of file JobReport.cc.

References impl_.

00436                                              :
00437        impl_(new JobReportImpl(iOstream) ) {
00438          if(impl_->ost_) {
00439            *(impl_->ost_)<<"<FrameworkJobReport>\n";
00440          }
00441        }

JobReport::~JobReport (  ) 

Definition at line 424 of file JobReport.cc.

References flush().

00424                         {
00425     impl_->writeGeneratorInfo();
00426     impl_->flushFiles();
00427     if(impl_->ost_) {
00428       *(impl_->ost_)<<"</FrameworkJobReport>\n"<<std::flush;
00429     }
00430   }


Member Function Documentation

std::string JobReport::dumpFiles ( void   ) 

debug/test util

Definition at line 935 of file JobReport.cc.

References f, edm::JobReport::InputFile::logicalFileName, alivecheck_mergeAndRegister::msg, and edm::JobReport::InputFile::physicalFileName.

00935                           {
00936 
00937     std::ostringstream msg;
00938 
00939     std::vector<JobReport::OutputFile>::iterator f;
00940 
00941     for (f = impl_->outputFiles_.begin();
00942          f != impl_->outputFiles_.end(); f++){
00943 
00944       msg << "\n<File>";
00945       msg << *f;
00946 
00947       msg << "\n<LumiSections>";
00948       //std::vector<JobReport::LumiSectionReport>::iterator iLumi;
00949       //for (iLumi = f->lumiSections.begin();
00950       //     iLumi != f->lumiSections.end(); iLumi++){
00951       //  msg << *iLumi;
00952       //}
00953       //msg << "\n</LumiSections>\n";
00954       msg << "\n<Inputs>";
00955       std::vector<JobReport::Token>::iterator iInput;
00956       for (iInput = f->contributingInputs.begin();
00957            iInput != f->contributingInputs.end(); iInput++) {
00958         JobReport::InputFile inpFile = impl_->inputFiles_[*iInput];
00959         msg <<"\n<Input>";
00960         msg <<"\n  <LFN>" << inpFile.logicalFileName << "</LFN>";
00961         msg <<"\n  <PFN>" << inpFile.physicalFileName << "</PFN>";
00962         msg <<"\n</Input>";
00963       }
00964       msg << "\n</Inputs>";
00965       msg << "\n</File>";
00966 
00967     }
00968 
00969     return msg.str();
00970 
00971   }

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 494 of file JobReport.cc.

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

00495     {
00496       JobReport::InputFile& f = impl_->getInputFileForToken(fileToken);
00497       f.numEventsRead++;
00498       //f.runsSeen.insert(run);
00499     }

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 620 of file JobReport.cc.

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

00621     {
00622       JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken);
00623       f.numEventsWritten++;
00624       //f.runsSeen.insert(run);
00625     }

boost::scoped_ptr<JobReportImpl>& edm::JobReport::impl (  )  [inline, protected]

Definition at line 462 of file JobReport.h.

References impl_.

00462 {return impl_;}

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 509 of file JobReport.cc.

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

00510     {
00511       JobReport::InputFile& f = impl_->getInputFileForToken(fileToken);
00512       // Dump information to the MessageLogger's JobSummary
00513       // about this file.
00514       // After setting the file to 'closed', we will no longer be able
00515       // to reference it by ID.
00516       f.fileHasBeenClosed = true;
00517       impl_->writeInputFile(f);
00518     }

JobReport::Token JobReport::inputFileOpened ( std::string const &  physicalFileName,
std::string const &  logicalFileName,
std::string const &  catalog,
std::string const &  inputSourceClassName,
std::string const &  moduleLabel,
std::vector< std::string > const &  branchNames 
)

Definition at line 477 of file JobReport.cc.

00483     {
00484       return this->inputFileOpened(physicalFileName,
00485                                    logicalFileName,
00486                                    catalog,
00487                                    inputSourceClassName,
00488                                    moduleLabel,
00489                                    "",
00490                                    branchNames);
00491     }

JobReport::Token JobReport::inputFileOpened ( std::string const &  physicalFileName,
std::string const &  logicalFileName,
std::string const &  catalog,
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 444 of file JobReport.cc.

References edm::JobReport::InputFile::branchNames, edm::JobReport::InputFile::catalog, edm::JobReport::InputFile::fileHasBeenClosed, edm::JobReport::InputFile::guid, edm::JobReport::InputFile::inputSourceClassName, edm::JobReport::InputFile::logicalFileName, edm::JobReport::InputFile::moduleLabel, edm::JobReport::InputFile::numEventsRead, edm::JobReport::InputFile::physicalFileName, and r.

00451     {
00452       // Do we have to worry about thread safety here? Or is this
00453       // service used in a way to make this safe?
00454       impl_->inputFiles_.push_back(JobReport::InputFile());
00455       JobReport::InputFile& r = impl_->inputFiles_.back();
00456 
00457       r.logicalFileName      = logicalFileName;
00458       r.physicalFileName     = physicalFileName;
00459       r.catalog              = catalog;
00460       r.inputSourceClassName = inputSourceClassName;
00461       r.moduleLabel          = moduleLabel;
00462       r.guid                 = guid;
00463       // r.runsSeen is not modified
00464       r.numEventsRead        = 0;
00465       r.branchNames          = branchNames;
00466       r.fileHasBeenClosed    = false;
00467 
00468       JobReport::Token newToken = impl_->inputFiles_.size()-1;
00469         //
00470        // Add the new input file token to all output files
00471       //  currently open.
00472       impl_->insertInputForOutputs(newToken);
00473       return newToken;
00474     }

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 629 of file JobReport.cc.

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

00630     {
00631       JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken);
00632       // Dump information to the MessageLogger's JobSummary
00633       // about this file.
00634       // After setting the file to 'closed', we will no longer be able
00635       // to reference it by ID.
00636       f.fileHasBeenClosed = true;
00637       impl_->writeOutputFile(f);
00638 
00639     }

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::vector< std::string > const &  branchNames 
)

Definition at line 599 of file JobReport.cc.

00605   {
00606 
00607     return this->outputFileOpened(physicalFileName,
00608                                   logicalFileName,
00609                                   catalog,
00610                                   outputModuleClassName,
00611                                   moduleLabel,
00612                                   "",
00613                                   "",
00614                                   branchNames);
00615   }

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::vector< std::string > const &  branchNames 
)

Definition at line 577 of file JobReport.cc.

00584     {
00585       return this->outputFileOpened(physicalFileName,
00586                                     logicalFileName,
00587                                     catalog,
00588                                     outputModuleClassName,
00589                                     moduleLabel,
00590                                     guid,
00591                                     "",
00592                                     branchNames);
00593 
00594     }

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::vector< std::string > const &  branchNames 
)

Definition at line 554 of file JobReport.cc.

00562     {
00563       return this->outputFileOpened(physicalFileName,
00564                                     logicalFileName,
00565                                     catalog,
00566                                     outputModuleClassName,
00567                                     moduleLabel,
00568                                     guid,
00569                                     "",
00570                                     "NO_BRANCH_HASH",
00571                                     branchNames);
00572 
00573 
00574     }

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 521 of file JobReport.cc.

References edm::JobReport::OutputFile::branchHash, edm::JobReport::OutputFile::branchNames, edm::JobReport::OutputFile::catalog, edm::JobReport::OutputFile::contributingInputs, edm::JobReport::OutputFile::dataType, edm::JobReport::OutputFile::fileHasBeenClosed, edm::JobReport::OutputFile::guid, edm::JobReport::OutputFile::logicalFileName, edm::JobReport::OutputFile::moduleLabel, edm::JobReport::OutputFile::numEventsWritten, edm::JobReport::OutputFile::outputModuleClassName, edm::JobReport::OutputFile::physicalFileName, and r.

00530     {
00531       impl_->outputFiles_.push_back(JobReport::OutputFile());
00532       JobReport::OutputFile& r = impl_->outputFiles_.back();
00533 
00534       r.logicalFileName       = logicalFileName;
00535       r.physicalFileName      = physicalFileName;
00536       r.catalog               = catalog;
00537       r.outputModuleClassName = outputModuleClassName;
00538       r.moduleLabel           = moduleLabel;
00539       r.guid           = guid;
00540       r.dataType = dataType;
00541       r.branchHash = branchHash;
00542       // r.runsSeen is not modified
00543       r.numEventsWritten      = 0;
00544       r.branchNames           = branchNames;
00545       r.fileHasBeenClosed     = false;
00546         //
00547        // Init list of contributors to list of open input file Tokens
00548       //
00549       r.contributingInputs = std::vector<JobReport::Token>(impl_->openInputFiles());
00550       return impl_->outputFiles_.size()-1;
00551     }

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 662 of file JobReport.cc.

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

00664     {
00665        // Get the required output file instance using the token
00666       JobReport::OutputFile& f = impl_->getOutputFileForToken(outputToken);
00667       // override its contributing inputs data
00668       f.contributingInputs = inputTokens;
00669     }

void JobReport::overrideEventsRead ( Token  fileToken,
const int  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 652 of file JobReport.cc.

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

00653     {
00654       // Get the required input file instance using the token
00655       JobReport::InputFile& f = impl_->getInputFileForToken(fileToken);
00656       // set the events read parameter to the provided value
00657       f.numEventsRead = eventsRead;
00658 
00659     }

void JobReport::overrideEventsWritten ( Token  fileToken,
const int  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 642 of file JobReport.cc.

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

00643     {
00644       // Get the required output file instance using the token
00645       JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken);
00646       // set the eventsWritten parameter to the provided value
00647       f.numEventsWritten = eventsWritten;
00648 
00649     }

void JobReport::reportAnalysisFile ( std::string const &  fileName,
std::map< std::string, std::string > const &  fileData 
)

Definition at line 718 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00718                                                                                                        {
00719 
00720     if(impl_->ost_) {
00721       std::ostream& msg = *(impl_->ost_);
00722       //std::ostringstream msg;
00723       msg << "<AnalysisFile>\n"
00724           << "  <FileName>" << fileName <<"</FileName>\n";
00725 
00726       std::map<std::string, std::string>::const_iterator pos;
00727       for (pos = fileData.begin(); pos != fileData.end(); ++pos){
00728         msg <<  "  <" << pos->first
00729             <<  "  Value=\"" << pos->second  << "\" />"
00730             <<  "\n";
00731       }
00732 
00733       msg << "</AnalysisFile>\n";
00734       //LogError("FwkJob") << msg.str();
00735       msg <<std::flush;
00736     }
00737 
00738 
00739   }

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 502 of file JobReport.cc.

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

00503     {
00504       JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken);
00505       f.dataType = dataType;
00506     }

void JobReport::reportError ( std::string const &  shortDesc,
std::string const &  longDesc,
int const &  exitCode 
)

Definition at line 743 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00746   {
00747     if(impl_->ost_) {
00748       std::ostream& msg = *(impl_->ost_);
00749       //std::ostringstream msg;
00750       msg << "<FrameworkError ExitStatus=\""<< exitCode
00751         <<"\" Type=\"" << shortDesc <<"\" >\n";
00752       msg << "<![CDATA[\n" << longDesc << "\n]]>\n";
00753       msg << "</FrameworkError>\n";
00754       //LogError("FwkJob") << msg.str();
00755       msg <<std::flush;
00756     }
00757   }

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 703 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

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

00705   {
00706     if(impl_->ost_) {
00707       std::ostream& msg =*(impl_->ost_);
00708       msg << "<FrameworkError ExitStatus=\"1\" Type=\"" << shortDesc <<"\" >\n";
00709       msg << "<![CDATA[\n" << longDesc << "\n]]>\n";
00710       msg << "</FrameworkError>\n";
00711    //LogError("FwkJob") << msg.str();
00712       msg << std::flush;
00713     }
00714   }

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 854 of file JobReport.cc.

00855   {
00856 
00857     impl_->addGeneratorInfo(name, value);
00858   }

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 688 of file JobReport.cc.

00688                                                                             {
00689     impl_->associateInputLumiSection(run, lumiSectId);
00690   }

void JobReport::reportInputRunNumber ( unsigned int  run  ) 

API to report a run read from input.

Definition at line 697 of file JobReport.cc.

00697                                                  {
00698     impl_->associateInputRun(run);
00699   }

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 684 of file JobReport.cc.

00684                                                                        {
00685     impl_->associateLumiSection(run, lumiSectId);
00686   }

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 809 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00809                                                                    {
00810 
00811     if(impl_->ost_) {
00812       std::ostream& msg=*(impl_->ost_);
00813       msg << "<MemoryService>\n";
00814 
00815       std::vector<std::string>::const_iterator pos;
00816       for (pos = memoryData.begin(); pos != memoryData.end(); ++pos){
00817         msg << *pos << "\n";
00818       }
00819       msg << "</MemoryService>\n";
00820       msg << std::flush;
00821     }
00822   }

void JobReport::reportMemoryInfo ( std::map< std::string, double > const &  memoryData  ) 

Report Memory statistics Invoked by the Memory service to send an end of job summary about memory usage for inclusion in the job report.

Definition at line 792 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00792                                                                         {
00793 
00794     if(impl_->ost_) {
00795       std::ostream& msg=*(impl_->ost_);
00796       msg << "<MemoryService>\n";
00797       std::map<std::string, double>::const_iterator pos;
00798       for (pos = memoryData.begin(); pos != memoryData.end(); ++pos){
00799         msg <<  "  <" << pos->first
00800         <<  "  Value=\"" << pos->second  << "\" />"
00801         <<  "\n";
00802       }
00803       msg << "</MemoryService>\n";
00804       msg << std::flush;
00805     }
00806   }

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 825 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00825                                                                           {
00826 
00827     if(impl_->ost_) {
00828       std::ostream& msg=*(impl_->ost_);
00829       msg << "<MessageSummary>\n";
00830       std::map<std::string, double>::const_iterator pos;
00831       for (pos = messageData.begin(); pos != messageData.end(); ++pos){
00832         msg <<  "  <" << pos->first
00833         <<  "  Value=\"" << pos->second  << "\" />"
00834         <<  "\n";
00835       }
00836       msg << "</MessageSummary>\n";
00837       msg << std::flush;
00838     }
00839   }

void JobReport::reportPerformanceForModule ( std::string const &  metricClass,
std::string const &  moduleName,
std::map< std::string, std::string > const &  metrics 
)

Definition at line 910 of file JobReport.cc.

References flush(), iter, and alivecheck_mergeAndRegister::msg.

00913   {
00914     if(impl_->ost_){
00915       std::ostream& msg =*(impl_->ost_);
00916       msg << "<PerformanceReport>\n"
00917         << "  <PerformanceModule Metric=\"" << metricClass << "\" "
00918         << " Module=\""<< moduleName << "\" >\n";
00919 
00920       std::map<std::string, std::string>::const_iterator iter;
00921       for( iter = metrics.begin(); iter != metrics.end(); ++iter ) {
00922         msg << "    <Metric Name=\"" << iter->first << "\" "
00923         <<"Value=\"" << iter->second << "\"/>\n";
00924       }
00925 
00926       msg << "  </PerformanceModule>\n"
00927         << "</PerformanceReport>\n";
00928       msg << std::flush;
00929       //LogInfo("FwkJob") << msg.str();
00930     }
00931   }

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 888 of file JobReport.cc.

References flush(), iter, and alivecheck_mergeAndRegister::msg.

00890   {
00891     if(impl_->ost_){
00892       std::ostream& msg =*(impl_->ost_);
00893       msg << "<PerformanceReport>\n"
00894         << "  <PerformanceSummary Metric=\"" << metricClass << "\">\n";
00895 
00896       std::map<std::string, std::string>::const_iterator iter;
00897       for( iter = metrics.begin(); iter != metrics.end(); ++iter ) {
00898         msg << "    <Metric Name=\"" << iter->first << "\" "
00899         <<"Value=\"" << iter->second << "\"/>\n";
00900       }
00901 
00902       msg << "  </PerformanceSummary>\n"
00903         << "</PerformanceReport>\n";
00904       msg << std::flush;
00905       //LogInfo("FwkJob") << msg.str();
00906     }
00907   }

void JobReport::reportPSetHash ( std::string const &  hashValue  ) 

Report PSetHash.

Definition at line 874 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00875   {
00876     if(impl_->ost_){
00877       std::ostream& msg =*(impl_->ost_);
00878       msg << "<PSetHash>"
00879         <<  hashValue
00880         <<  "</PSetHash>\n";
00881       //LogInfo("FwkJob") << msg.str();
00882       msg << std::flush;
00883     }
00884   }

void JobReport::reportRandomStateFile ( std::string const &  name  ) 

Report the name of the random engine persistency file.

Definition at line 861 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00862   {
00863     if(impl_->ost_) {
00864       std::ostream& msg = *(impl_->ost_);
00865       msg << "<RandomServiceStateFile>\n"
00866         << name << "\n"
00867         <<  "</RandomServiceStateFile>\n";
00868       //LogInfo("FwkJob") << msg.str();
00869       msg << std::flush;
00870     }
00871   }

void JobReport::reportRunNumber ( unsigned int  run  ) 

API to report the a run written to output.

Definition at line 693 of file JobReport.cc.

00693                                             {
00694     impl_->associateRun(run);
00695   }

void JobReport::reportSkippedEvent ( unsigned int  run,
unsigned int  event 
)

Definition at line 672 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00673     {
00674       if(impl_->ost_) {
00675         std::ostream& msg = *(impl_->ost_);
00676         msg << "<SkippedEvent Run=\"" << run << "\"";
00677         msg << " Event=\"" << event << "\" />\n";
00678         msg <<std::flush;
00679         //LogInfo("FwkJob") << msg.str();
00680       }
00681     }

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 760 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00761                                                      {
00762 
00763     if(impl_->ost_) {
00764       std::ostream& msg = *(impl_->ost_);
00765       msg << "<SkippedFile Pfn=\"" << pfn << "\"";
00766       msg << " Lfn=\"" << lfn << "\" />\n";
00767       msg <<std::flush;
00768       //LogInfo("FwkJob") << msg.str();
00769 
00770     }
00771   }

void JobReport::reportStorageStats ( std::string const &  data  ) 

Report Storage Statistics.

Definition at line 842 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00843   {
00844     if(impl_->ost_) {
00845       std::ostream& msg = *(impl_->ost_);
00846       msg << "<StorageStatistics>\n"
00847         << data << "\n"
00848         <<  "</StorageStatistics>\n";
00849       //LogInfo("FwkJob") << msg.str();
00850       msg << std::flush;
00851     }
00852   }

void JobReport::reportTimingInfo ( std::map< std::string, double > const &  timingData  ) 

Report Timing statistics Invoked by the Timing service to send an end of job summary about time taken for inclusion in the job report.

Definition at line 774 of file JobReport.cc.

References flush(), and alivecheck_mergeAndRegister::msg.

00774                                                                         {
00775 
00776     if(impl_->ost_) {
00777       std::ostream& msg=*(impl_->ost_);
00778       msg << "<TimingService>\n";
00779       std::map<std::string, double>::const_iterator pos;
00780       for (pos = timingData.begin(); pos != timingData.end(); ++pos){
00781         msg <<  "  <" << pos->first
00782         <<  "  Value=\"" << pos->second  << "\" />"
00783         <<  "\n";
00784       }
00785       msg << "</TimingService>\n";
00786       //LogInfo("FwkJob") << msg.str();
00787       msg << std::flush;
00788     }
00789   }


Member Data Documentation

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

Definition at line 465 of file JobReport.h.

Referenced by impl(), and JobReport().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:41:45 2009 for CMSSW by  doxygen 1.5.4