Belle II Software development
ARICHSimulationPar Class Reference

The Class for ARICH simulation parameters. More...

#include <ARICHSimulationPar.h>

Inheritance diagram for ARICHSimulationPar:

Public Member Functions

 ARICHSimulationPar ()
 Default constructor.
 
double getQE (double e) const
 Get QE at given energy.
 
double getColEff () const
 Get HAPD collection efficiency.
 
double getQEScaling () const
 Get QE scaling factor for photons internally reflected in HAPD window.
 
double getWindowAbsorbtion () const
 Get absorbtion probability for photons internally reflected in HAPD window.
 
double getChipNegativeCrosstalk () const
 Get factor to suppress p.e.
 
double getNBkgHits () const
 Get number of flat background hits/hapd/event to be added in digitizer.
 
void setQECurve (float lambdaFirst, float lambdaStep, const std::vector< float > &qe)
 Set QE curve.
 
void setNBkgHits (float nbkg)
 Set number of flat background hits/hapd/event to be added in digitizer.
 
void setQEScaling (double qescale)
 Set QE scaling factor for photons internally reflected in HAPD window.
 
void setWindowAbsorbtion (double abs)
 Set absorbtion probability for photons internally reflected in HAPD window.
 
void setChipNegativeCrosstalk (double cross)
 Set factor to suppress p.e.
 
void setCollectionEff (double colEff)
 Set HAPD collection efficiency.
 
void setPeakQE (double peak)
 Set peak QE value (for HAPD with maximal QE, at later stage HAPD dependent scaling is done)
 
void print () const
 print class content
 

Private Member Functions

 ClassDef (ARICHSimulationPar, 2)
 ClassDef, must be the last term before the closing {}.
 

Private Attributes

float m_qeScale = 0
 QE scale factor for photons internally reflected in HAPD window.
 
float m_windowAbsorbtion = 0
 absorbtion probability for photons internally reflected in HAPD window
 
float m_chipNegativeCrosstalk = 0
 to simulate opposite polarity crosstalk among channels on chip
 
float m_peakQE = 0
 maximal peak QE of all HAPDs
 
std::vector< float > m_qe
 quantum efficiency curve
 
float m_colEff = 0
 collection efficiency
 
float m_lambdaFirst = 0
 wavelength [nm]: first QE data point
 
float m_lambdaStep = 0
 wavelength [nm]: step
 
float m_nBkgHits = 0
 number if flat background hits/hapd/event to be added in digitizer
 

Detailed Description

The Class for ARICH simulation parameters.

This class provides ARICH paramters for simulation, such as QE vs. wavelength curve for HAPDs, parameters to describe negative polarity crosstalk of channels of APD, ...

Definition at line 24 of file ARICHSimulationPar.h.

Constructor & Destructor Documentation

◆ ARICHSimulationPar()

ARICHSimulationPar ( )
inline

Default constructor.

Definition at line 29 of file ARICHSimulationPar.h.

29{};

Member Function Documentation

◆ getChipNegativeCrosstalk()

double getChipNegativeCrosstalk ( ) const
inline

Get factor to suppress p.e.

detection efficiency due to negative polarity crosstalk among chip channels

Definition at line 57 of file ARICHSimulationPar.h.

57{return (double)m_chipNegativeCrosstalk;}
float m_chipNegativeCrosstalk
to simulate opposite polarity crosstalk among channels on chip

◆ getColEff()

double getColEff ( ) const
inline

Get HAPD collection efficiency.

Returns
collection efficiency

Definition at line 42 of file ARICHSimulationPar.h.

42{return (double)m_colEff;}
float m_colEff
collection efficiency

◆ getNBkgHits()

double getNBkgHits ( ) const
inline

Get number of flat background hits/hapd/event to be added in digitizer.

Definition at line 62 of file ARICHSimulationPar.h.

62{return (double)m_nBkgHits;}
float m_nBkgHits
number if flat background hits/hapd/event to be added in digitizer

◆ getQE()

double getQE ( double  e) const

Get QE at given energy.

Parameters
ephoton energy [eV]
Returns
QE

Definition at line 17 of file ARICHSimulationPar.cc.

18{
19 if (e < 0.001) return 0;
20 if (m_qe.size() == 0) B2ERROR("ARICHSimulationPar: QE curve not initialized!");
21 double dlam = 1240 / e - m_lambdaFirst;
22
23 int i = int(dlam / m_lambdaStep);
24 if (i < 0) i = 0;
25 if (i > int(m_qe.size()) - 2) return 0;
26
27 // linear interpolation
28 double qe = m_qe[i] + (m_qe[i + 1] - m_qe[i]) / m_lambdaStep * (dlam - i * m_lambdaStep);
29 return qe * m_peakQE;
30}
float m_peakQE
maximal peak QE of all HAPDs
std::vector< float > m_qe
quantum efficiency curve
float m_lambdaStep
wavelength [nm]: step
float m_lambdaFirst
wavelength [nm]: first QE data point

◆ getQEScaling()

double getQEScaling ( ) const
inline

Get QE scaling factor for photons internally reflected in HAPD window.

Definition at line 47 of file ARICHSimulationPar.h.

47{return (double)m_qeScale;}
float m_qeScale
QE scale factor for photons internally reflected in HAPD window.

◆ getWindowAbsorbtion()

double getWindowAbsorbtion ( ) const
inline

Get absorbtion probability for photons internally reflected in HAPD window.

