Commit 04d8c1544567403c3a2560b5ed4f60f475005069

Authored by knodlseder
1 parent 7f7a1d41

add LAT observation class

include/GLATObservation.hpp
... ... @@ -21,6 +21,7 @@
21 21  
22 22 /* __ Includes ___________________________________________________________ */
23 23 #include "GObservation.hpp"
  24 +#include "GFits.hpp"
24 25  
25 26 /* __ Namespaces _________________________________________________________ */
26 27  
... ... @@ -35,24 +36,30 @@ class GLATObservation : public GObservation {
35 36 public:
36 37 // Constructors and destructors
37 38 GLATObservation();
  39 + GLATObservation(const std::string& ft1name, const std::string& ft2name);
38 40 GLATObservation(const GLATObservation& obs);
39 41 virtual ~GLATObservation();
40 42  
41 43 // Operators
42   - virtual GLATObservation& operator= (const GLATObservation& obs);
  44 + GLATObservation& operator= (const GLATObservation& obs);
43 45  
44 46 // Methods
  47 + GFits* ft1(void) const;
  48 + GFits* ft2(void) const;
45 49  
46 50 protected:
47 51 // Protected methods
48   - void init_members(void);
49   - void copy_members(const GLATObservation& obs);
50   - void free_members(void);
51   - virtual GLATObservation* clone(void) const;
  52 + void init_members(void);
  53 + void copy_members(const GLATObservation& obs);
  54 + void free_members(void);
  55 + GLATObservation* clone(void) const;
52 56  
53 57 // Protected data area
54 58  
55 59 private:
  60 + GFits* m_ft1; //!< FT1 FITS file
  61 + GFits* m_ft2; //!< FT2 FITS file
  62 + GFits* m_ltcube; //!< Lifetime cube FITS file
56 63 };
57 64  
58 65 #endif /* GLATOBSERVATION_HPP */
... ...
include/Makefile.am
... ... @@ -17,6 +17,7 @@ pkginclude_HEADERS = GammaLib.hpp \
17 17 GFitsAsciiTable.hpp \
18 18 GFitsBinTable.hpp \
19 19 GFitsTableCol.hpp \
  20 + GFitsTableLogCol.hpp \
20 21 GFitsTableStrCol.hpp \
21 22 GFitsTableShtCol.hpp \
22 23 GFitsTableLngCol.hpp \
... ...
include/Makefile.in
... ... @@ -123,6 +123,7 @@ pkginclude_HEADERS = GammaLib.hpp \
123 123 GFitsAsciiTable.hpp \
124 124 GFitsBinTable.hpp \
125 125 GFitsTableCol.hpp \
  126 + GFitsTableLogCol.hpp \
126 127 GFitsTableStrCol.hpp \
127 128 GFitsTableShtCol.hpp \
128 129 GFitsTableLngCol.hpp \
... ...
pyext/GLATObservation.i 0 → 100644
  1 +/***************************************************************************
  2 + * GLATObservation.i - LAT Observation class SWIG interface *
  3 + * ----------------------------------------------------------------------- *
  4 + * copyright : (C) 2008 by Jurgen Knodlseder *
  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 2 of the License, or *
  10 + * (at your option) any later version. *
  11 + * *
  12 + ***************************************************************************/
  13 +/**
  14 + * @file GLATObservation.i
  15 + * @brief GLATObservation class SWIG file.
  16 + * @author J. Knodlseder
  17 + */
  18 +%{
  19 +/* Put headers and other declarations here that are needed for compilation */
  20 +#include "GLATObservation.hpp"
  21 +%}
  22 +%include stl.i
  23 +%feature("notabstract") GLATObservation;
  24 +%import GObservation.i
  25 +
  26 +/***********************************************************************//**
  27 + * @class GLATObservation
  28 + *
  29 + * @brief Interface for the LAT observation classes.
  30 + ***************************************************************************/
  31 +class GLATObservation : public GObservation {
  32 +public:
  33 + // Constructors and destructors
  34 + GLATObservation();
  35 + GLATObservation(const std::string& ft1name, const std::string& ft2name);
  36 + GLATObservation(const GLATObservation& obs);
  37 + virtual ~GLATObservation();
  38 +
  39 + // Methods
  40 + GFits* ft1(void) const;
  41 + GFits* ft2(void) const;
  42 +};
  43 +
