Belle II Software development
ECLShowerCorrectorLeakageCorrection.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//Root
12#include <TObject.h>
13
14namespace Belle2 {
25 public:
26
31
35 ECLShowerCorrectorLeakageCorrection(const std::vector<int>& bgFractionBinNum,
36 const std::vector<int>& regNum,
37 const std::vector<int>& phiBinNum,
38 const std::vector<int>& thetaBinNum,
39 const std::vector<int>& energyBinNum,
40 const std::vector<float>& correctionFactor,
41 const std::vector<float>& avgRecEn,
42 const std::vector<float>& lReg1Theta,
43 const std::vector<float>& hReg1Theta,
44 const std::vector<float>& lReg2Theta,
45 const std::vector<float>& hReg2Theta,
46 const std::vector<float>& lReg3Theta,
47 const std::vector<float>& hReg3Theta,
48 const std::vector<int>& numOfBfBins,
49 const std::vector<int>& numOfEnergyBins,
50 const std::vector<int>& numOfPhiBins,
51 const std::vector<int>& numOfReg1ThetaBins,
52 const std::vector<int>& numOfReg2ThetaBins,
53 const std::vector<int>& numOfReg3ThetaBins,
54 const std::vector<int>& phiPeriodicity) :
55 m_bgFractionBinNum(bgFractionBinNum),
56 m_regNum(regNum),
57 m_phiBinNum(phiBinNum),
58 m_thetaBinNum(thetaBinNum),
59 m_energyBinNum(energyBinNum),
60 m_correctionFactor(correctionFactor),
61 m_avgRecEn(avgRecEn),
62 m_lReg1Theta(lReg1Theta),
63 m_hReg1Theta(hReg1Theta),
64 m_lReg2Theta(lReg2Theta),
65 m_hReg2Theta(hReg2Theta),
66 m_lReg3Theta(lReg3Theta),
67 m_hReg3Theta(hReg3Theta),
68 m_numOfBfBins(numOfBfBins),
69 m_numOfEnergyBins(numOfEnergyBins),
70 m_numOfPhiBins(numOfPhiBins),
71 m_numOfReg1ThetaBins(numOfReg1ThetaBins),
72 m_numOfReg2ThetaBins(numOfReg2ThetaBins),
73 m_numOfReg3ThetaBins(numOfReg3ThetaBins),
74 m_phiPeriodicity(phiPeriodicity)
75 {
76
77 }
78
84 {
85 }
86
90 std::vector<int> getBgFractionBinNum() const {return m_bgFractionBinNum;};
91
95 std::vector<int> getRegNum() const {return m_regNum;};
96
100 std::vector<int> getPhiBinNum() const {return m_phiBinNum;};
101
105 std::vector<int> getThetaBinNum() const {return m_thetaBinNum;};
106
110 std::vector<int> getEnergyBinNum() const {return m_energyBinNum;};
111
115 std::vector<float> getCorrectionFactor() const {return m_correctionFactor;};
116
120 std::vector<float> getAvgRecEn() const {return m_avgRecEn;};
121
125 std::vector<float> getLReg1Theta() const {return m_lReg1Theta;};
126
130 std::vector<float> getHReg1Theta() const {return m_hReg1Theta;};
131
135 std::vector<float> getLReg2Theta() const {return m_lReg2Theta;};
136
140 std::vector<float> getHReg2Theta() const {return m_hReg2Theta;};
141
145 std::vector<float> getLReg3Theta() const {return m_lReg3Theta;};
146
150 std::vector<float> getHReg3Theta() const {return m_hReg3Theta;};
151
155 std::vector<int> getNumOfBfBins() const {return m_numOfBfBins;};
156
160 std::vector<int> getNumOfEnergyBins() const {return m_numOfEnergyBins;};
161
165 std::vector<int> getNumOfPhiBins() const {return m_numOfPhiBins;};
166
170 std::vector<int> getNumOfReg1ThetaBins() const {return m_numOfReg1ThetaBins;};
171
175 std::vector<int> getNumOfReg2ThetaBins() const {return m_numOfReg2ThetaBins;};
176
180 std::vector<int> getNumOfReg3ThetaBins() const {return m_numOfReg3ThetaBins;};
181
186 std::vector<int> getPhiPeriodicity() const {return m_phiPeriodicity;};
187
188 private:
189 //"ParameterNtuple" tree
190 std::vector<int> m_bgFractionBinNum;
191 std::vector<int> m_regNum;
192 std::vector<int> m_phiBinNum;
193 std::vector<int> m_thetaBinNum;
194 std::vector<int> m_energyBinNum;
195 std::vector<float> m_correctionFactor;
197 //"ConstantNtuple" tree
198 std::vector<float> m_avgRecEn;
199 std::vector<float> m_lReg1Theta;
200 std::vector<float> m_hReg1Theta;
201 std::vector<float> m_lReg2Theta;
202 std::vector<float> m_hReg2Theta;
203 std::vector<float> m_lReg3Theta;
204 std::vector<float> m_hReg3Theta;
205 std::vector<int> m_numOfBfBins;
206 std::vector<int> m_numOfEnergyBins;
207 std::vector<int> m_numOfPhiBins;
208 std::vector<int> m_numOfReg1ThetaBins;
209 std::vector<int> m_numOfReg2ThetaBins;
210 std::vector<int> m_numOfReg3ThetaBins;
211 std::vector<int> m_phiPeriodicity;
213 // 1: Initial version
215 };
217} // end namespace Belle2
218
Class to hold the information for the ECL shower leakage corrections.
std::vector< float > m_lReg2Theta
Lower bound of theta in region 2.
std::vector< int > m_numOfReg1ThetaBins
Number of theta bins in region 1.
ClassDef(ECLShowerCorrectorLeakageCorrection, 1)
ClassDef.
std::vector< float > getLReg1Theta() const
Get lower bound for theta in region 1.
ECLShowerCorrectorLeakageCorrection(const std::vector< int > &bgFractionBinNum, const std::vector< int > &regNum, const std::vector< int > &phiBinNum, const std::vector< int > &thetaBinNum, const std::vector< int > &energyBinNum, const std::vector< float > &correctionFactor, const std::vector< float > &avgRecEn, const std::vector< float > &lReg1Theta, const std::vector< float > &hReg1Theta, const std::vector< float > &lReg2Theta, const std::vector< float > &hReg2Theta, const std::vector< float > &lReg3Theta, const std::vector< float > &hReg3Theta, const std::vector< int > &numOfBfBins, const std::vector< int > &numOfEnergyBins, const std::vector< int > &numOfPhiBins, const std::vector< int > &numOfReg1ThetaBins, const std::vector< int > &numOfReg2ThetaBins, const std::vector< int > &numOfReg3ThetaBins, const std::vector< int > &phiPeriodicity)
Constructor.
std::vector< float > m_hReg3Theta
Upper bound of theta in region 3.
std::vector< int > getNumOfEnergyBins() const
Get number of energy bins.
std::vector< int > m_numOfBfBins
Number of background fraction bins.
std::vector< int > m_numOfEnergyBins
Number of energy bins.
std::vector< float > getHReg2Theta() const
Get upper bound for theta in region 2.
std::vector< int > getNumOfBfBins() const
Get number of background fraction bins.
std::vector< int > m_numOfReg3ThetaBins
Number of theta bins in region 3.
std::vector< int > getNumOfReg2ThetaBins() const
Get number of theta bins in region 2.
std::vector< int > getNumOfPhiBins() const
Get number of phi bins.
std::vector< int > m_numOfReg2ThetaBins
Number of theta bins in region 2.
std::vector< float > getCorrectionFactor() const
Get correction factors.
std::vector< int > getThetaBinNum() const
Get theta bin numbers.
std::vector< float > getLReg2Theta() const
Get lower bound for theta in region 2.
std::vector< float > getLReg3Theta() const
Get lower bound for theta in region 3.
std::vector< float > m_avgRecEn
Average reconstructed energy.
std::vector< int > getPhiPeriodicity() const
Get phi periodicity - repeating pattern in phi direction.
std::vector< float > m_hReg1Theta
Upper bound of theta in region 1.
std::vector< int > getRegNum() const
Get region numbers.
std::vector< int > getNumOfReg1ThetaBins() const
Get number of theta bins in region 1.
std::vector< int > getBgFractionBinNum() const
Get background fraction bin numbers.
std::vector< float > m_lReg1Theta
Lower bound of theta in region 1.
std::vector< int > m_phiPeriodicity
Periodicity in phi - repeating patter in phi direction.
std::vector< float > m_lReg3Theta
Lower bound of theta in region 3.
std::vector< float > getHReg1Theta() const
Get upper bound for theta in region 1.
std::vector< float > m_correctionFactor
Correction factors.
std::vector< int > getEnergyBinNum() const
Get energy bin numbers.
std::vector< float > getAvgRecEn() const
Get average reconstructed energy per bin.
std::vector< int > getNumOfReg3ThetaBins() const
Get number of theta bins in region 3.
std::vector< float > getHReg3Theta() const
Get upper bound for theta in region 3.
std::vector< int > getPhiBinNum() const
Get phi bin numbers.
std::vector< float > m_hReg2Theta
Upper bound of theta in region 2.
std::vector< int > m_bgFractionBinNum
Background fraction bin number.
Abstract base class for different kinds of events.