CMS 3D CMS Logo

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

#include <JobReport.h>

Public Member Functions

void addGeneratorInfo (std::string const &name, std::string const &value)
 
void associateInputLumiSection (unsigned int runNumber, unsigned int lumiSection)
 
void associateInputRun (unsigned int runNumber)
 
void associateLumiSection (unsigned int runNumber, unsigned int lumiSection)
 
void associateRun (unsigned int runNumber)
 
void flushFiles (void)
 
InputFilegetInputFileForToken (Token t)
 
OutputFilegetOutputFileForToken (Token t)
 
void insertInputForOutputs (Token t)
 
 JobReportImpl (std::ostream *iOst)
 
void openInputFiles (std::vector< Token > &tokens)
 
void openOutputFiles (std::vector< Token > &tokens)
 
void removeInputFileRecord_ (Token t)
 
void removeOutputFileRecord_ (Token t)
 
void writeGeneratorInfo (void)
 
void writeInputFile (InputFile const &f)
 
void writeOutputFile (OutputFile const &f)
 

Public Attributes

std::set< std::string > * fastClonedBranches_
 
std::map< std::string,
std::string > 
generatorInfo_
 
std::vector< InputFileinputFiles_
 
std::ostream * ost_
 
std::vector< OutputFileoutputFiles_
 
std::map< std::string, long long > readBranches_
 

Detailed Description

Definition at line 125 of file JobReport.h.

Constructor & Destructor Documentation

edm::JobReport::JobReportImpl::JobReportImpl ( std::ostream *  iOst)
inline

Definition at line 223 of file JobReport.h.

223 : ost_(iOst) {}

Member Function Documentation

void edm::JobReport::JobReportImpl::addGeneratorInfo ( std::string const &  name,
std::string const &  value 
)

Definition at line 306 of file JobReport.cc.

References mergeVDriftHistosByStation::name, and relativeConstraints::value.

307  {
308 
310  }
std::map< std::string, std::string > generatorInfo_
Definition: JobReport.h:227
void edm::JobReport::JobReportImpl::associateInputLumiSection ( unsigned int  runNumber,
unsigned int  lumiSection 
)

Definition at line 396 of file JobReport.cc.

References edm::JobReport::RunReport::runNumber, convertSQLiteXML::runNumber, edm::JobReport::InputFile::runReports, and interactiveExample::theFile.

396  {
397  std::vector<Token> openFiles;
398  openInputFiles(openFiles);
399  for(std::vector<Token>::iterator iToken = openFiles.begin(), iTokenEnd = openFiles.end(); iToken != iTokenEnd; ++iToken) {
400  //
401  // Loop over all open input files
402  //
404 
405  //
406  // check run is known to file
407  // if not, add a run report for that run
408  if(theFile.runReports.count(runNumber) == 0) {
409  JobReport::RunReport newReport = JobReport::RunReport();
410  newReport.runNumber = runNumber;
411  theFile.runReports.insert(std::make_pair(runNumber, newReport));
412  }
413 
414  //
415  // Get the run report for this run, now that it either was created
416  // or already existed
417  std::map<JobReport::RunNumber, JobReport::RunReport>::iterator finder;
418  finder = theFile.runReports.find(runNumber);
419 
420  //
421  // add the lumi section to the report, the lumi list is a Set
422  // so duplicates dont matter
423  (finder->second).lumiSections.insert(lumiSect);
424  }
425  }
void openInputFiles(std::vector< Token > &tokens)
Definition: JobReport.cc:201
std::vector< InputFile > inputFiles_
Definition: JobReport.h:225
tuple InputFile
Open Root file and provide MEs ############.
void edm::JobReport::JobReportImpl::associateInputRun ( unsigned int  runNumber)

Definition at line 347 of file JobReport.cc.

References edm::JobReport::RunReport::runNumber, convertSQLiteXML::runNumber, edm::JobReport::InputFile::runReports, and interactiveExample::theFile.

