Belle II Software development
ARICHReconstructionPar.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 <TObject.h>
12#include <vector>
13#include <TF1.h>
14#include <TF2.h>
15
16namespace Belle2 {
22
25 class ARICHReconstructionPar : public TObject {
26
27 public:
28
31
33 void initializeDefault();
34
39 void setBackgroundPDF(TF1* bkgPDF)
40 {
41 m_bkgPDF = bkgPDF;
42 }
43
48 void setBackgroundPhiPDF(TF2* bkgPhiPDF)
49 {
50 m_bkgPhiPDF = bkgPhiPDF;
51 }
52
53
58 void setThcResolution(TF1* thcRes)
59 {
60 m_thcResolution = thcRes;
61 }
62
67 void setAerogelFOM(const std::vector<float>& aerogelFOM)
68 {
69 m_aerogelFOM = aerogelFOM;
70 }
71
76 void setFlatBkgPerPad(const float flatBkgPerPad)
77 {
78 m_flatBkgPerPad = flatBkgPerPad;
79 }
80
85 void setParameters(const std::vector<float>& pars)
86 {
87 m_pars = pars;
88 }
89
94 const std::vector<float>& getParameters() const
95 {
96 return m_pars;
97 }
98
103 const TF1* getBackgroundPDF() const
104 {
105 return m_bkgPDF;
106 }
107
112 const TF2* getBackgroundPhiPDF() const
113 {
114 return m_bkgPhiPDF;
115 }
116
122 double getThcResolution(double momentum) const
123 {
124 return m_thcResolution->Eval(momentum);
125 }
126
132 double getAerogelFOM(unsigned iLayer) const
133 {
134 return m_aerogelFOM.at(iLayer);
135 }
136
141 float getFlatBkgPerPad() const
142 {
143 return m_flatBkgPerPad;
144 }
145
152 double getBackgroundPerPad(double th_cer, const std::vector<double>& pars) const;
153
162 double getPhiCorrectedBackgroundPerPad(double fi_cer_trk, double th_cer, const std::vector<double>& pars) const;
163
164
172 double getExpectedBackgroundHits(const std::vector<double>& pars, double minThc = 0.1, double maxThc = 0.5) const;
173
181 double getNPadsInRing(double maxThc, double minThc = 0.0, double trackTh = 0.45) const;
182
186 void print() const;
187
188 private:
189
190 mutable TF2* m_bkgPhiPDF = NULL;
191 mutable TF1* m_bkgPDF = NULL;
192 TF1* m_thcResolution = NULL;
193 std::vector<float> m_pars;
194 std::vector<float> m_aerogelFOM;
195 float m_flatBkgPerPad = 0.0;
199 };
200
202} // namespace
203
The Class for ARICH reconstruction parameters.
double getThcResolution(double momentum) const
Get Cherenkov angle resolution (without smearing due to pad size!) at given track momentum.
double getBackgroundPerPad(double th_cer, const std::vector< double > &pars) const
Get expected number of background hits for pad at given theta.
void initializeDefault()
initializes "default" values of parameters
void setFlatBkgPerPad(const float flatBkgPerPad)
Set flat background per pad.
const TF2 * getBackgroundPhiPDF() const
Get background PDF function (with phi correction)
float getFlatBkgPerPad() const
Get flat background per pad.
std::vector< float > m_pars
vector of other pdf parameters
double getPhiCorrectedBackgroundPerPad(double fi_cer_trk, double th_cer, const std::vector< double > &pars) const
Get expected number of background hits for pad at given theta at given phi_Cer_trk (flat background i...
void setAerogelFOM(const std::vector< float > &aerogelFOM)
Set aerogel figure of merit for cherenkov photon yield.
ARICHReconstructionPar()
Default constructor.
double getAerogelFOM(unsigned iLayer) const
Get aerogel cherenkov photon yield for tile of selected layer.
double getNPadsInRing(double maxThc, double minThc=0.0, double trackTh=0.45) const
Get average number of pads in ring.
void setParameters(const std::vector< float > &pars)
Set additional cherenkov angle PDF parameters.
void setThcResolution(TF1 *thcRes)
Set function for cherenkov angle resolution vs.
const TF1 * getBackgroundPDF() const
Get background PDF function.
void setBackgroundPhiPDF(TF2 *bkgPhiPDF)
Set background PDF function with flattening phi correction.
void setBackgroundPDF(TF1 *bkgPDF)
Set background PDF function for cherenkov angle distribution (vs.
TF2 * m_bkgPhiPDF
background PDF function with phi correction
ClassDef(ARICHReconstructionPar, 2)
ClassDef, must be the last term before the closing {}.
TF1 * m_thcResolution
cherenkov angle resolution (function of track momentum)
void print() const
Print parameters values.
double getExpectedBackgroundHits(const std::vector< double > &pars, double minThc=0.1, double maxThc=0.5) const
Get number of expected background hits in ring (0.1<theta<0.5rad by default)
std::vector< float > m_aerogelFOM
aerogel figure of merit (for photon yield)
float m_flatBkgPerPad
expected background hits per pad (treated flat over detector surface)
TF1 * m_bkgPDF
background PDF function (function of theta)
const std::vector< float > & getParameters() const
Get vector of additional cherenkov angle PDF parameters.
Abstract base class for different kinds of events.