Commit 412c7728de8ecd9128e431c75e8faee76e60bed5

Authored by Jürgen Knödlseder
1 parent 43b52cb3

Integrate code.

cscripts/csspec.py
@@ -157,8 +157,8 @@ class csspec(ctools.cscript): @@ -157,8 +157,8 @@ class csspec(ctools.cscript):
157 157
158 # Read user parameters 158 # Read user parameters
159 self.m_enumbins = self["enumbins"].integer() 159 self.m_enumbins = self["enumbins"].integer()
160 - self.m_emin = self["emin"].real() - 1e-6 #rounding tolerance  
161 - self.m_emax = self["emax"].real() + 1e-6 #rounding tolerance 160 + self.m_emin = self["emin"].real() - 1e-6 #rounding tolerance
  161 + self.m_emax = self["emax"].real() + 1e-6 #rounding tolerance
162 162
163 # Compute number of energy layers used for one spectral bin 163 # Compute number of energy layers used for one spectral bin
164 n_layers = cube_ebounds.size() / self.m_enumbins 164 n_layers = cube_ebounds.size() / self.m_enumbins
@@ -316,19 +316,19 @@ class csspec(ctools.cscript): @@ -316,19 +316,19 @@ class csspec(ctools.cscript):
316 316
317 # Create FITS table columns 317 # Create FITS table columns
318 energy = gammalib.GFitsTableDoubleCol("Energy", self.m_ebounds.size()) 318 energy = gammalib.GFitsTableDoubleCol("Energy", self.m_ebounds.size())
319 - energy.unit("TeV")  
320 energy_low = gammalib.GFitsTableDoubleCol("ed_Energy", self.m_ebounds.size()) 319 energy_low = gammalib.GFitsTableDoubleCol("ed_Energy", self.m_ebounds.size())
321 - energy_low.unit("TeV")  
322 energy_high = gammalib.GFitsTableDoubleCol("eu_Energy", self.m_ebounds.size()) 320 energy_high = gammalib.GFitsTableDoubleCol("eu_Energy", self.m_ebounds.size())
323 - energy_high.unit("TeV")  
324 flux = gammalib.GFitsTableDoubleCol("Flux", self.m_ebounds.size()) 321 flux = gammalib.GFitsTableDoubleCol("Flux", self.m_ebounds.size())
325 - flux.unit("erg/cm2/s")  
326 flux_err = gammalib.GFitsTableDoubleCol("e_Flux", self.m_ebounds.size()) 322 flux_err = gammalib.GFitsTableDoubleCol("e_Flux", self.m_ebounds.size())
327 - flux_err.unit("erg/cm2/s")  
328 TSvalues = gammalib.GFitsTableDoubleCol("TS", self.m_ebounds.size()) 323 TSvalues = gammalib.GFitsTableDoubleCol("TS", self.m_ebounds.size())
329 ulim_values = gammalib.GFitsTableDoubleCol("UpperLimit", self.m_ebounds.size()) 324 ulim_values = gammalib.GFitsTableDoubleCol("UpperLimit", self.m_ebounds.size())
330 - ulim_values.unit("erg/cm2/s")  
331 Npred_values = gammalib.GFitsTableDoubleCol("Npred", self.m_ebounds.size()) 325 Npred_values = gammalib.GFitsTableDoubleCol("Npred", self.m_ebounds.size())
  326 + energy.unit("TeV")
  327 + energy_low.unit("TeV")
  328 + energy_high.unit("TeV")
  329 + flux.unit("erg/cm2/s")
  330 + flux_err.unit("erg/cm2/s")
  331 + ulim_values.unit("erg/cm2/s")
332 332
333 333
334 # Loop over energy bins 334 # Loop over energy bins
@@ -380,6 +380,7 @@ class csspec(ctools.cscript): @@ -380,6 +380,7 @@ class csspec(ctools.cscript):
380 if self.logTerse(): 380 if self.logTerse():
381 self.log.header3("Selecting events") 381 self.log.header3("Selecting events")
382 382
  383 + # Select layers
383 cubemask = ctools.ctcubemask(self.obs) 384 cubemask = ctools.ctcubemask(self.obs)
384 cubemask["regfile"] = "NONE" 385 cubemask["regfile"] = "NONE"
385 cubemask["ra"] = "UNDEFINED" 386 cubemask["ra"] = "UNDEFINED"
doc/source/reference_manual/csspec.rst
@@ -19,8 +19,6 @@ of the source detection. Optionally, it also computes an upper flux limit @@ -19,8 +19,6 @@ of the source detection. Optionally, it also computes an upper flux limit
19 that is particularily useful in case that the source is not significantly 19 that is particularily useful in case that the source is not significantly
20 detected within an energy bin (hidden parameter ``calc_ulim``). 20 detected within an energy bin (hidden parameter ``calc_ulim``).
21 21
22 -The script works on event lists only.  
23 -  
24 On output, the script will provide a FITS file with the fitted source 22 On output, the script will provide a FITS file with the fitted source
25 spectrum. 23 spectrum.
26 24
@@ -56,6 +54,9 @@ General parameters @@ -56,6 +54,9 @@ General parameters
56 ``irf [string]`` 54 ``irf [string]``
57 Instrumental response function. 55 Instrumental response function.
58 56
  57 +``(edisp = no) [boolean]``
  58 + Apply energy dispersion to response computation?
  59 +
