12 #include "dqm/modules/DelayDQMModule.h"
14 #include "TDirectory.h"
32 setDescription(
"Processing Delay DQM module");
33 setPropertyFlags(c_ParallelProcessingCertified);
34 addParam(
"histogramDirectoryName", m_histogramDirectoryName,
"Name of the directory where histograms will be placed",
36 addParam(
"title", m_title,
"Prefix for Title (ERECO, HLT, ...)", std::string(
"Processing "));
37 addParam(
"useMeta", m_useMeta,
"Use time from EvtMetadata or FTSW",
false);
44 TAxis* axis = h->GetXaxis();
45 Int_t bins = axis->GetNbins();
47 Axis_t from = axis->GetXmin();
48 Axis_t to = axis->GetXmax();
49 Axis_t width = (to - from) / bins;
50 Axis_t* new_bins =
new Axis_t[bins + 1];
52 for (Int_t i = 0; i <= bins; i++) {
53 new_bins[i] = TMath::Power(10, from + i * width);
55 axis->Set(bins, new_bins);
66 TDirectory* oldDir = gDirectory;
73 m_DelayS =
new TH1D(
"DelayS", (
m_title +
"Delay;time /s").c_str(), 600, 0, 600);
74 m_DelayMs =
new TH1D(
"DelayMs", (
m_title +
"Delay;time /ms").c_str(), 200, 0, 2000);
75 m_DelayLog =
new TH1D(
"DelayLog", (
m_title +
"Delay; time /s").c_str(), 200, -3, 6);
110 using namespace std::chrono;
111 nanoseconds ns = duration_cast<nanoseconds> (system_clock::now().time_since_epoch());
112 nanoseconds event_time{};
122 it.GetPCTimeVal(0, &tv);
123 event_time = (
static_cast<seconds
>(tv.tv_sec)) + (
static_cast<microseconds
>(tv.tv_usec));
127 auto deltaT = (duration_cast<milliseconds> (ns - event_time)).count();