HerdSoftware  0.1.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Herd::FitDigitizationTools::PhotonTool Class Reference

#include <PhotonTool.h>

Public Member Functions

 PhotonTool ()
 
 ~PhotonTool ()=default
 
double numExpectedPhotons (double effective_energy)
 
int numObservedPhotons (double num_expected_photons)
 
double averagePropagationTime (double distToSiPM)
 
double generateScintillationTime ()
 
void generatePhoton (double &time, double &wavelength, double &posX, double &posZ, double &dXdY, double &dZdY)
 

Private Member Functions

void generatePosAndDir (double &posX, double &posZ, double &dXdY, double &dZdY)
 Generate photon exit position and direction in fibre. More...
 

Private Attributes

bool m_generateWavelength = true
 
const double m_photonsPerMeV = 455.
 
const double m_wavelengthShift = 405. * nm
 
const double m_wavelengthScale = 77.89 * nm
 
const double m_wavelengthShape = 0.44
 
const double m_effFibreR = 0.0115
 
const double m_fibrePropagationSpeed = 6.0
 
const double m_scintillationDecayTime = 2.8 * ns
 
std::mt19937 m_generator
 
std::uniform_real_distribution< double > m_flat_dist
 
std::poisson_distribution< unsigned int > m_pois_dist
 
std::normal_distribution< double > m_gauss_dist
 

Constructor & Destructor Documentation

◆ PhotonTool()

Herd::FitDigitizationTools::PhotonTool::PhotonTool ( )
inline

◆ ~PhotonTool()

Herd::FitDigitizationTools::PhotonTool::~PhotonTool ( )
default

Member Function Documentation

◆ averagePropagationTime()

double Herd::FitDigitizationTools::PhotonTool::averagePropagationTime ( double  distToSiPM)
inline

◆ generatePhoton()

void Herd::FitDigitizationTools::PhotonTool::generatePhoton ( double &  time,
double &  wavelength,
double &  posX,
double &  posZ,
double &  dXdY,
double &  dZdY 
)

◆ generatePosAndDir()

void Herd::FitDigitizationTools::PhotonTool::generatePosAndDir ( double &  posX,
double &  posZ,
double &  dXdY,
double &  dZdY 
)
private

Generate photon exit position and direction in fibre.

◆ generateScintillationTime()

double Herd::FitDigitizationTools::PhotonTool::generateScintillationTime ( )
inline

◆ numExpectedPhotons()

double Herd::FitDigitizationTools::PhotonTool::numExpectedPhotons ( double  effective_energy)

◆ numObservedPhotons()

int Herd::FitDigitizationTools::PhotonTool::numObservedPhotons ( double  num_expected_photons)

Member Data Documentation

◆ m_effFibreR

const double Herd::FitDigitizationTools::PhotonTool::m_effFibreR = 0.0115
private

◆ m_fibrePropagationSpeed

const double Herd::FitDigitizationTools::PhotonTool::m_fibrePropagationSpeed = 6.0
private

◆ m_flat_dist

std::uniform_real_distribution<double> Herd::FitDigitizationTools::PhotonTool::m_flat_dist
private

◆ m_gauss_dist

std::normal_distribution<double> Herd::FitDigitizationTools::PhotonTool::m_gauss_dist
private

◆ m_generateWavelength

bool Herd::FitDigitizationTools::PhotonTool::m_generateWavelength = true
private

◆ m_generator

std::mt19937 Herd::FitDigitizationTools::PhotonTool::m_generator
private

◆ m_photonsPerMeV

const double Herd::FitDigitizationTools::PhotonTool::m_photonsPerMeV = 455.
private

◆ m_pois_dist

std::poisson_distribution<unsigned int> Herd::FitDigitizationTools::PhotonTool::m_pois_dist
private

◆ m_scintillationDecayTime

const double Herd::FitDigitizationTools::PhotonTool::m_scintillationDecayTime = 2.8 * ns
private

◆ m_wavelengthScale

const double Herd::FitDigitizationTools::PhotonTool::m_wavelengthScale = 77.89 * nm
private

◆ m_wavelengthShape

const double Herd::FitDigitizationTools::PhotonTool::m_wavelengthShape = 0.44
private

◆ m_wavelengthShift

const double Herd::FitDigitizationTools::PhotonTool::m_wavelengthShift = 405. * nm
private

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