Commit 1cf7b40b22290616b297e3692abb4bfa02f55b49

Authored by Jürgen Knödlseder
1 parent 16f5fca0

Integrate code

examples/show_butterfly.py 100644 → 100755
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 # ========================================================================== 2 # ==========================================================================
3 # This script shows how to plot a butterfly created with ctbutterfly 3 # This script shows how to plot a butterfly created with ctbutterfly
4 # 4 #
5 -# Copyright (C) 2014 Michael Mayer 5 +# Copyright (C) 2014-2015 Michael Mayer
6 # 6 #
7 # This program is free software: you can redistribute it and/or modify 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 8 # it under the terms of the GNU General Public License as published by
@@ -65,9 +65,8 @@ if __name__ == "__main__": @@ -65,9 +65,8 @@ if __name__ == "__main__":
65 butterfly_x.append(csv.real(index,0)) 65 butterfly_x.append(csv.real(index,0))
66 low_error = csv.real(index,1)-csv.real(index,2) 66 low_error = csv.real(index,1)-csv.real(index,2)
67 if low_error < 1e-26: 67 if low_error < 1e-26:
68 - low_error=1e-26 68 + low_error = 1e-26
69 butterfly_y.append(low_error) 69 butterfly_y.append(low_error)
70 -  
71 70
72 # plot the butterfly and spectral line 71 # plot the butterfly and spectral line
73 plt.figure() 72 plt.figure()
src/ctbutterfly/ctbutterfly.cpp
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 /* __ Method name definitions ____________________________________________ */ 36 /* __ Method name definitions ____________________________________________ */
37 #define G_GET_PARAMETERS "ctbutterfly::get_parameters()" 37 #define G_GET_PARAMETERS "ctbutterfly::get_parameters()"
38 #define G_SAVE "ctbutterfly::save()" 38 #define G_SAVE "ctbutterfly::save()"
39 -#define G_GET_MODEL_PARAMETER "ctbutterfly::get_model_parameter()" 39 +#define G_GET_MODEL_PARAMETER "ctbutterfly::get_model_parameter()"
40 40
41 /* __ Debug definitions __________________________________________________ */ 41 /* __ Debug definitions __________________________________________________ */
42 42
@@ -286,20 +286,21 @@ void ctbutterfly::run(void) @@ -286,20 +286,21 @@ void ctbutterfly::run(void)
286 // Loop over models 286 // Loop over models
287 for (int j = 0; j < models.size(); ++j) { 287 for (int j = 0; j < models.size(); ++j) {
288 288
  289 + // If source name is found, retrieve the nominal flux
289 if (models[j]->name() == m_srcname) { 290 if (models[j]->name() == m_srcname) {
290 291
291 - // If source name is found retrieve the nominal flux  
292 - // Note that we have to compute the gradients here repetively to update the  
293 - // gradients in the vector  
294 - // No check for valid pointers necessary here as this was covered by get_model_parameter()  
295 - GModelSky* skymodel = dynamic_cast<GModelSky*>(models[j]); 292 + // Note that we have to compute the gradients here
  293 + // repetively to update the gradients in the vector
  294 + // No check for valid pointers necessary here as this
  295 + // was covered by get_model_parameter()
  296 + GModelSky* skymodel = dynamic_cast<GModelSky*>(models[j]);
296 GModelSpectral* spectral = skymodel->spectral(); 297 GModelSpectral* spectral = skymodel->spectral();
297 model_flux = spectral->eval_gradients(energy, time); 298 model_flux = spectral->eval_gradients(energy, time);
298 299
299 - } 300 + }
300 301
301 // Loop over model parameters 302 // Loop over model parameters
302 - for(int i = 0; i < models[j]->size(); ++i) { 303 + for (int i = 0; i < models[j]->size(); ++i) {
303 304
304 // Get model parameter 305 // Get model parameter
305 GModelPar parameter = models[j]->at(i); 306 GModelPar parameter = models[j]->at(i);
@@ -398,8 +399,8 @@ void ctbutterfly::init_members(void) @@ -398,8 +399,8 @@ void ctbutterfly::init_members(void)
398 m_ebounds.clear(); 399 m_ebounds.clear();
399 400
400 // Initialise protected members 401 // Initialise protected members
401 - m_skymodel = NULL;  
402 - m_par_scale = 0.0; 402 + m_skymodel = NULL;
  403 + m_par_scale = 0.0;
403 m_obs.clear(); 404 m_obs.clear();
404 m_covariance.clear(); 405 m_covariance.clear();
405 m_energies.clear(); 406 m_energies.clear();
@@ -494,7 +495,7 @@ void ctbutterfly::get_parameters(void) @@ -494,7 +495,7 @@ void ctbutterfly::get_parameters(void)
494 std::string msg = "Source \""+m_srcname+"\" not found in model " 495 std::string msg = "Source \""+m_srcname+"\" not found in model "
495 "container. Please add a source with that name " 496 "container. Please add a source with that name "
496 "or check for possible typos."; 497 "or check for possible typos.";
497 - throw GException::invalid_value(G_GET_PARAMETERS, msg); 498 + throw GException::invalid_value(G_GET_PARAMETERS, msg);
498 } 499 }
499 500
500 // Get relevant model and parameter for model computation 501 // Get relevant model and parameter for model computation
src/ctbutterfly/ctbutterfly.hpp
@@ -78,7 +78,7 @@ protected: @@ -78,7 +78,7 @@ protected:
78 void copy_members(const ctbutterfly& app); 78 void copy_members(const ctbutterfly& app);
79 void free_members(void); 79 void free_members(void);
80 void get_parameters(void); 80 void get_parameters(void);
81 - void get_model_parameter(void); 81 + void get_model_parameter(void);
82 82
83 // User parameters 83 // User parameters
84 std::string m_srcname; //!< Name of source to compute butterfly 84 std::string m_srcname; //!< Name of source to compute butterfly
@@ -88,8 +88,8 @@ protected: @@ -88,8 +88,8 @@ protected:
88 // Protected members 88 // Protected members
89 GObservations m_obs; //!< Observation container 89 GObservations m_obs; //!< Observation container
90 GMatrixSparse m_covariance; //!< Covariance matrix 90 GMatrixSparse m_covariance; //!< Covariance matrix
91 - GModelSky* m_skymodel; //!< Pointer to sky model  
92 - double m_par_scale; //!< Scale of normalising parameter 91 + GModelSky* m_skymodel; //!< Pointer to sky model
  92 + double m_par_scale; //!< Scale of normalising parameter
93 std::vector<double> m_energies; //!< Energy values for storage 93 std::vector<double> m_energies; //!< Energy values for storage
94 std::vector<double> m_fluxes; //!< Flux values per energy bin 94 std::vector<double> m_fluxes; //!< Flux values per energy bin
95 std::vector<double> m_errors; //!< Flux errors per energy bin 95 std::vector<double> m_errors; //!< Flux errors per energy bin