Belle II Software development
DQMHistAnalysisSVDOnMiraBelle.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#include <dqm/core/DQMHistAnalysis.h>
12#include <vxd/dataobjects/VxdID.h>
13#include <vxd/geometry/GeoTools.h>
14
15#include <vector>
16
17#include <TROOT.h>
18#include <TCanvas.h>
19#include <TH1F.h>
20#include <TH2F.h>
21
22namespace Belle2 {
27
30
31 public:
32
38 void initialize() override final;
40 void beginRun() override final;
42 void event() override final;
44 void endRun() override final;
46 void terminate() override final;
47
48 private:
49
51 TCanvas* m_c_avgEfficiency = nullptr;
52 TCanvas* m_c_avgOffOccupancy = nullptr;
53 TCanvas* m_c_MPVChargeClusterOnTrack = nullptr;
54 TCanvas* m_c_MPVSNRClusterOnTrack = nullptr;
55 TCanvas* m_c_MPVTimeClusterOnTrack = nullptr;
57 nullptr;
58 TCanvas* m_c_MeanSVDEventT0 = nullptr;
59
62
64 std::vector<VxdID> m_SVDModules;
65
67 const VXD::GeoTools* m_gTools = nullptr;
68
78 std::pair<float, float> avgOccupancyUV(TH1F* hU, TH1F* hV, int nEvents, int layer = -1, int ladder = -1, int sensor = -1) const;
79
86 std::pair<float, float> avgOccupancyGrpId0UV(int iLayer, int nEvents) const;
87
95 std::pair<float, float> avgEfficiencyUV(TH2F* hMCU, TH2F* hMCV, TH2F* hFTU, TH2F* hFTV, int layer = -1, int ladder = -1,
96 int sensor = -1) const;
97
103 float xForMaxY(TH1F* h) const;
104
110 float histFWHM(TH1F* h) const;
111
117 void addVariable(std::string name, std::pair<float, float>& varUV);
118
120 Int_t findBinY(Int_t layer, Int_t sensor) const
121 {
122 // should take the method from SVDSummaryPlot (->put as static)
123 if (layer == 3)
124 return sensor; //2
125 if (layer == 4)
126 return 2 + 1 + sensor; //6
127 if (layer == 5)
128 return 6 + 1 + sensor; // 11
129 if (layer == 6)
130 return 11 + 1 + sensor; // 17
131 else
132 return -1;
133 }
134
136 Int_t getNumberOfLadders(Int_t layer) const
137 {
138 if (layer == 3)
139 return 7;
140 if (layer == 4)
141 return 10;
142 if (layer == 5)
143 return 12;
144 if (layer == 6)
145 return 16;
146 else
147 return -1;
148 }
149
151 Int_t getNumberOfSensors(Int_t layer) const
152 {
153 if (layer == 3)
154 return 2;
155 if (layer == 4)
156 return 3;
157 if (layer == 5)
158 return 4;
159 if (layer == 6)
160 return 5;
161 else
162 return -1;
163 }
164
165 };
166
170#define SetVariable(x) addVariable(#x , x)
171
173} // end namespace Belle2
174
175
176
177
178
DQMHistAnalysisModule()
Constructor / Destructor.
void initialize() override final
Module function initialize.
float histFWHM(TH1F *h) const
Calculate full width at half maximum of histogram.
TCanvas * m_c_MPVTimeClusterOnTrack
time for clusters on track
std::vector< VxdID > m_SVDModules
IDs of all SVD Modules to iterate over.
const VXD::GeoTools * m_gTools
geometrical tool pointer
void addVariable(std::string name, std::pair< float, float > &varUV)
Add variable to object monitoring.
TCanvas * m_c_MPVChargeClusterOnTrack
charge for clusters on track
MonitoringObject * m_monObj
Monitoring Object to be produced by this module, which contain defined canvases and monitoring variab...
TCanvas * m_c_avgEfficiency
List of canvases to be added to MonitoringObject.
void terminate() override final
Module function terminate.
Int_t findBinY(Int_t layer, Int_t sensor) const
find the Y bin given the layer and sensor number
void event() override final
Module function event.
std::pair< float, float > avgOccupancyGrpId0UV(int iLayer, int nEvents) const
Calculate avg offline occupancy for specified layer for time group id = 0.
std::pair< float, float > avgOccupancyUV(TH1F *hU, TH1F *hV, int nEvents, int layer=-1, int ladder=-1, int sensor=-1) const
Calculate avg offline occupancy for one specific sensor, especially.
std::pair< float, float > avgEfficiencyUV(TH2F *hMCU, TH2F *hMCV, TH2F *hFTU, TH2F *hFTV, int layer=-1, int ladder=-1, int sensor=-1) const
Calculate avg efficiency for specified sensors.
TCanvas * m_c_MPVSNRClusterOnTrack
SNR for clusters on track.
Int_t getNumberOfLadders(Int_t layer) const
get number of ladders per layer
void endRun() override final
Module function endRun.
float xForMaxY(TH1F *h) const
Calculate abscissa of max Y bin.
TCanvas * m_c_avgOffOccupancy
number of ZS5 fired strips
void beginRun() override final
Module function beginRun.
TCanvas * m_c_avgMaxBinClusterOnTrack
average number of the APV sample which corresponds to the maximum amplitude for clusters on track
Int_t getNumberOfSensors(Int_t layer) const
get number of sensors per layer
MonitoringObject is a basic object to hold data for the run-dependency monitoring Run summary TCanvas...
The class collects utility functions for numbering layers, sensors snd chips based on current VXD geo...
Definition GeoTools.h:25
Abstract base class for different kinds of events.