Commit 8e79972fab2d5527896225736d73e90bab73f21d
1 parent
a3fa428c
Add ctobservation::_unbinned_observations() generator to Python interface (#1828)
Showing
2 changed files
with
34 additions
and
7 deletions
pyext/ctobservation.i
| @@ -53,13 +53,35 @@ public: | @@ -53,13 +53,35 @@ public: | ||
| 53 | virtual void run(void) = 0; | 53 | virtual void run(void) = 0; |
| 54 | virtual void save(void) = 0; | 54 | virtual void save(void) = 0; |
| 55 | 55 | ||
| 56 | - // Methods | 56 | + // Public methods |
| 57 | const GObservations& obs(void) const; | 57 | const GObservations& obs(void) const; |
| 58 | + | ||
| 59 | + // Make methods private in Python by prepending an underscore | ||
| 60 | + %rename(_first_unbinned_observation) first_unbinned_observation; | ||
| 61 | + %rename(_next_unbinned_observation) next_unbinned_observation; | ||
| 62 | + | ||
| 63 | + // Protected methods | ||
| 64 | + GCTAObservation* first_unbinned_observation(void); | ||
| 65 | + GCTAObservation* next_unbinned_observation(void); | ||
| 58 | }; | 66 | }; |
| 59 | 67 | ||
| 60 | 68 | ||
| 61 | /***********************************************************************//** | 69 | /***********************************************************************//** |
| 62 | - * @brief Likelihood tool Python extensions | 70 | + * @brief Observation tool base class C++ extensions |
| 63 | ***************************************************************************/ | 71 | ***************************************************************************/ |
| 64 | %extend ctobservation { | 72 | %extend ctobservation { |
| 65 | } | 73 | } |
| 74 | + | ||
| 75 | + | ||
| 76 | +/***********************************************************************//** | ||
| 77 | + * @brief Observation tool base class Python extensions | ||
| 78 | + ***************************************************************************/ | ||
| 79 | +%pythoncode %{ | ||
| 80 | +def _unbinned_observations(self): | ||
| 81 | + obs = self._first_unbinned_observation() | ||
| 82 | + while obs != None: | ||
| 83 | + yield obs | ||
| 84 | + obs = self._next_unbinned_observation() | ||
| 85 | +ctool._unbinned_observations = _unbinned_observations | ||
| 86 | +cscript._unbinned_observations = _unbinned_observations | ||
| 87 | +%} |
src/support/ctobservation.hpp
| @@ -65,18 +65,23 @@ public: | @@ -65,18 +65,23 @@ public: | ||
| 65 | // Methods | 65 | // Methods |
| 66 | const GObservations& obs(void) const; | 66 | const GObservations& obs(void) const; |
| 67 | 67 | ||
| 68 | +#ifdef SWIG | ||
| 69 | +public: | ||
| 70 | +#else | ||
| 68 | protected: | 71 | protected: |
| 69 | - // Protected methods | ||
| 70 | - void init_members(void); | ||
| 71 | - void copy_members(const ctobservation& app); | ||
| 72 | - void free_members(void); | ||
| 73 | - | 72 | +#endif |
| 74 | // Iterator methods and members | 73 | // Iterator methods and members |
| 75 | GCTAObservation* first_unbinned_observation(void); | 74 | GCTAObservation* first_unbinned_observation(void); |
| 76 | GCTAObservation* next_unbinned_observation(void); | 75 | GCTAObservation* next_unbinned_observation(void); |
| 77 | const GCTAObservation* first_unbinned_observation(void) const; | 76 | const GCTAObservation* first_unbinned_observation(void) const; |
| 78 | const GCTAObservation* next_unbinned_observation(void) const; | 77 | const GCTAObservation* next_unbinned_observation(void) const; |
| 79 | 78 | ||
| 79 | +protected: | ||
| 80 | + // Protected methods | ||
| 81 | + void init_members(void); | ||
| 82 | + void copy_members(const ctobservation& app); | ||
| 83 | + void free_members(void); | ||
| 84 | + | ||
| 80 | // Protected members | 85 | // Protected members |
| 81 | GObservations m_obs; //!< Observation container | 86 | GObservations m_obs; //!< Observation container |
| 82 | 87 |