source: trunk/src/CalibrationManager.h @ 2922

Last change on this file since 2922 was 2922, checked in by Takeshi Nakazato, 10 years ago

New Development: No

JIRA Issue: Yes CAS-6382

Ready for Test: Yes

Interface Changes: No

What Interface Changed: Please list interface changes

Test Programs: test_tsdcal2

Put in Release Notes: Yes/No?

Module(s): Module Names change impacts.

Description: Describe your changes here...

Define new method, setTsysSpwWithRange, to support channel averaging of Tsys.
Implementation is not completed so that it only supports similar
behavior with previous one (which is using setTsysSpw).


File size: 2.2 KB
Line 
1//
2// C++ Interface: CalibrationManager
3//
4// Description:
5//
6//
7// Author: Takeshi Nakazato <takeshi.nakazato@nao.ac.jp>, (C) 2012
8//
9// Copyright: See COPYING file that comes with this distribution
10//
11//
12#ifndef ASAP_CALIBRATION_MANAGER_H
13#define ASAP_CALIBRATION_MANAGER_H
14
15#include <string>
16#include <vector>
17
18//#include <boost/scoped_ptr>
19
20#include <casa/BasicSL/String.h>
21#include <casa/Utilities/CountedPtr.h>
22#include <casa/Logging/LogIO.h>
23
24#include "ScantableWrapper.h"
25#include "STApplyCal.h"
26#include "STCalTsys.h"
27#include "STCalibration.h"
28#include "STCalEnum.h"
29
30namespace asap {
31
32/**
33 * Class for calibration management.
34 * It also intends to be an interface for Python layer.
35 * @author TakeshiNakazato
36 */
37class CalibrationManager {
38public:
39  CalibrationManager();
40
41  virtual ~CalibrationManager();
42
43  void setScantable(ScantableWrapper &s);
44  void setScantableByName(const std::string &s);
45  void addApplyTable(const std::string &c);
46  void addSkyTable(const std::string &c);
47  void addTsysTable(const std::string &c);
48  void setMode(const std::string &mode);
49  void setTimeInterpolation(const std::string &interp, int order=-1);
50  void setFrequencyInterpolation(const std::string &interp, int order=-1);
51  void setTsysSpw(const std::vector<int> &spwlist);
52  void setTsysSpwWithRange(const casa::Record &spwlist, bool average=false);
53  void setTsysTransfer(unsigned int from,
54                       const std::vector<unsigned int> &to);
55  void setCalibrationOptions(const casa::Record &options) {options_ = options;}
56  void resetCalSetup();
57  void reset();
58 
59  void calibrate();
60  void apply(bool insitu=false, bool filltsys=true);
61  void saveCaltable(const std::string &name);
62  void split(const std::string &name);
63private:
64  STCalEnum::InterpolationType stringToInterpolationEnum(const std::string &s);
65
66  casa::Bool isAlmaAntenna();
67
68  casa::CountedPtr<STApplyCal> applicator_;
69
70  std::vector<casa::CountedPtr<STApplyTable> > skytables_;
71  std::vector<casa::CountedPtr<STApplyTable> > tsystables_;
72
73  casa::CountedPtr<Scantable> target_;
74
75  casa::String calmode_;
76  std::vector<int> spwlist_;
77  casa::Record spwlist_withrange_;
78
79  casa::LogIO os_;
80
81  casa::Record options_;
82};
83
84}
85#endif
Note: See TracBrowser for help on using the repository browser.