135 TProfile
const *
paths =
nullptr;
139 if (( me = dqm->get(current_path +
"/paths_active_time") )) {
143 if (( me = dqm->get(current_path +
"/paths_total_time") )) {
147 if (( me = dqm->get(current_path +
"/paths_exclusive_time") )) {
152 if (
paths ==
nullptr)
159 dqm->setCurrentFolder(current_path +
"/Paths");
160 for (uint32_t
p = 1;
p <=
size; ++
p) {
163 MonitorElement * me_counter = dqm->get( current_path +
"/Paths/" + label +
"_module_counter" );
164 MonitorElement * me_total = dqm->get( current_path +
"/Paths/" + label +
"_module_total" );
165 if (me_counter == 0
or me_total == 0)
169 uint32_t bins = counter->GetXaxis()->GetNbins();
170 double min = counter->GetXaxis()->GetXmin();
171 double max = counter->GetXaxis()->GetXmax();
172 TH1F *
average = dqm->book1D(label +
"_module_average", label +
" module average", bins, min, max)->getTH1F();
173 average ->SetYTitle(
"processing time [ms]");
174 TH1F * running = dqm->book1D(label +
"_module_running", label +
" module running", bins, min, max)->getTH1F();
175 running ->SetYTitle(
"processing time [ms]");
176 TH1F *
efficiency = dqm->book1D(label +
"_module_efficiency", label +
" module efficiency", bins, min, max)->getTH1F();
177 efficiency->SetYTitle(
"filter efficiency");
178 efficiency->SetMaximum(1.05);
179 for (uint32_t
i = 1;
i <= bins; ++
i) {
180 const char *
module = counter->GetXaxis()->GetBinLabel(
i);
181 average ->GetXaxis()->SetBinLabel(
i, module);
182 running ->GetXaxis()->SetBinLabel(
i, module);
183 efficiency->GetXaxis()->SetBinLabel(
i, module);
184 double t = total ->GetBinContent(
i);
185 double n = counter->GetBinContent(
i);
186 double p = counter->GetBinContent(
i+1);
187 average ->SetBinContent(
i, t /
events);
189 running ->SetBinContent(
i, t / n);
190 efficiency->SetBinContent(
i, p / n);
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
const T & max(const T &a, const T &b)
TH1F * getTH1F(void) const
static std::atomic< unsigned int > counter
TProfile * getTProfile(void) const
tuple size
Write out results.