347  {
348  std::vector<Token> openFiles;
349  openInputFiles(openFiles);
350  for(std::vector<Token>::iterator iToken = openFiles.begin(), iTokenEnd = openFiles.end(); iToken != iTokenEnd; ++iToken) {
352 
353  //
354  // check run is known to file
355  // if not, add a run report for that run
356  if(theFile.runReports.count(runNumber) == 0) {
357  JobReport::RunReport newReport = JobReport::RunReport();
358  newReport.runNumber = runNumber;
359  theFile.runReports.insert(std::make_pair(runNumber, newReport));
360  }
361 
362  }
363  }
void openInputFiles(std::vector< Token > &tokens)
Definition: JobReport.cc:201
std::vector< InputFile > inputFiles_
Definition: JobReport.h:225
tuple InputFile
Open Root file and provide MEs ############.
void edm::JobReport::JobReportImpl::associateLumiSection ( unsigned int  runNumber,
unsigned int  lumiSection 
)

Definition at line 365 of file JobReport.cc.

References edm::JobReport::RunReport::runNumber, convertSQLiteXML::runNumber, edm::JobReport::OutputFile::runReports, and interactiveExample::theFile.

365  {
366  std::vector<Token> openFiles;
367  openOutputFiles(openFiles);
368  for(std::vector<Token>::iterator iToken = openFiles.begin(), iTokenEnd = openFiles.end(); iToken != iTokenEnd; ++iToken) {
369  //
370  // Loop over all open output files
371  //
373 
374  //
375  // check run is known to file
376  // if not, add a run report for that run
377  if(theFile.runReports.count(runNumber) == 0) {
378  JobReport::RunReport newReport = JobReport::RunReport();
379  newReport.runNumber = runNumber;
380  theFile.runReports.insert(std::make_pair(runNumber, newReport));
381  }
382 
383  //
384  // Get the run report for this run, now that it either was created
385  // or already existed
386  std::map<JobReport::RunNumber, JobReport::RunReport>::iterator finder;
387  finder = theFile.runReports.find(runNumber);
388 
389  //
390  // add the lumi section to the report, the lumi list is a Set
391  // so duplicates dont matter
392  (finder->second).lumiSections.insert(lumiSect);
393  }
394  }
void openOutputFiles(std::vector< Token > &tokens)
Definition: JobReport.cc:215
std::vector< OutputFile > outputFiles_
Definition: JobReport.h:226
void edm::JobReport::JobReportImpl::associateRun ( unsigned int  runNumber)

Definition at line 327 of file JobReport.cc.

References edm::JobReport::RunReport::runNumber, convertSQLiteXML::runNumber, edm::JobReport::OutputFile::runReports, and interactiveExample::theFile.

327  {
328  std::vector<Token> openFiles;
329  openOutputFiles(openFiles);
330  for(std::vector<Token>::iterator iToken = openFiles.begin(), iTokenEnd = openFiles.end(); iToken != iTokenEnd; ++iToken) {
332 
333  //
334  // check run is known to file
335  // if not, add a run report for that run
336  if(theFile.runReports.count(runNumber) == 0) {
337  JobReport::RunReport newReport = JobReport::RunReport();
338  newReport.runNumber = runNumber;
339  theFile.runReports.insert(
340  std::make_pair(runNumber, newReport)
341  );
342  }
343 
344  }
345  }
void openOutputFiles(std::vector< Token > &tokens)
Definition: JobReport.cc:215
std::vector< OutputFile > outputFiles_
Definition: JobReport.h:226
void edm::JobReport::JobReportImpl::flushFiles ( void  )

Definition at line 291 of file JobReport.cc.

291  {
292  for(std::vector<JobReport::InputFile>::iterator ipos = inputFiles_.begin(), iposEnd = inputFiles_.end();
293  ipos != iposEnd; ++ipos) {
294  if(!(ipos->fileHasBeenClosed)) {
295  writeInputFile(*ipos);
296  }
297  }
298  for(std::vector<JobReport::OutputFile>::iterator opos = outputFiles_.begin(), oposEnd = outputFiles_.end();
299  opos != oposEnd; ++opos) {
300  if(!(opos->fileHasBeenClosed)) {
301  writeOutputFile(*opos);
302  }
303  }
304  }
std::vector< InputFile > inputFiles_
Definition: JobReport.h:225
void writeInputFile(InputFile const &f)
Definition: JobReport.cc:229
std::vector< OutputFile > outputFiles_
Definition: JobReport.h:226
void writeOutputFile(OutputFile const &f)
Definition: JobReport.cc:258
JobReport::InputFile & edm::JobReport::JobReportImpl::getInputFileForToken ( JobReport::Token  t)

