/*************************************************************************** * ctfindvar - Time variability search tool * * ----------------------------------------------------------------------- * * copyright (C) 2018-2019 by Simon Bonnefoy * * ----------------------------------------------------------------------- * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, either version 3 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * * * ***************************************************************************/ /** * @file ctfindvar.hpp * @brief Time variability search tool definition * @author Simon Bonnefoy */ #ifndef CTFINDVAR_HPP #define CTFINDVAR_HPP /* __ Includes ___________________________________________________________ */ #include "ctobservation.hpp" #include "GSkyMap.hpp" #include "GGti.hpp" /* __Definitions _________________________________________________________ */ #define CTFINDVAR_NAME "ctfindvar" /***********************************************************************//** * @class ctfindvar * * @brief Time variability search tool * * @todo Add tool description. ***************************************************************************/ class ctfindvar : public ctobservation { public: // Constructors and destructors ctfindvar(void); explicit ctfindvar(const GObservations& obs); ctfindvar(int argc, char *argv[]); ctfindvar(const ctfindvar& app); virtual ~ctfindvar(void); // Operators ctfindvar& operator=(const ctfindvar& app); // Methods void clear(void); void run(void); void save(void); protected: // Protected methods void init_members(void); void copy_members(const ctfindvar& app); void free_members(void); void get_parameters(void); void init_gtis(void); void create_cube(void); void fill_cube(GCTAObservation* obs); void analyse_cube(void); std::vector get_pixels(void); GNdarray get_variability_sig(const int& ipix); std::vector get_alphas(const int& ipix) const; double gti_overlap(const GGti& gti1, const GGti& gti2) const; GTime get_tstart(void); GTime get_tstop(void); GModelSky sky_model(const GSkyDir& dir) const; void write_source_histograms(GFits& fits); int time2inx(const GTime& time) const; // Protected members GSkyMap m_counts; //!< Counts for each time interval std::vector m_gti; //!< List of time intervals GModels m_inmodel; //!< List of models for source positions GSkyDir m_max_sig_dir; //!< Sky direction associated with maximum significance double m_minoff; //!< Minimum counts for use in significance calculation double m_sig_threshold; //!< Minimum significance required to set source as variable GSkyMap m_peaksigmap; //!< Skymap holding the maximum significance GNdarray m_pixsigsrc; //!< Store distributions of the source significances GNdarray m_pixsigmax; //!< Store distribution for pixel with max significance GTime m_tstart; //!< Start time for variability study GTime m_tstop; //!< Stop time for variability study GEnergy m_emin; //!< Minimum energy for events GEnergy m_emax; //!< Maximum energy for events GModels m_model_above_thr; //!< Model storing position with significance above thr }; #endif /* CTFINDVAR_HPP */