Blame view

src/ExternLib/GetJunoJediEnergy/GetJunoJediEnergyProcess.hh 1.5 KB
be507aed   Benjamin Renard   Add pluggin to re...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
 * GetJunoJediEnergyProcess.hh
 *
 *  Created on: Aug 25, 2017
 *      Author: AKKA
 */

#ifndef GetJunoJedoEnergyProcess_HH_
#define GetJunoJediEnergyProcess_HH_

#include "SingleParamProcess.hh"

namespace AMDA {
namespace JunoJedi {

	/**
	 * @class GetJunoJediEnergyProcess
	 * @brief Return the energy table of Juno Jedi instrument.
	 */
	class GetJunoJediEnergyProcess : public AMDA::Parameters::SingleParamProcess_CRTP<GetJunoJediEnergyProcess> {
	public:

		enum EnergyBand {
			BAND_LOWER,
			BAND_UPPER
		};
		/**
		 * @brief Constructor.
		 */
		GetJunoJediEnergyProcess(AMDA::Parameters::Parameter &parameter, EnergyBand energy_band);
		/**
		 * @brief Copy Constructor.
		 */
		GetJunoJediEnergyProcess(const GetJunoJediEnergyProcess& pProcess, AMDA::Parameters::Parameter &pParameter) ;
		/**
		 * @brief Destructor.
		 */
		~GetJunoJediEnergyProcess();

		// Overload Process methods
		/**
		 * @overload Process::init()
		 */
		AMDA::Parameters::TimeStamp init();

	private:
		EnergyBand _energy_band;
	};

	class GetJunoJediLowerEnergyProcess : public GetJunoJediEnergyProcess {
	public:
		/**
		 * @brief Constructor.
		 */
                GetJunoJediLowerEnergyProcess(AMDA::Parameters::Parameter &parameter);
	};

	class GetJunoJediUpperEnergyProcess : public GetJunoJediEnergyProcess {
        public:
		/**
		 * @brief Constructor.
		 */
		GetJunoJediUpperEnergyProcess(AMDA::Parameters::Parameter &parameter);
        };

} /* namespace JunoJedi */
} /* namespace AMDA */
#endif /* GetJunoJediEnergyProcess_HH_ */