List of all members | Public Types | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes
atm::AnalyticalCherenkovModel Class Reference

Model with analytical calculation of the Cherenkov light. More...

#include <AnalyticalCherenkovModel.h>

Inheritance diagram for atm::AnalyticalCherenkovModel:
Inheritance graph
[legend]

Public Types

enum  Parametrization { eHillas, eGiller, eNerling }
 
enum  ParametrizationAngular { eAngHillas, eAngNerling, eAngGiller, eAngArbeletche }
 

Public Member Functions

 AnalyticalCherenkovModel ()
 Model Constructor. More...
 
double AngularCDF (const double theta, const double verticalDepth, const double showerAge) const
 
double AngularPDF (const double theta, const double verticalDepth, const double showerAge) const
 
utl::TabulatedFunctionEvaluateCherenkovDirect (const utl::Point &xA, const utl::Point &xB, const utl::Point &xEye, const double showerAge) const
 Calculation of probability of Cherenkov emission. More...
 
utl::TabulatedFunctionEvaluateCherenkovPhotons (const utl::Point &xA, const utl::Point &xB, const double showerAge) const
 Calculation of Cherenkov photons produced between two points. More...
 
double EvaluateDirectCherenkovProbability (const utl::Point &xA, const utl::Point &xB, const utl::Point &xEye, const double showerAge) const
 
double EvaluateDirectCherenkovProbability (const utl::Point &xA, const utl::Point &xB, const utl::Point &xEye, const double showerAge, const double wavelength) const
 
virtual double GetEnergyCutoff () const
 
bool HasData () const
 True if a data source is for the given model. More...
 
void Init ()
 Init method of the model. More...
 
void SetEnergyCutoff (double ecut) const
 
virtual void SetUncertaintyBound (const double nSigma) const
 alter Model by nSigma standard deviations More...
 
virtual ~AnalyticalCherenkovModel ()
 Model Destructor. More...
 

Protected Attributes

double fEcut = 0
 electron energy-cutoff More...
 

Private Member Functions

double AsymmCorrection (double a, double theta, double sinphi) const
 Asymmetry correction as local parametrisation. More...
 
double AsymmCorrection (const utl::Point &emissionPoint, const utl::Vector &v_toeye, const utl::Vector &axis, double density) const
 Asymmetry correction as function of physical geometry. More...
 
double AsymmCorrection (const utl::Point &xA, const utl::Point &xB, const utl::Point &xEye) const
 Asymmetry correction dependant on input data. More...
 
double AsymmCorrectionOld (double bm, double bp, double sinphi) const
 Asymmetry correction with old local parametrisation. More...
 
double AsymmCorrectionOld (const utl::Vector &v_toeye, const utl::Vector &axis, double density) const
 Asymmetry correction with old parametrisation as function of physical geometry. More...
 
double CherenkovIntegral (double lowAngle, double highAngle, double meanShowerAge, double refractiveIndex) const
 Calculation of the Cherenkov angle integral int(df/dtheta*sin(theta)) More...
 
double CherenkovTrackLength (double energy, double showerAge) const
 Calculation of a special track length to be used in the Cherenkov light evaluation. More...
 
bool CorrectCherenkovAsymmetry (double age, double theta) const
 
double DeltaPhotons (double nIndex, double eelec, double dSlant, double wl1, double wl2) const
 Calculation of Cherenkov Photons between two wavelengths. More...
 
const std::vector< double > & GetWavelengths () const
 
 REGISTER_MODEL (atm::VCherenkovModel,"Analytical", AnalyticalCherenkovModel)
 

Private Attributes

Arbeletche2021CherenkovAngularModel fArbeletcheAngularDistribution
 
double fCherenkovAsymmetryMaxA
 
double fCherenkovAsymmetryMaxAge
 
double fCherenkovAsymmetryMaxAngle
 
double fCherenkovAsymmetryMinA
 
double fCherenkovAsymmetryMinAge
 
double fCherenkovAsymmetryMinAngle
 
utl::TabulatedFunction fCherenkovPhotons
 Number of photons as function of the wavelength. More...
 
bool fCorrectCherenkovAsymmetry
 
utl::TabulatedFunction fDirectCherenkovPhotons
 
bool fLowENerling
 
std::vector< double > fNerlingFactor
 
Parametrization fParam
 Parametrization to be used in the Cherenkov light calculation. More...
 
ParametrizationAngular fParamAngular
 
double fShowerAgePrevious
 
std::vector< double > fWavelength
 Wavelengths to calculate the light production. More...
 
