Belle II Software development
ARICHSimulationPar.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
14namespace Belle2 {
20
24 class ARICHSimulationPar : public TObject {
25
26 public:
27
30
36 double getQE(double e) const;
37
42 double getColEff() const {return (double)m_colEff;}
43
47 double getQEScaling() const {return (double)m_qeScale;}
48
52 double getWindowAbsorbtion() const {return (double)m_windowAbsorbtion;}
53
57 double getChipNegativeCrosstalk() const {return (double)m_chipNegativeCrosstalk;}
58
62 double getNBkgHits() const {return (double)m_nBkgHits;}
63
70 void setQECurve(float lambdaFirst, float lambdaStep, const std::vector<float>& qe);
71
76 void setNBkgHits(float nbkg) { m_nBkgHits = nbkg;}
77
82 void setQEScaling(double qescale) { m_qeScale = (float)qescale;}
83
88 void setWindowAbsorbtion(double abs) { m_windowAbsorbtion = (float)abs;}
89
94 void setChipNegativeCrosstalk(double cross) { m_chipNegativeCrosstalk = (float)cross;}
95
100 void setCollectionEff(double colEff) {m_colEff = (float)colEff;}
101
106 void setPeakQE(double peak) {m_peakQE = (float)peak;}
107
111 void print() const;
112
113 private:
114
115 float m_qeScale = 0;
118 float m_peakQE = 0;
120 std::vector<float> m_qe;
121 float m_colEff = 0;
122 float m_lambdaFirst = 0;
123 float m_lambdaStep = 0;
124 float m_nBkgHits = 0;
128 };
129
131} // namespace
The Class for ARICH simulation parameters.
void setPeakQE(double peak)
Set peak QE value (for HAPD with maximal QE, at later stage HAPD dependent scaling is done)
double getNBkgHits() const
Get number of flat background hits/hapd/event to be added in digitizer.
ClassDef(ARICHSimulationPar, 2)
ClassDef, must be the last term before the closing {}.
double getWindowAbsorbtion() const
Get absorbtion probability for photons internally reflected in HAPD window.
void setQECurve(float lambdaFirst, float lambdaStep, const std::vector< float > &qe)
Set QE curve.
float m_windowAbsorbtion
absorbtion probability for photons internally reflected in HAPD window
float m_peakQE
maximal peak QE of all HAPDs
float m_colEff
collection efficiency
float m_chipNegativeCrosstalk
to simulate opposite polarity crosstalk among channels on chip
void setNBkgHits(float nbkg)
Set number of flat background hits/hapd/event to be added in digitizer.
void setChipNegativeCrosstalk(double cross)
Set factor to suppress p.e.
std::vector< float > m_qe
quantum efficiency curve
void setWindowAbsorbtion(double abs)
Set absorbtion probability for photons internally reflected in HAPD window.
float m_lambdaStep
wavelength [nm]: step
double getColEff() const
Get HAPD collection efficiency.
float m_nBkgHits
number if flat background hits/hapd/event to be added in digitizer
float m_qeScale
QE scale factor for photons internally reflected in HAPD window.
void setQEScaling(double qescale)
Set QE scaling factor for photons internally reflected in HAPD window.
double getQE(double e) const
Get QE at given energy.
void print() const
print class content
double getChipNegativeCrosstalk() const
Get factor to suppress p.e.
double getQEScaling() const
Get QE scaling factor for photons internally reflected in HAPD window.
float m_lambdaFirst
wavelength [nm]: first QE data point
ARICHSimulationPar()
Default constructor.
void setCollectionEff(double colEff)
Set HAPD collection efficiency.
Abstract base class for different kinds of events.