10 #include <det/Detector.h>
11 #include <fdet/FDetector.h>
12 #include <fdet/Telescope.h>
15 #include <atm/AttenuationResult.h>
16 #include <atm/ScatteringResult.h>
18 #include <fwk/CentralConfig.h>
19 #include <fwk/CoordinateSystemRegistry.h>
21 #include <utl/TimeStamp.h>
22 #include <utl/UTCDateTime.h>
23 #include <utl/ErrorLogger.h>
24 #include <utl/Point.h>
25 #include <utl/Vector.h>
26 #include <utl/TabulatedFunctionErrors.h>
27 #include <utl/ReferenceEllipsoid.h>
29 #include <cppunit/extensions/HelperMacros.h>
30 #include <tst/Verify.h>
46 INFO(
"PLEASE IMPLEMENT ME");
51 CPPUNIT_TEST_SUITE_END();
58 CentralConfig::GetInstance(BOOTSTRAPFILE);
67 Detector::GetInstance().Update(
UTCDateTime(2005,1,1,0,0,0).GetTimeStamp());
70 CSll(Detector::GetInstance().GetFDetector().GetEye(
"Los Leones").GetLocalCoordinateSystem() );
90 Point All(0., 0., 0., CSll);
91 Point Bll(0., 0., 2600.*
m, CSll);
92 Point Cll(0., 0., 10000.*
m, CSll);
93 Point Dll(0., 2000.*
m, 2600.*
m, CSll);
94 Point Ell(0.,20000.*
m, 2600.*
m, CSll);
97 Point Cst(0., 0., 10000.*
m, CSst);
99 vector<double> wlength;
105 const Atmosphere& theAtm = Detector::GetInstance().GetAtmosphere();
117 CPPUNIT_ASSERT(Verify<CloseTo>(attACll.GetTransmissionFactor().Y(300.*
nanometer), 0.498456));
122 CPPUNIT_ASSERT(Verify<CloseTo>(attADll.GetTransmissionFactor().Y(300.*
nanometer),0.721197));
127 CPPUNIT_ASSERT(Verify<CloseTo>(attBDll.GetTransmissionFactor().Y(300.*
nanometer), 0.838598));
132 CPPUNIT_ASSERT(Verify<CloseTo>(attBEll.GetTransmissionFactor().Y(300.*
nanometer), 0.172627));
143 PointToLatitudeLongitudeHeight(
Point(0., 0., 0., CSll)) ).get<2>();
145 PointToLatitudeLongitudeHeight(
Point(0., 0., 0., CSst)) ).get<2>();
149 Point(0., 0., 10000*
m, CSll),
153 Point(0., 0., heightSLll - heightSLst + 10000.*
m, CSst),
163 Detector::GetInstance().Update(
UTCDateTime(2005,1,1,0,0,0).GetTimeStamp());
164 const Atmosphere& theAtm = Detector::GetInstance().GetAtmosphere();
166 CSll(Detector::GetInstance().GetFDetector().GetEye(
"Los Leones").GetLocalCoordinateSystem() );
168 vector<double> wlength;
173 Point pointA(0., 0. , 0., CSll);
174 Point pointB(0., 0. , 500.*
m, CSll);
175 Point pointC(0., 500.*
m, 500.*
m, CSll);
double GetScatteringAngle() const
Get calculated scattering angle.
Top of the interface to Atmosphere information.
const utl::TabulatedFunctionErrors & GetTransmissionFactor() const
Transmission factor.
void testEvaluateScattering()
#define INFO(message)
Macro for logging informational messages.
void testEvaluateAttenuation()
CPPUNIT_TEST_SUITE_REGISTRATION(testAiresShowerFile)
constexpr double nanometer
Class holding the output of the ScatteringResult function.
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
atm::AttenuationResult EvaluateRayleighAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const
Compute Rayleigh attenuation between points.
atm::ScatteringResult EvaluateRayleighScattering(const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const std::vector< double > &xLength) const
const utl::TabulatedFunctionErrors & GetScatteringFactor() const
Scattering factor.
utl::CoordinateSystemPtr Get(const std::string &id)
Get a well-known Coordinate System.
double Y(const double x) const
Get or interpolate the Y value that corresponds to parameter x.
Class describing the Atmospheric attenuation.