/** \file Declaration of AirFluorescenceModel \author Diego Garcia Pinto \version $Id: AirFluorescenceModel.h 20705 2012-03-28 16:20:59Z javierg $ \date 14 Dec 2010 */ #ifndef _atm_AirFluorescenceModel_h_ #define _atm_AirFluorescenceModel_h_ #include #include static const char CVSId_atm_AirFluorescenceModel[] = "$Id: AirFluorescenceModel.h 20705 2012-03-28 16:20:59Z javierg $"; namespace utl { class TabulatedFunction; class Reader; } namespace atm { class AirFluorescenceModel :public atm::VFluorescenceModel { public: AirFluorescenceModel() { } virtual ~AirFluorescenceModel() { } void Init(); const utl::TabulatedFunction& EvaluateFluorescenceYield(const double heightAboveSeaLevel) const; const std::vector& GetWavelengths() const { return fWavelength; } double GetdEdX0() const; bool HasData() const { return true; } private: enum FluorescenceDataSet {eAuger, eKakimoto, eNagano, eKeilhauer, eUserDefined}; enum TemperatureParameterization { eAIRtemp, eNoTempParam}; enum TemperatureParameterizationWater { eAIRWatertemp, eNoWaterTempParam}; enum HumidityParameterization { eAIRhum, eNoHumParam }; FluorescenceDataSet fDataSet; TemperatureParameterization fTempParam; TemperatureParameterizationWater fTempWaterParam; HumidityParameterization fHumParam; mutable utl::TabulatedFunction fFluorescenceSpectrum; utl::Reader* fDataSetReader; std::vector fWavelength; std::vector fRelativeIntensity; std::vector fPPrime; std::vector fRelativeIntensityError; std::vector fPPrimeErrorUncorrelated; std::vector fPPrimeErrorCorrelated; std::vector fAlpha, fAlphaWater; std::vector fPPrimeHum; std::string NaganoAirflyFileName; std::string NaganoFileName; double fTemperature0; double fPressure0; double fYield337; REGISTER_MODEL(atm::VFluorescenceModel, "AirFluorescence", AirFluorescenceModel); }; } #endif // _atm_AirFluorescenceModel_h_ // Configure (x)emacs for this file ... // Local Variables: // mode:c++ // compile-command: "make -C .. -k" // End: