List of all members | Classes | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
utl::MuonArrivalTime Class Reference

all time delays are relative to arrival time of shower front plane More...

#include <MuonArrivalTime.h>

Classes

struct  ApproxMomentArg
 
struct  SuperArg
 
struct  TimeCDFArg
 
struct  TimePDFArg
 

Public Member Functions

return * erf (z/kSqrt2))
 
 for (int i=fStart;i< lnt;++i)
 
 for (int i=fStart;i< 20;++i)
 
return fTimePDF GetIntegral (0, t)
 
 MuonArrivalTime ()
 
void SetCoordinates (const double r, const double delta)
 
void SetTheta (const double theta)
 setup of model for given zenith angle More...
 
void SetThetaAndDistance (const double theta, const double distance)
 setup model for given zenith angle and mean production distance More...
 
return nmuons * std::pow (1.0-TimeCDF(t), nmuons-1)*TimePDF(t)
 
return nmuons * std::pow (1.0-ApproximateTimeCDF(t), nmuons-1)*ApproximateTimePDF(t)
 

Public Attributes

double const
 PDF of arrival time of muons. More...
 
return utl::NormalPDF(std::log(t),
fMean, fSigma)/std double 
const
 CDF of arrival time of muons using normal approximation in log(t) More...
 
void const
 
fTimePDFArg fT = t
 
const double lnt = std::log(t)
 
 mean = result[0]
 
double result = 0
 
return result
 
 stdev = std::sqrt(result[1] - mean*mean)
 
const double z = (std::log(t)-fMean)/fSigma - fSigma
 

Private Member Functions

 for (int i=1;i< n;++i)
 
 if (z<=0) return 0.0
 
return PDF_dNdE (energy, x, fR)*dEdt
 
return std::exp (f1+f2)*erfc(f3+f4)/(2.0 *fLogLambda)
 

Private Attributes

const double c = utl::kSpeedOfLight
 
*std::pow(r/x, lamb)*std double const
 
const double cosaDa = std::sqrt(1.0-r*r/(z0*z0 + r*r))
 
const double dEdt = 0.5*pk*x*1.0/std::sqrt(1.0+2.0*m2/(pk*pk*x*c*t))*m2/(pk*pk*x*c*t*t)
 
const double dNdz = 1.0/(z*utl::kLn10)*PDF_dNdlgZ(lgZ)
 
const double dzdt = 0.5*(r*r/(c*t*t)+c)
 
return cosaDa *dNdzdzdt
 
const double energy = 0.5*pk*x*(1.0+std::sqrt(1.0+2.0*m2/(pk*pk*x*c*t)))
 
const double f2 = 0.5*(fLogSigma*fLogSigma)/(fLogLambda*fLogLambda)
 
const double f3 = (logz-fLogMean)/(utl::kSqrt2*fLogSigma)
 
const double f4 = fLogSigma/(utl::kSqrt2*fLogLambda)
 
utl::VectorIntegrator
< ApproxMomentArg, 2 > 
fApproxMoment
 
ApproxMomentArg fApproxMomentArg
 
double fDelta
 
double fLogLambda
 
double fLogMean
 
double fLogSigma
 
double fMean
 
double fNorm
 
double fR
 
double fSigma
 
double fStart
 
utl::VectorIntegrator
< SuperArg, 4 > 
fSuper
 
SuperArg fSuperArg
 
double fTheta
 
utl::Integrator< TimeCDFArgfTimeCDF
 
TimeCDFArg fTimeCDFArg
 
utl::Integrator< TimePDFArgfTimePDF
 
TimePDFArg fTimePDFArg
 
const double gam =2.6
 
const double kappa =0.8
 
const double lamb =1
 
const double lgZ = std::log10(z)
 
const double m2 = 0.011
 
const double pk = 0.0002
 
const double ptc =0.17
 
const double r = fR
 
const double x = std::sqrt(z0*z0 + fR*fR)
 
const double z0 = 0.5*(r*r/(c*t)-c*t)
 
const double zMean = std::pow(10, fLogMean)
 

Detailed Description

all time delays are relative to arrival time of shower front plane

Definition at line 23 of file MuonArrivalTime.h.

Constructor & Destructor Documentation

utl::MuonArrivalTime::MuonArrivalTime ( )
inline

Definition at line 26 of file MuonArrivalTime.h.

References fApproxMoment, fSuper, fTimeCDF, and fTimePDF.

Member Function Documentation

return* utl::MuonArrivalTime::erf ( z kSqrt2)
utl::MuonArrivalTime::for ( )
inline

