diff --git a/src/ctselect/ctselect.cpp b/src/ctselect/ctselect.cpp index 177bf08..4bc24e2 100644 --- a/src/ctselect/ctselect.cpp +++ b/src/ctselect/ctselect.cpp @@ -24,23 +24,153 @@ #include "ctselect.hpp" +/*========================================================================== + = = + = Constructors/destructors = + = = + ==========================================================================*/ + +/***********************************************************************//** + * @brief Void constructor + ***************************************************************************/ +ctselect::ctselect(void) : GApplication(CTSELECT_NAME, CTSELECT_VERSION) +{ + // Initialise members + init_members(); + + // Write header into logger + log_header(); + + // Return + return; +} + + +/***********************************************************************//** + * @brief Command line constructor + * + * @param[in] argc Number of arguments in command line. + * @param[in] argv Array of command line arguments. + ***************************************************************************/ +ctselect::ctselect(int argc, char *argv[]) : + GApplication(CTSELECT_NAME, CTSELECT_VERSION, argc, argv) +{ + // Initialise members + init_members(); + + // Write header into logger + log_header(); + + // Return + return; +} + + +/***********************************************************************//** + * @brief Destructor + ***************************************************************************/ +ctselect::~ctselect(void) +{ + // Free members + free_members(); + + // Return + return; +} + + +/*========================================================================== + = = + = Operators = + = = + ==========================================================================*/ + +/*========================================================================== + = = + = Public methods = + = = + ==========================================================================*/ + +/***********************************************************************//** + * @brief Select event data + ***************************************************************************/ +void ctselect::run(void) +{ + // Get parameters + get_parameters(); + + // Write parameters into logger + if (logTerse()) { + log_parameters(); + log << std::endl; + } + + // Return + return; +} + + +/***********************************************************************//** + * @brief Get application parameters + * + * Get all task parameters from parameter file or (if required) by querying + * the user. + ***************************************************************************/ +void ctselect::get_parameters(void) +{ + // Get parameters + m_infile = par("infile")->value(); + m_outfile = par("outfile")->value(); + m_ra = par("ra")->real(); + m_dec = par("dec")->real(); + m_rad = par("rad")->real(); + m_tmin = par("tmin")->real(); + m_tmax = par("tmax")->real(); + m_emin = par("emin")->real(); + m_emax = par("emax")->real(); + + // Return + return; +} + + +/*========================================================================== + = = + = Private methods = + = = + ==========================================================================*/ + +/***********************************************************************//** + * @brief Initialise class members + ***************************************************************************/ +void ctselect::init_members(void) +{ + // Initialise members + m_infile.clear(); + m_outfile.clear(); + m_ra = 0.0; + m_dec = 0.0; + m_rad = 0.0; + m_tmin = 0.0; + m_tmax = 0.0; + m_emin = 0.0; + m_emax = 0.0; + + // Set logger properties + log.date(true); + + // Return + return; +} + + /***********************************************************************//** - * @brief Application + * @brief Delete class members ***************************************************************************/ -int ctselect::run(void) +void ctselect::free_members(void) { - // Test dump - std::cout << *this << std::endl; - - // DUMMY FOR TESTING - std::string value; - value = par("string")->value(); - std::cout << value << std::endl; - value = par("chatter")->value(); - std::cout << value << std::endl; - value = par("clobber")->value(); - std::cout << value << std::endl; + // Free members // Return - return 0; + return; } diff --git a/src/ctselect/ctselect.hpp b/src/ctselect/ctselect.hpp index 078765d..bf0b1d7 100644 --- a/src/ctselect/ctselect.hpp +++ b/src/ctselect/ctselect.hpp @@ -35,13 +35,29 @@ class ctselect : public GApplication { public: // Constructors and destructors - ctselect(void) : - GApplication(CTSELECT_NAME, CTSELECT_VERSION) { return; } - ctselect(int argc, char *argv[]) : - GApplication(CTSELECT_NAME, CTSELECT_VERSION, argc, argv) { return; } + ctselect(void); + ctselect(int argc, char *argv[]); + ~ctselect(void); // Methods - int run(void); + void run(void); + void get_parameters(void); + +protected: + // Protected methods + void init_members(void); + void free_members(void); + + // User parameters + std::string m_infile; //!< Input event list + std::string m_outfile; //!< Output event list + double m_ra; //!< RA of ROI centre + double m_dec; //!< DEC of ROI centre + double m_rad; //!< ROI radius + double m_tmin; //!< Start time + double m_tmax; //!< Stop time + double m_emin; //!< Lower energy + double m_emax; //!< Upper energy }; #endif /* CTSELECT_HPP */