bool fWlRefrac
 
utl::Point fxAprevious
 Keep reference to previous calculation, to prevent re-calculation. More...
 
utl::Point fxBprevious
 

Static Private Attributes

static const double fdE = 10*MeV
 
static const double fjMax = 800*MeV
 
static const double fNerlingMaxValidShowerAge = 2.
 
static const double fNerlingMinValidShowerAge = 0.1
 Limits for the shower age in the use of the Nerling parameterizations. More...
 

Detailed Description

Model with analytical calculation of the Cherenkov light.

"atm/AnalyticalCherenkovModel.h"

Author
Luis Prado Jr
Date
27 Jan 2004

Definition at line 36 of file AnalyticalCherenkovModel.h.

Member Enumeration Documentation

Enumerator
eHillas 
eGiller 
eNerling 

Definition at line 47 of file AnalyticalCherenkovModel.h.

Enumerator
eAngHillas 
eAngNerling 
eAngGiller 
eAngArbeletche 

Definition at line 50 of file AnalyticalCherenkovModel.h.

Constructor & Destructor Documentation

AnalyticalCherenkovModel::AnalyticalCherenkovModel ( )

Model Constructor.

Definition at line 149 of file AnalyticalCherenkovModel.cc.

References utl::MeV, and SetEnergyCutoff().

virtual atm::AnalyticalCherenkovModel::~AnalyticalCherenkovModel ( )
inlinevirtual

Model Destructor.

Definition at line 42 of file AnalyticalCherenkovModel.h.

Member Function Documentation

double AnalyticalCherenkovModel::AngularCDF ( const double  theta,
const double  verticalDepth,
const double  showerAge 
) const
virtual
double AnalyticalCherenkovModel::AngularPDF ( const double  theta,
const double  verticalDepth,
const double  showerAge 
) const
virtual
double AnalyticalCherenkovModel::AsymmCorrection ( double  a,
double  theta,
double  sinphi 
) const
private

Asymmetry correction as local parametrisation.

Definition at line 813 of file AnalyticalCherenkovModel.cc.

References bparam(), electrons, and positrons.

Referenced by AsymmCorrection(), and EvaluateDirectCherenkovProbability().

double AnalyticalCherenkovModel::AsymmCorrection ( const utl::Point emissionPoint,
const utl::Vector v_toeye,
const utl::Vector axis,
double  density 
) const
private
double AnalyticalCherenkovModel::AsymmCorrection ( const utl::Point xA,
const utl::Point xB,
const utl::Point xEye 
) const
private
double AnalyticalCherenkovModel::AsymmCorrectionOld ( double  bm,
double  bp,
double  sinphi 
) const
private

Asymmetry correction with old local parametrisation.

Definition at line 921 of file AnalyticalCherenkovModel.cc.

Referenced by AsymmCorrectionOld().

double AnalyticalCherenkovModel::AsymmCorrectionOld ( const utl::Vector v_toeye,
const utl::Vector axis,
double  density 
) const
private

Asymmetry correction with old parametrisation as function of physical geometry.

Definition at line 931 of file AnalyticalCherenkovModel.cc.

References RdGeoCeLDFFitter::a, Angle(), AsymmCorrectionOld(), RdGeoCeLDFFitter::b, degree, electrons, fparam(), galactic::gauss, utl::Vector::GetMag(), utl::kg, utl::m3, utl::microtesla, perpendicular(), positrons, and vectorsine_oriented().

double AnalyticalCherenkovModel::CherenkovIntegral ( double  lowAngle,
double  highAngle,
double  meanShowerAge,
double  refractiveIndex 
) const
private
double AnalyticalCherenkovModel::CherenkovTrackLength ( double  energy,
double  showerAge 
) const
private

Calculation of a special track length to be used in the Cherenkov light evaluation.

Calculation of the track length for the fraction of particles with energies greater than E divided by the total vertical component of tracks of all charged particles.

Parametrizations: Hillas , Giller , Nerling

Definition at line 578 of file AnalyticalCherenkovModel.cc.

References RdGeoCeLDFFitter::a, RdGeoCeLDFFitter::b, RdGeoCeLDFFitter::c, eGiller, eHillas, eNerling, ERROR, fdE, fNerlingFactor, fNerlingMaxValidShowerAge, fNerlingMinValidShowerAge, fParam, utl::MeV, and std::pow().

Referenced by EvaluateCherenkovPhotons().

