1 #include <evt/ShowerFRecData.h>
2 #include <utl/ErrorLogger.h>
3 #include <utl/PhysicalConstants.h>
5 #include <utl/LameShadowPtr_imp.h>
21 iE != uncertainties.end(); ++iE)
22 variance +=
pow(iE->second, 2);
27 ShowerFRecData::ShowerFRecData() :
33 fCorrelationThetaPhi(0),
42 ERROR(
"ShowerFRecData::EnergyDeposit already exists - Not replacing");
53 ERROR(
"ShowerFRecData::LongitudinalProfile already exists - Not replacing");
64 ERROR(
"ShowerFRecData::FluorescenecePhotons already exists - Not replacing");
75 ERROR(
"ShowerFRecData::CherenkovPhotons already exists - Not replacing");
86 ERROR(
"ShowerFRecData::GHParameters already exists - Not replacing");
104 err <<
" No uncertainty type " << type
134 err <<
" No uncertainty type " << type
165 err <<
" No uncertainty type " << type
187 const double rp,
const double chi0,
210 const Vector coreTelescopeVec = telescopePosition -
fCore;
211 const double c = coreTelescopeVec.
GetMag();
214 const double distance =
215 -(c * c - delta * delta)/(2 * (delta + c * cosBeta));
217 return pointOnShower;
bool HasEmEnergyError(const EUncertaintyType type=eTotal) const
#define LAMESHADOWPTR_INST(_T_...)
bool HasTotalEnergyError(const EUncertaintyType type=eTotal) const
utl::ShadowPtr< utl::TabulatedFunction > fCherenkovPhotons
utl::Point CalculatePointOnShower(const utl::TimeStamp &timeAtTelescope, const utl::Point &telescopePosition) const
point on shower corresponding to a certain light arrival time at telescope
void MakeLongitudinalProfile()
Class to hold collection (x,y) points and provide interpolation between them.
void MakeFluorescencePhotons()
utl::ShadowPtr< utl::TabulatedFunctionErrors > fFluorescencePhotons
UncertaintyMap fTotalEnergyError
double pow(const double x, const unsigned int i)
utl::ShadowPtr< utl::TabulatedFunctionErrors > fLongitudinalProfile
A TimeStamp holds GPS second and nanosecond for some event.
void MakeCherenkovPhotons()
double QuadraticSum(const ShowerFRecData::UncertaintyMap &uncertainties)
utl::ShadowPtr< evt::VGaisserHillasParameter > fGHParameters
UncertaintyMap fXmaxError
void SetCoreTime(const utl::TimeStamp &coreTime, const utl::TimeInterval &coreTimeErr)
double GetXmaxError(const EUncertaintyType type=eTotal) const
retrieve Xmax uncertainties
double GetTotalEnergyError(const EUncertaintyType type=eTotal) const
UncertaintyMap fEmEnergyError
double GetEmEnergyError(const EUncertaintyType type=eTotal) const
Base class for exceptions arising because required info not present in the Event. ...
constexpr double kSpeedOfLight
A TimeInterval is used to represent time elapsed between two events.
UncertaintyMap::const_iterator UncertaintyMapConstIterator
bool HasXmaxError(const EUncertaintyType type=eTotal) const
utl::ShadowPtr< utl::TabulatedFunctionErrors > fEnergyDeposit
virtual VGaisserHillasParameter * Clone() const =0
Interface class for access to the Gaisser-Hillas parameters.
Interface class to access to Fluorescence reconstruction of a Shower.
double CosAngle(const Vector &l, const Vector &r)
void MakeGHParameters(const VGaisserHillasParameter &gh)
#define ERROR(message)
Macro for logging error messages.
std::map< EUncertaintyType, double > UncertaintyMap
EUncertaintyType
profile reconstruction uncertainty types