Definition at line 143 of file JobReport.cc.

References edm::hlt::Exception, inputFiles_, edm::errors::LogicError, and lumiQTWidget::t.

143  {
144  if(t >= inputFiles_.size()) {
146  << "Access reported for input file with token "
147  << t
148  << " but no matching input file is found\n";
149  }
150 
151  if(inputFiles_[t].fileHasBeenClosed) {
153  << "Access reported for input file with token "
154  << t
155  << " after this file has been closed.\n"
156  << "File record follows:\n"
157  << inputFiles_[t]
158  << '\n';
159  }
160 
161  return inputFiles_[t];
162  }
std::vector< InputFile > inputFiles_
Definition: JobReport.h:225
JobReport::OutputFile & edm::JobReport::JobReportImpl::getOutputFileForToken ( JobReport::Token  t)

Definition at line 164 of file JobReport.cc.

References edm::hlt::Exception, edm::errors::LogicError, and lumiQTWidget::t.

164  {
165  if(t >= outputFiles_.size()) {
167  << "Access reported for output file with token "
168  << t
169  << " but no matching output file is found\n";
170  }
171  if(outputFiles_[t].fileHasBeenClosed) {
173  << "Access reported for output file with token "
174  << t
175  << " after this file has been closed.\n"
176  << "File record follows:\n"
177  << outputFiles_[t]
178  << '\n';
179  }
180  return outputFiles_[t];
181  }
std::vector< OutputFile > outputFiles_
Definition: JobReport.h:226
void edm::JobReport::JobReportImpl::insertInputForOutputs ( JobReport::Token  t)

Definition at line 189 of file JobReport.cc.

References GetRecoTauVFromDQM_MC_cff::outFile.

189  {
190  typedef std::vector<JobReport::OutputFile>::iterator iterator;
191  for(iterator outFile = outputFiles_.begin(), outFileEnd = outputFiles_.end(); outFile != outFileEnd; ++outFile) {
192  outFile->contributingInputs.push_back(t);
193  }
194  }
std::vector< OutputFile > outputFiles_
Definition: JobReport.h:226
void edm::JobReport::JobReportImpl::openInputFiles ( std::vector< Token > &  tokens)

Definition at line 201 of file JobReport.cc.

References i.

201  {
202  result.reserve(inputFiles_.size());
203  for(unsigned int i = 0; i < inputFiles_.size(); ++i) {
204  if(inputFiles_[i].fileHasBeenClosed == false) {
205  result.push_back(i);
206  }
207  }
208  }
int i
Definition: DBlmapReader.cc:9
std::vector< InputFile > inputFiles_
Definition: JobReport.h:225
tuple result
Definition: query.py:137
void edm::JobReport::JobReportImpl::openOutputFiles ( std::vector< Token > &  tokens)

Definition at line 215 of file JobReport.cc.

References i.

215  {
216  result.reserve(outputFiles_.size());
217  for(unsigned int i = 0; i < outputFiles_.size(); ++i) {
218  if(outputFiles_[i].fileHasBeenClosed == false) {
219  result.push_back(i);
220  }
221  }
222  }
int i
Definition: DBlmapReader.cc:9
tuple result
Definition: query.py:137
std::vector< OutputFile > outputFiles_
Definition: JobReport.h:226
void edm::JobReport::JobReportImpl::removeInputFileRecord_ ( Token  t)
void edm::JobReport::JobReportImpl::removeOutputFileRecord_ ( Token  t)
void edm::JobReport::JobReportImpl::writeGeneratorInfo ( void  )

Definition at line 312 of file JobReport.cc.

References lumiQueryAPI::msg, and pos.

