Belle II Software  release-08-01-10
DQMHistAnalysisEventT0TriggerJitter.h
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.h
10 // Description : module for DQM histogram analysis of trigger jitter
11 //-
12 
13 #pragma once
14 
15 #include <dqm/core/DQMHistAnalysis.h>
16 #include <TEfficiency.h>
17 
18 namespace Belle2 {
26 
27  // Public functions
28  public:
29 
34 
36  void initialize() override final;
37 
39  void beginRun() override final;
40 
42  void event() override final;
43 
45  void terminate() override final;
46 
47  private:
48 
50  std::string m_prefixCanvas;
54  uint m_nEntriesMin = 100;
62  bool processHistogram(TH1* h, TString tag);
63 
68  static double fDoubleGaus(double* x, double* par);
69 
73  void initializeCanvases();
74  void clearCanvases();
75  void printCanvases();
76  void deleteCanvases();
80  // ECLTRG jitter canvases
81  TCanvas* m_cECLTimeHadronsECLTRG = nullptr;
82  TCanvas* m_cECLTimeBhaBhaECLTRG = nullptr;
83  TCanvas* m_cECLTimeMuMuECLTRG = nullptr;
84  TCanvas* m_cCDCTimeHadronsECLTRG = nullptr;
85  TCanvas* m_cCDCTimeBhaBhaECLTRG = nullptr;
86  TCanvas* m_cCDCTimeMuMuECLTRG = nullptr;
87  TCanvas* m_cTOPTimeHadronsECLTRG = nullptr;
88  TCanvas* m_cTOPTimeBhaBhaECLTRG = nullptr;
89  TCanvas* m_cTOPTimeMuMuECLTRG = nullptr;
90  TCanvas* m_cSVDTimeHadronsECLTRG = nullptr;
91  TCanvas* m_cSVDTimeBhaBhaECLTRG = nullptr;
92  TCanvas* m_cSVDTimeMuMuECLTRG = nullptr;
94  // CDCTRG jitter canvases
95  TCanvas* m_cECLTimeHadronsCDCTRG = nullptr;
96  TCanvas* m_cECLTimeBhaBhaCDCTRG = nullptr;
97  TCanvas* m_cECLTimeMuMuCDCTRG = nullptr;
98  TCanvas* m_cCDCTimeHadronsCDCTRG = nullptr;
99  TCanvas* m_cCDCTimeBhaBhaCDCTRG = nullptr;
100  TCanvas* m_cCDCTimeMuMuCDCTRG = nullptr;
101  TCanvas* m_cTOPTimeHadronsCDCTRG = nullptr;
102  TCanvas* m_cTOPTimeBhaBhaCDCTRG = nullptr;
103  TCanvas* m_cTOPTimeMuMuCDCTRG = nullptr;
104  TCanvas* m_cSVDTimeHadronsCDCTRG = nullptr;
105  TCanvas* m_cSVDTimeBhaBhaCDCTRG = nullptr;
106  TCanvas* m_cSVDTimeMuMuCDCTRG = nullptr;
108  // TOPTRG jitter canvases
109  TCanvas* m_cECLTimeHadronsTOPTRG = nullptr;
110  TCanvas* m_cECLTimeBhaBhaTOPTRG = nullptr;
111  TCanvas* m_cECLTimeMuMuTOPTRG = nullptr;
112  TCanvas* m_cCDCTimeHadronsTOPTRG = nullptr;
113  TCanvas* m_cCDCTimeBhaBhaTOPTRG = nullptr;
114  TCanvas* m_cCDCTimeMuMuTOPTRG = nullptr;
115  TCanvas* m_cTOPTimeHadronsTOPTRG = nullptr;
116  TCanvas* m_cTOPTimeBhaBhaTOPTRG = nullptr;
117  TCanvas* m_cTOPTimeMuMuTOPTRG = nullptr;
118  TCanvas* m_cSVDTimeHadronsTOPTRG = nullptr;
119  TCanvas* m_cSVDTimeBhaBhaTOPTRG = nullptr;
120  TCanvas* m_cSVDTimeMuMuTOPTRG = nullptr;
121  };
123 } // end namespace Belle2
124 
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.
MonitoringObject is a basic object to hold data for the run-dependency monitoring Run summary TCanvas...
Abstract base class for different kinds of events.