CARMA C++
TsysPipelineInfo.h
1 
11 #ifndef CARMA_PIPELINE_TSYSPIPELINEINFO_H
12 #define CARMA_PIPELINE_TSYSPIPELINEINFO_H
13 
14 // Note: PipelineMonitorInput can't be forward declared here (though it
15 // typically can be) due to use of typedefed AntPolPair below.
16 #include "carma/monitor/PipelineMonitorInput.h"
17 #include "carma/pipeline/pipelineUtils.h"
18 
19 #include <memory>
20 
21 namespace carma {
22 
23  namespace pipeline {
24 
25 
26  class Tsys;
27 
32  public:
33 
34  explicit TsysPipelineInfo( carma::pipeline::PipelineType plType );
35 
36  /* virtual */ ~TsysPipelineInfo( );
37 
38  void resetTsys( const std::vector< int > & carmaAntNoVec,
39  const carma::monitor::PipelineMonitorInput & plmi );
40 
41  void updateWithPipelineMonitorInput(
42  const carma::monitor::PipelineMonitorInput & plmi );
43 
44  double getTsysDsb( unsigned int inputNo,
45  unsigned int bandNo ) const;
46 
47  double getTsysDsb( const carma::monitor::AntPolPair & antPol,
48  unsigned int bandNo ) const;
49 
53  double getBaselineTsys( unsigned int inputNo1,
54  unsigned int inputNo2,
55  unsigned int bandNo,
56  bool usb,
57  std::pair< bool, bool > & validity ) const;
58 
59  double getBaselineTsys( const carma::monitor::AntPolPair & antPol1,
60  const carma::monitor::AntPolPair & antPol2,
61  unsigned int bandNo,
62  bool usb ) const;
63 
64  double getBaselineTsysUsb( unsigned int inputNo1,
65  unsigned int inputNo2,
66  unsigned int bandNo,
67  std::pair<bool, bool> & validity ) const;
68 
69  double getBaselineTsysLsb( unsigned int inputNo1,
70  unsigned int inputNo2,
71  unsigned int bandNo,
72  std::pair<bool, bool> & validity ) const;
73 
74  double getBaselineTsysUsb(
75  const carma::monitor::AntPolPair & antPol1,
76  const carma::monitor::AntPolPair & antPol2,
77  unsigned int bandNo ) const;
78 
79  double getBaselineTsysLsb(
80  const carma::monitor::AntPolPair & antPol1,
81  const carma::monitor::AntPolPair & antPol2,
82  unsigned int bandNo ) const;
83 
87  double getBaselineJanskysPerKelvin( unsigned int inputNo1,
88  unsigned int inputNo2,
89  unsigned int bandNo ) const;
90 
92  const carma::monitor::AntPolPair & antPol1,
93  const carma::monitor::AntPolPair & antPol2,
94  unsigned int bandNo ) const;
98  const Tsys & getTsys( unsigned int bandNo,
99  unsigned int inputNo ) const;
100 
101  const Tsys & getTsys( const carma::monitor::AntPolPair & antPol,
102  unsigned int bandNo ) const;
103 
104 
105  private:
106 
107  // Disallow assigment and copy construction
109  TsysPipelineInfo & operator=( const TsysPipelineInfo & );
110 
111  class TsysInput;
112 
113  class Pimpl; // Details, details, details...
114  ::std::auto_ptr< TsysPipelineInfo::Pimpl > pimpl_;
115 
116  }; // class TsysPipelineInfo
117 
118  } // namespace pipeline
119 } // namespace carma
120 #endif
121 
Calculates and stores Tsys values.
const Tsys & getTsys(unsigned int bandNo, unsigned int inputNo) const
Retrieve Tsys object for a particular band and input.
double getBaselineJanskysPerKelvin(unsigned int inputNo1, unsigned int inputNo2, unsigned int bandNo) const
Retrieve geometrically averaged Jy/K for given inputs and band.
Class to calculate, store and update tsys and associated parameters.
Definition: Tsys.h:20
double getBaselineTsys(unsigned int inputNo1, unsigned int inputNo2, unsigned int bandNo, bool usb, std::pair< bool, bool > &validity) const
Retrieve geometrically averaged tsys for given inputs and band.