Definition at line 52 of file ARICHSimulationPar.h.

52{return (double)m_windowAbsorbtion;}
float m_windowAbsorbtion
absorbtion probability for photons internally reflected in HAPD window

◆ print()

void print ( ) const

print class content

Definition at line 39 of file ARICHSimulationPar.cc.

40{
41 cout << endl;
42 cout << "ARICH simulation parameters" << endl;
43 cout << endl;
44 cout << " QE curve (peak should be above QE of highest QE HAPD!)" << endl;
45 int ipoint = 0;
46 cout << " wl [nm] QE" << endl;
47 for (auto qe : m_qe) {
48 float lambda = m_lambdaFirst + ipoint * m_lambdaStep;
49 cout << " " << lambda << " " << qe* m_peakQE << endl;
50 ipoint++;
51 }
52
53 cout << endl;
54 cout << " HAPD simulation parameters" << endl;
55 cout << " QE scaling for photons internally reflected in HAPD window: " << getQEScaling() << endl;
56 cout << " absorbtion probablity for internally reflected photons: " << getWindowAbsorbtion() << endl;
57 cout << " channels negative crosstalk factor: " << getChipNegativeCrosstalk() << endl;
58 cout << " collection efficiency: " << m_colEff << endl;
59}
double getWindowAbsorbtion() const
Get absorbtion probability for photons internally reflected in HAPD window.
double getChipNegativeCrosstalk() const
Get factor to suppress p.e.
double getQEScaling() const
Get QE scaling factor for photons internally reflected in HAPD window.

◆ setChipNegativeCrosstalk()

void setChipNegativeCrosstalk ( double  cross)
inline

Set factor to suppress p.e.

detection efficiency due to negative polarity crosstalk among chip channels

Parameters
crosslevel of negative crosstalk

Definition at line 94 of file ARICHSimulationPar.h.

94{ m_chipNegativeCrosstalk = (float)cross;}

◆ setCollectionEff()

void setCollectionEff ( double  colEff)
inline

Set HAPD collection efficiency.

Parameters
colEffcollection efficiency

Definition at line 100 of file ARICHSimulationPar.h.

100{m_colEff = (float)colEff;}

◆ setNBkgHits()

void setNBkgHits ( float  nbkg)
inline

Set number of flat background hits/hapd/event to be added in digitizer.

Parameters
nbkgnumber of background hits/hapd/event

Definition at line 76 of file ARICHSimulationPar.h.

76{ m_nBkgHits = nbkg;}

◆ setPeakQE()

void setPeakQE ( double  peak)
inline

Set peak QE value (for HAPD with maximal QE, at later stage HAPD dependent scaling is done)

Parameters
peakQE at peak

Definition at line 106 of file ARICHSimulationPar.h.

106{m_peakQE = (float)peak;}

◆ setQECurve()

void setQECurve ( float  lambdaFirst,
float  lambdaStep,
const std::vector< float > &  qe 
)

Set QE curve.

Parameters
lambdaFirstcurve starting wavelength in nm
lambdaStepstep between points
qevector of QE values

Definition at line 32 of file ARICHSimulationPar.cc.

33{
34 m_lambdaFirst = lambdaFirst;
35 m_lambdaStep = lambdaStep;
36 m_qe = qe;
37}

◆ setQEScaling()

void setQEScaling ( double  qescale)
inline

Set QE scaling factor for photons internally reflected in HAPD window.

Parameters
qescaleQE scaling

Definition at line 82 of file ARICHSimulationPar.h.

82{ m_qeScale = (float)qescale;}

◆ setWindowAbsorbtion()

void setWindowAbsorbtion ( double  abs)
inline

Set absorbtion probability for photons internally reflected in HAPD window.

Parameters
absabsorbtion probability

Definition at line 88 of file ARICHSimulationPar.h.

88{ m_windowAbsorbtion = (float)abs;}

Member Data Documentation

◆ m_chipNegativeCrosstalk

float m_chipNegativeCrosstalk = 0
private

to simulate opposite polarity crosstalk among channels on chip

Definition at line 117 of file ARICHSimulationPar.h.

◆ m_colEff

float m_colEff = 0
private

collection efficiency

Definition at line 121 of file ARICHSimulationPar.h.

◆ m_lambdaFirst

float m_lambdaFirst = 0
private

wavelength [nm]: first QE data point

Definition at line 122 of file ARICHSimulationPar.h.

◆ m_lambdaStep

float m_lambdaStep = 0
private

wavelength [nm]: step

Definition at line 123 of file ARICHSimulationPar.h.

◆ m_nBkgHits

float m_nBkgHits = 0
private

number if flat background hits/hapd/event to be added in digitizer

Definition at line 124 of file ARICHSimulationPar.h.

◆ m_peakQE

float m_peakQE = 0
private

maximal peak QE of all HAPDs

Definition at line 118 of file ARICHSimulationPar.h.

◆ m_qe

std::vector<float> m_qe
private

quantum efficiency curve

Definition at line 120 of file ARICHSimulationPar.h.

◆ m_qeScale

float m_qeScale = 0
private

QE scale factor for photons internally reflected in HAPD window.

Definition at line 115 of file ARICHSimulationPar.h.

◆ m_windowAbsorbtion

float m_windowAbsorbtion = 0
private

absorbtion probability for photons internally reflected in HAPD window

Definition at line 116 of file ARICHSimulationPar.h.


The documentation for this class was generated from the following files: