Belle II Software development
BkgNeutronWeight.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#ifndef BKGNEUTRONWEIGHT_H
10#define BKGNEUTRONWEIGHT_H
11
12#include <vector>
13
14namespace Belle2 {
24
25 public:
26
29
31 double getWeight(double ke);
32
33 private:
34
36 BkgNeutronWeight(void);
37
39 void addPoint(double, double);
40
42 void doSpline();
43
45 int m_n;
46
48 std::vector<double> m_x;
49
51 std::vector<double> m_y;
52
54 std::vector<double> m_b;
55
57 std::vector<double> m_c;
58
60 std::vector<double> m_d;
61
64
65 };
66
68} // end of namespace Belle2
69
70#endif // BKGNEUTRONWEIGHT_H
The class to get the weighting factor for a 1-MeV-equivalent neutron flux on silicon.
std::vector< double > m_b
Vector of first derivatives in spline fit (calculated)
std::vector< double > m_c
Vector of second derivatives in spline fit (calculated)
int m_n
Number of tabulated points.
std::vector< double > m_y
Vector of tabulated y coordinates (weighting factors)
std::vector< double > m_d
Vector of third derivatives in spline fit (calculated)
std::vector< double > m_x
Vector of tabulated x coordinates (logarithm of kinetic energy)
double getWeight(double ke)
Get weighting factor to convert a neutron to its 1-MeV equivalent.
void addPoint(double, double)
Function to add one (x,y) data point to the spline table.
static BkgNeutronWeight * m_Instance
static pointer to the singleton instance of this class
static BkgNeutronWeight & getInstance()
Return a reference to the singleton BkgNeutronWeight instance.
void doSpline()
Function to calculate the cubic spline derivatives.
BkgNeutronWeight(void)
Constructor is private for this singleton.
Abstract base class for different kinds of events.