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_
 
PlotsPerElement event_ex_
 
std::vector< PlotsPerElementhighlight_
 
std::vector< PlotsPerElementmodules_
 
PlotsPerElement overhead_
 
std::vector< PlotsPerProcessprocesses_
 

Detailed Description

Definition at line 416 of file FastTimerService.h.

Constructor & Destructor Documentation

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

Definition at line 778 of file FastTimerService.cc.

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

778  :
779  event_(),
780  event_ex_(),
781  overhead_(),
782  highlight_(groups.size()),
783  modules_(job.size()),
784  processes_()
785 {
786  processes_.reserve(job.processes().size());
787  for (auto const& process: job.processes())
788  processes_.emplace_back(process);
789 }
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 806 of file FastTimerService.cc.

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

817 {
818  const std::string basedir = booker.pwd();
819 
820  // event summary plots
821  event_.book(booker,
822  "event", "Event",
823  event_ranges,
824  lumisections,
825  byls);
826 
827  event_ex_.book(booker,
828  "event_ex", "Event (explicit)",
829  event_ranges,
830  lumisections,
831  byls);
832 
833  overhead_.book(booker,
834  "overhead", "Overhead",
835  event_ranges,
836  lumisections,
837  byls);
838 
839  modules_[job.source().id()].book(booker,
840  "source", "Source",
841  module_ranges,
842  lumisections,
843  byls);
844 
845  // plot the time spent in few given groups of modules
846  for (unsigned int group: boost::irange(0ul, groups.size())) {
847  auto const & label = groups[group].label;
848  highlight_[group].book(booker,
849  "highlight " + label, "Highlight " + label,
850  event_ranges,
851  lumisections,
852  byls);
853  }
854 
855  // plots per subprocess (event, modules, paths and endpaths)
856  for (unsigned int pid: boost::irange(0ul, job.processes().size())) {
857  auto const& process = job.processDescription(pid);
858  processes_[pid].book(booker,
859  job, process,
860  event_ranges,
861  path_ranges,
862  lumisections,
863  bypath,
864  byls);
865 
866  if (bymodule) {
867  booker.setCurrentFolder(basedir + "/process " + process.name_ + " modules");
868  for (unsigned int id: process.modules_)
869  {
870  auto const& module_name = job.module(id).moduleLabel();
871  modules_[id].book(booker,
873  module_ranges,
874  lumisections,
875  byls);
876  }
877  booker.setCurrentFolder(basedir);
878  }
879  }
880 }
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 883 of file FastTimerService.cc.

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

884 {
885  // fill total event plots
886  event_.fill(data.total, ls);
887  event_ex_.fill(data.event, ls);
888  overhead_.fill(data.overhead, ls);
889 
890  // fill highltight plots
891  for (unsigned int group: boost::irange(0ul, highlight_.size()))
892  highlight_[group].fill_fraction(data.total, data.highlight[group], ls);
893 
894  // fill modules plots
895  for (unsigned int id: boost::irange(0ul, modules_.size()))
896  modules_[id].fill(data.modules[id].total, ls);
897 
898  for (unsigned int pid: boost::irange(0ul, processes_.size()))
899  processes_[pid].fill(job.processDescription(pid), data, data.processes[pid], ls);
900 }
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 792 of file FastTimerService.cc.

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

793 {
794  event_.reset();
795  event_ex_.reset();
796  overhead_.reset();
797  for (auto & module: highlight_)
798  module.reset();
799  for (auto & module: modules_)
800  module.reset();
801  for (auto & process: processes_)
802  process.reset();
803 }
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 428 of file FastTimerService.h.

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

PlotsPerElement FastTimerService::PlotsPerJob::event_ex_
private

Definition at line 429 of file FastTimerService.h.

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

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

Definition at line 432 of file FastTimerService.h.

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

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

Definition at line 434 of file FastTimerService.h.

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

PlotsPerElement FastTimerService::PlotsPerJob::overhead_
private

Definition at line 430 of file FastTimerService.h.

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

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

Definition at line 436 of file FastTimerService.h.

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