source: trunk/src/STSideBandSep.h @ 2712

Last change on this file since 2712 was 2712, checked in by Kana Sugimoto, 11 years ago

New Development: No

JIRA Issue: Yes (CAS-4141)

Ready for Test: Yes

Interface Changes: Yes

What Interface Changed: added temporal methods to set scantable to STSideBandSep for a workaround.

Test Programs:

Put in Release Notes: No

Module(s): STSideBandSep and sbseparator

Description:

Enabled getting LO1 frequency based on information in scantable header
(if necessary information exists).


File size: 2.3 KB
Line 
1// C++ Interface: STSideBandSep
2//
3// Description:
4//    A class to invoke sideband separation of Scantable
5//
6// Author: Kanako Sugimoto <kana.sugi@nao.ac.jp>, (C) 2012
7//
8// Copyright: See COPYING file that comes with this distribution
9//
10//
11#ifndef ASAPSIDEBANDSEP_H
12#define ASAPSIDEBANDSEP_H
13
14// STL
15#include <iostream>
16#include <string>
17#include <vector>
18// casacore
19#include <casa/aips.h>
20#include <casa/Utilities/CountedPtr.h>
21#include <measures/Measures/MDirection.h>
22#include <coordinates/Coordinates/DirectionCoordinate.h>
23#include <coordinates/Coordinates/SpectralCoordinate.h>
24// asap
25#include "ScantableWrapper.h"
26#include "Scantable.h"
27
28using namespace std;
29using namespace casa;
30
31namespace asap {
32
33class STSideBandSep {
34public:
35  /**
36   * constructors and a destructor
37   **/
38  STSideBandSep();
39  //explicit STSideBandSep(const vector<string> infile);
40  //explicit STSideBandSep(const vector<ScantableWrapper> &tables);
41  virtual ~STSideBandSep();
42
43  /**
44   * Set parameters for sideband separation
45   **/
46  void setFrequency(const unsigned int ifno, const double freqtol, string frame="");
47
48  /**
49   * Set scantable to fill frequencies of image sideband (temporal)
50   **/
51  void setImageTable(const ScantableWrapper &s);
52  void setScanTb0(const ScantableWrapper &s);
53  /**
54   * Set additional information to fill frequencies of image sideband
55   **/
56  void setLO1(const double lo1, string frame="TOPO", double reftime=-1, string refdir="");
57  void setLO1Root(const string name);
58  /**
59   * Actual calculation of frequencies of image sideband
60   **/
61  void solveImageFreqency();
62
63private:
64  Bool checkFile(const string name, string type="");
65  bool getLo1FromAsdm(const string asdmname,
66                      const double refval, const double refpix,
67                      const double increment, const int nChan);
68  bool getLo1FromAsisTab(const string msname,
69                         const double refval, const double refpix,
70                         const double increment, const int nChan);
71  bool getLo1FromScanTab(casa::CountedPtr< Scantable > &scantab,
72                         const double refval, const double refpix,
73                         const double increment, const int nChan);
74
75  unsigned int sigIfno_;
76  double ftol_;
77  double lo1Freq_;
78  MFrequency::Types loFrame_;
79  double loTime_;
80  string loDir_;
81  string asdmName_, asisName_;
82
83  CountedPtr<Scantable> imgTab_p, sigTab_p;
84  // TEMPORAL member
85  CountedPtr<Scantable> st0_;
86
87}; // class
88
89} // namespace
90
91#endif
Note: See TracBrowser for help on using the repository browser.