List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
FdProfileReconstructorKG::CherenkovFluorescenceMatrix Class Reference

Calculation of Cherenkov and Fluorescence matrix. More...

#include <CherenkovFluorescenceMatrix.h>

Public Types

enum  eDirectCherenkovLDF { eNoDirCherLDF, eGoraDirCherLDF }
 
enum  eFluorescenceLDF { eNoFluoLDF, eGoraFluoLDF }
 
enum  eMultipleScatteringLDF { eNoMultScatLDF, eRobertsLDF, ePekalaLDF }
 
enum  eScatteredCherenkovLDF { eNoScatCherLDF, eGoraScatCherLDF, eExpoScatCherLDF, eGillerScatCherLDF }
 

Public Member Functions

 CherenkovFluorescenceMatrix (const double xMax, const utl::Point &eyePos, const std::deque< std::vector< utl::Point >> &showerGeometry, const utl::TabulatedFunction &relEff, const std::deque< double > &depth, const double eCut, const double zeta, const double Cfac, const double Ffac, const eFluorescenceLDF f, const eDirectCherenkovLDF dc, const eScatteredCherenkovLDF sc, const eMultipleScatteringLDF ms, const bool cherenkovCone, const OpticalHalo::EHaloType spotHalo)
 
const
oBLAS::lowerTriangularMatrix
GetCherenkovFluorescenceMatrix () const
 returns total light matrix (not const as we eventually want to invert it ...) More...
 
const std::vector< double > & GetCherenkovMSFactor () const
 returns Cherenkov multiple scattering factor More...
 
const std::deque< double > * GetDepth () const
 returns depth More...
 
const oBLAS::diagonalMatrixGetDirectCherenkovMatrix () const
 returns direct Cherenkov light matrix More...
 
double GetEcut () const
 get lower energy cutoff More...
 
const oBLAS::diagonalMatrixGetFluorescenceMatrix () const
 returns fluorescence light matrix More...
 
const std::vector< double > & GetFluorescenceMSFactor () const
 returns fluorescence multiple scattering factor More...
 
const std::deque< std::vector
< utl::Point > > & 
GetGeometry () const
 returns shower positions More...
 
const
oBLAS::lowerTriangularMatrix
GetMieScatteredCherenkovMatrix () const
 returns Mie scattered Cherenkov light matrix More...
 
const
oBLAS::lowerTriangularMatrix
GetRayleighScatteredCherenkovMatrix () const
 returns Rayleigh scattered Cherenkov light matrix More...
 
double GetXmax () const
 get xmax More...
 
double GetZetaDistance (const int) const
 get distance to shower axis corresponding to zeta More...
 
void Print (const int iwhat) const
 
void SetYieldFactors (const double fluoFac, const double chkovFac)
 set yield factors More...
 
void SetZeta (const double z)
 set zeta More...
 
void UpdateXmax (const double)
 update matrices for new xmax value More...
 
 ~CherenkovFluorescenceMatrix ()
 

Private Member Functions

double AngularCherenkovCDFWithCone (const double maxEmissionAngle, const double xVert, const double showerAge) const
 
void CalculateAttenuationAlongTrack ()
 
void CalculateAttenuationToEye ()
 
void CalculateCherenkovAtTrack ()
 
void CalculateDirectCherenkovMatrix ()
 
void CalculateFluorescenceMatrix ()
 
void CalculateGeometricalFactor ()
 
void CalculateMeanEnergyDeposit ()
 
void CalculateMieAndRayScattCherenkovMatrix ()
 
void CalculateScatteringToEye ()
 
void CalculateWaveLengths ()
 
double DirectCherenkovLDFFraction (const int) const
 
double ExponentialFraction (const int) const
 
double FluorescenceLDFFraction (const int) const
 
double GillerFraction (const int, const int) const
 
double GoraFraction (const int) const
 
double MultipleScatteringFraction (const int, const std::vector< double > &, const utl::TabulatedFunction &) const
 
double PekalaFraction (const int, const std::vector< double > &, const utl::TabulatedFunction &) const
 
double RobertsFraction (const int, const std::vector< double > &, const utl::TabulatedFunction &) const
 
double ScatteredCherenkovLDFFraction (const int, const int) const
 
double SpotFraction () const
 

Private Attributes

double fCfac = 0
 
