Belle II Software  release-08-01-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:
73  bool updateEffBins(int bin, int nhit, int nmatch, int minentries);
74 
81  bool check_error_level(int bin, std::string name);
82 
89  bool check_warn_level(int bin, std::string name);
90 
95  void setLabels(TGraphAsymmErrors* gr);
96 
97  private:
98 
99  // Data members
103  int m_u_bins;
105  int m_v_bins;
107  double m_confidence;
109  double m_warnlevel;
111  double m_errorlevel;
113  int m_minEntries = 1000;
119  std::vector<int> m_excluded;
120 
122  std::vector<VxdID> m_PXDModules;
123 
125  std::map<VxdID, TEfficiency*> m_eEffModules;
127  std::map<VxdID, TCanvas*> m_cEffModules;
128 
130  TEfficiency* m_eEffAll = nullptr;
132  TCanvas* m_cEffAll = nullptr;
134  TH1* m_hEffAllLastTotal = nullptr;
136  TH1* m_hEffAllLastPassed = nullptr;
138  TEfficiency* m_eEffAllUpdate = nullptr;
140  TCanvas* m_cEffAllUpdate = nullptr;
141 
143  TH2F* m_hInnerMap{};
145  TH2F* m_hOuterMap{};
147  TCanvas* m_cInnerMap{};
149  TCanvas* m_cOuterMap{};
150 
152  TH1F* m_hWarnLine{};
154  TH1F* m_hErrorLine{};
156  std::map<std::string, double> m_warnlevelmod;
158  std::map<std::string, double> m_errorlevelmod;
161 
164  };
166 } // end namespace Belle2
167 
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, TEfficiency * > m_eEffModules
Individual efficiency for each module, 2d histogram.
bool m_perModuleAlarm
use alarm level per module
std::map< VxdID, TCanvas * > m_cEffModules
Individual efficiency for each module, canvas.
void initialize(void) override final
Initializer.
int m_nrxbins
Number of bins in efficiency plot, all modules plus layer and summary.
TH1 * m_hEffAllLastTotal
TH1, last state, total.
TH1 * m_hEffAllLastPassed
TH1, last state, passed.
TH2F * m_hOuterMap
Full Eff Map Outer Layer.
void setLabels(TGraphAsymmErrors *gr)
Set module labels for TGraphAsymmErrors.
TEfficiency * m_eEffAll
One bin for each module in the geometry.
MonitoringObject * m_monObj
Monitoring Object.
bool check_warn_level(int bin, std::string name)
Check bin/name for warn condition.
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
std::map< std::string, double > m_warnlevelmod
warn level for alarm per module
TEfficiency * m_eEffAllUpdate
Efficiency, last state, updated.
TH1F * m_hWarnLine
TLine object for warning limit.
double m_errorlevel
error level for alarm
bool check_error_level(int bin, std::string name)
Check bin/name for error condition.
std::map< std::string, double > m_errorlevelmod
error level for alarm per module
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
bool updateEffBins(int bin, int nhit, int nmatch, int minentries)
Update bin in efficiency plots with condition on nhits.
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.