Definition at line 125 of file MuonArrivalTime.h.

References fTimeCDF.

utl::MuonArrivalTime::for ( )
inline

Definition at line 178 of file MuonArrivalTime.h.

References fApproxMoment.

utl::MuonArrivalTime::for ( )
inlineprivate

Definition at line 275 of file MuonArrivalTime.h.

References x.

return fTimePDF utl::MuonArrivalTime::GetIntegral ( ,
 
)
utl::MuonArrivalTime::if ( z<=  0)
private
return utl::MuonArrivalTime::PDF_dNdE ( energy  ,
x  ,
fR   
)
private
void utl::MuonArrivalTime::SetCoordinates ( const double  r,
const double  delta 
)
inline

set coordinates of detector (shower front plane coordinate system) r = radial distance to shower axis, delta = distance to shower front plane

Definition at line 81 of file MuonArrivalTime.h.

References fDelta, fMean, fNorm, fR, fSigma, fStart, fSuper, r, result, and sqrt().

Referenced by SdHorizontalReconstructionNS::ShowerFrontFunction::Predict().

void utl::MuonArrivalTime::SetTheta ( const double  theta)
inline

setup of model for given zenith angle

Definition at line 54 of file MuonArrivalTime.h.

References c, utl::EvalPoly(), fLogLambda, fLogMean, fLogSigma, and fTheta.

Referenced by SetThetaAndDistance().

void utl::MuonArrivalTime::SetThetaAndDistance ( const double  theta,
const double  distance 
)
inline

setup model for given zenith angle and mean production distance

Definition at line 72 of file MuonArrivalTime.h.

References fLogMean, and SetTheta().

Referenced by SdHorizontalReconstructionNS::ShowerFrontFunction::Predict().

return utl::MuonArrivalTime::std::exp ( f1+  f2)
private
return nmuons* utl::MuonArrivalTime::std::pow ( 1.0-  TimeCDFt,
nmuons-  1 
)
return nmuons* utl::MuonArrivalTime::std::pow ( 1.0-  ApproximateTimeCDFt,
nmuons-  1 
)

Member Data Documentation

const double utl::MuonArrivalTime::c = utl::kSpeedOfLight
private

Definition at line 200 of file MuonArrivalTime.h.

Referenced by SetTheta().

