Belle II Software  release-08-01-10
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 
21 using namespace Belle2;
22 
23 //-----------------------------------------------------------------
24 // Register the Module
25 //-----------------------------------------------------------------
26 REG_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 {
58  clearCanvases();
59 }
60 
62 {
66 
67  if (m_printCanvas) {
68  printCanvases();
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
114  TF1 fitf("fit", DQMHistAnalysisEventT0TriggerJitterModule::fDoubleGaus, -50, 50, 6);
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);
182  m_cECLTimeHadronsECLTRG->Draw();
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);
197  m_cECLTimeBhaBhaECLTRG->Draw();
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";
203  m_cECLTimeMuMuECLTRG->cd();
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);
230  m_cCDCTimeHadronsECLTRG->Draw();
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);
245  m_cCDCTimeBhaBhaECLTRG->Draw();
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";
251  m_cCDCTimeMuMuECLTRG->cd();
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);
278  m_cTOPTimeHadronsECLTRG->Draw();
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);
293  m_cTOPTimeBhaBhaECLTRG->Draw();
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";
299  m_cTOPTimeMuMuECLTRG->cd();
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);
326  m_cSVDTimeHadronsECLTRG->Draw();
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);
341  m_cSVDTimeBhaBhaECLTRG->Draw();
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";
347  m_cSVDTimeMuMuECLTRG->cd();
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();
374  m_cECLTimeHadronsCDCTRG->Draw();
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);
379  m_cECLTimeHadronsCDCTRG->Draw();
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();
390  m_cECLTimeBhaBhaCDCTRG->Draw();
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);
395  m_cECLTimeBhaBhaCDCTRG->Draw();
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";
401  m_cECLTimeMuMuCDCTRG->cd();
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();
424  m_cCDCTimeHadronsCDCTRG->Draw();
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);
429  m_cCDCTimeHadronsCDCTRG->Draw();
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();
440  m_cCDCTimeBhaBhaCDCTRG->Draw();
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);
445  m_cCDCTimeBhaBhaCDCTRG->Draw();
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";
451  m_cCDCTimeMuMuCDCTRG->cd();
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();
474  m_cTOPTimeHadronsCDCTRG->Draw();
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);
479  m_cTOPTimeHadronsCDCTRG->Draw();
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();
490  m_cTOPTimeBhaBhaCDCTRG->Draw();
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);
495  m_cTOPTimeBhaBhaCDCTRG->Draw();
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";
501  m_cTOPTimeMuMuCDCTRG->cd();
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();
524  m_cSVDTimeHadronsCDCTRG->Draw();
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);
529  m_cSVDTimeHadronsCDCTRG->Draw();
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();
540  m_cSVDTimeBhaBhaCDCTRG->Draw();
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);
545  m_cSVDTimeBhaBhaCDCTRG->Draw();
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";
551  m_cSVDTimeMuMuCDCTRG->cd();
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();
576  m_cECLTimeHadronsTOPTRG->Draw();
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);
581  m_cECLTimeHadronsTOPTRG->Draw();
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();
592  m_cECLTimeBhaBhaTOPTRG->Draw();
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);
597  m_cECLTimeBhaBhaTOPTRG->Draw();
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";
603  m_cECLTimeMuMuTOPTRG->cd();
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();
626  m_cCDCTimeHadronsTOPTRG->Draw();
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);
631  m_cCDCTimeHadronsTOPTRG->Draw();
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();
642  m_cCDCTimeBhaBhaTOPTRG->Draw();
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);
647  m_cCDCTimeBhaBhaTOPTRG->Draw();
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";
653  m_cCDCTimeMuMuTOPTRG->cd();
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();
676  m_cTOPTimeHadronsTOPTRG->Draw();
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);
681  m_cTOPTimeHadronsTOPTRG->Draw();
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();
692  m_cTOPTimeBhaBhaTOPTRG->Draw();
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);
697  m_cTOPTimeBhaBhaTOPTRG->Draw();
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";
703  m_cTOPTimeMuMuTOPTRG->cd();
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();
726  m_cSVDTimeHadronsTOPTRG->Draw();
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);
731  m_cSVDTimeHadronsTOPTRG->Draw();
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();
742  m_cSVDTimeBhaBhaTOPTRG->Draw();
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);
747  m_cSVDTimeBhaBhaTOPTRG->Draw();
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";
753  m_cSVDTimeMuMuTOPTRG->cd();
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 {
813  m_cECLTimeHadronsECLTRG->Clear();
814  m_cECLTimeBhaBhaECLTRG->Clear();
815  m_cECLTimeMuMuECLTRG->Clear();
816  m_cCDCTimeHadronsECLTRG->Clear();
817  m_cCDCTimeBhaBhaECLTRG->Clear();
818  m_cCDCTimeMuMuECLTRG->Clear();
819  m_cTOPTimeHadronsECLTRG->Clear();
820  m_cTOPTimeBhaBhaECLTRG->Clear();
821  m_cTOPTimeMuMuECLTRG->Clear();
822  m_cSVDTimeHadronsECLTRG->Clear();
823  m_cSVDTimeBhaBhaECLTRG->Clear();
824  m_cSVDTimeMuMuECLTRG->Clear();
825 
826  m_cECLTimeHadronsCDCTRG->Clear();
827  m_cECLTimeBhaBhaCDCTRG->Clear();
828  m_cECLTimeMuMuCDCTRG->Clear();
829  m_cCDCTimeHadronsCDCTRG->Clear();
830  m_cCDCTimeBhaBhaCDCTRG->Clear();
831  m_cCDCTimeMuMuCDCTRG->Clear();
832  m_cTOPTimeHadronsCDCTRG->Clear();
833  m_cTOPTimeBhaBhaCDCTRG->Clear();
834  m_cTOPTimeMuMuCDCTRG->Clear();
835  m_cSVDTimeHadronsCDCTRG->Clear();
836  m_cSVDTimeBhaBhaCDCTRG->Clear();
837  m_cSVDTimeMuMuCDCTRG->Clear();
838 
839  m_cECLTimeHadronsTOPTRG->Clear();
840  m_cECLTimeBhaBhaTOPTRG->Clear();
841  m_cECLTimeMuMuTOPTRG->Clear();
842  m_cCDCTimeHadronsTOPTRG->Clear();
843  m_cCDCTimeBhaBhaTOPTRG->Clear();
844  m_cCDCTimeMuMuTOPTRG->Clear();
845  m_cTOPTimeHadronsTOPTRG->Clear();
846  m_cTOPTimeBhaBhaTOPTRG->Clear();
847  m_cTOPTimeMuMuTOPTRG->Clear();
848  m_cSVDTimeHadronsTOPTRG->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 TH1 * findHist(const std::string &histname, bool onlyIfUpdated=false)
Get histogram from list (no other search).
static MonitoringObject * getMonitoringObject(const std::string &histname)
Get MonitoringObject with given name (new object is created if non-existing)
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)
REG_MODULE(arichBtest)
Register the Module.
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
Abstract base class for different kinds of events.