Belle II Software development
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#include <tuple>
19#include <optional>
20
21namespace Belle2 {
29
30 // Public functions
31 public:
32
37
39 void initialize() override final;
40
42 void beginRun() override final;
43
45 void event() override final;
46
48 void endRun() override final;
49
51 void terminate() override final;
52
53 private:
54
56 std::string m_prefixCanvas;
60 uint m_nEntriesMin = 100;
69 std::tuple<bool, std::optional<double>> processHistogram(TH1* h, TString tag, bool retrieveMeanT0 = false);
70
71
76 static double fDoubleGaus(double* x, double* par);
77
83 void analyseECLTRGEventT0Distributions(bool retrieveDeltas = true);
86 void initializeCanvases();
87 void clearCanvases();
88 void printCanvases();
89 void deleteCanvases();
90 void setDeltaT0Values();
95 // ECLTRG jitter canvases
96 TCanvas* m_cECLTimeHadronsECLTRG = nullptr;
97 TCanvas* m_cECLTimeBhaBhaECLTRG = nullptr;
98 TCanvas* m_cECLTimeMuMuECLTRG = nullptr;
99 TCanvas* m_cCDCTimeHadronsECLTRG = nullptr;
100 TCanvas* m_cCDCTimeBhaBhaECLTRG = nullptr;
101 TCanvas* m_cCDCTimeMuMuECLTRG = nullptr;
102 TCanvas* m_cTOPTimeHadronsECLTRG = nullptr;
103 TCanvas* m_cTOPTimeBhaBhaECLTRG = nullptr;
104 TCanvas* m_cTOPTimeMuMuECLTRG = nullptr;
105 TCanvas* m_cSVDTimeHadronsECLTRG = nullptr;
106 TCanvas* m_cSVDTimeBhaBhaECLTRG = nullptr;
107 TCanvas* m_cSVDTimeMuMuECLTRG = nullptr;
109 // CDCTRG jitter canvases
110 TCanvas* m_cECLTimeHadronsCDCTRG = nullptr;
111 TCanvas* m_cECLTimeBhaBhaCDCTRG = nullptr;
112 TCanvas* m_cECLTimeMuMuCDCTRG = nullptr;
113 TCanvas* m_cCDCTimeHadronsCDCTRG = nullptr;
114 TCanvas* m_cCDCTimeBhaBhaCDCTRG = nullptr;
115 TCanvas* m_cCDCTimeMuMuCDCTRG = nullptr;
116 TCanvas* m_cTOPTimeHadronsCDCTRG = nullptr;
117 TCanvas* m_cTOPTimeBhaBhaCDCTRG = nullptr;
118 TCanvas* m_cTOPTimeMuMuCDCTRG = nullptr;
119 TCanvas* m_cSVDTimeHadronsCDCTRG = nullptr;
120 TCanvas* m_cSVDTimeBhaBhaCDCTRG = nullptr;
121 TCanvas* m_cSVDTimeMuMuCDCTRG = nullptr;
123 // TOPTRG jitter canvases
124 TCanvas* m_cECLTimeHadronsTOPTRG = nullptr;
125 TCanvas* m_cECLTimeBhaBhaTOPTRG = nullptr;
126 TCanvas* m_cECLTimeMuMuTOPTRG = nullptr;
127 TCanvas* m_cCDCTimeHadronsTOPTRG = nullptr;
128 TCanvas* m_cCDCTimeBhaBhaTOPTRG = nullptr;
129 TCanvas* m_cCDCTimeMuMuTOPTRG = nullptr;
130 TCanvas* m_cTOPTimeHadronsTOPTRG = nullptr;
131 TCanvas* m_cTOPTimeBhaBhaTOPTRG = nullptr;
132 TCanvas* m_cTOPTimeMuMuTOPTRG = nullptr;
133 TCanvas* m_cSVDTimeHadronsTOPTRG = nullptr;
134 TCanvas* m_cSVDTimeBhaBhaTOPTRG = nullptr;
135 TCanvas* m_cSVDTimeMuMuTOPTRG = nullptr;
137 double m_ECLTRGHLThadronECLT0 = -999.;
138 double m_ECLTRGHLThadronCDCT0 = -999.;
139 double m_ECLTRGHLThadronTOPT0 = -999.;
140 double m_ECLTRGHLThadronSVDT0 = -999.;
142 };
144} // end namespace Belle2
145
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
double m_ECLTRGHLThadronCDCT0
CDC T0 for ECLTRG jitter for HLT hadron events.
double m_ECLTRGHLThadronTOPT0
TOP T0 for ECLTRG jitter for HLT hadron events.
TCanvas * m_cCDCTimeBhaBhaECLTRG
Canvas for CDC time ECLTRG jitter bhabhas.
TCanvas * m_cSVDTimeMuMuTOPTRG
Canvas for SVD time TOPTRG jitter mumu.
double m_ECLTRGHLThadronSVDT0
SVD T0 for ECLTRG jitter for HLT hadron events.
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::tuple< bool, std::optional< double > > processHistogram(TH1 *h, TString tag, bool retrieveMeanT0=false)
process the EventT0 distribution fitting with two gaussians filling the MonitoringObject
std::string m_prefixCanvas
prefix to be added to canvas name when saved as pdf
void analyseECLTRGEventT0Distributions(bool retrieveDeltas=true)
Analyse the ECLTRG EventT0 distributions The only function to retrieve deltaT values ECL-SVD,...
double m_ECLTRGHLThadronECLT0
ECL T0 for ECLTRG jitter for HLT hadron events.
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.
void endRun() override final
final fit of T0 distributions
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.
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.
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.