bool AnalyticalCherenkovModel::CorrectCherenkovAsymmetry ( double  age,
double  theta 
) const
private
double AnalyticalCherenkovModel::DeltaPhotons ( double  nIndex,
double  eelec,
double  dSlant,
double  wl1,
double  wl2 
) const
private

Calculation of Cherenkov Photons between two wavelengths.

Calculation for the number of Cherenkov Photons, between wavelengths wl1 and wl2, per shower particle over a length dSlant

Definition at line 659 of file AnalyticalCherenkovModel.cc.

References utl::abs(), utl::kElectronMass, and utl::kTwoPi.

Referenced by EvaluateCherenkovPhotons().

utl::TabulatedFunction & AnalyticalCherenkovModel::EvaluateCherenkovDirect ( const utl::Point xA,
const utl::Point xB,
const utl::Point xEye,
const double  showerAge 
) const
virtual

Calculation of probability of Cherenkov emission.

Calculation of the probability of Cherenkov emission versus wavelength

Implements atm::VCherenkovModel.

Definition at line 224 of file AnalyticalCherenkovModel.cc.

References EvaluateCherenkovPhotons(), EvaluateDirectCherenkovProbability(), fDirectCherenkovPhotons, fWavelength, and fWlRefrac.

utl::TabulatedFunction & AnalyticalCherenkovModel::EvaluateCherenkovPhotons ( const utl::Point xA,
const utl::Point xB,
const double  showerAge 
) const
virtual
double AnalyticalCherenkovModel::EvaluateDirectCherenkovProbability ( const utl::Point xA,
const utl::Point xB,
const utl::Point xEye,
const double  showerAge 
) const
virtual
double AnalyticalCherenkovModel::EvaluateDirectCherenkovProbability ( const utl::Point xA,
const utl::Point xB,
const utl::Point xEye,
const double  showerAge,
const double  wavelength 
) const
virtual
virtual double atm::VCherenkovModel::GetEnergyCutoff ( ) const
inlinevirtualinherited

Definition at line 58 of file VCherenkovModel.h.

References atm::VCherenkovModel::fEcut.

const std::vector<double>& atm::AnalyticalCherenkovModel::GetWavelengths ( ) const
inlineprivatevirtual

Implements atm::VCherenkovModel.

Definition at line 146 of file AnalyticalCherenkovModel.h.

References fWavelength.

bool atm::AnalyticalCherenkovModel::HasData ( ) const
inlinevirtual

True if a data source is for the given model.

This method is meant to be checked to determine whether the given model is able to find valid data to evaluate. Typically it will always be true for parametric models which rely on an XML file, and will be true or false for database-based models, depending on whether or not relevant data are found in the DB for the current detector time

Implements atm::VModel.

Definition at line 77 of file AnalyticalCherenkovModel.h.

void AnalyticalCherenkovModel::Init ( void  )
virtual
atm::AnalyticalCherenkovModel::REGISTER_MODEL ( atm::VCherenkovModel  ,
"Analytical"  ,
AnalyticalCherenkovModel   
)
private
void AnalyticalCherenkovModel::SetEnergyCutoff ( double  ecut) const
virtual
void VModel::SetUncertaintyBound ( const double  nSigma) const
virtualinherited

alter Model by nSigma standard deviations

Reimplemented in atm::MeasuredDBMieModel, and atm::SuperMieModel.

Definition at line 11 of file VModel.cc.

References ERROR.

Member Data Documentation

Arbeletche2021CherenkovAngularModel atm::AnalyticalCherenkovModel::fArbeletcheAngularDistribution
private

Definition at line 152 of file AnalyticalCherenkovModel.h.

Referenced by AngularCDF(), AngularPDF(), and CherenkovIntegral().

double atm::AnalyticalCherenkovModel::fCherenkovAsymmetryMaxA
private

Definition at line 103 of file AnalyticalCherenkovModel.h.

Referenced by AsymmCorrection(), and Init().

double atm::AnalyticalCherenkovModel::fCherenkovAsymmetryMaxAge
private

Definition at line 99 of file AnalyticalCherenkovModel.h.

Referenced by CorrectCherenkovAsymmetry(), and Init().

double atm::AnalyticalCherenkovModel::fCherenkovAsymmetryMaxAngle
private

Definition at line 101 of file AnalyticalCherenkovModel.h.

Referenced by CorrectCherenkovAsymmetry(), and Init().

double atm::AnalyticalCherenkovModel::fCherenkovAsymmetryMinA
private

Definition at line 102 of file AnalyticalCherenkovModel.h.

