Belle II Software  release-06-02-00
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 
15 namespace Belle2 {
21 
24  class ARICHReconstructionPar : public TObject {
25 
26  public:
27 
30 
32  void initializeDefault();
33 
38  void setBackgroundPDF(TF1* bkgPDF)
39  {
40  m_bkgPDF = bkgPDF;
41  }
42 
47  void setThcResolution(TF1* thcRes)
48  {
49  m_thcResolution = thcRes;
50  }
51 
56  void setAerogelFOM(const std::vector<float>& aerogelFOM)
57  {
58  m_aerogelFOM = aerogelFOM;
59  }
60 
65  void setFlatBkgPerPad(const float flatBkgPerPad)
66  {
67  m_flatBkgPerPad = flatBkgPerPad;
68  }
69 
74  void setParameters(const std::vector<float>& pars)
75  {
76  m_pars = pars;
77  }
78 
83  const std::vector<float>& getParameters() const
84  {
85  return m_pars;
86  }
87 
92  const TF1* getBackgroundPDF() const
93  {
94  return m_bkgPDF;
95  }
96 
102  double getThcResolution(double momentum) const
103  {
104  return m_thcResolution->Eval(momentum);
105  }
106 
112  double getAerogelFOM(unsigned iLayer) const
113  {
114  return m_aerogelFOM.at(iLayer);
115  }
116 
121  float getFlatBkgPerPad() const
122  {
123  return m_flatBkgPerPad;
124  }
125 
132  double getBackgroundPerPad(double th_cer, const std::vector<double>& pars) const;
133 
141  double getExpectedBackgroundHits(const std::vector<double>& pars, double minThc = 0.1, double maxThc = 0.5) const;
142 
150  double getNPadsInRing(double maxThc, double minThc = 0.0, double trackTh = 0.45) const;
151 
155  void print() const;
156 
157  private:
158 
159  mutable TF1* m_bkgPDF = NULL;
160  TF1* m_thcResolution = NULL;
161  std::vector<float> m_pars;
162  std::vector<float> m_aerogelFOM;
163  float m_flatBkgPerPad = 0.0;
167  };
168 
170 } // namespace
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.
float getFlatBkgPerPad() const
Get flat background per pad.
std::vector< float > m_pars
vector of other pdf parameters
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.
void setBackgroundPDF(TF1 *bkgPDF)
Set background PDF function for cherenkov angle distribution (vs.
ClassDef(ARICHReconstructionPar, 1)
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.
const TF1 * getBackgroundPDF() const
Get background PDF function.
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.