From 3922365c4e0d601e65da38a721b4a97d7980e36b Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Wed, 11 Dec 2013 22:14:08 +0100 Subject: [PATCH] Define energy dispersion access operator. --- inst/cta/include/GCTAEdisp.hpp | 12 +++++------- inst/cta/pyext/GCTAEdisp.i | 15 ++++++--------- inst/cta/src/GCTAEdisp.cpp | 8 ++++---- inst/cta/src/GCTAResponse.cpp | 9 ++++----- 4 files changed, 19 insertions(+), 25 deletions(-) diff --git a/inst/cta/include/GCTAEdisp.hpp b/inst/cta/include/GCTAEdisp.hpp index 3676016..f3710f5 100644 --- a/inst/cta/include/GCTAEdisp.hpp +++ b/inst/cta/include/GCTAEdisp.hpp @@ -1,5 +1,5 @@ /*************************************************************************** - * GCTAEdisp.hpp - CTA energy dispersion base class * + * GCTAEdisp.hpp - Abstract CTA energy dispersion base class * * ----------------------------------------------------------------------- * * copyright (C) 2012-2013 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * @@ -20,7 +20,7 @@ ***************************************************************************/ /** * @file GCTAEdisp.hpp - * @brief CTA energy dispersion base class definition + * @brief Abstract CTA energy dispersion base class definition * @author Juergen Knoedlseder */ @@ -50,14 +50,12 @@ public: virtual ~GCTAEdisp(void); // Pure virtual operators - /* - virtual double operator()(const double& logE, + virtual double operator()(const double& logEobs, + const double& logEsrc, 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; - */ + const double& azimuth = 0.0) const = 0; // Operators GCTAEdisp& operator=(const GCTAEdisp& edisp); diff --git a/inst/cta/pyext/GCTAEdisp.i b/inst/cta/pyext/GCTAEdisp.i index 59da5b9..d702022 100644 --- a/inst/cta/pyext/GCTAEdisp.i +++ b/inst/cta/pyext/GCTAEdisp.i @@ -1,5 +1,5 @@ /*************************************************************************** - * GCTAEdisp.i - Energy dispersion base class * + * GCTAEdisp.i - Abstract CTA energy dispersion base class * * ----------------------------------------------------------------------- * * copyright (C) 2012-2013 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * @@ -20,20 +20,19 @@ ***************************************************************************/ /** * @file GCTAEdisp.i - * @brief Energy dispersion base class definition + * @brief Abstract CTA energy dispersion base class definition * @author Juergen Knoedlseder */ %{ /* Put headers and other declarations here that are needed for compilation */ #include "GCTAEdisp.hpp" -#include "GTools.hpp" %} /***********************************************************************//** * @class GCTAEdisp * - * @brief Abstract base class for the CTA energy dispersion + * @brief Abstract CTA energy dispersion base class ***************************************************************************/ class GCTAEdisp : public GBase { @@ -44,14 +43,12 @@ public: virtual ~GCTAEdisp(void); // Pure virtual operators - /* - virtual double operator()(const double& logE, + virtual double operator()(const double& logEobs, + const double& logEsrc, 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; - */ + const double& azimuth = 0.0) const = 0; // Pure virtual methods virtual void clear(void) = 0; diff --git a/inst/cta/src/GCTAEdisp.cpp b/inst/cta/src/GCTAEdisp.cpp index 3b73967..cebdf4b 100644 --- a/inst/cta/src/GCTAEdisp.cpp +++ b/inst/cta/src/GCTAEdisp.cpp @@ -1,7 +1,7 @@ /*************************************************************************** - * GCTAEdisp.cpp - CTA energy dispersion base class * + * GCTAEdisp.cpp - Abstract CTA energy dispersion base class * * ----------------------------------------------------------------------- * - * copyright (C) 2012 by Juergen Knoedlseder * + * copyright (C) 2012-2013 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * * * * This program is free software: you can redistribute it and/or modify * @@ -20,7 +20,7 @@ ***************************************************************************/ /** * @file GCTAEdisp.hpp - * @brief CTA energy dispersion base class implementation + * @brief Abstract CTA energy dispersion base class implementation * @author Juergen Knoedlseder */ @@ -103,7 +103,7 @@ GCTAEdisp::~GCTAEdisp(void) * @param[in] edisp Energy dispersion. * @return Energy dispersion. ***************************************************************************/ -GCTAEdisp& GCTAEdisp::operator= (const GCTAEdisp& edisp) +GCTAEdisp& GCTAEdisp::operator=(const GCTAEdisp& edisp) { // Execute only if object is not identical if (this != &edisp) { diff --git a/inst/cta/src/GCTAResponse.cpp b/inst/cta/src/GCTAResponse.cpp index b6c960c..f7cc337 100644 --- a/inst/cta/src/GCTAResponse.cpp +++ b/inst/cta/src/GCTAResponse.cpp @@ -1963,9 +1963,6 @@ double GCTAResponse::psf_delta_max(const double& theta, * @param[in] zenith Zenith angle of telescope pointing (radians). * @param[in] azimuth Azimuth angle of telescope pointing (radians). * @param[in] srcLogEng Log10 of true photon energy (E/TeV). - * - * Dummy energy dispersion method that implements a Dirac function. Returns - * 1 is true and observed energy are identical, 0 otherwise. ***************************************************************************/ double GCTAResponse::edisp(const double& obsLogEng, const double& theta, @@ -1974,8 +1971,10 @@ double GCTAResponse::edisp(const double& obsLogEng, const double& azimuth, const double& srcLogEng) const { - // Dirac energy dispersion - double edisp = (obsLogEng == srcLogEng) ? 1.0 : 0.0; + // Compute energy dispersion + double edisp = (m_edisp != NULL) + ? (*m_edisp)(obsLogEng, srcLogEng, theta, phi, zenith, azimuth) + : 0.0; // Return energy dispersion return edisp; -- libgit2 0.21.4