GammaLib 2.0.0
Loading...
Searching...
No Matches
GCTAAeff.hpp
Go to the documentation of this file.
1/***************************************************************************
2 * GCTAAeff.hpp - CTA effective area base class *
3 * ----------------------------------------------------------------------- *
4 * copyright (C) 2012-2017 by Juergen Knoedlseder *
5 * ----------------------------------------------------------------------- *
6 * *
7 * This program is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * This program is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
19 * *
20 ***************************************************************************/
21/**
22 * @file GCTAAeff.hpp
23 * @brief CTA effective area base class definition
24 * @author Juergen Knoedlseder
25 */
26
27#ifndef GCTAAEFF_HPP
28#define GCTAAEFF_HPP
29
30/* __ Includes ___________________________________________________________ */
31#include <string>
32#include "GBase.hpp"
33#include "GFits.hpp"
34
35/* __ Forward declarations _______________________________________________ */
36class GFilename;
37class GEbounds;
38
39
40/***********************************************************************//**
41 * @class GCTAAeff
42 *
43 * @brief Abstract base class for the CTA effective area
44 *
45 * This class implements the abstract base class for the CTA effective area.
46 * The effective area is accessed using the following arguments
47 * logE - log10 of true (or measured) energy in TeV
48 * theta - Offset angle of true photon direction in camera system (rad)
49 * phi - Azimuth angle of true photon direction in camera system (rad)
50 * zenith - Zenith angle of pointing in Earth system (rad)
51 * azimuth - Azimuth angle of pointing in Earth system (rad)
52 * etrue - Use true or measured energy
53 ***************************************************************************/
54class GCTAAeff : public GBase {
55
56public:
57 // Constructors and destructors
58 GCTAAeff(void);
59 GCTAAeff(const GCTAAeff& aeff);
60 virtual ~GCTAAeff(void);
61
62 // Pure virtual operators
63 virtual double operator()(const double& logE,
64 const double& theta = 0.0,
65 const double& phi = 0.0,
66 const double& zenith = 0.0,
67 const double& azimuth = 0.0,
68 const bool& etrue = true) const = 0;
69
70 // Operators
71 GCTAAeff& operator=(const GCTAAeff& aeff);
72
73 // Pure virtual methods
74 virtual void clear(void) = 0;
75 virtual GCTAAeff* clone(void) const = 0;
76 virtual std::string classname(void) const = 0;
77 virtual void load(const GFilename& filename) = 0;
78 virtual GFilename filename(void) const = 0;
79 virtual double max(const double& logE,
80 const double& zenith,
81 const double& azimuth,
82 const bool& etrue = true) const = 0;
83 virtual GEbounds ebounds(void) const = 0;
84 virtual std::string print(const GChatter& chatter = NORMAL) const = 0;
85
86protected:
87 // Methods
88 void init_members(void);
89 void copy_members(const GCTAAeff& aeff);
90 void free_members(void);
91};
92
93#endif /* GCTAAEFF_HPP */
Definition of interface for all GammaLib classes.
FITS file class interface definition.
GChatter
Definition GTypemaps.hpp:33
@ NORMAL
Definition GTypemaps.hpp:36
Interface class for all GammaLib classes.
Definition GBase.hpp:52
Abstract base class for the CTA effective area.
Definition GCTAAeff.hpp:54
virtual double max(const double &logE, const double &zenith, const double &azimuth, const bool &etrue=true) const =0
virtual ~GCTAAeff(void)
Destructor.
Definition GCTAAeff.cpp:84
virtual std::string print(const GChatter &chatter=NORMAL) const =0
Print content of object.
virtual void clear(void)=0
Clear object.
virtual double operator()(const double &logE, const double &theta=0.0, const double &phi=0.0, const double &zenith=0.0, const double &azimuth=0.0, const bool &etrue=true) const =0
void init_members(void)
Initialise class members.
Definition GCTAAeff.cpp:142
void copy_members(const GCTAAeff &aeff)
Copy class members.
Definition GCTAAeff.cpp:154
GCTAAeff(void)
Void constructor.
Definition GCTAAeff.cpp:53
virtual GEbounds ebounds(void) const =0
void free_members(void)
Delete class members.
Definition GCTAAeff.cpp:164
virtual std::string classname(void) const =0
Return class name.
GCTAAeff & operator=(const GCTAAeff &aeff)
Assignment operator.
Definition GCTAAeff.cpp:106
virtual GFilename filename(void) const =0
virtual void load(const GFilename &filename)=0
virtual GCTAAeff * clone(void) const =0
Clones object.
Energy boundaries container class.
Definition GEbounds.hpp:60
Filename class.
Definition GFilename.hpp:62