312  {
313  if(ost_) {
314  *ost_ << "\n<GeneratorInfo>\n";
315  for(std::map<std::string, std::string>::iterator pos = generatorInfo_.begin(),
316  posEnd = generatorInfo_.end();
317  pos != posEnd; ++pos) {
318  std::ostringstream msg;
319  msg << "\n<Data Name=\"" << pos->first
320  << "\" Value=\"" << pos->second << "\"/>";
321  *ost_ << msg.str();
322  }
323  *ost_ << "</GeneratorInfo>\n";
324  }
325  }
std::map< std::string, std::string > generatorInfo_
Definition: JobReport.h:227
void edm::JobReport::JobReportImpl::writeInputFile ( JobReport::InputFile const &  f)

Definition at line 229 of file JobReport.cc.

References f.

229  {
230  if(ost_) {
231  *ost_ << f ;
232  *ost_ << "\n<Runs>";
233  typedef std::map<JobReport::RunNumber, JobReport::RunReport>::const_iterator const_iterator;
234  for(const_iterator iRun = f.runReports.begin(), iRunEnd = f.runReports.end(); iRun != iRunEnd; ++iRun) {
235  *ost_ << iRun->second;
236  }
237  *ost_ << "\n</Runs>\n";
238  *ost_ << "</InputFile>\n";
239  *ost_ << std::flush;
240  }
241  //LogInfo("FwkJob") << f;
242  }
double f[11][100]
void edm::JobReport::JobReportImpl::writeOutputFile ( JobReport::OutputFile const &  f)

Definition at line 258 of file JobReport.cc.

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

258  {
259  if(ost_) {
260  *ost_ << "\n<File>";
261  *ost_ << f;
262 
263  *ost_ << "\n<Runs>";
264  typedef std::map<JobReport::RunNumber, JobReport::RunReport>::const_iterator const_iterator;
265  for(const_iterator iRun = f.runReports.begin(), iRunEnd = f.runReports.end(); iRun != iRunEnd; ++iRun) {
266  *ost_ << iRun->second;
267  }
268  *ost_ << "\n</Runs>\n";
269 
270  *ost_ << "\n<Inputs>";
271  for(std::vector<JobReport::Token>::const_iterator
272  iInput = f.contributingInputs.begin(),
273  iInputEnd = f.contributingInputs.end();
274  iInput != iInputEnd; ++iInput) {
275  JobReport::InputFile inpFile = inputFiles_[*iInput];
276  *ost_ << "\n<Input>";
277  *ost_ << "\n <LFN>" << TiXmlText(inpFile.logicalFileName) << "</LFN>";
278  *ost_ << "\n <PFN>" << TiXmlText(inpFile.physicalFileName) << "</PFN>";
279  *ost_ << "\n <FastCopying>" << findOrDefault(f.fastCopyingInputs, inpFile.physicalFileName) << "</FastCopying>";
280  *ost_ << "\n</Input>";
281  }
282  *ost_ << "\n</Inputs>";
283  *ost_ << "\n</File>\n";
284  }
285  }
std::vector< InputFile > inputFiles_
Definition: JobReport.h:225
tuple InputFile
Open Root file and provide MEs ############.
double f[11][100]
Value const & findOrDefault(std::map< Key, Value > const &m, Key const &k, Value const &defaultValue)
Definition: Map.h:28

Member Data Documentation

std::set<std::string>* edm::JobReport::JobReportImpl::fastClonedBranches_

Definition at line 229 of file JobReport.h.

std::map<std::string, std::string> edm::JobReport::JobReportImpl::generatorInfo_

Definition at line 227 of file JobReport.h.

std::vector<InputFile> edm::JobReport::JobReportImpl::inputFiles_

Definition at line 225 of file JobReport.h.

Referenced by getInputFileForToken().

std::ostream* edm::JobReport::JobReportImpl::ost_

Definition at line 230 of file JobReport.h.

std::vector<OutputFile> edm::JobReport::JobReportImpl::outputFiles_

Definition at line 226 of file JobReport.h.

std::map<std::string, long long> edm::JobReport::JobReportImpl::readBranches_

Definition at line 228 of file JobReport.h.