/* * ProcessTsyganenko96.hh * * Created on: Nov 06, 2017 * Author: benjamin */ #ifndef PROCESSTSYGANENKO96_HH_ #define PROCESSTSYGANENKO96_HH_ #include "SingleParamProcess.hh" #include "ParamInfo.hh" #include "Tsyganenko96Creator.hh" namespace AMDA { namespace Parameters { /** * @class ProcessTsyganenko96 * @brief Process to compute Tsyganenko 96 model magnetic field. */ class ProcessTsyganenko96 : public SingleParamProcess_CRTP { public: /** * @brief Constructor. */ ProcessTsyganenko96(Parameter ¶meter, bool inGSE); /** * @brief Copy Constructor. */ ProcessTsyganenko96(const ProcessTsyganenko96& pProcess, Parameter &pParameter) ; /** * @brief Destructor. */ virtual ~ProcessTsyganenko96(); /** * @overload Process::establishConnection() */ virtual void establishConnection(); /** * @overload Process::init() */ virtual TimeStamp init(); /** * Write data in dataParam. */ virtual unsigned int write(); protected: void getImfData(); void getPswData(); void getDstData(); bool _inGSE; private: /** * @brief params intput */ ParameterSPtr _inputImfParam; ParameterSPtr _inputPswParam; ParameterSPtr _inputDstParam; }; /** * @class ProcessTsyganenko96GSM * @brief Process to compute Tsyganenko 96 model magnetic field in GSM. */ class ProcessTsyganenko96GSM : public ProcessTsyganenko96 { public: /** * @brief Constructor. */ ProcessTsyganenko96GSM(Parameter ¶meter); }; /** * @class ProcessTsyganenko96 * @brief Process to compute Tsyganenko 96 model magnetic field in GSE. */ class ProcessTsyganenko96GSE : public ProcessTsyganenko96 { public: /** * @brief Constructor. */ ProcessTsyganenko96GSE(Parameter ¶meter); }; } /* namespace Parameters */ } /* namespace AMDA */ #endif /* PROCESSMEXVEXELSDECODE_HH_ */