Belle II Software development
DQMHistAnalysisEventT0TriggerJitter.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8//+
9// File : DQMHistAnalysisEventT0TriggerJitter.cc
10// Description : module for trigger jitter/EventT0 DQM histogram analysis
11//-
12
13
14#include <dqm/analysis/modules/DQMHistAnalysisEventT0TriggerJitter.h>
15
16#include <TROOT.h>
17#include <TStyle.h>
18#include <TF1.h>
19#include <TMath.h>
20
21using namespace Belle2;
22
23//-----------------------------------------------------------------
24// Register the Module
25//-----------------------------------------------------------------
26REG_MODULE(DQMHistAnalysisEventT0TriggerJitter);
27
28//-----------------------------------------------------------------
29// Implementation
30//-----------------------------------------------------------------
31
34{
35 setDescription("Determining and processing EventT0s from different subdetectors (ECL, CDC, TOP, SVD) for different L1 trigger sources (ECL, CDC, and TOP) to estimate trigger jitter information for different HLT event types (hadron, BhaBha, ยตยต).");
36
37 //Parameter definition
38 addParam("min_nEntries", m_nEntriesMin, "Minimum number of entries to process the histogram.", m_nEntriesMin);
39 addParam("prefixCanvas", m_prefixCanvas, "Prefix to be added to canvas filename when saved as pdf.", std::string("c"));
40 addParam("printCanvas", m_printCanvas, "If true, prints pdf of the analysis canvas.", bool(false));
41}
42
43
45
47{
48 gROOT->cd();
49
51
52 m_monObj = getMonitoringObject("eventT0");
53}
54
55
57{
59}
60
62{
66
67 if (m_printCanvas) {
69 }
70}
71
73{
75}
76
78{
79 double N = par[0];
80 double frac = par[1];
81 double mean = par[2];
82 double sigma = par[3];
83 double mean2 = par[4];
84 double sigma2 = par[5];
85
86 return N * frac * TMath::Gaus(x[0], mean, sigma) + N * (1 - frac) * TMath::Gaus(x[0], mean2, sigma2);
87}
88
90{
91
92 if (h == nullptr) {
93 B2DEBUG(20, "h == nullptr");
94 m_monObj->setVariable(Form("fit_%s", tag.Data()), 0);
95 return false;
96 }
97
98 // The default value for the EventT0 value is -1000, but bins start at -100, so we might mostly fill the underflow bin if
99 // EventT0 for a detector is not present. And also the nominal EventT0 might be too big or too small. Only use the content
100 // of the actually useful bins to decide whether or not to fit the histogram.
101 auto nValidEntries = h->GetEntries() - h->GetBinContent(0) - h->GetBinContent(h->GetNbinsX() + 1);
102 if (static_cast<uint>(nValidEntries) < m_nEntriesMin) {
103 B2DEBUG(20, "not enough entries");
104 m_monObj->setVariable(Form("fit_%s", tag.Data()), 0);
105 return false;
106 }
107
108
109 //scale the histogram only with content of valid bins, ignore over and underflow bins
110 h->Scale(1. / nValidEntries);
111 h->GetXaxis()->SetRangeUser(-50, 50);
112
113 //define the fitting function
115 fitf.SetParNames("N", "f_{1}", "#mu_{1}", "#sigma_{1}", "#mu_{2}", "#sigma_{2}");
116 fitf.SetParameters(0.1, 0.8, 0, 5, 0, 15);
117 fitf.SetParLimits(1, 0, 1); //fraction
118 fitf.SetParLimits(3, 0, 100); //sigma1
119 fitf.SetParLimits(5, 0, 100); //sigma2
120
121 if (h->Fit(&fitf, "SR+") != 0) {
122 B2DEBUG(20, "failed fit");
123 m_monObj->setVariable(Form("fit_%s", tag.Data()), 0);
124 return false;
125 }
126
127 Double_t par[6];
128 fitf.GetParameters(&par[0]);
129 Double_t parErr[6];
130 for (int i = 0; i < 6; i++)
131 parErr[i] = fitf.GetParError(i) ;
132
133
134 //define gaussian components
135 TF1 gauss1("gauss1", "gaus", -100, 100);
136 TF1 gauss2("gauss2", "gaus", -100, 100);
137
138 gauss1.SetLineColor(kBlue);
139 gauss1.SetLineStyle(kDashed);
140 gauss1.SetParameters(par[0]*par[1], par[2], par[3]);
141
142 gauss2.SetLineColor(kRed);
143 gauss2.SetLineStyle(kDashed);
144 gauss2.SetParameters(par[0] * (1 - par[1]), par[4], par[5]);
145
146 m_monObj->setVariable(Form("fit_%s", tag.Data()), 1);
147 m_monObj->setVariable(Form("N_%s", tag.Data()), nValidEntries, TMath::Sqrt(nValidEntries));
148 m_monObj->setVariable(Form("f_%s", tag.Data()), par[1], parErr[1]);
149 m_monObj->setVariable(Form("mean1_%s", tag.Data()), par[2], parErr[2]);
150 m_monObj->setVariable(Form("sigma1_%s", tag.Data()), par[3], parErr[3]);
151 m_monObj->setVariable(Form("mean2_%s", tag.Data()), par[4], parErr[4]);
152 m_monObj->setVariable(Form("sigma2_%s", tag.Data()), par[5], parErr[5]);
153
154 //SETUP gSTYLE - all plots
155 gStyle->SetOptFit(1111);
156
157 h->DrawClone();
158 fitf.DrawClone("same");
159 gauss1.DrawClone("same");
160 gauss2.DrawClone("same");
161
162 return true;
163
164}
165
167{
168 // --- ECL EventT0 plots for ECLTRG ---
169
170 // find ECL EventT0 Hadrons ECLTRG histogram and process it
171 TH1* h = findHist("EventT0/m_histEventT0_ECL_hadron_L1_ECLTRG");
172 TString tag = "hadronECLTRG";
174 if (processHistogram(h, tag)) {
175 m_cECLTimeHadronsECLTRG->SetFillColor(0);
176 m_cECLTimeHadronsECLTRG->Modified();
177 m_cECLTimeHadronsECLTRG->Update();
178 } else {
179 B2DEBUG(29, Form("Histogram ECL EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
180 if (h) h->Draw();
181 m_cECLTimeHadronsECLTRG->SetFillColor(kGray);
183 }
184
185 // find ECL EventT0 Bhabhas ECLTRG histogram and process it
186 h = findHist("EventT0/m_histEventT0_ECL_bhabha_L1_ECLTRG");
187 tag = "bhabhaECLTRG";
189 if (processHistogram(h, tag)) {
190 m_cECLTimeBhaBhaECLTRG->SetFillColor(0);
191 m_cECLTimeBhaBhaECLTRG->Modified();
192 m_cECLTimeBhaBhaECLTRG->Update();
193 } else {
194 B2DEBUG(29, Form("Histogram ECL EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
195 if (h) h->Draw();
196 m_cECLTimeBhaBhaECLTRG->SetFillColor(kGray);
198 }
199
200 // find ECL EventT0 Mumus ECLTRG histogram and process it
201 h = findHist("EventT0/m_histEventT0_ECL_mumu_L1_ECLTRG");
202 tag = "mumuECLTRG";
204 if (processHistogram(h, tag)) {
205 m_cECLTimeMuMuECLTRG->SetFillColor(0);
206 m_cECLTimeMuMuECLTRG->Modified();
207 m_cECLTimeMuMuECLTRG->Update();
208 } else {
209 B2DEBUG(29, Form("Histogram ECL EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
210 if (h) h->Draw();
211 m_cECLTimeMuMuECLTRG->SetFillColor(kGray);
212 m_cECLTimeMuMuECLTRG->Draw();
213 }
214
215
216 // --- CDC EventT0 plots for ECLTRG ---
217
218 // find CDC EventT0 Hadrons ECLTRG histogram and process it
219 h = findHist("EventT0/m_histEventT0_CDC_hadron_L1_ECLTRG");
220 tag = "hadronECLTRG";
222 if (processHistogram(h, tag)) {
223 m_cCDCTimeHadronsECLTRG->SetFillColor(0);
224 m_cCDCTimeHadronsECLTRG->Modified();
225 m_cCDCTimeHadronsECLTRG->Update();
226 } else {
227 B2DEBUG(29, Form("Histogram CDC EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
228 if (h) h->Draw();
229 m_cCDCTimeHadronsECLTRG->SetFillColor(kGray);
231 }
232
233 // find CDC EventT0 Bhabhas ECLTRG histogram and process it
234 h = findHist("EventT0/m_histEventT0_CDC_bhabha_L1_ECLTRG");
235 tag = "bhabhaECLTRG";
237 if (processHistogram(h, tag)) {
238 m_cCDCTimeBhaBhaECLTRG->SetFillColor(0);
239 m_cCDCTimeBhaBhaECLTRG->Modified();
240 m_cCDCTimeBhaBhaECLTRG->Update();
241 } else {
242 B2DEBUG(29, Form("Histogram CDC EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
243 if (h) h->Draw();
244 m_cCDCTimeBhaBhaECLTRG->SetFillColor(kGray);
246 }
247
248 // find CDC EventT0 Mumus ECLTRG histogram and process it
249 h = findHist("EventT0/m_histEventT0_CDC_mumu_L1_ECLTRG");
250 tag = "mumuECLTRG";
252 if (processHistogram(h, tag)) {
253 m_cCDCTimeMuMuECLTRG->SetFillColor(0);
254 m_cCDCTimeMuMuECLTRG->Modified();
255 m_cCDCTimeMuMuECLTRG->Update();
256 } else {
257 B2DEBUG(29, Form("Histogram CDC EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
258 if (h) h->Draw();
259 m_cCDCTimeMuMuECLTRG->SetFillColor(kGray);
260 m_cCDCTimeMuMuECLTRG->Draw();
261 }
262
263
264 // --- TOP EventT0 plots for ECLTRG ---
265
266 // find TOP EventT0 Hadrons ECLTRG histogram and process it
267 h = findHist("EventT0/m_histEventT0_TOP_hadron_L1_ECLTRG");
268 tag = "hadronECLTRG";
270 if (processHistogram(h, tag)) {
271 m_cTOPTimeHadronsECLTRG->SetFillColor(0);
272 m_cTOPTimeHadronsECLTRG->Modified();
273 m_cTOPTimeHadronsECLTRG->Update();
274 } else {
275 B2DEBUG(29, Form("Histogram TOP EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
276 if (h) h->Draw();
277 m_cTOPTimeHadronsECLTRG->SetFillColor(kGray);
279 }
280
281 // find TOP EventT0 Bhabhas ECLTRG histogram and process it
282 h = findHist("EventT0/m_histEventT0_TOP_bhabha_L1_ECLTRG");
283 tag = "bhabhaECLTRG";
285 if (processHistogram(h, tag)) {
286 m_cTOPTimeBhaBhaECLTRG->SetFillColor(0);
287 m_cTOPTimeBhaBhaECLTRG->Modified();
288 m_cTOPTimeBhaBhaECLTRG->Update();
289 } else {
290 B2DEBUG(29, Form("Histogram TOP EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
291 if (h) h->Draw();
292 m_cTOPTimeBhaBhaECLTRG->SetFillColor(kGray);
294 }
295
296 // find TOP EventT0 Mumus ECLTRG histogram and process it
297 h = findHist("EventT0/m_histEventT0_TOP_mumu_L1_ECLTRG");
298 tag = "mumuECLTRG";
300 if (processHistogram(h, tag)) {
301 m_cTOPTimeMuMuECLTRG->SetFillColor(0);
302 m_cTOPTimeMuMuECLTRG->Modified();
303 m_cTOPTimeMuMuECLTRG->Update();
304 } else {
305 B2DEBUG(29, Form("Histogram TOP EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
306 if (h) h->Draw();
307 m_cTOPTimeMuMuECLTRG->SetFillColor(kGray);
308 m_cTOPTimeMuMuECLTRG->Draw();
309 }
310
311
312 // --- SVD EventT0 plots for ECLTRG ---
313
314 // find SVD EventT0 Hadrons ECLTRG histogram and process it
315 h = findHist("EventT0/m_histEventT0_SVD_hadron_L1_ECLTRG");
316 tag = "hadronECLTRG";
318 if (processHistogram(h, tag)) {
319 m_cSVDTimeHadronsECLTRG->SetFillColor(0);
320 m_cSVDTimeHadronsECLTRG->Modified();
321 m_cSVDTimeHadronsECLTRG->Update();
322 } else {
323 B2DEBUG(29, Form("Histogram SVD EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
324 if (h) h->Draw();
325 m_cSVDTimeHadronsECLTRG->SetFillColor(kGray);
327 }
328
329 // find SVD EventT0 Bhabhas ECLTRG histogram and process it
330 h = findHist("EventT0/m_histEventT0_SVD_bhabha_L1_ECLTRG");
331 tag = "bhabhaECLTRG";
333 if (processHistogram(h, tag)) {
334 m_cSVDTimeBhaBhaECLTRG->SetFillColor(0);
335 m_cSVDTimeBhaBhaECLTRG->Modified();
336 m_cSVDTimeBhaBhaECLTRG->Update();
337 } else {
338 B2DEBUG(29, Form("Histogram SVD EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
339 if (h) h->Draw();
340 m_cSVDTimeBhaBhaECLTRG->SetFillColor(kGray);
342 }
343
344 // find SVD EventT0 Mumus ECLTRG histogram and process it
345 h = findHist("EventT0/m_histEventT0_SVD_mumu_L1_ECLTRG");
346 tag = "mumuECLTRG";
348 if (processHistogram(h, tag)) {
349 m_cSVDTimeMuMuECLTRG->SetFillColor(0);
350 m_cSVDTimeMuMuECLTRG->Modified();
351 m_cSVDTimeMuMuECLTRG->Update();
352 } else {
353 B2DEBUG(29, Form("Histogram SVD EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
354 if (h) h->Draw();
355 m_cSVDTimeMuMuECLTRG->SetFillColor(kGray);
356 m_cSVDTimeMuMuECLTRG->Draw();
357 }
358
359
360}
361
363{
364 // --- ECL EventT0 plots for CDCTRG ---
365
366 // find ECL EventT0 Hadrons CDCTRG histogram and process it
367 TH1* h = findHist("EventT0/m_histEventT0_ECL_hadron_L1_CDCTRG");
368 TString tag = "hadronCDCTRG";
370 if (processHistogram(h, tag)) {
371 m_cECLTimeHadronsCDCTRG->SetFillColor(0);
372 m_cECLTimeHadronsCDCTRG->Modified();
373 m_cECLTimeHadronsCDCTRG->Update();
375 } else {
376 B2DEBUG(29, Form("Histogram ECL EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
377 if (h) h->Draw();
378 m_cECLTimeHadronsCDCTRG->SetFillColor(kGray);
380 }
381
382 // find ECL EventT0 Bhabhas CDCTRG histogram and process it
383 h = findHist("EventT0/m_histEventT0_ECL_bhabha_L1_CDCTRG");
384 tag = "bhabhaCDCTRG";
386 if (processHistogram(h, tag)) {
387 m_cECLTimeBhaBhaCDCTRG->SetFillColor(0);
388 m_cECLTimeBhaBhaCDCTRG->Modified();
389 m_cECLTimeBhaBhaCDCTRG->Update();
391 } else {
392 B2DEBUG(29, Form("Histogram ECL EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
393 if (h) h->Draw();
394 m_cECLTimeBhaBhaCDCTRG->SetFillColor(kGray);
396 }
397
398 // find ECL EventT0 Mumus CDCTRG histogram and process it
399 h = findHist("EventT0/m_histEventT0_ECL_mumu_L1_CDCTRG");
400 tag = "mumuCDCTRG";
402 if (processHistogram(h, tag)) {
403 m_cECLTimeMuMuCDCTRG->SetFillColor(0);
404 m_cECLTimeMuMuCDCTRG->Modified();
405 m_cECLTimeMuMuCDCTRG->Update();
406 } else {
407 B2DEBUG(29, Form("Histogram ECL EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
408 if (h) h->Draw();
409 m_cECLTimeMuMuCDCTRG->SetFillColor(kGray);
410 m_cECLTimeMuMuCDCTRG->Draw();
411 }
412
413
414 // --- CDC EventT0 plots for CDCTRG ---
415
416 // find CDC EventT0 Hadrons CDCTRG histogram and process it
417 h = findHist("EventT0/m_histEventT0_CDC_hadron_L1_CDCTRG");
418 tag = "hadronCDCTRG";
420 if (processHistogram(h, tag)) {
421 m_cCDCTimeHadronsCDCTRG->SetFillColor(0);
422 m_cCDCTimeHadronsCDCTRG->Modified();
423 m_cCDCTimeHadronsCDCTRG->Update();
425 } else {
426 B2DEBUG(29, Form("Histogram CDC EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
427 if (h) h->Draw();
428 m_cCDCTimeHadronsCDCTRG->SetFillColor(kGray);
430 }
431
432 // find CDC EventT0 Bhabhas CDCTRG histogram and process it
433 h = findHist("EventT0/m_histEventT0_CDC_bhabha_L1_CDCTRG");
434 tag = "bhabhaCDCTRG";
436 if (processHistogram(h, tag)) {
437 m_cCDCTimeBhaBhaCDCTRG->SetFillColor(0);
438 m_cCDCTimeBhaBhaCDCTRG->Modified();
439 m_cCDCTimeBhaBhaCDCTRG->Update();
441 } else {
442 B2DEBUG(29, Form("Histogram CDC EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
443 if (h) h->Draw();
444 m_cCDCTimeBhaBhaCDCTRG->SetFillColor(kGray);
446 }
447
448 // find CDC EventT0 Mumus CDCTRG histogram and process it
449 h = findHist("EventT0/m_histEventT0_CDC_mumu_L1_CDCTRG");
450 tag = "mumuCDCTRG";
452 if (processHistogram(h, tag)) {
453 m_cCDCTimeMuMuCDCTRG->SetFillColor(0);
454 m_cCDCTimeMuMuCDCTRG->Modified();
455 m_cCDCTimeMuMuCDCTRG->Update();
456 } else {
457 B2DEBUG(29, Form("Histogram CDC EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
458 if (h) h->Draw();
459 m_cCDCTimeMuMuCDCTRG->SetFillColor(kGray);
460 m_cCDCTimeMuMuCDCTRG->Draw();
461 }
462
463
464 // --- TOP EventT0 plots for CDCTRG ---
465
466 // find TOP EventT0 Hadrons CDCTRG histogram and process it
467 h = findHist("EventT0/m_histEventT0_TOP_hadron_L1_CDCTRG");
468 tag = "hadronCDCTRG";
470 if (processHistogram(h, tag)) {
471 m_cTOPTimeHadronsCDCTRG->SetFillColor(0);
472 m_cTOPTimeHadronsCDCTRG->Modified();
473 m_cTOPTimeHadronsCDCTRG->Update();
475 } else {
476 B2DEBUG(29, Form("Histogram TOP EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
477 if (h) h->Draw();
478 m_cTOPTimeHadronsCDCTRG->SetFillColor(kGray);
480 }
481
482 // find TOP EventT0 Bhabhas CDCTRG histogram and process it
483 h = findHist("EventT0/m_histEventT0_TOP_bhabha_L1_CDCTRG");
484 tag = "bhabhaCDCTRG";
486 if (processHistogram(h, tag)) {
487 m_cTOPTimeBhaBhaCDCTRG->SetFillColor(0);
488 m_cTOPTimeBhaBhaCDCTRG->Modified();
489 m_cTOPTimeBhaBhaCDCTRG->Update();
491 } else {
492 B2DEBUG(29, Form("Histogram TOP EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
493 if (h) h->Draw();
494 m_cTOPTimeBhaBhaCDCTRG->SetFillColor(kGray);
496 }
497
498 // find TOP EventT0 Mumus CDCTRG histogram and process it
499 h = findHist("EventT0/m_histEventT0_TOP_mumu_L1_CDCTRG");
500 tag = "mumuCDCTRG";
502 if (processHistogram(h, tag)) {
503 m_cTOPTimeMuMuCDCTRG->SetFillColor(0);
504 m_cTOPTimeMuMuCDCTRG->Modified();
505 m_cTOPTimeMuMuCDCTRG->Update();
506 } else {
507 B2DEBUG(29, Form("Histogram TOP EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
508 if (h) h->Draw();
509 m_cTOPTimeMuMuCDCTRG->SetFillColor(kGray);
510 m_cTOPTimeMuMuCDCTRG->Draw();
511 }
512
513
514 // --- SVD EventT0 plots for CDCTRG ---
515
516 // find SVD EventT0 Hadrons CDCTRG histogram and process it
517 h = findHist("EventT0/m_histEventT0_SVD_hadron_L1_CDCTRG");
518 tag = "hadronCDCTRG";
520 if (processHistogram(h, tag)) {
521 m_cSVDTimeHadronsCDCTRG->SetFillColor(0);
522 m_cSVDTimeHadronsCDCTRG->Modified();
523 m_cSVDTimeHadronsCDCTRG->Update();
525 } else {
526 B2DEBUG(29, Form("Histogram SVD EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
527 if (h) h->Draw();
528 m_cSVDTimeHadronsCDCTRG->SetFillColor(kGray);
530 }
531
532 // find SVD EventT0 Bhabhas CDCTRG histogram and process it
533 h = findHist("EventT0/m_histEventT0_SVD_bhabha_L1_CDCTRG");
534 tag = "bhabhaCDCTRG";
536 if (processHistogram(h, tag)) {
537 m_cSVDTimeBhaBhaCDCTRG->SetFillColor(0);
538 m_cSVDTimeBhaBhaCDCTRG->Modified();
539 m_cSVDTimeBhaBhaCDCTRG->Update();
541 } else {
542 B2DEBUG(29, Form("Histogram SVD EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
543 if (h) h->Draw();
544 m_cSVDTimeBhaBhaCDCTRG->SetFillColor(kGray);
546 }
547
548 // find SVD EventT0 Mumus CDCTRG histogram and process it
549 h = findHist("EventT0/m_histEventT0_SVD_mumu_L1_CDCTRG");
550 tag = "mumuCDCTRG";
552 if (processHistogram(h, tag)) {
553 m_cSVDTimeMuMuCDCTRG->SetFillColor(0);
554 m_cSVDTimeMuMuCDCTRG->Modified();
555 m_cSVDTimeMuMuCDCTRG->Update();
556 } else {
557 B2DEBUG(29, Form("Histogram SVD EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
558 if (h) h->Draw();
559 m_cSVDTimeMuMuCDCTRG->SetFillColor(kGray);
560 m_cSVDTimeMuMuCDCTRG->Draw();
561 }
562}
563
565{
566 // --- ECL EventT0 plots for TOPTRG ---
567
568 // find ECL EventT0 Hadrons TOPTRG histogram and process it
569 TH1* h = findHist("EventT0/m_histEventT0_ECL_hadron_L1_TOPTRG");
570 TString tag = "hadronTOPTRG";
572 if (processHistogram(h, tag)) {
573 m_cECLTimeHadronsTOPTRG->SetFillColor(0);
574 m_cECLTimeHadronsTOPTRG->Modified();
575 m_cECLTimeHadronsTOPTRG->Update();
577 } else {
578 B2DEBUG(29, Form("Histogram ECL EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
579 if (h) h->Draw();
580 m_cECLTimeHadronsTOPTRG->SetFillColor(kGray);
582 }
583
584 // find ECL EventT0 Bhabhas TOPTRG histogram and process it
585 h = findHist("EventT0/m_histEventT0_ECL_bhabha_L1_TOPTRG");
586 tag = "bhabhaTOPTRG";
588 if (processHistogram(h, tag)) {
589 m_cECLTimeBhaBhaTOPTRG->SetFillColor(0);
590 m_cECLTimeBhaBhaTOPTRG->Modified();
591 m_cECLTimeBhaBhaTOPTRG->Update();
593 } else {
594 B2DEBUG(29, Form("Histogram ECL EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
595 if (h) h->Draw();
596 m_cECLTimeBhaBhaTOPTRG->SetFillColor(kGray);
598 }
599
600 // find ECL EventT0 Mumus TOPTRG histogram and process it
601 h = findHist("EventT0/m_histEventT0_ECL_mumu_L1_TOPTRG");
602 tag = "mumuTOPTRG";
604 if (processHistogram(h, tag)) {
605 m_cECLTimeMuMuTOPTRG->SetFillColor(0);
606 m_cECLTimeMuMuTOPTRG->Modified();
607 m_cECLTimeMuMuTOPTRG->Update();
608 } else {
609 B2DEBUG(29, Form("Histogram ECL EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
610 if (h) h->Draw();
611 m_cECLTimeMuMuTOPTRG->SetFillColor(kGray);
612 m_cECLTimeMuMuTOPTRG->Draw();
613 }
614
615
616 // --- CDC EventT0 plots for TOPTRG ---
617
618 // find CDC EventT0 Hadrons TOPTRG histogram and process it
619 h = findHist("EventT0/m_histEventT0_CDC_hadron_L1_TOPTRG");
620 tag = "hadronTOPTRG";
622 if (processHistogram(h, tag)) {
623 m_cCDCTimeHadronsTOPTRG->SetFillColor(0);
624 m_cCDCTimeHadronsTOPTRG->Modified();
625 m_cCDCTimeHadronsTOPTRG->Update();
627 } else {
628 B2DEBUG(29, Form("Histogram CDC EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
629 if (h) h->Draw();
630 m_cCDCTimeHadronsTOPTRG->SetFillColor(kGray);
632 }
633
634 // find CDC EventT0 Bhabhas TOPTRG histogram and process it
635 h = findHist("EventT0/m_histEventT0_CDC_bhabha_L1_TOPTRG");
636 tag = "bhabhaTOPTRG";
638 if (processHistogram(h, tag)) {
639 m_cCDCTimeBhaBhaTOPTRG->SetFillColor(0);
640 m_cCDCTimeBhaBhaTOPTRG->Modified();
641 m_cCDCTimeBhaBhaTOPTRG->Update();
643 } else {
644 B2DEBUG(29, Form("Histogram CDC EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
645 if (h) h->Draw();
646 m_cCDCTimeBhaBhaTOPTRG->SetFillColor(kGray);
648 }
649
650 // find CDC EventT0 Mumus TOPTRG histogram and process it
651 h = findHist("EventT0/m_histEventT0_CDC_mumu_L1_TOPTRG");
652 tag = "mumuTOPTRG";
654 if (processHistogram(h, tag)) {
655 m_cCDCTimeMuMuTOPTRG->SetFillColor(0);
656 m_cCDCTimeMuMuTOPTRG->Modified();
657 m_cCDCTimeMuMuTOPTRG->Update();
658 } else {
659 B2DEBUG(29, Form("Histogram CDC EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
660 if (h) h->Draw();
661 m_cCDCTimeMuMuTOPTRG->SetFillColor(kGray);
662 m_cCDCTimeMuMuTOPTRG->Draw();
663 }
664
665
666 // --- TOP EventT0 plots for TOPTRG ---
667
668 // find TOP EventT0 Hadrons TOPTRG histogram and process it
669 h = findHist("EventT0/m_histEventT0_TOP_hadron_L1_TOPTRG");
670 tag = "hadronTOPTRG";
672 if (processHistogram(h, tag)) {
673 m_cTOPTimeHadronsTOPTRG->SetFillColor(0);
674 m_cTOPTimeHadronsTOPTRG->Modified();
675 m_cTOPTimeHadronsTOPTRG->Update();
677 } else {
678 B2DEBUG(29, Form("Histogram TOP EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
679 if (h) h->Draw();
680 m_cTOPTimeHadronsTOPTRG->SetFillColor(kGray);
682 }
683
684 // find TOP EventT0 Bhabhas TOPTRG histogram and process it
685 h = findHist("EventT0/m_histEventT0_TOP_bhabha_L1_TOPTRG");
686 tag = "bhabhaTOPTRG";
688 if (processHistogram(h, tag)) {
689 m_cTOPTimeBhaBhaTOPTRG->SetFillColor(0);
690 m_cTOPTimeBhaBhaTOPTRG->Modified();
691 m_cTOPTimeBhaBhaTOPTRG->Update();
693 } else {
694 B2DEBUG(29, Form("Histogram TOP EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
695 if (h) h->Draw();
696 m_cTOPTimeBhaBhaTOPTRG->SetFillColor(kGray);
698 }
699
700 // find TOP EventT0 Mumus TOPTRG histogram and process it
701 h = findHist("EventT0/m_histEventT0_TOP_mumu_L1_TOPTRG");
702 tag = "mumuTOPTRG";
704 if (processHistogram(h, tag)) {
705 m_cTOPTimeMuMuTOPTRG->SetFillColor(0);
706 m_cTOPTimeMuMuTOPTRG->Modified();
707 m_cTOPTimeMuMuTOPTRG->Update();
708 } else {
709 B2DEBUG(29, Form("Histogram TOP EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
710 if (h) h->Draw();
711 m_cTOPTimeMuMuTOPTRG->SetFillColor(kGray);
712 m_cTOPTimeMuMuTOPTRG->Draw();
713 }
714
715
716 // --- SVD EventT0 plots for TOPTRG ---
717
718 // find SVD EventT0 Hadrons TOPTRG histogram and process it
719 h = findHist("EventT0/m_histEventT0_SVD_hadron_L1_TOPTRG");
720 tag = "hadronTOPTRG";
722 if (processHistogram(h, tag)) {
723 m_cSVDTimeHadronsTOPTRG->SetFillColor(0);
724 m_cSVDTimeHadronsTOPTRG->Modified();
725 m_cSVDTimeHadronsTOPTRG->Update();
727 } else {
728 B2DEBUG(29, Form("Histogram SVD EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
729 if (h) h->Draw();
730 m_cSVDTimeHadronsTOPTRG->SetFillColor(kGray);
732 }
733
734 // find SVD EventT0 Bhabhas TOPTRG histogram and process it
735 h = findHist("EventT0/m_histEventT0_SVD_bhabha_L1_TOPTRG");
736 tag = "bhabhaTOPTRG";
738 if (processHistogram(h, tag)) {
739 m_cSVDTimeBhaBhaTOPTRG->SetFillColor(0);
740 m_cSVDTimeBhaBhaTOPTRG->Modified();
741 m_cSVDTimeBhaBhaTOPTRG->Update();
743 } else {
744 B2DEBUG(29, Form("Histogram SVD EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
745 if (h) h->Draw();
746 m_cSVDTimeBhaBhaTOPTRG->SetFillColor(kGray);
748 }
749
750 // find SVD EventT0 Mumus TOPTRG histogram and process it
751 h = findHist("EventT0/m_histEventT0_SVD_mumu_L1_TOPTRG");
752 tag = "mumuTOPTRG";
754 if (processHistogram(h, tag)) {
755 m_cSVDTimeMuMuTOPTRG->SetFillColor(0);
756 m_cSVDTimeMuMuTOPTRG->Modified();
757 m_cSVDTimeMuMuTOPTRG->Update();
758 } else {
759 B2DEBUG(29, Form("Histogram SVD EventT0 for %s from EventT0 DQM not processed!", tag.Data()));
760 if (h) h->Draw();
761 m_cSVDTimeMuMuTOPTRG->SetFillColor(kGray);
762 m_cSVDTimeMuMuTOPTRG->Draw();
763 }
764}
765
767{
768 //ECLTRG canvas
769 m_cECLTimeHadronsECLTRG = new TCanvas("ECLTimeHadronsECLTRG", "ECL time hadrons ECLTRG jitter");
770 m_cECLTimeBhaBhaECLTRG = new TCanvas("ECLTimeBhaBhaECLTRG", "ECL time BhaBha ECLTRG jitter");
771 m_cECLTimeMuMuECLTRG = new TCanvas("ECLTimeMuMuECLTRG", "ECL time #mu#mu ECLTRG jitter");
772 m_cCDCTimeHadronsECLTRG = new TCanvas("CDCTimeHadronsECLTRG", "CDC time hadrons ECLTRG jitter");
773 m_cCDCTimeBhaBhaECLTRG = new TCanvas("CDCTimeBhaBhaECLTRG", "CDC time BhaBha ECLTRG jitter");
774 m_cCDCTimeMuMuECLTRG = new TCanvas("CDCTimeMuMuECLTRG", "CDC time #mu#mu ECLTRG jitter");
775 m_cTOPTimeHadronsECLTRG = new TCanvas("TOPTimeHadronsECLTRG", "TOP time hadrons ECLTRG jitter");
776 m_cTOPTimeBhaBhaECLTRG = new TCanvas("TOPTimeBhaBhaECLTRG", "TOP time BhaBha ECLTRG jitter");
777 m_cTOPTimeMuMuECLTRG = new TCanvas("TOPTimeMuMuECLTRG", "TOP time #mu#mu ECLTRG jitter");
778 m_cSVDTimeHadronsECLTRG = new TCanvas("SVDTimeHadronsECLTRG", "SVD time hadrons ECLTRG jitter");
779 m_cSVDTimeBhaBhaECLTRG = new TCanvas("SVDTimeBhaBhaECLTRG", "SVD time BhaBha ECLTRG jitter");
780 m_cSVDTimeMuMuECLTRG = new TCanvas("SVDTimeMuMuECLTRG", "SVD time #mu#mu ECLTRG jitter");
781
782 //CDCTRG canvas
783 m_cECLTimeHadronsCDCTRG = new TCanvas("ECLTimeHadronsCDCTRG", "ECL time hadrons CDCTRG jitter");
784 m_cECLTimeBhaBhaCDCTRG = new TCanvas("ECLTimeBhaBhaCDCTRG", "ECL time BhaBha CDCTRG jitter");
785 m_cECLTimeMuMuCDCTRG = new TCanvas("ECLTimeMuMuCDCTRG", "ECL time #mu#mu CDCTRG jitter");
786 m_cCDCTimeHadronsCDCTRG = new TCanvas("CDCTimeHadronsCDCTRG", "CDC time hadrons CDCTRG jitter");
787 m_cCDCTimeBhaBhaCDCTRG = new TCanvas("CDCTimeBhaBhaCDCTRG", "CDC time BhaBha CDCTRG jitter");
788 m_cCDCTimeMuMuCDCTRG = new TCanvas("CDCTimeMuMuCDCTRG", "CDC time #mu#mu CDCTRG jitter");
789 m_cTOPTimeHadronsCDCTRG = new TCanvas("TOPTimeHadronsCDCTRG", "TOP time hadrons CDCTRG jitter");
790 m_cTOPTimeBhaBhaCDCTRG = new TCanvas("TOPTimeBhaBhaCDCTRG", "TOP time BhaBha CDCTRG jitter");
791 m_cTOPTimeMuMuCDCTRG = new TCanvas("TOPTimeMuMuCDCTRG", "TOP time #mu#mu CDCTRG jitter");
792 m_cSVDTimeHadronsCDCTRG = new TCanvas("SVDTimeHadronsCDCTRG", "SVD time hadrons CDCTRG jitter");
793 m_cSVDTimeBhaBhaCDCTRG = new TCanvas("SVDTimeBhaBhaCDCTRG", "SVD time BhaBha CDCTRG jitter");
794 m_cSVDTimeMuMuCDCTRG = new TCanvas("SVDTimeMuMuCDCTRG", "SVD time #mu#mu CDCTRG jitter");
795
796 //TOPTRG canvas
797 m_cECLTimeHadronsTOPTRG = new TCanvas("ECLTimeHadronsTOPTRG", "ECL time hadrons TOPTRG jitter");
798 m_cECLTimeBhaBhaTOPTRG = new TCanvas("ECLTimeBhaBhaTOPTRG", "ECL time BhaBha TOPTRG jitter");
799 m_cECLTimeMuMuTOPTRG = new TCanvas("ECLTimeMuMuTOPTRG", "ECL time #mu#mu TOPTRG jitter");
800 m_cCDCTimeHadronsTOPTRG = new TCanvas("CDCTimeHadronsTOPTRG", "CDC time hadrons TOPTRG jitter");
801 m_cCDCTimeBhaBhaTOPTRG = new TCanvas("CDCTimeBhaBhaTOPTRG", "CDC time BhaBha TOPTRG jitter");
802 m_cCDCTimeMuMuTOPTRG = new TCanvas("CDCTimeMuMuTOPTRG", "CDC time #mu#mu TOPTRG jitter");
803 m_cTOPTimeHadronsTOPTRG = new TCanvas("TOPTimeHadronsTOPTRG", "TOP time hadrons TOPTRG jitter");
804 m_cTOPTimeBhaBhaTOPTRG = new TCanvas("TOPTimeBhaBhaTOPTRG", "TOP time BhaBha TOPTRG jitter");
805 m_cTOPTimeMuMuTOPTRG = new TCanvas("TOPTimeMuMuTOPTRG", "TOP time #mu#mu TOPTRG jitter");
806 m_cSVDTimeHadronsTOPTRG = new TCanvas("SVDTimeHadronsTOPTRG", "SVD time hadrons TOPTRG jitter");
807 m_cSVDTimeBhaBhaTOPTRG = new TCanvas("SVDTimeBhaBhaTOPTRG", "SVD time BhaBha TOPTRG jitter");
808 m_cSVDTimeMuMuTOPTRG = new TCanvas("SVDTimeMuMuTOPTRG", "SVD time #mu#mu TOPTRG jitter");
809}
810
812{
814 m_cECLTimeBhaBhaECLTRG->Clear();
815 m_cECLTimeMuMuECLTRG->Clear();
817 m_cCDCTimeBhaBhaECLTRG->Clear();
818 m_cCDCTimeMuMuECLTRG->Clear();
820 m_cTOPTimeBhaBhaECLTRG->Clear();
821 m_cTOPTimeMuMuECLTRG->Clear();
823 m_cSVDTimeBhaBhaECLTRG->Clear();
824 m_cSVDTimeMuMuECLTRG->Clear();
825
827 m_cECLTimeBhaBhaCDCTRG->Clear();
828 m_cECLTimeMuMuCDCTRG->Clear();
830 m_cCDCTimeBhaBhaCDCTRG->Clear();
831 m_cCDCTimeMuMuCDCTRG->Clear();
833 m_cTOPTimeBhaBhaCDCTRG->Clear();
834 m_cTOPTimeMuMuCDCTRG->Clear();
836 m_cSVDTimeBhaBhaCDCTRG->Clear();
837 m_cSVDTimeMuMuCDCTRG->Clear();
838
840 m_cECLTimeBhaBhaTOPTRG->Clear();
841 m_cECLTimeMuMuTOPTRG->Clear();
843 m_cCDCTimeBhaBhaTOPTRG->Clear();
844 m_cCDCTimeMuMuTOPTRG->Clear();
846 m_cTOPTimeBhaBhaTOPTRG->Clear();
847 m_cTOPTimeMuMuTOPTRG->Clear();
849 m_cSVDTimeBhaBhaTOPTRG->Clear();
850 m_cSVDTimeMuMuTOPTRG->Clear();
851}
852
854{
855 m_cECLTimeHadronsECLTRG->Print("EventT0_TriggerJitter.pdf(");
856 m_cECLTimeBhaBhaECLTRG->Print("EventT0_TriggerJitter.pdf");
857 m_cECLTimeMuMuECLTRG->Print("EventT0_TriggerJitter.pdf");
858 m_cCDCTimeHadronsECLTRG->Print("EventT0_TriggerJitter.pdf");
859 m_cCDCTimeBhaBhaECLTRG->Print("EventT0_TriggerJitter.pdf");
860 m_cCDCTimeMuMuECLTRG->Print("EventT0_TriggerJitter.pdf");
861 m_cTOPTimeHadronsECLTRG->Print("EventT0_TriggerJitter.pdf");
862 m_cTOPTimeBhaBhaECLTRG->Print("EventT0_TriggerJitter.pdf");
863 m_cTOPTimeMuMuECLTRG->Print("EventT0_TriggerJitter.pdf");
864 m_cSVDTimeHadronsECLTRG->Print("EventT0_TriggerJitter.pdf");
865 m_cSVDTimeBhaBhaECLTRG->Print("EventT0_TriggerJitter.pdf");
866 m_cSVDTimeMuMuECLTRG->Print("EventT0_TriggerJitter.pdf");
867
868 m_cECLTimeHadronsCDCTRG->Print("EventT0_TriggerJitter.pdf");
869 m_cECLTimeBhaBhaCDCTRG->Print("EventT0_TriggerJitter.pdf");
870 m_cECLTimeMuMuCDCTRG->Print("EventT0_TriggerJitter.pdf");
871 m_cCDCTimeHadronsCDCTRG->Print("EventT0_TriggerJitter.pdf");
872 m_cCDCTimeBhaBhaCDCTRG->Print("EventT0_TriggerJitter.pdf");
873 m_cCDCTimeMuMuCDCTRG->Print("EventT0_TriggerJitter.pdf");
874 m_cTOPTimeHadronsCDCTRG->Print("EventT0_TriggerJitter.pdf");
875 m_cTOPTimeBhaBhaCDCTRG->Print("EventT0_TriggerJitter.pdf");
876 m_cTOPTimeMuMuCDCTRG->Print("EventT0_TriggerJitter.pdf");
877 m_cSVDTimeHadronsCDCTRG->Print("EventT0_TriggerJitter.pdf");
878 m_cSVDTimeBhaBhaCDCTRG->Print("EventT0_TriggerJitter.pdf");
879 m_cSVDTimeMuMuCDCTRG->Print("EventT0_TriggerJitter.pdf");
880
881 m_cECLTimeHadronsTOPTRG->Print("EventT0_TriggerJitter.pdf");
882 m_cECLTimeBhaBhaTOPTRG->Print("EventT0_TriggerJitter.pdf");
883 m_cECLTimeMuMuTOPTRG->Print("EventT0_TriggerJitter.pdf");
884 m_cCDCTimeHadronsTOPTRG->Print("EventT0_TriggerJitter.pdf");
885 m_cCDCTimeBhaBhaTOPTRG->Print("EventT0_TriggerJitter.pdf");
886 m_cCDCTimeMuMuTOPTRG->Print("EventT0_TriggerJitter.pdf");
887 m_cTOPTimeHadronsTOPTRG->Print("EventT0_TriggerJitter.pdf");
888 m_cTOPTimeBhaBhaTOPTRG->Print("EventT0_TriggerJitter.pdf");
889 m_cTOPTimeMuMuTOPTRG->Print("EventT0_TriggerJitter.pdf");
890 m_cSVDTimeHadronsTOPTRG->Print("EventT0_TriggerJitter.pdf");
891 m_cSVDTimeBhaBhaTOPTRG->Print("EventT0_TriggerJitter.pdf");
892 m_cSVDTimeMuMuTOPTRG->Print("EventT0_TriggerJitter.pdf)");
893}
894
895
897{
910
923
936}
TCanvas * m_cCDCTimeMuMuECLTRG
Canvas for CDC time ECLTRG jitter mumu.
TCanvas * m_cECLTimeHadronsECLTRG
Canvas for ECL time ECLTRG jitter hadrons.
void initialize() override final
create TCanvas and MonitoringObject
TCanvas * m_cTOPTimeHadronsECLTRG
Canvas for TOP time ECLTRG jitter hadrons.
TCanvas * m_cECLTimeHadronsCDCTRG
Canvas for ECL time CDCTRG jitter hadrons.
TCanvas * m_cECLTimeMuMuECLTRG
Canvas for ECL time ECLTRG jitter mumu.
TCanvas * m_cCDCTimeHadronsECLTRG
Canvas for CDC time ECLTRG jitter hadrons.
static double fDoubleGaus(double *x, double *par)
double gaussian fitting function for the jitter distribution
TCanvas * m_cCDCTimeBhaBhaECLTRG
Canvas for CDC time ECLTRG jitter bhabhas.
TCanvas * m_cSVDTimeMuMuTOPTRG
Canvas for SVD time TOPTRG jitter mumu.
TCanvas * m_cCDCTimeHadronsTOPTRG
Canvas for CDC time TOPTRG jitter hadrons.
TCanvas * m_cECLTimeBhaBhaECLTRG
Canvas for ECL time ECLTRG jitter bhabhas.
TCanvas * m_cCDCTimeBhaBhaCDCTRG
Canvas for CDC time CDCTRG jitter bhabhas.
std::string m_prefixCanvas
prefix to be added to canvas name when saved as pdf
TCanvas * m_cCDCTimeMuMuCDCTRG
Canvas for CDC time CDCTRG jitter mumu.
MonitoringObject * m_monObj
MonitoringObject to be produced by this module.
TCanvas * m_cCDCTimeMuMuTOPTRG
Canvas for CDC time TOPTRG jitter mumu.
TCanvas * m_cCDCTimeHadronsCDCTRG
Canvas for CDC time CDCTRG jitter hadrons.
TCanvas * m_cTOPTimeHadronsTOPTRG
Canvas for TOP time TOPTRG jitter hadrons.
void analyseTOPTRGEventT0Distributions()
Analyse the TOPTRG EventT0 distributions.
void event() override final
fit the histograms in the event
TCanvas * m_cECLTimeBhaBhaTOPTRG
Canvas for ECL time TOPTRG jitter bhabhas.
TCanvas * m_cTOPTimeBhaBhaECLTRG
Canvas for TOP time ECLTRG jitter bhabhas.
TCanvas * m_cSVDTimeHadronsTOPTRG
Canvas for SVD time TOPTRG jitter hadrons.
TCanvas * m_cTOPTimeBhaBhaTOPTRG
Canvas for TOP time TOPTRG jitter bhabhas.
TCanvas * m_cSVDTimeBhaBhaECLTRG
Canvas for SVD time ECLTRG jitter bhabhas.
TCanvas * m_cTOPTimeBhaBhaCDCTRG
Canvas for TOP time CDCTRG jitter bhabhas.
uint m_nEntriesMin
minimum number of entries to process the histogram
TCanvas * m_cECLTimeMuMuCDCTRG
Canvas for ECL time CDCTRG jitter mumu.
TCanvas * m_cSVDTimeMuMuCDCTRG
Canvas for SVD time CDCTRG jitter mumu.
TCanvas * m_cTOPTimeMuMuTOPTRG
Canvas for TOP time TOPTRG jitter mumu.
TCanvas * m_cECLTimeBhaBhaCDCTRG
Canvas for ECL time CDCTRG jitter bhabhas.
TCanvas * m_cTOPTimeHadronsCDCTRG
Canvas for TOP time CDCTRG jitter hadrons.
TCanvas * m_cECLTimeHadronsTOPTRG
Canvas for ECL time TOPTRG jitter hadrons.
TCanvas * m_cCDCTimeBhaBhaTOPTRG
Canvas for CDC time TOPTRG jitter bhabhas.
bool processHistogram(TH1 *h, TString tag)
process the EventT0 distribution fitting with two gaussians filling the MonitoringObject
TCanvas * m_cSVDTimeHadronsECLTRG
Canvas for SVD time ECLTRG jitter hadrons.
TCanvas * m_cECLTimeMuMuTOPTRG
Canvas for ECL time TOPTRG jitter mumu.
TCanvas * m_cTOPTimeMuMuCDCTRG
Canvas for TOP time CDCTRG jitter mumu.
TCanvas * m_cSVDTimeMuMuECLTRG
Canvas for SVD time ECLTRG jitter mumu.
TCanvas * m_cSVDTimeHadronsCDCTRG
Canvas for SVD time CDCTRG jitter hadrons.
void analyseECLTRGEventT0Distributions()
Analyse the ECLTRG EventT0 distributions.
TCanvas * m_cTOPTimeMuMuECLTRG
Canvas for TOP time ECLTRG jitter mumu.
TCanvas * m_cSVDTimeBhaBhaCDCTRG
Canvas for SVD time CDCTRG jitter bhabhas.
TCanvas * m_cSVDTimeBhaBhaTOPTRG
Canvas for SVD time TOPTRG jitter bhabhas.
void analyseCDCTRGEventT0Distributions()
Analyse the CDCTRG EventT0 distributions.
The base class for the histogram analysis module.
static MonitoringObject * getMonitoringObject(const std::string &name)
Get MonitoringObject with given name (new object is created if non-existing)
static TH1 * findHist(const std::string &histname, bool onlyIfUpdated=false)
Get histogram from list (no other search).
void setDescription(const std::string &description)
Sets the description of the module.
Definition: Module.cc:214
void setVariable(const std::string &var, float val, float upErr=-1., float dwErr=-1)
set value to float variable (new variable is made if not yet existing)
void addParam(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
Definition: Module.h:560
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition: Module.h:650
Abstract base class for different kinds of events.