LCOV - code coverage report
Current view: top level - air_casawvr/src - columns_data.h (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 2 2 100.0 %
Date: 2024-11-06 17:42:47 Functions: 2 2 100.0 %

          Line data    Source code
       1             : /**
       2             :    Bojan Nikolic <b.nikolic@mrao.cam.ac.uk>, <bojan@bnikolic.co.uk>
       3             : 
       4             :    This file is part of LibAIR and is licensed under GNU Public
       5             :    License Version 2
       6             : 
       7             :    \file columns_data.hpp
       8             :    Renamed columns_data.h 2023
       9             : 
      10             : */
      11             : #ifndef _LIBAIR_COLUMNS_DATA_HPP__
      12             : #define _LIBAIR_COLUMNS_DATA_HPP__
      13             : 
      14             : #include <memory>
      15             : 
      16             : #include "model_enums.h"
      17             : 
      18             : namespace LibAIR2 {
      19             : 
      20             :   class Column;
      21             :   class TrivialGrossColumn;
      22             :   class ContinuumColumn;
      23             :   class PartitionTable;
      24             : 
      25             :   /** Utility class for any water columns to manage the lifetime of
      26             :       associated data.
      27             :    */
      28             :   class WaterData
      29             :   {
      30             : 
      31             :     /// The partition table (if used)
      32             :     std::unique_ptr<PartitionTable> pt;
      33             : 
      34             :     /// The water column
      35             :     std::unique_ptr<Column> _wcol;
      36             : 
      37             :     /// The water continuum column
      38             :     std::unique_ptr<ContinuumColumn> _wcont;
      39             :     
      40             :   public:
      41             : 
      42             :     // ---------- Public types ----------------------
      43             :     
      44             :     /// The lines that we know about. 
      45             :     enum Lines { 
      46             :       ///Set up for simulating the 183 GHz line
      47             :       L183, 
      48             :       ///Set up for simulating the 22 GHz line
      49             :       L22,
      50             :       ///Set up all of the lines
      51             :       LALL};
      52             : 
      53             : 
      54             :     // ---------- Public data --------------
      55             : 
      56    79505386 :     Column * wcol(void) {return _wcol.get();};
      57             : 
      58   159010772 :     ContinuumColumn * wcont(void) {return _wcont.get();} ;
      59             :     
      60             :     // ---------- Construction / Destruction --------------
      61             : 
      62             :     WaterData(Lines line,
      63             :               PartitionTreatment t,
      64             :               Continuum c,
      65             :               double n);
      66             : 
      67             :     virtual ~WaterData();
      68             : 
      69             :   };
      70             : 
      71             :   /** Specialisation for 183 GHz. 
      72             : 
      73             :       \bug Implemented only for compatibility purposes while
      74             :       refactoring WaterData
      75             :    */
      76             :   class Water183Data :
      77             :     public WaterData
      78             :   {
      79             : 
      80             :   public:
      81             : 
      82             :     // ---------- Public types ----------------------
      83             : 
      84             :     // ---------- Public data --------------
      85             :     
      86             :     // ---------- Construction / Destruction --------------
      87             : 
      88             :     Water183Data(PartitionTreatment t,
      89             :                  Continuum c,
      90             :                  double n);
      91             :     
      92             :   };
      93             : 
      94             : }
      95             : 
      96             : #endif

Generated by: LCOV version 1.16