double utl::MuonArrivalTime::const
Initial value:
{
if (t <= 0) return 0

PDF of arrival time of muons.

PDF model of muon energy distribution.

PDF model of muon production distance.

PDF of kinetic time delay due to distribution of muon energy.

PDF of geometric time delay due to distribution of muon production distance.

extreme value distribution of arrival time of first particle using normal approximation in log(t)

approximate PDF of arrival time of muons using normal approximation in log(t)

extreme value distribution of arrival time of first particle

CDF of arrival time of muons.

Definition at line 111 of file MuonArrivalTime.h.

return utl::NormalPDF (std::log(t),fMean,fSigma)/std double utl::MuonArrivalTime::const
Initial value:
{
if (t <= 0) return 0

CDF of arrival time of muons using normal approximation in log(t)

Definition at line 157 of file MuonArrivalTime.h.

void utl::MuonArrivalTime::const
Initial value:

Definition at line 175 of file MuonArrivalTime.h.

* std::pow (r/x,lamb) *std double utl::MuonArrivalTime::const
private
Initial value:
{
double result = pars[n-1]

Definition at line 273 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::cosaDa = std::sqrt(1.0-r*r/(z0*z0 + r*r))
private

Definition at line 210 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::dEdt = 0.5*pk*x*1.0/std::sqrt(1.0+2.0*m2/(pk*pk*x*c*t))*m2/(pk*pk*x*c*t*t)
private

Definition at line 234 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::dNdz = 1.0/(z*utl::kLn10)*PDF_dNdlgZ(lgZ)
private

Definition at line 213 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::dzdt = 0.5*(r*r/(c*t*t)+c)
private

Definition at line 208 of file MuonArrivalTime.h.

return cosaDa* dNdz* utl::MuonArrivalTime::dzdt
private

Definition at line 215 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::energy = 0.5*pk*x*(1.0+std::sqrt(1.0+2.0*m2/(pk*pk*x*c*t)))
private

Definition at line 233 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::f2 = 0.5*(fLogSigma*fLogSigma)/(fLogLambda*fLogLambda)
private

Definition at line 245 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::f3 = (logz-fLogMean)/(utl::kSqrt2*fLogSigma)
private

Definition at line 246 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::f4 = fLogSigma/(utl::kSqrt2*fLogLambda)
private

Definition at line 247 of file MuonArrivalTime.h.

utl::VectorIntegrator<ApproxMomentArg, 2> utl::MuonArrivalTime::fApproxMoment
private

Definition at line 376 of file MuonArrivalTime.h.

Referenced by for(), and MuonArrivalTime().

ApproxMomentArg utl::MuonArrivalTime::fApproxMomentArg
mutableprivate

Definition at line 375 of file MuonArrivalTime.h.

double utl::MuonArrivalTime::fDelta
private

Definition at line 361 of file MuonArrivalTime.h.

Referenced by SetCoordinates().

double utl::MuonArrivalTime::fLogLambda
private

Definition at line 362 of file MuonArrivalTime.h.

Referenced by SetTheta().

double utl::MuonArrivalTime::fLogMean
private

Definition at line 363 of file MuonArrivalTime.h.

Referenced by SetTheta(), and SetThetaAndDistance().

double utl::MuonArrivalTime::fLogSigma
private

Definition at line 364 of file MuonArrivalTime.h.

Referenced by SetTheta().

double utl::MuonArrivalTime::fMean
private

Definition at line 367 of file MuonArrivalTime.h.

Referenced by SetCoordinates().

double utl::MuonArrivalTime::fNorm
private
double utl::MuonArrivalTime::fR
private

Definition at line 360 of file MuonArrivalTime.h.

Referenced by SetCoordinates().

double utl::MuonArrivalTime::fSigma
private

Definition at line 368 of file MuonArrivalTime.h.

Referenced by SetCoordinates().

double utl::MuonArrivalTime::fStart
private

Definition at line 366 of file MuonArrivalTime.h.

Referenced by SetCoordinates().

utl::VectorIntegrator<SuperArg, 4> utl::MuonArrivalTime::fSuper
private

Definition at line 374 of file MuonArrivalTime.h.

Referenced by MuonArrivalTime(), and SetCoordinates().

SuperArg utl::MuonArrivalTime::fSuperArg
mutableprivate

Definition at line 373 of file MuonArrivalTime.h.

fTimePDFArg utl::MuonArrivalTime::fT = t

Definition at line 113 of file MuonArrivalTime.h.

double utl::MuonArrivalTime::fTheta
private

Definition at line 359 of file MuonArrivalTime.h.

Referenced by SetTheta().

utl::Integrator<TimeCDFArg> utl::MuonArrivalTime::fTimeCDF
private

Definition at line 372 of file MuonArrivalTime.h.

Referenced by for(), and MuonArrivalTime().

TimeCDFArg utl::MuonArrivalTime::fTimeCDFArg
mutableprivate

Definition at line 371 of file MuonArrivalTime.h.

utl::Integrator<TimePDFArg> utl::MuonArrivalTime::fTimePDF
private
TimePDFArg utl::MuonArrivalTime::fTimePDFArg
mutableprivate
const double utl::MuonArrivalTime::gam =2.6
private

Definition at line 261 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::kappa =0.8
private

Definition at line 258 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::lamb =1
private

Definition at line 259 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::lgZ = std::log10(z)
private

Definition at line 212 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::lnt = std::log(t)

Definition at line 123 of file MuonArrivalTime.h.

Referenced by utl::MuonArrivalTime::SuperArg::operator()().

const double utl::MuonArrivalTime::m2 = 0.011
private

Definition at line 229 of file MuonArrivalTime.h.

utl::MuonArrivalTime::mean = result[0]

Definition at line 187 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::pk = 0.0002
private

Definition at line 230 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::ptc =0.17
private

Definition at line 260 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::r = fR
private

Definition at line 201 of file MuonArrivalTime.h.

Referenced by SetCoordinates().

return utl::MuonArrivalTime::result = 0

Definition at line 124 of file MuonArrivalTime.h.

Referenced by SetCoordinates().

return utl::MuonArrivalTime::result

Definition at line 131 of file MuonArrivalTime.h.

utl::MuonArrivalTime::stdev = std::sqrt(result[1] - mean*mean)

Definition at line 188 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::x = std::sqrt(z0*z0 + fR*fR)
private

Definition at line 227 of file MuonArrivalTime.h.

Referenced by for().

const double utl::MuonArrivalTime::z = (std::log(t)-fMean)/fSigma - fSigma

Definition at line 159 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::z0 = 0.5*(r*r/(c*t)-c*t)
private

Definition at line 204 of file MuonArrivalTime.h.

const double utl::MuonArrivalTime::zMean = std::pow(10, fLogMean)
private

Definition at line 225 of file MuonArrivalTime.h.


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

, generated on Tue Sep 26 2023.