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 {
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;
62
64 std::vector<VxdID> m_SVDModules;
65
67 const VXD::GeoTools* m_gTools = nullptr;
68
78 std::vector<float> avgOccupancyUV(TH1F* hU, TH1F* hV, int nEvents, int layer = -1, int ladder = -1, int sensor = -1) const;
79
86 std::vector<float> avgOccupancyGrpId0UV(int iLayer, int nEvents) const;
87
95 std::vector<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::vector<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
The base class for the histogram analysis module.
Class derived from HistoModule, for SVD monitoring variables at MiraBelle.
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< 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::vector< VxdID > m_SVDModules
IDs of all SVD Modules to iterate over.
const VXD::GeoTools * m_gTools
geometrical tool pointer
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.
TCanvas * m_c_MPVSNRClusterOnTrack
SNR for clusters on track.
Int_t getNumberOfLadders(Int_t layer) const
get number of ladders per layer
std::vector< 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.
void addVariable(std::string name, std::vector< float > &varUV)
Add variable to object monitoring.
void endRun() override final
Module function endRun.
std::vector< float > avgOccupancyGrpId0UV(int iLayer, int nEvents) const
Calculate avg offline occupancy for specified layer for time group id = 0.
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.