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#ifndef TRGGDLDQMANALYSISMODULE_H
10#define TRGGDLDQMANALYSISMODULE_H
11
12#pragma once
13
14#ifdef _BELLE2_EPICS
15// EPICS
16#include "cadef.h"
17#endif
18
19//DQM
20#include <dqm/core/DQMHistAnalysis.h>
21
22
23//ARICH
24#include <arich/utility/ARICHChannelHist.h>
25
26#include <vector>
27
28#include <TCanvas.h>
29#include <TLine.h>
30#include <TH2Poly.h>
31
32namespace Belle2 {
37
42
43 public:
44
49
54
59 void initialize() override final;
60
64 void event() override final;
65
70 void beginRun() override final;
71
76 void endRun() override final;
77
82 void terminate() override final;
83
84 protected:
85 bool m_debug;
87 std::string m_pvPrefix;
88
89
90 static const int nskim_gdldqm = 11;
91 std::string skim_smap[nskim_gdldqm] = {
92 "all",
93 "hadron",
94 "tautau",
95 "mumu1trk",
96 "mumu2trk",
97 "gammagamma",
98 "bhabha",
99 "hadronb",
100 "hadronb1",
101 "hadronb2",
102 "mumutight"
103 };
104
107 TH1D* m_h_psn_pure_extra = nullptr;
108 TCanvas* m_c_eff[nskim_gdldqm] = {};
109 TCanvas* m_c_eff_fast[nskim_gdldqm] = {};
110 TH1D* m_h_eff[nskim_gdldqm] = {};
112 static const int n_eff = 40;
114 const char* c_eff[n_eff] = {
115 "fff with c4|hie",
116 "ffo with c4|hie",
117 "ffb with c4|hie",
118 "ffy with c4|hie",
119 "fyo with c4|hie",
120 "fyb with c4|hie",
121 "hie with fff|ffo|ffb",
122 "c4 with fff|ffo|ffb",
123 "lml0 with fff|ffo|ffb",
124 "lml1 with fff|ffo|ffb",
125 "lml2 with fff|ffo|ffb",
126 "lml3 with fff|ffo|ffb",
127 "lml4 with fff|ffo|ffb",
128 "lml5 with fff|ffo|ffb",
129 "lml6 with fff|ffo|ffb",
130 "lml7 with fff|ffo|ffb",
131 "lml8 with fff|ffo|ffb",
132 "lml9 with fff|ffo|ffb",
133 "lml10 with fff|ffo|ffb",
134 "lml12 with fff|ffo|ffb",
135 "lml13 with fff|ffo|ffb",
136 "bha3d with all",
137 "mu_b2b with fff|ffo|ffb",
138 "mu_b2b with lml|eclmumu",
139 "mu_eb2b with lml|eclmumu",
140 "cdcklm1 with fff|ffo|ffb",
141 "cdcklm2 with fff|ffo|ffb",
142 "fff with lml|eclmumu",
143 "ffo with lml|eclmumu",
144 "ffb with lml|eclmumu",
145 "ff with lml|eclmumu",
146 "f with lml|eclmumu",
147 "ffy with lml|eclmumu",
148 "fyo with lml|eclmumu",
149 "fyb with lml|eclmumu",
150 "cdcecl2 with fff|ffo|ffb",
151 "ecleklm with lml|eclmumu",
152 "syo with c4|hie",
153 "yioiecl1 with c4|hie",
154 "stt with c4|hie"
155 };
156
157 TCanvas* m_c_eff_shifter = nullptr;
158 TCanvas* m_c_eff_shifter_fast = nullptr;
159 TH1D* m_h_eff_shifter = nullptr;
160 TH1D* m_h_eff_shifter_fast = nullptr;
161 static const int n_eff_shifter = 14;
163 "CDC_fff",
164 "CDC_ffo",
165 "CDC_ffy",
166 "CDC_fyo",
167 "ECL_hie",
168 "ECL_c4",
169 "BKLM_b2b",
170 "EKLM_b2b",
171 "CDC_BKLM_lt1",
172 "CDC_ECL_lt1",
173 "ECL_EKLM_lt0",
174 "CDC_syo",
175 "CDC_yio",
176 "CDC_stt"
177 };
179 "CDC fff",
180 "CDC ffo",
181 "CDC ffy",
182 "CDC fyo",
183 "ECL hie",
184 "ECL c4",
185 "BKLM b2b",
186 "EKLM b2b",
187 "CDC-BKLM>1",
188 "CDC-ECL>1",
189 "ECL-EKLM>0",
190 "CDC syo",
191 "CDC yio",
192 "CDC stt"
193 };
194 TCanvas* m_c_pure_eff = nullptr;
195 TH1D* m_h_pure_eff = nullptr;
196 static const int n_pure_eff = 8;
198 const char* c_pure_eff[n_pure_eff] = {
199 "fff with c4|hie",
200 "ffo with c4|hie",
201 "ffb with c4|hie",
202 "ffy with c4|hie",
203 "fyo with c4|hie",
204 "fyb with c4|hie",
205 "hie with fff|ffo|ffb",
206 "c4 with fff|ffo|ffb"
207 };
208
211 std::vector<double> m_temp_lo_limit;
212 std::vector<double> m_temp_hi_limit;
213 std::vector<std::string> m_temp_pvnames;
214
217
218 //mirabelle
220
221#ifdef _BELLE2_EPICS
222 chid mychid[n_eff_shifter];// hard limit max 10 parameters
223 chid mychid_entry[nskim_gdldqm];
224#endif
225
226 };
227
229} // Belle2 namespace
230
231#endif
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.
TH1D * m_h_psn_extra_fast[nskim_gdldqm]
DQM Histogram for PSN bits in each HLT skim.
TH1D * m_h_psn_pure_extra
DQM Histogram for PSN bits with offline selection.
static const int n_pure_eff
number of bins for the efficiency histogram with offline selection
TH1D * m_h_psn_extra[nskim_gdldqm]
DQM Histogram for PSN bits in each HLT skim.
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
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.