LCOV - code coverage report
Current view: top level - air_casawvr/src - dipmodel_iface.cc (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 0 42 0.0 %
Date: 2024-10-28 15:53:10 Functions: 0 11 0.0 %

          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           0 :   PPDipModel::PPDipModel(WVRAtmoQuantModel * am):
      17           0 :     _n(0),
      18           0 :     _za(0),
      19           0 :     _nam(NULL),
      20           0 :     _am(am)
      21             :   {
      22           0 :     std::vector< Minim::DParamCtr > pars;
      23           0 :     am->AddParams(pars);
      24           0 :     for( size_t i =0 ; i < pars.size() ; ++i)
      25           0 :       if(pars[i].name == "n") 
      26           0 :         _nam=pars[i].p;
      27           0 :   }
      28             : 
      29           0 :   PPDipModel::~PPDipModel()
      30             :   {
      31           0 :   }
      32             : 
      33           0 :   void PPDipModel::setPars(void) const
      34             :   {
      35           0 :     *_nam = ( _n / cos(_za) );
      36           0 :   }
      37             : 
      38           0 :   void PPDipModel::setZA(double za)
      39             :   {
      40           0 :     _za=za;
      41           0 :   }
      42             :   
      43           0 :   double PPDipModel::eval(size_t ch) const 
      44             :   {
      45           0 :     setPars();
      46           0 :     return _am->eval(ch);
      47             :   }
      48             : 
      49           0 :   void PPDipModel::eval(std::vector<double> & res) const 
      50             :   {
      51           0 :     setPars();
      52           0 :     _am->eval(res);
      53           0 :   }
      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           0 :   void PPDipModel::dTdL_ND (std::vector<double> & res) const
      68             :   {
      69           0 :     setPars();
      70           0 :     _am->dTdL_ND(res);
      71           0 :   }
      72             : 
      73             :   
      74           0 :   void PPDipModel::AddParams ( std::vector< Minim::DParamCtr > &pars )
      75             :   {
      76           0 :     _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           0 :     for( size_t i =0 ; i < pars.size() ; ++i)
      81           0 :       if(pars[i].name == "n") 
      82           0 :         pars[i].p= &_n;
      83           0 :   }
      84             : 
      85             : }
      86             : 
      87             : 
      88             : 

Generated by: LCOV version 1.16