... ...
src/Makefile.am
... ... @@ -30,6 +30,7 @@ files = GException.cpp \
30 30 fits/GFitsAsciiTable.cpp \
31 31 fits/GFitsBinTable.cpp \
32 32 fits/GFitsTableCol.cpp \
  33 + fits/GFitsTableLogCol.cpp \
33 34 fits/GFitsTableStrCol.cpp \
34 35 fits/GFitsTableShtCol.cpp \
35 36 fits/GFitsTableLngCol.cpp \
... ...
src/Makefile.in
... ... @@ -135,6 +135,7 @@ files = GException.cpp \
135 135 fits/GFitsAsciiTable.cpp \
136 136 fits/GFitsBinTable.cpp \
137 137 fits/GFitsTableCol.cpp \
  138 + fits/GFitsTableLogCol.cpp \
138 139 fits/GFitsTableStrCol.cpp \
139 140 fits/GFitsTableShtCol.cpp \
140 141 fits/GFitsTableLngCol.cpp \
... ... @@ -169,10 +170,11 @@ am__objects_1 = GException.lo GTools.lo GSkyDir.lo GNodeArray.lo \
169 170 GLATObservation.lo GFitsHeaderCard.lo GFitsHeader.lo \
170 171 GFitsData.lo GFitsImage.lo GFitsDblImage.lo GFitsTable.lo \
171 172 GFitsAsciiTable.lo GFitsBinTable.lo GFitsTableCol.lo \
172   - GFitsTableStrCol.lo GFitsTableShtCol.lo GFitsTableLngCol.lo \
173   - GFitsTableFltCol.lo GFitsTableDblCol.lo GFitsHDU.lo GFits.lo \
174   - GFitPar.lo GVector.lo GMatrixBase.lo GMatrix.lo GSymMatrix.lo \
175   - GSparseMatrix.lo GSparseSymbolic.lo GSparseNumeric.lo
  173 + GFitsTableLogCol.lo GFitsTableStrCol.lo GFitsTableShtCol.lo \
  174 + GFitsTableLngCol.lo GFitsTableFltCol.lo GFitsTableDblCol.lo \
  175 + GFitsHDU.lo GFits.lo GFitPar.lo GVector.lo GMatrixBase.lo \
  176 + GMatrix.lo GSymMatrix.lo GSparseMatrix.lo GSparseSymbolic.lo \
  177 + GSparseNumeric.lo
176 178 am_libgamma_la_OBJECTS = $(am__objects_1)
177 179 libgamma_la_OBJECTS = $(am_libgamma_la_OBJECTS)
178 180  
... ... @@ -251,6 +253,7 @@ GFitsTable.lo: fits/GFitsTable.cpp
251 253 GFitsAsciiTable.lo: fits/GFitsAsciiTable.cpp
252 254 GFitsBinTable.lo: fits/GFitsBinTable.cpp
253 255 GFitsTableCol.lo: fits/GFitsTableCol.cpp
  256 +GFitsTableLogCol.lo: fits/GFitsTableLogCol.cpp
254 257 GFitsTableStrCol.lo: fits/GFitsTableStrCol.cpp
255 258 GFitsTableShtCol.lo: fits/GFitsTableShtCol.cpp
256 259 GFitsTableLngCol.lo: fits/GFitsTableLngCol.cpp
... ... @@ -446,6 +449,15 @@ GFitsTableCol.obj: fits/GFitsTableCol.cpp
446 449 GFitsTableCol.lo: fits/GFitsTableCol.cpp
447 450 $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GFitsTableCol.lo `test -f 'fits/GFitsTableCol.cpp' || echo '$(srcdir)/'`fits/GFitsTableCol.cpp
448 451  
  452 +GFitsTableLogCol.o: fits/GFitsTableLogCol.cpp
  453 + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GFitsTableLogCol.o `test -f 'fits/GFitsTableLogCol.cpp' || echo '$(srcdir)/'`fits/GFitsTableLogCol.cpp
  454 +
  455 +GFitsTableLogCol.obj: fits/GFitsTableLogCol.cpp
  456 + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GFitsTableLogCol.obj `cygpath -w fits/GFitsTableLogCol.cpp`
  457 +
  458 +GFitsTableLogCol.lo: fits/GFitsTableLogCol.cpp
  459 + $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GFitsTableLogCol.lo `test -f 'fits/GFitsTableLogCol.cpp' || echo '$(srcdir)/'`fits/GFitsTableLogCol.cpp
  460 +
