4 #include <utl/ErrorLogger.h>
5 #include <utl/TabulatedFunctionErrors.h>
9 #include <det/Detector.h>
10 #include <fdet/FDetector.h>
13 #include <atm/AttenuationResult.h>
14 #include <atm/ScatteringResult.h>
16 #include <utl/TimeStamp.h>
17 #include <utl/UTCDateTime.h>
18 #include <utl/Point.h>
20 #include <atm/MonthlyAvgDBProfileModel.h>
29 using namespace ReadAerosolHLNS;
31 ReadAerosolHL::ReadAerosolHL(){}
33 ReadAerosolHL::~ReadAerosolHL(){}
38 INFO(
"ReadAerosolHL::Init()");
45 INFO(
"ReadAerosolHL::Run()");
47 Detector& det = Detector::GetInstance();
54 const Atmosphere& theAtm = Detector::GetInstance().GetAtmosphere();
60 csLL(Detector::GetInstance().GetFDetector().GetEye(
"Los Leones").GetEyeCoordinateSystem() );
67 vector<double> wlength;
76 cout <<
"An exception was thrown with the message " << ex.
GetMessage() << endl;
81 cout <<
"Transmission coefficient at 300 nm = " <<
84 cout <<
"Transmission coefficient at 350 nm = " <<
87 cout <<
"Transmission coefficient at 375 nm = " <<
90 cout <<
"Transmission coefficient at 400 nm = " <<
103 cout <<
"Could not do the computation. " << endl;
106 cout <<
"scattered photon intensity at 350 nm = " <<
108 <<
" photons/m^2" << endl;
116 Detector::GetInstance().Update(
UTCDateTime(2001, 1, 1).GetTimeStamp());
122 cout <<
"An exception was thrown when trying to retrieve" << endl;
123 cout <<
"aerosol data for 2001. This is probably because no data " << endl;
124 cout <<
"exists in the database for this time." << endl;
125 cout <<
"Note that if you change the MieModel type in AtmosphereInterfaceConfig " << endl;
126 cout <<
"to 'ParametricXML' or 'Super' rather than 'MeasuredDB', then the " << endl;
127 cout <<
"parametric model will be used, and you should NOT see this message" << endl;
142 cout <<
"An expected exception of type " << ex.GetExceptionName() <<
" was thrown. " << endl;
143 cout <<
"Message from the exception: " << ex.
GetMessage() << endl;
153 INFO(
"ReadAerosolHL::Finish()");
void Update(const utl::TimeStamp &time, const bool invData=true, const bool invComp=true, const bool forceRadio=false)
Update detector: deletes currently constructed stations and sets new time.
Top of the interface to Atmosphere information.
atm::AttenuationResult EvaluateMieAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const
Base class for all exceptions used in the auger offline code.
const utl::TabulatedFunctionErrors & GetTransmissionFactor() const
Transmission factor.
#define INFO(message)
Macro for logging informational messages.
void Init()
Initialise the registry.
A TimeStamp holds GPS second and nanosecond for some event.
constexpr double nanometer
Class holding the output of the ScatteringResult function.
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
Top of the hierarchy of the detector description interface.
const utl::TabulatedFunctionErrors & GetScatteringFactor() const
Scattering factor.
ResultFlag
Flag returned by module methods to the RunController.
double Y(const double x) const
Get or interpolate the Y value that corresponds to parameter x.
const std::string & GetMessage() const
Retrieve the message from the exception.
Class describing the Atmospheric attenuation.
atm::ScatteringResult EvaluateMieScattering(const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const std::vector< double > &xLength) const