Belle II Software development
DQMHistAnalysisCDCMonObj.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#pragma once
10
11//DQM
12#include <dqm/core/DQMHistAnalysis.h>
13
14#include <framework/database/DBArray.h>
15#include <framework/database/DBObjPtr.h>
16#include <cdc/dataobjects/WireID.h>
17#include <cdc/dbobjects/CDCChannelMap.h>
18#include <cdc/dbobjects/CDCGeometry.h>
19
20#include <TH2Poly.h>
21
22
23namespace Belle2 {
28
33
34 public:
35
40
45 void initialize() override final;
46
51 void beginRun() override final;
52
57 void endRun() override final;
58
63 void terminate() override final;
64
68 void makeBadChannelList();
69
70
74 float getHistMean(TH1D* h) const;
75
79 float getHistMedian(TH1D* h) const;
80
84 std::pair<int, int> getBoardChannel(unsigned short layer, unsigned short wire);
85
89 void configureBins(TH2Poly* h);
90 protected:
91 //TObjects for DQM analysis
92 TCanvas* m_cMain = nullptr;
93 TCanvas* m_cADC = nullptr;
94 TCanvas* m_cTDC = nullptr;
95 TCanvas* m_cHit = nullptr;
96
98
99 TH2F* m_hADC = nullptr;
100 TH2F* m_hTDC = nullptr;
101 TH2F* m_hHit = nullptr;
102 TH1D* m_hADCs[300];
103 TH1D* m_hTDCs[300];
104 TH1D* m_hHits[56];
105
106 std::string m_name_dir = "";
107 std::string m_hname_badc = "";
108 std::string m_hname_btdc = "";
109 std::string m_hname_hits = "";
110
111 TH2Poly* h2p = nullptr;
112 TH2F* hBadChannel = nullptr;
113 TH2F* hBadChannelBC = nullptr;
114
115 std::vector<std::pair<int, int>> m_badChannels = {};
116 std::map<WireID, std::pair<int, int>> m_chMap = {};
118 float m_senseR[56] = {};
119 float m_fieldR[57] = {};
120 float m_offset[56] = {};
121 int m_nSenseWires[56] = {};
123 };
124
126} // Belle2 namespace
127
128
Class for accessing arrays of objects in the database.
Definition DBArray.h:26
Class for accessing objects in the database.
Definition DBObjPtr.h:21
std::map< WireID, std::pair< int, int > > m_chMap
Channel map retrieved.
void initialize() override final
Initialize the Module.
std::string m_hname_hits
Hits histogram names.
DBArray< CDCChannelMap > * m_channelMapFromDB
Channel map retrieved from DB.
std::vector< std::pair< int, int > > m_badChannels
bad wires list
int m_nSenseWires[56]
number of wires for each layer.
TH1D * m_hTDCs[300]
TDC histograms with track associated hits for each board (0-299)
MonitoringObject * m_monObj
monitoring object
void terminate() override final
Termination action.
DBObjPtr< CDCGeometry > * m_cdcGeo
Geometry of CDC.
TH2F * m_hTDC
Summary of TDC histograms with track associated hits.
TH1D * m_hADCs[300]
ADC histograms with track associated hits for each board (0-299)
TH2F * hBadChannel
bad channel map;wire;layer
std::pair< int, int > getBoardChannel(unsigned short layer, unsigned short wire)
Get board/channel from layer/wire.
TH1D * m_hHits[56]
hit histograms for each layer (0-55)
void endRun() override final
End-of-run action.
void configureBins(TH2Poly *h)
Configure bins of TH2Poly.
float getHistMean(TH1D *h) const
Get mean of ADC histogram excluding 0-th bin.
void beginRun() override final
Called when entering a new run.
TH2F * m_hADC
Summary of ADC histograms with track associated hits.
TH2F * hBadChannelBC
bad channel map per board/channel;board;channel
float getHistMedian(TH1D *h) const
Get median of ADC histogram excluding 0-th bin.
float m_senseR[56]
Radius of sense (+field) layer.
std::string m_hname_btdc
Board TDC histogram name.
std::string m_hname_badc
Board ADC histogram name.
DQMHistAnalysisModule()
Constructor / Destructor.
MonitoringObject is a basic object to hold data for the run-dependency monitoring Run summary TCanvas...
Abstract base class for different kinds of events.