Referenced by AsymmCorrection(), and Init().

double atm::AnalyticalCherenkovModel::fCherenkovAsymmetryMinAge
private

Definition at line 98 of file AnalyticalCherenkovModel.h.

Referenced by CorrectCherenkovAsymmetry(), and Init().

double atm::AnalyticalCherenkovModel::fCherenkovAsymmetryMinAngle
private

Definition at line 100 of file AnalyticalCherenkovModel.h.

Referenced by CorrectCherenkovAsymmetry(), and Init().

utl::TabulatedFunction atm::AnalyticalCherenkovModel::fCherenkovPhotons
mutableprivate

Number of photons as function of the wavelength.

Definition at line 89 of file AnalyticalCherenkovModel.h.

Referenced by EvaluateCherenkovPhotons().

bool atm::AnalyticalCherenkovModel::fCorrectCherenkovAsymmetry
private

Definition at line 97 of file AnalyticalCherenkovModel.h.

Referenced by CorrectCherenkovAsymmetry(), and Init().

const double AnalyticalCherenkovModel::fdE = 10*MeV
staticprivate

Definition at line 82 of file AnalyticalCherenkovModel.h.

Referenced by CherenkovTrackLength(), and EvaluateCherenkovPhotons().

utl::TabulatedFunction atm::AnalyticalCherenkovModel::fDirectCherenkovPhotons
mutableprivate

Definition at line 90 of file AnalyticalCherenkovModel.h.

Referenced by EvaluateCherenkovDirect().

double atm::VCherenkovModel::fEcut = 0
mutableprotectedinherited

electron energy-cutoff

Definition at line 62 of file VCherenkovModel.h.

Referenced by atm::VCherenkovModel::GetEnergyCutoff(), and SetEnergyCutoff().

const double AnalyticalCherenkovModel::fjMax = 800*MeV
staticprivate

Definition at line 83 of file AnalyticalCherenkovModel.h.

Referenced by EvaluateCherenkovPhotons().

bool atm::AnalyticalCherenkovModel::fLowENerling
private

Definition at line 93 of file AnalyticalCherenkovModel.h.

Referenced by CherenkovIntegral(), and Init().

std::vector<double> atm::AnalyticalCherenkovModel::fNerlingFactor
mutableprivate

Definition at line 158 of file AnalyticalCherenkovModel.h.

Referenced by CherenkovTrackLength(), and SetEnergyCutoff().

const double AnalyticalCherenkovModel::fNerlingMaxValidShowerAge = 2.
staticprivate
const double AnalyticalCherenkovModel::fNerlingMinValidShowerAge = 0.1
staticprivate

Limits for the shower age in the use of the Nerling parameterizations.

Definition at line 85 of file AnalyticalCherenkovModel.h.

Referenced by AngularCDF(), AngularPDF(), CherenkovIntegral(), and CherenkovTrackLength().

Parametrization atm::AnalyticalCherenkovModel::fParam
private

Parametrization to be used in the Cherenkov light calculation.

Definition at line 109 of file AnalyticalCherenkovModel.h.

Referenced by CherenkovTrackLength(), EvaluateCherenkovPhotons(), and Init().

ParametrizationAngular atm::AnalyticalCherenkovModel::fParamAngular
private

Definition at line 110 of file AnalyticalCherenkovModel.h.

Referenced by AngularCDF(), AngularPDF(), CherenkovIntegral(), and Init().

double atm::AnalyticalCherenkovModel::fShowerAgePrevious
mutableprivate

Definition at line 157 of file AnalyticalCherenkovModel.h.

Referenced by EvaluateCherenkovPhotons().

std::vector<double> atm::AnalyticalCherenkovModel::fWavelength
private

Wavelengths to calculate the light production.

Definition at line 106 of file AnalyticalCherenkovModel.h.

Referenced by EvaluateCherenkovDirect(), EvaluateCherenkovPhotons(), GetWavelengths(), and Init().

bool atm::AnalyticalCherenkovModel::fWlRefrac
private
utl::Point atm::AnalyticalCherenkovModel::fxAprevious
mutableprivate

Keep reference to previous calculation, to prevent re-calculation.

Definition at line 155 of file AnalyticalCherenkovModel.h.

Referenced by EvaluateCherenkovPhotons().

utl::Point atm::AnalyticalCherenkovModel::fxBprevious
mutableprivate

Definition at line 156 of file AnalyticalCherenkovModel.h.

Referenced by EvaluateCherenkovPhotons().


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

, generated on Tue Sep 26 2023.