std::vector< std::vector
< double > > 
fCherAtTrack
 
bool fCherenkovCone = false
 
oBLAS::lowerTriangularMatrixfCherenkovFluorescenceMatrix = nullptr
 
std::vector< double > fCherenkovMultipleScattering
 
std::vector< std::vector
< double > > 
fCT2eye
 
std::vector< double > fCWaveLength
 
const std::deque< double > & fDepth
 
eDirectCherenkovLDF fDirCherLDF = eNoDirCherLDF
 
oBLAS::diagonalMatrixfDirectCherenkovMatrix = nullptr
 
double fEcut = 0
 
const utl::PointfEyePosition
 
double fFfac = 0
 
eFluorescenceLDF fFluoLDF = eNoFluoLDF
 
oBLAS::diagonalMatrixfFluorescenceMatrix = nullptr
 
std::vector< double > fFluorescenceMultipleScattering
 
std::vector< std::vector
< double > > 
fFT2eye
 
std::vector< double > fFWaveLength
 
std::vector< double > fGfac
 
std::vector< double > fMeandEdX
 
std::vector< std::vector
< double > > 
fMieScat2eye
 
oBLAS::lowerTriangularMatrixfMieScatteredCherenkovMatrix = nullptr
 
eMultipleScatteringLDF fMultScatLDF = eNoMultScatLDF
 
OpticalHalo fOpticalHalo
 
oBLAS::lowerTriangularMatrixfRayleighScatteredCherenkovMatrix = nullptr
 
std::vector< std::vector
< double > > 
fRayScat2eye
 
const utl::TabulatedFunctionfRelEff
 
eScatteredCherenkovLDF fScatCherLDF = eNoScatCherLDF
 
const std::deque< std::vector
< utl::Point > > & 
fShowerGeometry
 
std::vector< utl::PointfShowerPoints
 
double fTanZeta = 0
 
std::vector< std::vector
< double > > 
fTShower
 
bool fUpToDate = false
 
double fXmax = 0
 
double fZeta = 0
 

Detailed Description

Calculation of Cherenkov and Fluorescence matrix.

see GAP-2006-010

Author
Michael Unger
Date
2005/04/24

Definition at line 29 of file CherenkovFluorescenceMatrix.h.

Member Enumeration Documentation

Enumerator
eNoDirCherLDF 
eGoraDirCherLDF 

Definition at line 37 of file CherenkovFluorescenceMatrix.h.

Enumerator
eNoFluoLDF 
eGoraFluoLDF 

Definition at line 32 of file CherenkovFluorescenceMatrix.h.

Enumerator
eNoMultScatLDF 
eRobertsLDF 
ePekalaLDF 

Definition at line 49 of file CherenkovFluorescenceMatrix.h.

Enumerator
eNoScatCherLDF 
eGoraScatCherLDF 
eExpoScatCherLDF 
eGillerScatCherLDF 

Definition at line 42 of file CherenkovFluorescenceMatrix.h.

Constructor & Destructor Documentation

CherenkovFluorescenceMatrix::CherenkovFluorescenceMatrix ( const double  xMax,
const utl::Point eyePos,
const std::deque< std::vector< utl::Point >> &  showerGeometry,
const utl::TabulatedFunction relEff,
const std::deque< double > &  depth,
const double  eCut,
const double  zeta,
const double  Cfac,
const double  Ffac,
const eFluorescenceLDF  f,
const eDirectCherenkovLDF  dc,
const eScatteredCherenkovLDF  sc,
const eMultipleScatteringLDF  ms,
const bool  cherenkovCone,
const OpticalHalo::EHaloType  spotHalo 
)
CherenkovFluorescenceMatrix::~CherenkovFluorescenceMatrix ( )

Member Function Documentation

