/** \file Declaration of InclinedAtmosphericProfile \author Ralf Ulrich \version $Id$ \date Wed Oct 26 18:10:57 BRST 2005 */ #ifndef _atm_InclinedAtmosphericProfile_h_ #define _atm_InclinedAtmosphericProfile_h_ static const char CVSId_atm_InclinedAtmosphericProfile[] = "$Id$"; #include #include namespace utl { class Point; class Vector; } namespace atm { class ProfileResult; /** \class InclinedAtmosphericProfile InclinedAtmosphericProfile.h "atm/InclinedAtmosphericProfile.h" \brief Provides translational services for inclined profile This class will provide the functionallity of translating height and slant depth for inclined showers using a round earth and a curved atmosphere. \author Ralf Ulrich \date Wed Oct 26 18:12:12 BRST 2005 \ingroup atm */ class InclinedAtmosphericProfile { public: /* /// Init method for simulation part, based on a slant depth profile InclinedAtmosphericProfile (const utl::Point& core, const utl::Vector& dir, const std::vector& slantDepth); */ /// Init method for simulation part, based on a slant depth profile InclinedAtmosphericProfile(const utl::Point& core, const utl::Vector& dir, double deltaX); ~InclinedAtmosphericProfile(); /// Table of slant depth as a function of distance const atm::ProfileResult& EvaluateSlantDepthVsDistance() const; /// Table of distance as a function of slant depth const atm::ProfileResult& EvaluateDistanceVsSlantDepth() const; /// Table of height as a function of slant depth const atm::ProfileResult& EvaluateHeightVsSlantDepth() const; /// Table of height as a function of distance const atm::ProfileResult& EvaluateHeightVsDistance() const; /** \class InclinedAtmosphereModelException InclinedAtmosphericProfile.h "utl/InclinedAtmosphericProfile.h" \brief execption handling for calculation/access for inclined atmosphere model */ class InclinedAtmosphereModelException; static double IntegratedGrammage(const utl::Point& pStart, const utl::Point& pStop, double delta); private: atm::ProfileResult* fSlantDepthVsDistance; atm::ProfileResult* fDistanceVsSlantDepth; atm::ProfileResult* fHeightVsSlantDepth; atm::ProfileResult* fHeightVsDistance; /** \class UTMZoneException UTMPoint.h "utl/UTMPoint.h" \brief Report attempts to use invalid UTM zone */ class UTMZoneException; }; class InclinedAtmosphericProfile::InclinedAtmosphereModelException : public utl::AugerException { public: InclinedAtmosphereModelException(std::string message = std::string()): AugerException(message) { } /// Retrieve verbose exception name virtual std::string GetExceptionName() const { return "Problem in inclined atmosphere model"; } }; } #endif // Configure (x)emacs for this file ... // Local Variables: // mode: c++ // compile-command: "make -C .. -k" // End: