Belle II Software  release-06-00-14
DQMHistAnalysisPXDEff.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 : DQMHistAnalysisPXDEff.h
10 // Description : DQM module, which gives histograms showing the efficiency of PXD sensors
11 //-
12 
13 #pragma once
14 
15 #ifdef _BELLE2_EPICS
16 // EPICS
17 #include "cadef.h"
18 #endif
19 
20 #include <dqm/analysis/modules/DQMHistAnalysis.h>
21 #include <vxd/dataobjects/VxdID.h>
22 
23 #include <TEfficiency.h>
24 #include <TCanvas.h>
25 #include <TH2F.h>
26 
27 namespace Belle2 {
35 
36  // Public functions
37  public:
38 
43  private:
44 
46  void initialize(void) override final;
47 
49  void beginRun(void) override final;
50  void event(void) override final;
51  void terminate(void) override final;
52 
53  // Data members
57  std::string m_pvPrefix;
59  int m_u_bins;
61  int m_v_bins;
63  double m_confidence;
65  double m_warnlevel;
67  double m_errorlevel;
69  int m_minEntries = 1000;
74 
76  std::vector<VxdID> m_PXDModules;
77 
79  std::map<VxdID, TEfficiency*> m_hEffModules;
81  std::map<VxdID, TCanvas*> m_cEffModules;
82 
84  TEfficiency* m_hEffAll = nullptr;
86  TCanvas* m_cEffAll = nullptr;
88  TH1* m_hEffAllLastTotal = nullptr;
90  TH1* m_hEffAllLastPassed = nullptr;
92  TEfficiency* m_hEffAllUpdate = nullptr;
94  TCanvas* m_cEffAllUpdate = nullptr;
95 
97  TH2F* m_hInnerMap{};
99  TH2F* m_hOuterMap{};
101  TCanvas* m_cInnerMap{};
103  TCanvas* m_cOuterMap{};
104 
106  TH1F* m_hWarnLine{};
108  TH1F* m_hErrorLine{};
110  std::map<VxdID, double> m_warnlevelmod;
112  std::map<VxdID, double> m_errorlevelmod;
113 
116 
119 
122 
123 #ifdef _BELLE2_EPICS
125  std::vector <chid> mychid_status;
127  std::map <VxdID, chid> mychid_eff;
129  std::map <VxdID, chid> mychid_low;
131  std::map <VxdID, chid> mychid_lolo;
132 #endif
133  };
135 } // end namespace Belle2
136 
The base class for the histogram analysis module.
DQM Histogram Analysis for PXD Efficiency.
TCanvas * m_cOuterMap
Full Eff Map Outer Layer.
TCanvas * m_cInnerMap
Full Eff Map Inner Layer.
void terminate(void) override final
This method is called at the end of the event processing.
int m_minEntries
Update entry intervall.
std::map< VxdID, double > m_warnlevelmod
warn level for alarm per module
bool m_perModuleAlarm
use alarm level per module
TEfficiency * m_hEffAll
One bin for each module in the geometry.
std::map< VxdID, TCanvas * > m_cEffModules
Individual efficiency for each module, canvas.
void initialize(void) override final
Module functions to be called from main process.
TEfficiency * m_hEffAllUpdate
Efficiency, last state, updated.
std::map< VxdID, double > m_errorlevelmod
error level for alarm per module
TH1 * m_hEffAllLastTotal
TH1, last state, total.
TH1 * m_hEffAllLastPassed
TH1, last state, passed.
TH2F * m_hOuterMap
Full Eff Map Outer Layer.
std::string m_pvPrefix
prefix for EPICS PVs
MonitoringObject * m_monObj
Monitoring Object.
std::vector< VxdID > m_PXDModules
IDs of all PXD Modules to iterate over.
std::string m_histogramDirectoryName
name of histogram directory
TCanvas * m_cEffAllUpdate
Final Canvas for Update.
TH2F * m_hInnerMap
Full Eff Map Inner Layer.
double m_confidence
confidence level for error bars
TH1F * m_hWarnLine
TLine object for warning limit.
double m_errorlevel
error level for alarm
bool m_useEpicsRO
flag if to import from EPICS only
std::map< VxdID, TEfficiency * > m_hEffModules
Individual efficiency for each module, 2d histogram.
bool m_useEpics
flag if to export to EPICS
TH1F * m_hErrorLine
TLine object for error error.
bool m_alarmAdhoc
generate alarm from adhoc values
double m_warnlevel
warn level for alarm
void beginRun(void) override final
Module functions to be called from event process.
void event(void) override final
This method is the core of the 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.