double CherenkovFluorescenceMatrix::AngularCherenkovCDFWithCone ( const double  maxEmissionAngle,
const double  xVert,
const double  showerAge 
) const
private
void CherenkovFluorescenceMatrix::CalculateAttenuationAlongTrack ( )
private
void CherenkovFluorescenceMatrix::CalculateAttenuationToEye ( )
private
void CherenkovFluorescenceMatrix::CalculateCherenkovAtTrack ( )
private
void CherenkovFluorescenceMatrix::CalculateDirectCherenkovMatrix ( )
private
void CherenkovFluorescenceMatrix::CalculateFluorescenceMatrix ( )
private
void CherenkovFluorescenceMatrix::CalculateGeometricalFactor ( )
private
void CherenkovFluorescenceMatrix::CalculateMeanEnergyDeposit ( )
private
void CherenkovFluorescenceMatrix::CalculateMieAndRayScattCherenkovMatrix ( )
private
void CherenkovFluorescenceMatrix::CalculateScatteringToEye ( )
private
void CherenkovFluorescenceMatrix::CalculateWaveLengths ( )
private
double CherenkovFluorescenceMatrix::DirectCherenkovLDFFraction ( const int  iPosition) const
private
double CherenkovFluorescenceMatrix::ExponentialFraction ( const int  iPosition) const
private
double CherenkovFluorescenceMatrix::FluorescenceLDFFraction ( const int  iPosition) const
private
const lowerTriangularMatrix * CherenkovFluorescenceMatrix::GetCherenkovFluorescenceMatrix ( ) const
const std::vector<double>& FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetCherenkovMSFactor ( ) const
inline

returns Cherenkov multiple scattering factor

Definition at line 93 of file CherenkovFluorescenceMatrix.h.

References fCherenkovMultipleScattering.

const std::deque<double>* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetDepth ( ) const
inline

returns depth

Definition at line 84 of file CherenkovFluorescenceMatrix.h.

References fDepth.

Referenced by FdProfileReconstructorKG::RootCFMatrixOutput::WriteLateral().

const oBLAS::diagonalMatrix* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetDirectCherenkovMatrix ( ) const
inline

returns direct Cherenkov light matrix

Definition at line 75 of file CherenkovFluorescenceMatrix.h.

References fDirectCherenkovMatrix.

Referenced by FdProfileReconstructorKG::FdProfileReconstructor::CalculateProfiles().

double FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetEcut ( ) const
inline

get lower energy cutoff

Definition at line 105 of file CherenkovFluorescenceMatrix.h.

References fEcut.

const oBLAS::diagonalMatrix* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetFluorescenceMatrix ( ) const
inline

returns fluorescence light matrix

Definition at line 78 of file CherenkovFluorescenceMatrix.h.

References fFluorescenceMatrix.

Referenced by FdProfileReconstructorKG::RootCFMatrixOutput::WriteLateral().

const std::vector<double>& FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetFluorescenceMSFactor ( ) const
inline

returns fluorescence multiple scattering factor

Definition at line 90 of file CherenkovFluorescenceMatrix.h.

References fFluorescenceMultipleScattering.

const std::deque<std::vector<utl::Point> >& FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetGeometry ( ) const
inline

returns shower positions

Definition at line 86 of file CherenkovFluorescenceMatrix.h.

References fShowerGeometry.

const oBLAS::lowerTriangularMatrix* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetMieScatteredCherenkovMatrix ( ) const
inline
const oBLAS::lowerTriangularMatrix* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetRayleighScatteredCherenkovMatrix ( ) const
inline
double FdProfileReconstructorKG::CherenkovFluorescenceMatrix::GetXmax ( ) const
inline

get xmax

Definition at line 103 of file CherenkovFluorescenceMatrix.h.

References fXmax.

double CherenkovFluorescenceMatrix::GetZetaDistance ( const int  iPosition) const

get distance to shower axis corresponding to zeta

Definition at line 1005 of file CherenkovFluorescenceMatrix.cc.

References fEyePosition, fShowerPoints, and fTanZeta.

Referenced by ExponentialFraction(), GillerFraction(), GoraFraction(), and FdProfileReconstructorKG::RootCFMatrixOutput::WriteLateral().

double CherenkovFluorescenceMatrix::GillerFraction ( const int  iObserved,
const int  jOrigin 
) const
private
double CherenkovFluorescenceMatrix::GoraFraction ( const int  iPosition) const
private
double CherenkovFluorescenceMatrix::MultipleScatteringFraction ( const int  iPosition,
const std::vector< double > &  waveLengths,
const utl::TabulatedFunction yield 
) const
private
double CherenkovFluorescenceMatrix::PekalaFraction ( const int  iPosition,
const std::vector< double > &  waveLengths,
const utl::TabulatedFunction yield 
) const
private
void CherenkovFluorescenceMatrix::Print ( const int  iwhat) const

