Belle II Software  release-05-02-19
TOPNominalQE.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Marko Staric *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <top/dbobjects/TOPGeoBase.h>
14 #include <vector>
15 
16 namespace Belle2 {
25  class TOPNominalQE : public TOPGeoBase {
26  public:
27 
31  TOPNominalQE()
32  {}
33 
42  TOPNominalQE(float lambdaFirst, float lambdaStep, float CE,
43  const std::vector<float>& qe,
44  const std::string& name = "TOPNominalQE"): TOPGeoBase(name),
45  m_lambdaFirst(lambdaFirst), m_lambdaStep(lambdaStep), m_CE(CE), m_QE(qe)
46  {}
47 
56  void set(float lambdaFirst, float lambdaStep, float CE,
57  const std::vector<float>& qe,
58  const std::string& name)
59  {
60  m_lambdaFirst = lambdaFirst;
61  m_lambdaStep = lambdaStep;
62  m_CE = CE;
63  m_QE = qe;
64  setName(name);
65  }
66 
70  void clear()
71  {
72  m_lambdaFirst = 0;
73  m_lambdaStep = 0;
74  m_CE = 0;
75  m_QE.clear();
76  setName("");
77  }
78 
83  bool isEmpty() const {return m_QE.empty();}
84 
89  const std::vector<float>& getQE() const {return m_QE;}
90 
96  double getQE(double lambda) const;
97 
104  double getEfficiency(double lambda) const {return getQE(lambda) * m_CE;}
105 
110  double getLambdaFirst() const {return m_lambdaFirst;}
111 
116  double getLambdaLast() const
117  {
118  return m_lambdaFirst + (m_QE.size() - 1) * m_lambdaStep;
119  }
120 
125  double getLambdaStep() const {return m_lambdaStep;}
126 
131  double getCE() const {return m_CE;}
132 
137  bool isConsistent() const override;
138 
143  void print(const std::string& title = "Nominal quantum efficiency") const override;
144 
145 
146  private:
147 
148  float m_lambdaFirst = 0;
149  float m_lambdaStep = 0;
150  float m_CE = 0;
151  std::vector<float> m_QE;
155  };
156 
158 } // end namespace Belle2
159 
160 
Belle2::TOPNominalQE::m_lambdaFirst
float m_lambdaFirst
wavelength of the first data point [nm]
Definition: TOPNominalQE.h:156
Belle2::TOPNominalQE::m_QE
std::vector< float > m_QE
QE data points.
Definition: TOPNominalQE.h:159
Belle2::TOPNominalQE::TOPNominalQE
TOPNominalQE()
Default constructor.
Definition: TOPNominalQE.h:39
Belle2::TOPNominalQE::m_lambdaStep
float m_lambdaStep
wavelength step [nm]
Definition: TOPNominalQE.h:157
Belle2::TOPNominalQE::getCE
double getCE() const
Returns collection efficiency.
Definition: TOPNominalQE.h:139
Belle2::TOPGeoBase
Base class for geometry parameters.
Definition: TOPGeoBase.h:35
Belle2::TOPNominalQE::print
void print(const std::string &title="Nominal quantum efficiency") const override
Print the content of the class.
Definition: TOPNominalQE.cc:42
Belle2::TOPNominalQE::getLambdaStep
double getLambdaStep() const
Returns wavelenght step.
Definition: TOPNominalQE.h:133
Belle2::TOPNominalQE::getEfficiency
double getEfficiency(double lambda) const
Returns quantum times collection efficiency at given photon wavelength using linear interpolation.
Definition: TOPNominalQE.h:112
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOPNominalQE::getQE
const std::vector< float > & getQE() const
Returns quantum efficiency data points.
Definition: TOPNominalQE.h:97
Belle2::TOPNominalQE::isConsistent
bool isConsistent() const override
Check for consistency of data members.
Definition: TOPNominalQE.cc:32
Belle2::TOPNominalQE::clear
void clear()
Clears the object.
Definition: TOPNominalQE.h:78
Belle2::TOPNominalQE::set
void set(float lambdaFirst, float lambdaStep, float CE, const std::vector< float > &qe, const std::string &name)
Sets the object.
Definition: TOPNominalQE.h:64
Belle2::TOPNominalQE::ClassDefOverride
ClassDefOverride(TOPNominalQE, 1)
ClassDef.
Belle2::TOPGeoBase::setName
void setName(const std::string &name)
Sets object name.
Definition: TOPGeoBase.h:55
Belle2::TOPNominalQE::getLambdaFirst
double getLambdaFirst() const
Returns wavelenght of the first data point.
Definition: TOPNominalQE.h:118
Belle2::TOPNominalQE::isEmpty
bool isEmpty() const
Checks the status.
Definition: TOPNominalQE.h:91
Belle2::TOPNominalQE::m_CE
float m_CE
collection efficiency
Definition: TOPNominalQE.h:158
Belle2::TOPNominalQE::getLambdaLast
double getLambdaLast() const
Returns wavelenght of the last data point.
Definition: TOPNominalQE.h:124