14 #include <dqm/analysis/modules/DQMHistAnalysisTRG.h>
30 DQMHistAnalysisTRGModule::DQMHistAnalysisTRGModule()
37 B2DEBUG(1,
"DQMHistAnalysisTRGModule: Constructor done.");
49 B2DEBUG(1,
"DQMHistAnalysisTRGModule: initialized.");
52 m_canvas =
new TCanvas(
"TRG/c_Test");
54 addDeltaPar(
"TRGGDL",
"hGDL_gdlL1TocomL1_all", HistDelta::c_Entries, 1000, 1);
58 addDeltaPar(
"EventT0DQMdir",
"m_histEventT0_TOP_hadron_L1_ECLTRG", HistDelta::c_Entries, 1000, 1);
62 addDeltaPar(
"EventT0DQMdir",
"m_histEventT0_TOP_hadron_L1_CDCTRG", HistDelta::c_Entries, 1000, 1);
66 addDeltaPar(
"EventT0DQMdir",
"m_histEventT0_TOP_hadron_L1_TOPTRG", HistDelta::c_Entries, 1000, 1);
70 addDeltaPar(
"TRGGRL",
"h_ECLL1", HistDelta::c_Entries, 1000, 1);
74 addDeltaPar(
"TRGGRL",
"h_CDCL1", HistDelta::c_Entries, 1000, 1);
78 addDeltaPar(
"TRGGRL",
"h_CDCNNL1", HistDelta::c_Entries, 1000, 1);
82 addDeltaPar(
"TRGGRL",
"h_TSFL1", HistDelta::c_Entries, 1000, 1);
86 addDeltaPar(
"TRGGRL",
"h_KLML1", HistDelta::c_Entries, 1000, 1);
90 addDeltaPar(
"TRGGRL",
"h_TOPL1", HistDelta::c_Entries, 1000, 1);
95 addDeltaPar(
"softwaretrigger",
"skim", HistDelta::c_Entries, 1000, 1);
99 addDeltaPar(
"softwaretrigger",
"skim", HistDelta::c_Entries, 1000, 1);
103 addDeltaPar(
"softwaretrigger",
"skim", HistDelta::c_Entries, 1000, 1);
107 addDeltaPar(
"TRG",
"c_h_TCId", HistDelta::c_Entries, 1000, 1);
111 addDeltaPar(
"TRGCDCTNN",
"c_NeuroHWInTSID", HistDelta::c_Entries, 1000, 1);
121 B2DEBUG(1,
"DQMHistAnalysisTRGModule: beginRun called.");
126 B2DEBUG(1,
"DQMHistAnalysisTRGModule: endRun called.");
131 B2DEBUG(1,
"DQMHistAnalysisTRGModule: event called.");
140 auto hist_comL1_GDLL1 =
getDelta(
"TRGGDL",
"hGDL_gdlL1TocomL1_all", 0,
true);
141 if (hist_comL1_GDLL1) {
142 double comL1_GDLL1_mean = 0.0;
143 hist_comL1_GDLL1->Draw();
144 comL1_GDLL1_mean = hist_comL1_GDLL1->GetMean();
145 B2DEBUG(1,
"comL1_GDLL1_mean:" << comL1_GDLL1_mean);
146 setEpicsPV(
"comL1_GDLL1_mean", comL1_GDLL1_mean);
152 auto hist =
getDelta(
"EventT0DQMdir",
"m_histEventT0_TOP_hadron_L1_ECLTRG", 0,
true);
154 double ECLTRG_timing_mean = 0.0;
156 ECLTRG_timing_mean = hist->GetMean();
157 B2DEBUG(1,
"ECLTRG_timing_mean:" << ECLTRG_timing_mean);
158 setEpicsPV(
"ECLTRG_timing_mean", ECLTRG_timing_mean);
163 auto histCDCTRG =
getDelta(
"EventT0DQMdir",
"m_histEventT0_TOP_hadron_L1_CDCTRG", 0,
true);
165 double CDCTRG_timing_mean = 0.0;
167 CDCTRG_timing_mean = histCDCTRG->GetMean();
168 B2DEBUG(1,
"CDCTRG_timing_mean:" << CDCTRG_timing_mean);
169 setEpicsPV(
"CDCTRG_timing_mean", CDCTRG_timing_mean);
171 cout <<
"histCDCTRG = " << histCDCTRG << endl;
174 auto histTOPTRG =
getDelta(
"EventT0DQMdir",
"m_histEventT0_TOP_hadron_L1_TOPTRG", 0,
true);
176 double TOPTRG_timing_mean = 0.0;
178 TOPTRG_timing_mean = histTOPTRG->GetMean();
179 B2DEBUG(1,
"TOPTRG_timing_mean:" << TOPTRG_timing_mean);
180 setEpicsPV(
"TOPTRG_timing_mean", TOPTRG_timing_mean);
184 auto hist_ECLTRG_peak =
getDelta(
"TRGGRL",
"h_ECLL1", 0,
true);
185 if (hist_ECLTRG_peak) {
186 double ECLTRG_peak = 0.0;
187 hist_ECLTRG_peak->Draw();
188 int bin_ECLTRG_peak = hist_ECLTRG_peak->GetMaximumBin();
189 ECLTRG_peak = hist_ECLTRG_peak->GetXaxis()->GetBinCenter(bin_ECLTRG_peak);
190 B2DEBUG(1,
"ECLTRG_peak:" << ECLTRG_peak);
196 auto hist_CDCTRG_2D_peak =
getDelta(
"TRGGRL",
"h_CDCL1", 0,
true);
197 if (hist_CDCTRG_2D_peak) {
198 double CDCTRG_2D_peak = 0.0;
199 hist_CDCTRG_2D_peak->Draw();
200 int bin_CDCTRG_2D_peak = hist_CDCTRG_2D_peak->GetMaximumBin();
201 CDCTRG_2D_peak = hist_CDCTRG_2D_peak->GetXaxis()->GetBinCenter(bin_CDCTRG_2D_peak);
202 B2DEBUG(1,
"CDCTRG_2D_peak:" << CDCTRG_2D_peak);
208 auto hist_NN_peak =
getDelta(
"TRGGRL",
"h_CDCNNL1", 0,
true);
210 double NN_peak = 0.0;
211 hist_NN_peak->Draw();
212 int bin_NN_peak = hist_NN_peak->GetMaximumBin();
213 NN_peak = hist_NN_peak->GetXaxis()->GetBinCenter(bin_NN_peak);
214 B2DEBUG(1,
"NN_peak:" << NN_peak);
220 auto hist_CDCTRG_TSF_peak =
getDelta(
"TRGGRL",
"h_TSFL1", 0,
true);
221 if (hist_CDCTRG_TSF_peak) {
222 double CDCTRG_TSF_peak = 0.0;
223 hist_CDCTRG_TSF_peak->Draw();
224 int bin_CDCTRG_TSF_peak = hist_CDCTRG_TSF_peak->GetMaximumBin();
225 CDCTRG_TSF_peak = hist_CDCTRG_TSF_peak->GetXaxis()->GetBinCenter(bin_CDCTRG_TSF_peak);
226 B2DEBUG(1,
"CDCTRG_TSF_peak:" << CDCTRG_TSF_peak);
227 setEpicsPV(
"CDCTRG_TSF_peak", CDCTRG_TSF_peak);
232 auto hist_KLMTRG_peak =
getDelta(
"TRGGRL",
"h_KLML1", 0,
true);
233 if (hist_KLMTRG_peak) {
234 double KLMTRG_peak = 0.0;
235 hist_KLMTRG_peak->Draw();
236 int bin_KLMTRG_peak = hist_KLMTRG_peak->GetMaximumBin();
237 KLMTRG_peak = hist_KLMTRG_peak->GetXaxis()->GetBinCenter(bin_KLMTRG_peak);
238 B2DEBUG(1,
"KLMTRG_peak:" << KLMTRG_peak);
244 auto hist_TOPTRG_peak =
getDelta(
"TRGGRL",
"h_TOPL1", 0,
true);
245 if (hist_TOPTRG_peak) {
246 double TOPTRG_peak = 0.0;
247 hist_TOPTRG_peak->Draw();
248 int bin_TOPTRG_peak = hist_TOPTRG_peak->GetMaximumBin();
249 TOPTRG_peak = hist_TOPTRG_peak->GetXaxis()->GetBinCenter(bin_TOPTRG_peak);
250 B2DEBUG(1,
"TOPTRG_peak:" << TOPTRG_peak);
256 auto hist_hadronb2_over_bhabha_all =
getDelta(
"softwaretrigger",
"skim", 0,
true);
257 if (hist_hadronb2_over_bhabha_all) {
258 double hadronb2_over_bhabha_all = 0.0;
259 hist_hadronb2_over_bhabha_all->Draw();
260 hadronb2_over_bhabha_all = hist_hadronb2_over_bhabha_all->GetBinContent(
261 hist_hadronb2_over_bhabha_all->GetXaxis()->FindBin(
"accept_hadronb2")) / hist_hadronb2_over_bhabha_all->GetBinContent(
262 hist_hadronb2_over_bhabha_all->GetXaxis()->FindBin(
"accept_bhabha_all"));
264 B2DEBUG(1,
"hadronb2_over_bhabha_all:" << hadronb2_over_bhabha_all);
265 setEpicsPV(
"hadronb2_over_bhabha_all", hadronb2_over_bhabha_all);
270 auto hist_mumu2trk_over_bhabha_all =
getDelta(
"softwaretrigger",
"skim", 0,
true);
271 if (hist_mumu2trk_over_bhabha_all) {
272 double mumu2trk_over_bhabha_all = 0.0;
273 hist_mumu2trk_over_bhabha_all->Draw();
274 mumu2trk_over_bhabha_all = hist_mumu2trk_over_bhabha_all->GetBinContent(
275 hist_mumu2trk_over_bhabha_all->GetXaxis()->FindBin(
"accept_mumu_2trk")) / hist_mumu2trk_over_bhabha_all->GetBinContent(
276 hist_mumu2trk_over_bhabha_all->GetXaxis()->FindBin(
"accept_bhabha_all"));
277 B2DEBUG(1,
"mumu2trk_over_bhabha_all:" << mumu2trk_over_bhabha_all);
278 setEpicsPV(
"mumu2trk_over_bhabha_all", mumu2trk_over_bhabha_all);
283 auto hist_hadronb2_over_mumu2trk =
getDelta(
"softwaretrigger",
"skim", 0,
true);
284 if (hist_hadronb2_over_mumu2trk) {
285 double hadronb2_over_mumu2trk = 0.0;
286 hist_hadronb2_over_mumu2trk->Draw();
287 hadronb2_over_mumu2trk = hist_hadronb2_over_mumu2trk->GetBinContent(
288 hist_hadronb2_over_mumu2trk->GetXaxis()->FindBin(
"accept_hadronb2")) / hist_hadronb2_over_mumu2trk->GetBinContent(
289 hist_hadronb2_over_mumu2trk->GetXaxis()->FindBin(
"accept_mumu_2trk"));
290 B2DEBUG(1,
"hadronb2_over_mumu2trk:" << hadronb2_over_mumu2trk);
291 setEpicsPV(
"hadronb2_over_mumu2trk", hadronb2_over_mumu2trk);
296 auto hist_c_h_TCId =
getDelta(
"TRG",
"c_h_TCId", 0,
true);
298 double deadch_c_h_TCId = 0.0;
299 hist_c_h_TCId->Draw();
300 deadch_c_h_TCId = hist_c_h_TCId->GetMaximum() * 0.01;
301 B2DEBUG(1,
"deadch_c_h_TCId:" << deadch_c_h_TCId);
302 setEpicsPV(
"deadch_c_h_TCId", deadch_c_h_TCId);
307 auto hist_c_NeuroHWInTSID =
getDelta(
"TRGCDCTNN",
"c_NeuroHWInTSID", 0,
true);
308 if (hist_c_NeuroHWInTSID) {
309 double deadch_c_NeuroHWInTSID = 0.0;
310 hist_c_NeuroHWInTSID->Draw();
311 deadch_c_NeuroHWInTSID = hist_c_NeuroHWInTSID->GetMaximum() * 0.01;
312 B2DEBUG(1,
"deadch_c_NeuroHWInTSID:" << deadch_c_NeuroHWInTSID);
313 setEpicsPV(
"deadch_c_NeuroHWInTSID", deadch_c_NeuroHWInTSID);
319 auto hist_mumu_tight_over_bhabha_all =
getDelta(
"softwaretrigger",
"skim", 0,
true);
320 if (hist_mumu_tight_over_bhabha_all) {
321 double mumu_tight_over_bhabha_all = 0.0;
322 hist_mumu_tight_over_bhabha_all->Draw();
323 mumu_tight_over_bhabha_all = hist_mumu_tight_over_bhabha_all->GetBinContent(
324 hist_mumu_tight_over_bhabha_all->GetXaxis()->FindBin(
"accept_mumutight")) / hist_mumu_tight_over_bhabha_all->GetBinContent(
325 hist_mumu_tight_over_bhabha_all->GetXaxis()->FindBin(
"accept_bhabha_all"));
326 B2DEBUG(1,
"mumu_tight_over_bhabha_all:" << mumu_tight_over_bhabha_all);
327 setEpicsPV(
"mumu_tight_over_bhabha_all", mumu_tight_over_bhabha_all);
332 auto hist_gammagamma_over_bhabha_all =
getDelta(
"softwaretrigger",
"skim", 0,
true);
333 if (hist_gammagamma_over_bhabha_all) {
334 double gammagamma_over_bhabha_all = 0.0;
335 hist_gammagamma_over_bhabha_all->Draw();
336 gammagamma_over_bhabha_all = hist_gammagamma_over_bhabha_all->GetBinContent(
337 hist_gammagamma_over_bhabha_all->GetXaxis()->FindBin(
"accept_gamma_gamma")) / hist_gammagamma_over_bhabha_all->GetBinContent(
338 hist_gammagamma_over_bhabha_all->GetXaxis()->FindBin(
"accept_bhabha_all"));
339 B2DEBUG(1,
"gammagamma_over_bhabha_all:" << gammagamma_over_bhabha_all);
340 setEpicsPV(
"gammagamma_over_bhabha_all", gammagamma_over_bhabha_all);
345 auto hist_tautau2trk_over_bhabha_all =
getDelta(
"softwaretrigger",
"skim", 0,
true);
346 if (hist_tautau2trk_over_bhabha_all) {
347 double tautau2trk_over_bhabha_all = 0.0;
348 hist_tautau2trk_over_bhabha_all->Draw();
349 tautau2trk_over_bhabha_all = hist_tautau2trk_over_bhabha_all->GetBinContent(
350 hist_tautau2trk_over_bhabha_all->GetXaxis()->FindBin(
"accept_tau_2trk")) / hist_tautau2trk_over_bhabha_all->GetBinContent(
351 hist_tautau2trk_over_bhabha_all->GetXaxis()->FindBin(
"accept_bhabha_all"));
352 B2DEBUG(1,
"tautau2trk_over_bhabha_all:" << tautau2trk_over_bhabha_all);
353 setEpicsPV(
"tautau2trk_over_bhabha_all", tautau2trk_over_bhabha_all);
358 auto hist_hadron_over_bhabha_all =
getDelta(
"softwaretrigger",
"skim", 0,
true);
359 if (hist_hadron_over_bhabha_all) {
360 double hadron_over_bhabha_all = 0.0;
361 hist_hadron_over_bhabha_all->Draw();
362 hadron_over_bhabha_all = hist_hadron_over_bhabha_all->GetBinContent(
363 hist_hadron_over_bhabha_all->GetXaxis()->FindBin(
"accept_hadron")) / hist_hadron_over_bhabha_all->GetBinContent(
364 hist_hadron_over_bhabha_all->GetXaxis()->FindBin(
"accept_bhabha_all"));
365 B2DEBUG(1,
"hadron_over_bhabha_all:" << hadron_over_bhabha_all);
366 setEpicsPV(
"hadron_over_bhabha_all", hadron_over_bhabha_all);
382 B2DEBUG(1,
"DQMHistAnalysisTRGModule: terminate called");
The base class for the histogram analysis module.
int registerEpicsPV(std::string pvname, std::string keyname="", bool update_pvs=true)
EPICS related Functions.
void addDeltaPar(const std::string &dirname, const std::string &histname, HistDelta::EDeltaType t, int p, unsigned int a=1)
Add Delta histogram parameters.
TH1 * getDelta(const std::string &fullname, int n=0, bool onlyIfUpdated=true)
Get Delta histogram.
void setEpicsPV(std::string keyname, double value)
Write value to a EPICS PV.
void UpdateCanvas(std::string name, bool updated=true)
Mark canvas as updated (or not)
void terminate(void) override final
This method is called at the end of the event processing.
void initialize(void) override final
Initializer.
void endRun(void) override final
Called when run ends.
std::string m_pvPrefix
prefix for EPICS PVs
TCanvas * m_canvas
Final Canvas.
void doHistAnalysis()
Do the actual processing.
~DQMHistAnalysisTRGModule()
Destructor.
void beginRun(void) override final
Called when entering a new run.
void event(void) override final
This method is called for each event.
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Abstract base class for different kinds of events.