cttsmap.hpp
5.19 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/***************************************************************************
* cttsmap - TS map calculation tool *
* ----------------------------------------------------------------------- *
* copyright (C) 2014-2016 by Michael Mayer *
* ----------------------------------------------------------------------- *
* *
* 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 <http://www.gnu.org/licenses/>. *
* *
***************************************************************************/
/**
* @file cttsmap.hpp
* @brief TS map calculation tool interface definition
* @author Michael Mayer
*/
#ifndef CTTSMAP_HPP
#define CTTSMAP_HPP
/* __ Includes ___________________________________________________________ */
#include "GammaLib.hpp"
#include "GCTALib.hpp"
#include "ctool.hpp"
/* __Definitions _________________________________________________________ */
#define CTTSMAP_NAME "cttsmap"
#define CTTSMAP_VERSION "1.1.0"
/***********************************************************************//**
* @class cttsmap
*
* @brief TS map calculation tool
*
* This class computes a set of maps from any kind of observations:
*
* - TS map
* - Flux map
* - Map of spectral index
*
* The class operates on predefined observation containers, an individual
* event list or an observation definition XML file.
*
* During the computation a putative point-like source is moved along a
* grid of coordinates. The best fit results (TS, flux, index) are stored in
* maps which are saved in the output FITS files.
***************************************************************************/
class cttsmap : public ctool {
public:
// Constructors and destructors
cttsmap(void);
explicit cttsmap(const GObservations& obs);
cttsmap(int argc, char *argv[]);
cttsmap(const cttsmap& app);
virtual ~cttsmap(void);
// Operators
cttsmap& operator=(const cttsmap& app);
// Methods
void clear(void);
void run(void);
void save(void);
void publish(const std::string& name = "");
const GObservations& obs(void) const;
const GSkyMap& tsmap(void) const;
protected:
// Protected methods
void init_members(void);
void copy_members(const cttsmap& app);
void free_members(void);
void get_parameters(void);
void init_maps(const GSkyMap& map);
// User parameters
std::string m_srcname; //!< Name of source which is moved around
GFilename m_outmap; //!< Output TS map file name
bool m_apply_edisp; //!< Apply energy dispersion?
bool m_publish; //!< Publish TS map?
bool m_errors; //!< Compute and store parameter errors?
// Parameters to control speed and job splitting
int m_binmin; //!< Map bin number from which computation should start
int m_binmax; //!< Map bin number where map computation should end
double m_logL0; //!< Likelihood value of null hypothesis
// Protected members
GObservations m_obs; //!< Observation container
GSkyMap m_tsmap; //!< TS map
GSkyMap m_statusmap; //!< Map of optimizer fit status
std::vector<std::string> m_mapnames; //!< Names of free parameters
std::vector<GSkyMap> m_maps; //!< Sky maps for each free parameter
GModel* m_testsource; //!< Pointer to test source for TS computation
};
/***********************************************************************//**
* @brief Return observation container
*
* @return Reference to observation container
***************************************************************************/
inline
const GObservations& cttsmap::obs(void) const
{
return m_obs;
}
/***********************************************************************//**
* @brief Return TS skymap
*
* @return Reference to TS skymap
***************************************************************************/
inline
const GSkyMap& cttsmap::tsmap(void) const
{
return m_tsmap;
}
#endif /* CTTSMAP_HPP */