LCOV - code coverage report
Current view: top level - air_casawvr/src - dipmodel_iface.cc (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 33 42 78.6 %
Date: 2024-11-06 17:42:47 Functions: 7 11 63.6 %

          Line data    Source code
       1             : /**
       2             :    \file dipmodel_iface.cpp
       3             :    
       4             :    Bojan Nikolic <b.nikolic@mrao.cam.ac.uk>, <bojan@bnikolic.co.uk>
       5             : 
       6             :    Renamed dipmodel_iface.cc 2023
       7             : 
       8             : */
       9             : 
      10             : #include "dipmodel_iface.h"
      11             : 
      12             : #include <cmath>
      13             : 
      14             : namespace LibAIR2 {
      15             : 
      16          81 :   PPDipModel::PPDipModel(WVRAtmoQuantModel * am):
      17          81 :     _n(0),
      18          81 :     _za(0),
      19          81 :     _nam(NULL),
      20          81 :     _am(am)
      21             :   {
      22          81 :     std::vector< Minim::DParamCtr > pars;
      23          81 :     am->AddParams(pars);
      24         486 :     for( size_t i =0 ; i < pars.size() ; ++i)
      25         405 :       if(pars[i].name == "n") 
      26          81 :         _nam=pars[i].p;
      27          81 :   }
      28             : 
      29          81 :   PPDipModel::~PPDipModel()
      30             :   {
      31          81 :   }
      32             : 
      33    78697505 :   void PPDipModel::setPars(void) const
      34             :   {
      35    78697505 :     *_nam = ( _n / cos(_za) );
      36    78697505 :   }
      37             : 
      38          81 :   void PPDipModel::setZA(double za)
      39             :   {
      40          81 :     _za=za;
      41          81 :   }
      42             :   
      43           0 :   double PPDipModel::eval(size_t ch) const 
      44             :   {
      45           0 :     setPars();
      46           0 :     return _am->eval(ch);
      47             :   }
      48             : 
      49    77889705 :   void PPDipModel::eval(std::vector<double> & res) const 
      50             :   {
      51    77889705 :     setPars();
      52    77889705 :     _am->eval(res);
      53    77889705 :   }
      54             : 
      55           0 :   double PPDipModel::dTdc (size_t ch) const
      56             :   {
      57           0 :     setPars();
      58           0 :     return _am->dTdc(ch);
      59             :   }
      60             : 
      61           0 :   double PPDipModel::dTdL_ND (size_t ch) const
      62             :   {
      63           0 :     setPars();
      64           0 :     return _am->dTdL_ND(ch);
      65             :   }
      66             : 
      67      807800 :   void PPDipModel::dTdL_ND (std::vector<double> & res) const
      68             :   {
      69      807800 :     setPars();
      70      807800 :     _am->dTdL_ND(res);
      71      807800 :   }
      72             : 
      73             :   
      74         162 :   void PPDipModel::AddParams ( std::vector< Minim::DParamCtr > &pars )
      75             :   {
      76         162 :     _am->AddParams(pars);
      77             :     // Swap the pointer in the column density parameter of the model
      78             :     // to be to our variable _n; We will update the model depending on
      79             :     // _za;
      80         972 :     for( size_t i =0 ; i < pars.size() ; ++i)
      81         810 :       if(pars[i].name == "n") 
      82         162 :         pars[i].p= &_n;
      83         162 :   }
      84             : 
      85             : }
      86             : 
      87             : 
      88             : 

Generated by: LCOV version 1.16