63 std::vector<std::string>
folders;
64 if (getter.get(
m_dqm_path +
"/throughput_sourced")) {
68 static const boost::regex running_n_processes(
".*/Running .*");
70 std::vector<std::string> subdirs = getter.getSubdirs();
71 for (
auto const &subdir : subdirs) {
72 if (boost::regex_match(subdir, running_n_processes)) {
73 if (getter.get(subdir +
"/throughput_sourced"))
75 folders.push_back(subdir);
82 booker.setCurrentFolder(summary_folder);
84 auto folder = folders.begin();
86 booker.book1D(
"throughput_sourced", getter.get(*
folder +
"/throughput_sourced")->getTH1F())->getTH1F();
88 booker.book1D(
"throughput_retired", getter.get(*
folder +
"/throughput_retired")->getTH1F())->getTH1F();
91 sourced->Add(getter.get(*
folder +
"/throughput_sourced")->getTH1F());
92 retired->Add(getter.get(*
folder +
"/throughput_retired")->getTH1F());
95 folders.push_back(
std::move(summary_folder));
97 for (
auto const &
folder : folders) {
98 TH1F *sourced = getter.get(
folder +
"/throughput_sourced")->getTH1F();
99 TH1F *retired = getter.get(
folder +
"/throughput_retired")->getTH1F();
100 booker.setCurrentFolder(
folder);
101 unsigned int nbins = sourced->GetXaxis()->GetNbins();
102 double range = sourced->GetXaxis()->GetXmax();
105 TH1F *concurrent = booker.book1D(
"concurrent",
"Concurrent events being processed", nbins, 0., range)->getTH1F();
108 for (
unsigned int i = 0;
i <= nbins + 1; ++
i) {
109 sum += sourced->GetBinContent(
i) - retired->GetBinContent(
i);
110 concurrent->Fill(concurrent->GetXaxis()->GetBinCenter(
i), sum);
114 double avg_min =
std::min(sourced->GetMinimum(0.), retired->GetMinimum(0.));
115 double avg_max =
std::max(sourced->GetMaximum(), retired->GetMaximum());
116 double width = avg_max - avg_min;
117 avg_min = std::floor(avg_min - width * 0.2);
120 avg_max =
std::ceil(avg_max + width * 0.2);
121 width = avg_max - avg_min;
126 booker.setCurrentFolder(
folder);
128 average = booker.book1D(
"average_sourced",
"Throughput (sourced events)", (
int)width, avg_min, avg_max)->getTH1F();
129 for (
unsigned int i = first;
i <=
last; ++
i)
130 average->Fill(sourced->GetBinContent(
i));
133 first = retired->FindFirstBinAbove(0.);
134 last = retired->FindLastBinAbove(0.);
135 booker.setCurrentFolder(
folder);
137 average = booker.book1D(
"average_retired",
"Throughput (retired events)", (
int)width, avg_min, avg_max)->getTH1F();
138 for (
unsigned int i = first;
i <=
last; ++
i)
139 average->Fill(retired->GetBinContent(
i));
constexpr int32_t ceil(float num)
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle otherwise a larger ***bin number will have no effects or even make the ***precision lower than before *********************************************************************************************************it lies in three folders
unsigned long long uint64_t
const std::string m_dqm_path