449 461 GFitsTableStrCol.o: fits/GFitsTableStrCol.cpp
450 462 $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GFitsTableStrCol.o `test -f 'fits/GFitsTableStrCol.cpp' || echo '$(srcdir)/'`fits/GFitsTableStrCol.cpp
451 463  
... ...
src/obs/GLATObservation.cpp
... ... @@ -54,6 +54,31 @@ GLATObservation::GLATObservation() : GObservation()
54 54  
55 55  
56 56 /***********************************************************************//**
  57 + * @brief Constructor
  58 + *
  59 + * @param[in] ft1name FT1 FITS filename.
  60 + * @param[in] ft2name FT2 FITS filename.
  61 + ***************************************************************************/
  62 +GLATObservation::GLATObservation(const std::string& ft1name,
  63 + const std::string& ft2name) : GObservation()
  64 +{
  65 + // Initialise class members for clean destruction
  66 + init_members();
  67 +
  68 + // Allocate FT1 & FT2 FITS files
  69 + m_ft1 = new GFits;
  70 + m_ft2 = new GFits;
  71 +
  72 + // Open FT1 & FT2 FITS files
  73 + m_ft1->open(ft1name);
  74 + m_ft2->open(ft2name);
  75 +
  76 + // Return
  77 + return;
  78 +}
  79 +
  80 +
  81 +/***********************************************************************//**
57 82 * @brief Copy constructor
58 83 *
59 84 * @param[in] obs Observation from which the instance should be built.
... ... @@ -125,6 +150,25 @@ GLATObservation&amp; GLATObservation::operator= (const GLATObservation&amp; obs)
125 150 = =
126 151 ==========================================================================*/
127 152  
  153 +/***********************************************************************//**
  154 + * @brief Return pointer to FT1 file.
  155 + ***************************************************************************/
  156 +GFits* GLATObservation::ft1(void) const
  157 +{
  158 + // Return FT1 pointer
  159 + return m_ft1;
  160 +}
  161 +
  162 +
  163 +/***********************************************************************//**
  164 + * @brief Return pointer to FT2 file.
  165 + ***************************************************************************/
  166 +GFits* GLATObservation::ft2(void) const
  167 +{
  168 + // Return FT2 pointer
  169 + return m_ft2;
  170 +}
  171 +
128 172  
129 173 /*==========================================================================
130 174 = =
... ... @@ -138,6 +182,9 @@ GLATObservation&amp; GLATObservation::operator= (const GLATObservation&amp; obs)
138 182 void GLATObservation::init_members(void)
139 183 {
140 184 // Initialise members
  185 + m_ft1 = NULL;
  186 + m_ft2 = NULL;
  187 + m_ltcube = NULL;
141 188  
142 189 // Return
143 190 return;
... ... @@ -164,6 +211,14 @@ void GLATObservation::copy_members(const GLATObservation&amp; obs)
164 211 void GLATObservation::free_members(void)
165 212 {
166 213 // Free members
  214 + if (m_ft1 != NULL) delete m_ft1;
  215 + if (m_ft2 != NULL) delete m_ft2;
  216 + if (m_ltcube != NULL) delete m_ltcube;
  217 +
  218 + // Mark memory as free
  219 + m_ft1 = NULL;
  220 + m_ft2 = NULL;
  221 + m_ltcube = NULL;
167 222  
168 223 // Return
169 224 return;
... ...