Belle II Software development
DQMHistAnalysisTRGGDL.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#pragma once
10
11//DQM
12#include <dqm/core/DQMHistAnalysis.h>
13
14
15//ARICH
16#include <arich/utility/ARICHChannelHist.h>
17
18#include <vector>
19
20#include <TCanvas.h>
21#include <TLine.h>
22#include <TH2Poly.h>
23
24namespace Belle2 {
29
34
35 public:
36
41
46 void initialize() override final;
47
51 void event() override final;
52
57 void beginRun() override final;
58
63 void endRun() override final;
64
69 void terminate() override final;
70
71 protected:
72 bool m_debug;
74 std::string m_pvPrefix;
75
76
77 static const int nskim_gdldqm = 11;
78 std::string skim_smap[nskim_gdldqm] = {
79 "all",
80 "hadron",
81 "tautau",
82 "mumu1trk",
83 "mumu2trk",
84 "gammagamma",
85 "bhabha",
86 "hadronb",
87 "hadronb1",
88 "hadronb2",
89 "mumutight"
90 };
91
94 TH1* m_h_psn_pure_extra = nullptr;
95 TCanvas* m_c_eff[nskim_gdldqm] = {};
96 TCanvas* m_c_eff_fast[nskim_gdldqm] = {};
97 TH1D* m_h_eff[nskim_gdldqm] = {};
99 static const int n_eff = 40;
101 const char* c_eff[n_eff] = {
102 "fff with c4|hie",
103 "ffo with c4|hie",
104 "ffb with c4|hie",
105 "ffy with c4|hie",
106 "fyo with c4|hie",
107 "fyb with c4|hie",
108 "hie with fff|ffo|ffb",
109 "c4 with fff|ffo|ffb",
110 "lml0 with fff|ffo|ffb",
111 "lml1 with fff|ffo|ffb",
112 "lml2 with fff|ffo|ffb",
113 "lml3 with fff|ffo|ffb",
114 "lml4 with fff|ffo|ffb",
115 "lml5 with fff|ffo|ffb",
116 "lml6 with fff|ffo|ffb",
117 "lml7 with fff|ffo|ffb",
118 "lml8 with fff|ffo|ffb",
119 "lml9 with fff|ffo|ffb",
120 "lml10 with fff|ffo|ffb",
121 "lml12 with fff|ffo|ffb",
122 "lml13 with fff|ffo|ffb",
123 "bha3d with all",
124 "mu_b2b with fff|ffo|ffb",
125 "mu_b2b with lml|eclmumu",
126 "mu_eb2b with lml|eclmumu",
127 "cdcklm1 with fff|ffo|ffb",
128 "cdcklm2 with fff|ffo|ffb",
129 "fff with lml|eclmumu",
130 "ffo with lml|eclmumu",
131 "ffb with lml|eclmumu",
132 "ff with lml|eclmumu",
133 "f with lml|eclmumu",
134 "ffy with lml|eclmumu",
135 "fyo with lml|eclmumu",
136 "fyb with lml|eclmumu",
137 "cdcecl2 with fff|ffo|ffb",
138 "ecleklm with lml|eclmumu",
139 "syo with c4|hie",
140 "yioiecl1 with c4|hie",
141 "stt with c4|hie"
142 };
143
144 TCanvas* m_c_eff_shifter = nullptr;
145 TCanvas* m_c_eff_shifter_fast = nullptr;
146 TH1D* m_h_eff_shifter = nullptr;
147 TH1D* m_h_eff_shifter_fast = nullptr;
148 static const int n_eff_shifter = 14;
150 "CDC_fff",
151 "CDC_ffo",
152 "CDC_ffy",
153 "CDC_fyo",
154 "ECL_hie",
155 "ECL_c4",
156 "BKLM_b2b",
157 "EKLM_b2b",
158 "CDC_BKLM_lt1",
159 "CDC_ECL_lt1",
160 "ECL_EKLM_lt0",
161 "CDC_syo",
162 "CDC_yio",
163 "CDC_stt"
164 };
166 "CDC fff",
167 "CDC ffo",
168 "CDC ffy",
169 "CDC fyo",
170 "ECL hie",
171 "ECL c4",
172 "BKLM b2b",
173 "EKLM b2b",
174 "CDC-BKLM>1",
175 "CDC-ECL>1",
176 "ECL-EKLM>0",
177 "CDC syo",
178 "CDC yio",
179 "CDC stt"
180 };
181 TCanvas* m_c_pure_eff = nullptr;
182 TH1D* m_h_pure_eff = nullptr;
183 static const int n_pure_eff = 8;
185 const char* c_pure_eff[n_pure_eff] = {
186 "fff with c4|hie",
187 "ffo with c4|hie",
188 "ffb with c4|hie",
189 "ffy with c4|hie",
190 "fyo with c4|hie",
191 "fyb with c4|hie",
192 "hie with fff|ffo|ffb",
193 "c4 with fff|ffo|ffb"
194 };
195
198 std::vector<double> m_temp_lo_limit;
199 std::vector<double> m_temp_hi_limit;
200 std::vector<std::string> m_temp_pvnames;
201
203 bool m_IsPhysicsRun = false;
204
205 //mirabelle
207
208#ifdef _BELLE2_EPICS
209 chid mychid[n_eff_shifter];// hard limit max 10 parameters
210 chid mychid_entry[nskim_gdldqm];
211#endif
212
213 };
214
216} // Belle2 namespace
217
DQMHistAnalysisModule()
Constructor / Destructor.
TH1D * m_h_eff_shifter_fast
Histogram for TRGGDL efficiency, simplified one for CR shifter.
void initialize() override final
Initialize the Module.
static const int n_eff_shifter
number of bins for the simplified efficiency histogram
TCanvas * m_c_eff_shifter_fast
Canvas for TRGGDL efficiency, simplified one for CR shifter.
TCanvas * m_c_eff_fast[nskim_gdldqm]
Canvas for TRGGDL efficiency in each HLT skim.
std::vector< double > m_temp_hi_limit
upper limit threshold for the efficiencies monitored by shifters
bool m_IsPhysicsRun
Run type flag for physics runs.
TH1D * m_h_eff_fast[nskim_gdldqm]
Histogram for TRGGDL efficiency in each HLT skim.
bool m_enableAlert
Enable alert by base color of canvases.
static const int nskim_gdldqm
number of HLT skims
TLine * m_line_limit_high_shifter[n_eff_shifter]
upper limit line for the simplified efficiency histogram
TH1D * m_h_pure_eff
Histogram for TRGGDL efficiency with offline selection.
Belle2::MonitoringObject * m_mon_h_eff_shifter_fast
Mirabelle, MonitoringObject for m_h_eff_shifter_fast.
std::string m_pvPrefix
Prefix for the PV variables of TRGGDL.
TLine * m_line_limit_low_shifter[n_eff_shifter]
lower limit line for the simplified efficiency histogram
void terminate() override final
Termination action.
std::vector< double > m_temp_lo_limit
lower limit threshold for the efficiencies monitored by shifters
TH1D * m_h_eff[nskim_gdldqm]
Histogram for TRGGDL efficiency in each HLT skim.
const char * c_eff[n_eff]
label of bins for the efficiency histogram
std::vector< std::string > m_temp_pvnames
Names of PVs for the efficiencies monitored by shifters.
void event() override final
Event processor.
std::string skim_smap[nskim_gdldqm]
name of HLT skims
TH1D * m_h_eff_shifter
Histogram for TRGGDL efficiency, simplified one for CR shifter.
TH1 * m_h_psn_extra[nskim_gdldqm]
DQM Histogram for PSN bits in each HLT skim.
TH1 * m_h_psn_extra_fast[nskim_gdldqm]
DQM Histogram for PSN bits in each HLT skim.
static const int n_pure_eff
number of bins for the efficiency histogram with offline selection
TCanvas * m_c_pure_eff
Canvas for TRGGDL efficiency with offline selection.
void endRun() override final
End-of-run action.
const char * c_mon_eff_shifter[n_eff_shifter]
The name of the Mirabelle variable and the PVs for the bin labels of the simplified efficiency histog...
void beginRun() override final
Begin-of-run action.
TCanvas * m_c_eff[nskim_gdldqm]
Canvas for TRGGDL efficiency in each HLT skim.
const char * c_pure_eff[n_pure_eff]
label of bins for the efficiency histogram with offline selection
TH1 * m_h_psn_pure_extra
DQM Histogram for PSN bits with offline selection.
TCanvas * m_c_eff_shifter
Canvas for TRGGDL efficiency, simplified one for CR shifter.
static const int n_eff
number of bins for the efficiency histogram
const char * c_eff_shifter[n_eff_shifter]
label of bins for the simplified efficiency histogram
MonitoringObject is a basic object to hold data for the run-dependency monitoring Run summary TCanvas...
Abstract base class for different kinds of events.