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
14#include <vector>
15
16#include <TROOT.h>
17#include <TCanvas.h>
18#include <TH1F.h>
19#include <TH2F.h>
20
21namespace Belle2 {
29
30 public:
31
37 void initialize() override final;
39 void beginRun() override final;
41 void event() override final;
43 void endRun() override final;
45 void terminate() override final;
46
47 private:
48
50 TCanvas* m_c_avgEfficiency = nullptr;
51 TCanvas* m_c_avgOffOccupancy = nullptr;
52 TCanvas* m_c_MPVChargeClusterOnTrack = nullptr;
53 TCanvas* m_c_MPVSNRClusterOnTrack = nullptr;
54 TCanvas* m_c_MPVTimeClusterOnTrack = nullptr;
56 nullptr;
57 TCanvas* m_c_MeanSVDEventT0 = nullptr;
61
63 std::vector<VxdID> m_SVDModules;
64
65
74 std::vector<float> highOccupancySensor(int iLayer, TH1F* hU, TH1F* hV, int iBin, int nEvents) const;
75
86 std::vector<float> avgOccupancyUV(int iLayer, TH1F* hU, TH1F* hV, int min, int max, int offset, int step, int nEvents) const;
87
88
95 std::vector<float> avgOccupancyGrpId0UV(int iLayer, int nEvents) const;
96
97
105 std::vector<float> avgEfficiencyUV(TH2F* hMCU, TH2F* hMCV, TH2F* hFTU, TH2F* hFTV, int minX, int maxX, int minY, int maxY) const;
106
112 float xForMaxY(TH1F* h) const;
113
119 float histFWHM(TH1F* h) const;
120
121 };
123} // end namespace Belle2
124
125
126
127
128
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< VxdID > m_SVDModules
IDs of all SVD Modules to iterate over.
std::vector< float > avgEfficiencyUV(TH2F *hMCU, TH2F *hMCV, TH2F *hFTU, TH2F *hFTV, int minX, int maxX, int minY, int maxY) const
Calculate avg efficiency for specified sensors.
std::vector< float > avgOccupancyUV(int iLayer, TH1F *hU, TH1F *hV, int min, int max, int offset, int step, int nEvents) const
Calculate avg offline occupancy for specified sensors.
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.
void event() override final
Module function event.
TCanvas * m_c_MPVSNRClusterOnTrack
SNR for clusters on track.
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
std::vector< float > highOccupancySensor(int iLayer, TH1F *hU, TH1F *hV, int iBin, int nEvents) const
Calculate avg offline occupancy for one specific sensor, especially with high occupancy.
MonitoringObject is a basic object to hold data for the run-dependency monitoring Run summary TCanvas...
Abstract base class for different kinds of events.