CMS 3D CMS Logo

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

Public Member Functions

void book (DQMStore::ConcurrentBooker &, 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, bool transitions)
 
void fill (ProcessCallGraph const &, ResourcesPerJob const &, unsigned int ls)
 
void fill_lumi (AtomicResources const &, unsigned int lumisection)
 
void fill_run (AtomicResources const &)
 
 PlotsPerJob (ProcessCallGraph const &job, std::vector< GroupOfModules > const &groups)
 

Private Attributes

PlotsPerElement event_
 
PlotsPerElement event_ex_
 
std::vector< PlotsPerElementhighlight_
 
PlotsPerElement lumi_
 
std::vector< PlotsPerElementmodules_
 
PlotsPerElement overhead_
 
std::vector< PlotsPerProcessprocesses_
 
PlotsPerElement run_
 

Detailed Description

Definition at line 376 of file FastTimerService.h.

Constructor & Destructor Documentation

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

Definition at line 729 of file FastTimerService.cc.

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

729  :
730  event_(),
731  event_ex_(),
732  overhead_(),
733  highlight_(groups.size()),
734  modules_(job.size()),
735  processes_()
736 {
737  processes_.reserve(job.processes().size());
738  for (auto const& process: job.processes())
739  processes_.emplace_back(process);
740 }
std::vector< PlotsPerElement > highlight_
std::vector< PlotsPerElement > modules_
std::vector< PlotsPerProcess > processes_

Member Function Documentation

void FastTimerService::PlotsPerJob::book ( DQMStore::ConcurrentBooker 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,
bool  transitions 
)

Definition at line 743 of file FastTimerService.cc.

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

755 {
756  const std::string basedir = booker.pwd();
757 
758  // event summary plots
759  event_.book(booker,
760  "event", "Event",
761  event_ranges,
762  lumisections,
763  byls);
764 
765  event_ex_.book(booker,
766  "explicit", "Event (explicit)",
767  event_ranges,
768  lumisections,
769  byls);
770 
771  overhead_.book(booker,
772  "overhead", "Overhead",
773  event_ranges,
774  lumisections,
775  byls);
776 
777  modules_[job.source().id()].book(booker,
778  "source", "Source",
779  module_ranges,
780  lumisections,
781  byls);
782 
783  if (transitions) {
784  lumi_.book(booker,
785  "lumi", "LumiSection transitions",
786  event_ranges,
787  lumisections,
788  byls);
789 
790  run_.book(booker,
791  "run", "Run transtions",
792  event_ranges,
793  lumisections,
794  false);
795  }
796 
797  // plot the time spent in few given groups of modules
798  for (unsigned int group: boost::irange(0ul, groups.size())) {
799  auto const & label = groups[group].label;
800  highlight_[group].book(booker,
801  "highlight " + label, "Highlight " + label,
802  event_ranges,
803  lumisections,
804  byls);
805  }
806 
807  // plots per subprocess (event, modules, paths and endpaths)
808  for (unsigned int pid: boost::irange(0ul, job.processes().size())) {
809  auto const& process = job.processDescription(pid);
810  processes_[pid].book(booker,
811  job, process,
812  event_ranges,
813  path_ranges,
814  lumisections,
815  bypath,
816  byls);
817 
818  if (bymodule) {
819  booker.setCurrentFolder(basedir + "/process " + process.name_ + " modules");
820  for (unsigned int id: process.modules_)
821  {
822  auto const& module_name = job.module(id).moduleLabel();
823  modules_[id].book(booker,
825  module_ranges,
826  lumisections,
827  byls);
828  }
829  booker.setCurrentFolder(basedir);
830  }
831  }
832 }
void book(DQMStore::ConcurrentBooker &, std::string const &name, std::string const &title, PlotRanges const &ranges, unsigned int lumisections, bool byls)
std::vector< PlotsPerElement > highlight_
char const * label
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
std::vector< PlotsPerElement > modules_
std::vector< PlotsPerProcess > processes_
std::string const & pwd()
Definition: DQMStore.cc:278
void FastTimerService::PlotsPerJob::fill ( ProcessCallGraph const &  job,
ResourcesPerJob const &  data,
unsigned int  ls 
)

Definition at line 835 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.

836 {
837  // fill total event plots
838  event_.fill(data.total, ls);
839  event_ex_.fill(data.event, ls);
840  overhead_.fill(data.overhead, ls);
841 
842  // fill highltight plots
843  for (unsigned int group: boost::irange(0ul, highlight_.size()))
844  highlight_[group].fill_fraction(data.total, data.highlight[group], ls);
845 
846  // fill modules plots
847  for (unsigned int id: boost::irange(0ul, modules_.size()))
848  modules_[id].fill(data.modules[id].total, ls);
849 
850  for (unsigned int pid: boost::irange(0ul, processes_.size()))
851  processes_[pid].fill(job.processDescription(pid), data, data.processes[pid], ls);
852 }
void fill(Resources const &, unsigned int lumisection)
std::vector< PlotsPerElement > highlight_
std::vector< PlotsPerElement > modules_
def ls(path, rec=False)
Definition: eostools.py:349
std::vector< PlotsPerProcess > processes_
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
void FastTimerService::PlotsPerJob::fill_lumi ( AtomicResources const &  data,
unsigned int  lumisection 
)

Definition at line 862 of file FastTimerService.cc.

References FastTimerService::PlotsPerElement::fill(), and lumi_.

863 {
864  // fill lumisection transition plots
865  lumi_.fill(data, ls);
866 }
void fill(Resources const &, unsigned int lumisection)
def ls(path, rec=False)
Definition: eostools.py:349
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
void FastTimerService::PlotsPerJob::fill_run ( AtomicResources const &  data)

Definition at line 855 of file FastTimerService.cc.

References FastTimerService::PlotsPerElement::fill(), and run_.

856 {
857  // fill run transition plots
858  run_.fill(data, 0);
859 }
void fill(Resources const &, unsigned int lumisection)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82

Member Data Documentation

PlotsPerElement FastTimerService::PlotsPerJob::event_
private

Definition at line 389 of file FastTimerService.h.

Referenced by book(), and fill().

PlotsPerElement FastTimerService::PlotsPerJob::event_ex_
private

Definition at line 390 of file FastTimerService.h.

Referenced by book(), and fill().

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

Definition at line 396 of file FastTimerService.h.

Referenced by book(), and fill().

PlotsPerElement FastTimerService::PlotsPerJob::lumi_
private

Definition at line 393 of file FastTimerService.h.

Referenced by book(), and fill_lumi().

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

Definition at line 398 of file FastTimerService.h.

Referenced by book(), and fill().

PlotsPerElement FastTimerService::PlotsPerJob::overhead_
private

Definition at line 391 of file FastTimerService.h.

Referenced by book(), and fill().

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

Definition at line 400 of file FastTimerService.h.

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

PlotsPerElement FastTimerService::PlotsPerJob::run_
private

Definition at line 394 of file FastTimerService.h.

Referenced by book(), and fill_run().