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 void initialize() override final;
55
59 void event() override final;
60
65 void beginRun() override final;
66
71 void endRun() override final;
72
77 void terminate() override final;
78
79 protected:
80 bool m_debug;
82 std::string m_pvPrefix;
83
84
85 static const int nskim_gdldqm = 11;
86 std::string skim_smap[nskim_gdldqm] = {
87 "all",
88 "hadron",
89 "tautau",
90 "mumu1trk",
91 "mumu2trk",
92 "gammagamma",
93 "bhabha",
94 "hadronb",
95 "hadronb1",
96 "hadronb2",
97 "mumutight"
98 };
99
102 TH1D* m_h_psn_pure_extra = nullptr;
103 TCanvas* m_c_eff[nskim_gdldqm] = {};
104 TCanvas* m_c_eff_fast[nskim_gdldqm] = {};
105 TH1D* m_h_eff[nskim_gdldqm] = {};
107 static const int n_eff = 40;
109 const char* c_eff[n_eff] = {
110 "fff with c4|hie",
111 "ffo with c4|hie",
112 "ffb with c4|hie",
113 "ffy with c4|hie",
114 "fyo with c4|hie",
115 "fyb with c4|hie",
116 "hie with fff|ffo|ffb",
117 "c4 with fff|ffo|ffb",
118 "lml0 with fff|ffo|ffb",
119 "lml1 with fff|ffo|ffb",
120 "lml2 with fff|ffo|ffb",
121 "lml3 with fff|ffo|ffb",
122 "lml4 with fff|ffo|ffb",
123 "lml5 with fff|ffo|ffb",
124 "lml6 with fff|ffo|ffb",
125 "lml7 with fff|ffo|ffb",
126 "lml8 with fff|ffo|ffb",
127 "lml9 with fff|ffo|ffb",
128 "lml10 with fff|ffo|ffb",
129 "lml12 with fff|ffo|ffb",
130 "lml13 with fff|ffo|ffb",
131 "bha3d with all",
132 "mu_b2b with fff|ffo|ffb",
133 "mu_b2b with lml|eclmumu",
134 "mu_eb2b with lml|eclmumu",
135 "cdcklm1 with fff|ffo|ffb",
136 "cdcklm2 with fff|ffo|ffb",
137 "fff with lml|eclmumu",
138 "ffo with lml|eclmumu",
139 "ffb with lml|eclmumu",
140 "ff with lml|eclmumu",
141 "f with lml|eclmumu",
142 "ffy with lml|eclmumu",
143 "fyo with lml|eclmumu",
144 "fyb with lml|eclmumu",
145 "cdcecl2 with fff|ffo|ffb",
146 "ecleklm with lml|eclmumu",
147 "syo with c4|hie",
148 "yioiecl1 with c4|hie",
149 "stt with c4|hie"
150 };
151
152 TCanvas* m_c_eff_shifter = nullptr;
153 TCanvas* m_c_eff_shifter_fast = nullptr;
154 TH1D* m_h_eff_shifter = nullptr;
155 TH1D* m_h_eff_shifter_fast = nullptr;
156 static const int n_eff_shifter = 14;
158 "CDC_fff",
159 "CDC_ffo",
160 "CDC_ffy",
161 "CDC_fyo",
162 "ECL_hie",
163 "ECL_c4",
164 "BKLM_b2b",
165 "EKLM_b2b",
166 "CDC_BKLM_lt1",
167 "CDC_ECL_lt1",
168 "ECL_EKLM_lt0",
169 "CDC_syo",
170 "CDC_yio",
171 "CDC_stt"
172 };
174 "CDC fff",
175 "CDC ffo",
176 "CDC ffy",
177 "CDC fyo",
178 "ECL hie",
179 "ECL c4",
180 "BKLM b2b",
181 "EKLM b2b",
182 "CDC-BKLM>1",
183 "CDC-ECL>1",
184 "ECL-EKLM>0",
185 "CDC syo",
186 "CDC yio",
187 "CDC stt"
188 };
189 TCanvas* m_c_pure_eff = nullptr;
190 TH1D* m_h_pure_eff = nullptr;
191 static const int n_pure_eff = 8;
193 const char* c_pure_eff[n_pure_eff] = {
194 "fff with c4|hie",
195 "ffo with c4|hie",
196 "ffb with c4|hie",
197 "ffy with c4|hie",
198 "fyo with c4|hie",
199 "fyb with c4|hie",
200 "hie with fff|ffo|ffb",
201 "c4 with fff|ffo|ffb"
202 };
203
206 std::vector<double> m_temp_lo_limit;
207 std::vector<double> m_temp_hi_limit;
208 std::vector<std::string> m_temp_pvnames;
209
212
213 //mirabelle
215
216#ifdef _BELLE2_EPICS
217 chid mychid[n_eff_shifter];// hard limit max 10 parameters
218 chid mychid_entry[nskim_gdldqm];
219#endif
220
221 };
222
224} // Belle2 namespace
225
226#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.