print debugging informations 0=transmission to eye/1=transmission along track

Definition at line 1085 of file CherenkovFluorescenceMatrix.cc.

References fCherAtTrack, fCT2eye, fCWaveLength, fMieScat2eye, and fShowerPoints.

double CherenkovFluorescenceMatrix::RobertsFraction ( const int  iPosition,
const std::vector< double > &  waveLengths,
const utl::TabulatedFunction yield 
) const
private
double CherenkovFluorescenceMatrix::ScatteredCherenkovLDFFraction ( const int  iObserved,
const int  jOrigin 
) const
private
void CherenkovFluorescenceMatrix::SetYieldFactors ( const double  fluoFac,
const double  chkovFac 
)
void CherenkovFluorescenceMatrix::SetZeta ( const double  z)
double FdProfileReconstructorKG::CherenkovFluorescenceMatrix::SpotFraction ( ) const
private
void CherenkovFluorescenceMatrix::UpdateXmax ( const double  xMax)

Member Data Documentation

double FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fCfac = 0
private
std::vector<std::vector<double> > FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fCherAtTrack
private
bool FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fCherenkovCone = false
private

Definition at line 203 of file CherenkovFluorescenceMatrix.h.

Referenced by GillerFraction().

oBLAS::lowerTriangularMatrix* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fCherenkovFluorescenceMatrix = nullptr
private
std::vector<double> FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fCherenkovMultipleScattering
private
std::vector<std::vector<double> > FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fCT2eye
private
std::vector<double> FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fCWaveLength
private
const std::deque<double>& FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fDepth
private
eDirectCherenkovLDF FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fDirCherLDF = eNoDirCherLDF
private

Definition at line 200 of file CherenkovFluorescenceMatrix.h.

Referenced by DirectCherenkovLDFFraction().

oBLAS::diagonalMatrix* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fDirectCherenkovMatrix = nullptr
private
double FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fEcut = 0
private

Definition at line 164 of file CherenkovFluorescenceMatrix.h.

Referenced by CalculateMeanEnergyDeposit(), and GetEcut().

const utl::Point& FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fEyePosition
private
double FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fFfac = 0
private

Definition at line 197 of file CherenkovFluorescenceMatrix.h.

Referenced by CalculateFluorescenceMatrix(), and SetYieldFactors().

eFluorescenceLDF FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fFluoLDF = eNoFluoLDF
private

Definition at line 199 of file CherenkovFluorescenceMatrix.h.

Referenced by FluorescenceLDFFraction().

oBLAS::diagonalMatrix* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fFluorescenceMatrix = nullptr
private
std::vector<double> FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fFluorescenceMultipleScattering
private
std::vector<std::vector<double> > FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fFT2eye
private
std::vector<double> FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fFWaveLength
private
std::vector<double> FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fGfac
private
std::vector<double> FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fMeandEdX
private
std::vector<std::vector<double> > FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fMieScat2eye
private
oBLAS::lowerTriangularMatrix* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fMieScatteredCherenkovMatrix = nullptr
private
eMultipleScatteringLDF FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fMultScatLDF = eNoMultScatLDF
private

Definition at line 202 of file CherenkovFluorescenceMatrix.h.

Referenced by MultipleScatteringFraction().

OpticalHalo FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fOpticalHalo
private
oBLAS::lowerTriangularMatrix* FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fRayleighScatteredCherenkovMatrix = nullptr
private
std::vector<std::vector<double> > FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fRayScat2eye
private
const utl::TabulatedFunction& FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fRelEff
private
eScatteredCherenkovLDF FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fScatCherLDF = eNoScatCherLDF
private

Definition at line 201 of file CherenkovFluorescenceMatrix.h.

Referenced by ScatteredCherenkovLDFFraction().

const std::deque<std::vector<utl::Point> >& FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fShowerGeometry
private
std::vector<utl::Point> FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fShowerPoints
private
double FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fTanZeta = 0
private
std::vector<std::vector<double> > FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fTShower
private
bool FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fUpToDate = false
mutableprivate
double FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fXmax = 0
private
double FdProfileReconstructorKG::CherenkovFluorescenceMatrix::fZeta = 0
private

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

, generated on Tue Sep 26 2023.