59 ``emin [real]`` 60 ``emin [real]``
60 Lower energy limit of events (in TeV). 61 Lower energy limit of events (in TeV).
61 62
@@ -68,36 +69,6 @@ General parameters @@ -68,36 +69,6 @@ General parameters
68 ``(ebinalg = LOG) <FILE|LIN|LOG> [string]`` 69 ``(ebinalg = LOG) <FILE|LIN|LOG> [string]``
69 Algorithm for defining energy bins. 70 Algorithm for defining energy bins.
70 71
71 -``binned [boolean]``  
72 - Specifies whether a binned computation should be used.  
73 -  
74 -``(nebins = 5) [integer]``  
75 - Number of bins per spectral point for binned analysis.  
76 -  
77 -``coordsys <CEL|GAL> [string]``  
78 - Coordinate system (CEL - celestial, GAL - galactic).  
79 -  
80 -``proj <AIT|AZP|CAR|MER|MOL|STG|TAN> [string]``  
81 - Projection method.  
82 -  
83 -``xref [real]``  
84 - Right Ascension / Galactic longitude of image centre (J2000, in degrees).  
85 -  
86 -``yref [real]``  
87 - Declination / Galactic latitude of image centre (J2000, in degrees).  
88 -  
89 -``nxpix [integer]``  
90 - Size of the Right Ascension / Galactic longitude axis (in pixels).  
91 -  
92 -``nypix [integer]``  
93 - Size of the Declination / Galactic latitude axis (in pixels).  
94 -  
95 -``binsz [real]``  
96 - Pixel size (in degrees/pixel).  
97 -  
98 -``(anumbins = 200) [integer]``  
99 - Number of angular separation bins.  
100 -  
101 ``(calc_ts = yes) [boolean]`` 72 ``(calc_ts = yes) [boolean]``
102 Compute TS for each spectral point? 73 Compute TS for each spectral point?
103 74
src/ctcubemask/ctcubemask.cpp
@@ -363,7 +363,7 @@ void ctcubemask::get_parameters(void) @@ -363,7 +363,7 @@ void ctcubemask::get_parameters(void)
363 std::string msg = "A valid file needs to be specified for the " 363 std::string msg = "A valid file needs to be specified for the "
364 "\"inobs\" parameter, yet \""+ 364 "\"inobs\" parameter, yet \""+
365 (*this)["inobs"].filename()+"\" was given." 365 (*this)["inobs"].filename()+"\" was given."
366 - " Specify a vaild observation definition or " 366 + " Specify a valid observation definition or "
367 "event list FITS file to proceed."; 367 "event list FITS file to proceed.";
368 throw GException::invalid_value(G_GET_PARAMETERS, msg); 368 throw GException::invalid_value(G_GET_PARAMETERS, msg);
369 } 369 }
@@ -600,8 +600,8 @@ void ctcubemask::copy_members(const ctcubemask&amp; app) @@ -600,8 +600,8 @@ void ctcubemask::copy_members(const ctcubemask&amp; app)
600 m_emax = app.m_emax; 600 m_emax = app.m_emax;
601 601
602 // Copy protected members 602 // Copy protected members
603 - m_obs = app.m_obs;  
604 - m_infiles = app.m_infiles; 603 + m_obs = app.m_obs;
  604 + m_infiles = app.m_infiles;
605 m_select_energy = app.m_select_energy; 605 m_select_energy = app.m_select_energy;
606 m_select_roi = app.m_select_roi; 606 m_select_roi = app.m_select_roi;
607 607
src/ctcubemask/ctcubemask.hpp
@@ -90,8 +90,8 @@ protected: @@ -90,8 +90,8 @@ protected:
90 double m_emax; //!< Upper energy 90 double m_emax; //!< Upper energy
91 91
92 // Protected members 92 // Protected members
93 - GObservations m_obs; //!< Observations container  
94 - std::vector<std::string> m_infiles; //!< Input event filenames 93 + GObservations m_obs; //!< Observations container
  94 + std::vector<std::string> m_infiles; //!< Input event filenames
95 bool m_select_energy; //!< Perform energy selection 95 bool m_select_energy; //!< Perform energy selection
96 bool m_select_roi; //!< Perform ROI selection 96 bool m_select_roi; //!< Perform ROI selection
97 }; 97 };