Belle II Software  release-08-00-10
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 #include <dqm/core/DQMHistAnalysis.h>
16 
17 #include <vxd/dataobjects/VxdID.h>
18 
19 #include <TH2F.h>
20 #include <TEfficiency.h>
21 
22 namespace Belle2 {
30 
31  // Public functions
32  public:
33 
38 
43 
47  void initialize(void) override final;
48 
52  void beginRun(void) override final;
53 
57  void event(void) override final;
58 
62  void terminate(void) override final;
63 
64  private:
65 
66  // Data members
70  int m_u_bins;
72  int m_v_bins;
74  double m_confidence;
76  double m_warnlevel;
78  double m_errorlevel;
80  int m_minEntries = 1000;
86  std::vector<int> m_excluded;
87 
89  std::vector<VxdID> m_PXDModules;
90 
92  std::map<VxdID, TEfficiency*> m_hEffModules;
94  std::map<VxdID, TCanvas*> m_cEffModules;
95 
97  TEfficiency* m_hEffAll = nullptr;
99  TCanvas* m_cEffAll = nullptr;
101  TH1* m_hEffAllLastTotal = nullptr;
103  TH1* m_hEffAllLastPassed = nullptr;
105  TEfficiency* m_hEffAllUpdate = nullptr;
107  TCanvas* m_cEffAllUpdate = nullptr;
108 
110  TH2F* m_hInnerMap{};
112  TH2F* m_hOuterMap{};
114  TCanvas* m_cInnerMap{};
116  TCanvas* m_cOuterMap{};
117 
119  TH1F* m_hWarnLine{};
121  TH1F* m_hErrorLine{};
123  std::map<VxdID, double> m_warnlevelmod;
125  std::map<VxdID, double> m_errorlevelmod;
126 
129  };
131 } // end namespace Belle2
132 
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
Initializer.
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.
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
std::map< VxdID, TEfficiency * > m_hEffModules
Individual efficiency for each module, 2d histogram.
TH1F * m_hErrorLine
TLine object for error error.
std::vector< int > m_excluded
Indizes of excluded PXD Modules.
bool m_alarmAdhoc
generate alarm from adhoc values
double m_warnlevel
warn level for alarm
void beginRun(void) override final
Called when entering a new run.
void event(void) override final
This method is called for each event.
MonitoringObject is a basic object to hold data for the run-dependency monitoring Run summary TCanvas...
Abstract base class for different kinds of events.