CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
FastTimerService::PlotsPerJob Class Reference

Public Member Functions

void book (DQMStore::IBooker &, ProcessCallGraph const &, std::vector< GroupOfModules > const &, PlotRanges const &event_ranges, PlotRanges const &path_ranges, PlotRanges const &module_ranges, unsigned int lumisections, bool bymodule, bool bypath, bool byls)
 
void fill (ProcessCallGraph const &, ResourcesPerJob const &, unsigned int ls)
 
 PlotsPerJob (ProcessCallGraph const &job, std::vector< GroupOfModules > const &groups)
 
void reset ()
 

Private Attributes

PlotsPerElement event_
 
std::vector< PlotsPerElementhighlight_
 
std::vector< PlotsPerElementmodules_
 
std::vector< PlotsPerProcessprocesses_
 

Detailed Description

Definition at line 390 of file FastTimerService.h.

Constructor & Destructor Documentation

FastTimerService::PlotsPerJob::PlotsPerJob ( ProcessCallGraph const &  job,
std::vector< GroupOfModules > const &  groups 
)

Definition at line 672 of file FastTimerService.cc.

References LaserDQM_cfg::process, ProcessCallGraph::processes(), and processes_.

672  :
673  event_(),
674  highlight_(groups.size()),
675  modules_(job.size()),
676  processes_()
677 {
678  processes_.reserve(job.processes().size());
679  for (auto const& process: job.processes())
680  processes_.emplace_back(process);
681 }
std::vector< PlotsPerElement > highlight_
std::vector< PlotsPerElement > modules_
std::vector< PlotsPerProcess > processes_

Member Function Documentation

void FastTimerService::PlotsPerJob::book ( DQMStore::IBooker booker,
ProcessCallGraph const &  job,
std::vector< GroupOfModules > const &  groups,
PlotRanges const &  event_ranges,
PlotRanges const &  path_ranges,
PlotRanges const &  module_ranges,
unsigned int  lumisections,
bool  bymodule,
bool  bypath,
bool  byls 
)

Definition at line 696 of file FastTimerService.cc.

References FastTimerService::PlotsPerElement::book(), event_, edmIntegrityCheck::group, highlight_, hcalTTPDigis_cfi::id, edm::ModuleDescription::id(), diffTwoXMLs::label, ProcessCallGraph::module(), customisers::module_name, edm::ModuleDescription::moduleLabel(), modules_, sysUtil::pid, LaserDQM_cfg::process, ProcessCallGraph::processDescription(), ProcessCallGraph::processes(), processes_, DQMStore::IBooker::pwd(), DQMStore::IBooker::setCurrentFolder(), ProcessCallGraph::source(), and AlCaHLTBitMon_QueryRunRegistry::string.

707 {
708  const std::string basedir = booker.pwd();
709 
710  // event summary plots
711  event_.book(booker,
712  "event", "Event",
713  event_ranges,
714  lumisections,
715  byls);
716 
717  modules_[job.source().id()].book(booker,
718  "source", "Source",
719  module_ranges,
720  lumisections,
721  byls);
722 
723  // plot the time spent in few given groups of modules
724  for (unsigned int group: boost::irange(0ul, groups.size())) {
725  auto const & label = groups[group].label;
726  highlight_[group].book(booker,
727  "highlight " + label, "Highlight " + label,
728  event_ranges,
729  lumisections,
730  byls);
731  }
732 
733  // plots per subprocess (event, modules, paths and endpaths)
734  for (unsigned int pid: boost::irange(0ul, job.processes().size())) {
735  auto const& process = job.processDescription(pid);
736  processes_[pid].book(booker,
737  job, process,
738  event_ranges,
739  path_ranges,
740  lumisections,
741  bypath,
742  byls);
743 
744  if (bymodule) {
745  booker.setCurrentFolder(basedir + "/process " + process.name_ + " modules");
746  for (unsigned int id: process.modules_)
747  {
748  auto const& module_name = job.module(id).moduleLabel();
749  modules_[id].book(booker,
751  module_ranges,
752  lumisections,
753  byls);
754  }
755  booker.setCurrentFolder(basedir);
756  }
757  }
758 }
const std::string & pwd(void)
Definition: DQMStore.cc:285
std::vector< PlotsPerElement > highlight_
std::vector< PlotsPerElement > modules_
std::vector< PlotsPerProcess > processes_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
void book(DQMStore::IBooker &, std::string const &name, std::string const &title, PlotRanges const &ranges, unsigned int lumisections, bool byls)
void FastTimerService::PlotsPerJob::fill ( ProcessCallGraph const &  job,
ResourcesPerJob const &  data,
unsigned int  ls 
)

Definition at line 761 of file FastTimerService.cc.

References data, event_, FastTimerService::PlotsPerElement::fill(), edmIntegrityCheck::group, FastTimerService::ResourcesPerJob::highlight, highlight_, hcalTTPDigis_cfi::id, eostools::ls(), FastTimerService::ResourcesPerJob::modules, modules_, sysUtil::pid, ProcessCallGraph::processDescription(), FastTimerService::ResourcesPerJob::processes, processes_, and FastTimerService::ResourcesPerJob::total.

762 {
763  // fill total event plots
764  event_.fill(data.total, ls);
765 
766  // fill highltight plots
767  for (unsigned int group: boost::irange(0ul, highlight_.size()))
768  highlight_[group].fill_fraction(data.total, data.highlight[group], ls);
769 
770  // fill modules plots
771  for (unsigned int id: boost::irange(0ul, modules_.size()))
772  modules_[id].fill(data.modules[id].total, ls);
773 
774  for (unsigned int pid: boost::irange(0ul, processes_.size()))
775  processes_[pid].fill(job.processDescription(pid), data, data.processes[pid], ls);
776 }
void fill(Resources const &, unsigned int lumisection)
std::vector< PlotsPerElement > highlight_
std::vector< PlotsPerElement > modules_
def ls(path, rec=False)
Definition: eostools.py:348
std::vector< PlotsPerProcess > processes_
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
void FastTimerService::PlotsPerJob::reset ( void  )

Definition at line 684 of file FastTimerService.cc.

References event_, highlight_, modules_, LaserDQM_cfg::process, processes_, and FastTimerService::PlotsPerElement::reset().

685 {
686  event_.reset();
687  for (auto & module: highlight_)
688  module.reset();
689  for (auto & module: modules_)
690  module.reset();
691  for (auto & process: processes_)
692  process.reset();
693 }
std::vector< PlotsPerElement > highlight_
std::vector< PlotsPerElement > modules_
std::vector< PlotsPerProcess > processes_
Definition: vlib.h:208

Member Data Documentation

PlotsPerElement FastTimerService::PlotsPerJob::event_
private

Definition at line 402 of file FastTimerService.h.

Referenced by book(), fill(), and reset().

std::vector<PlotsPerElement> FastTimerService::PlotsPerJob::highlight_
private

Definition at line 404 of file FastTimerService.h.

Referenced by book(), fill(), and reset().

std::vector<PlotsPerElement> FastTimerService::PlotsPerJob::modules_
private

Definition at line 406 of file FastTimerService.h.

Referenced by book(), fill(), and reset().

std::vector<PlotsPerProcess> FastTimerService::PlotsPerJob::processes_
private

Definition at line 408 of file FastTimerService.h.

Referenced by book(), fill(), PlotsPerJob(), and reset().