source: trunk/src/STApplyCal.h@ 2927

Last change on this file since 2927 was 2756, checked in by Takeshi Nakazato, 12 years ago

New Development: No

JIRA Issue: Yes CAS-4770

Ready for Test: Yes

Interface Changes: No

What Interface Changed: Please list interface changes

Test Programs: test_sdcal2

Put in Release Notes: No

Module(s): Module Names change impacts.

Description: Describe your changes here...

Replace assert with casa::assert_ to avoid aborting casapy session.


File size: 3.5 KB
RevLine 
[2720]1//
2// C++ Interface: STApplyCal
3//
4// Description:
5//
6// Apply any apply tables to target data.
7//
8// Author: Takeshi Nakazato <takeshi.nakazato@nao.ac.jp> (C) 2012
9//
10// Copyright: See COPYING file that comes with this distribution
11//
12//
13#ifndef ASAP_APPLY_CAL_H
14#define ASAP_APPLY_CAL_H
15
16#include <map>
17#include <vector>
18
[2742]19#include <casa/Utilities/CountedPtr.h>
[2720]20#include <casa/Arrays/Vector.h>
21#include <casa/Logging/LogIO.h>
22#include <tables/Tables/Table.h>
23#include <tables/Tables/ScalarColumn.h>
24#include <measures/TableMeasures/ScalarMeasColumn.h>
25
26#include "Scantable.h"
27#include "STSelector.h"
28#include "STApplyTable.h"
29#include "STCalEnum.h"
[2756]30//#include "Calibrator.h"
31//#include "Interpolator1D.h"
[2720]32#include "STCalSkyTable.h"
33#include "STCalTsysTable.h"
34
35namespace asap {
36
[2756]37template<class T, class U> class Interpolator1D;
38class Calibrator;
39
[2720]40/**
41Apply any apply tables to target data
42
43@author Takeshi Nakazato
44@date $Date:$
45@version $Revision:$
46*/
47class STApplyCal {
48public:
49 STApplyCal();
50 STApplyCal(casa::CountedPtr<Scantable> target);
51
52 ~STApplyCal();
53
54 // set data
55 void setTarget(casa::CountedPtr<Scantable> target);
56 void setTarget(const casa::String &name);
57
58 // push new caltable
59 void push(STCalSkyTable *table);
60 void push(STCalTsysTable *table);
61
62 // set interpolation method
[2735]63 //void setInterpolation(STCalEnum::InterpolationAxis axis, STCalEnum::InterpolationType itype, casa::Int order=-1);
64 void setTimeInterpolation(STCalEnum::InterpolationType itype, casa::Int order=-1);
65 void setFrequencyInterpolation(STCalEnum::InterpolationType itype, casa::Int order=-1);
[2720]66
67 // set IF (spw) mapping for Tsys transfer
68 void setTsysTransfer(casa::uInt from, casa::Vector<casa::uInt> to);
69
70 // apply tables
[2750]71 void apply(casa::Bool insitu=false, casa::Bool filltsys=true);
[2720]72
73 // split target data and store it to disk
74 void save(const casa::String &name);
75
[2735]76 // reset all settings except target scantable
77 void reset();
78
79 // reset all settings
80 void completeReset();
81
[2720]82private:
83 // initialization
84 void init();
85
[2727]86 // setup interpolator
87 void initInterpolator();
88
[2720]89 // single loop element in apply()
90 void doapply(casa::uInt beamno, casa::uInt ifno, casa::uInt polno,
91 casa::Vector<casa::uInt> &rows,
[2742]92 casa::Vector<casa::uInt> &skylist,
[2750]93 casa::Bool filltsys=true);
[2720]94
95 // get frequency information from FREQUENCIES subtable
96 casa::Vector<casa::Double> getBaseFrequency(casa::uInt whichrow);
97
98 // time sort
99 casa::Vector<casa::uInt> timeSort(casa::Vector<casa::Double> &t);
100
101 // search spwmap_ to get IFNO for Tsys
102 casa::uInt getIFForTsys(casa::uInt to);
103
104 // target data
105 casa::CountedPtr<Scantable> target_;
106
107 // working data
108 casa::CountedPtr<Scantable> work_;
109
110 // calibrator
111 casa::CountedPtr<Calibrator> calibrator_;
112
113 // interpolation method
[2735]114 STCalEnum::InterpolationType iTime_;
115 STCalEnum::InterpolationType iFreq_;
[2720]116 casa::Int order_;
[2733]117 casa::CountedPtr<Interpolator1D<casa::Double, casa::Float> > interpolatorT_;
118 casa::CountedPtr<Interpolator1D<casa::Double, casa::Float> > interpolatorF_;
119 casa::CountedPtr<Interpolator1D<casa::Double, casa::Float> > interpolatorS_;
[2720]120
121 // IF (spw) mapping for Tsys transfer
122 map<casa::uInt, casa::Vector<casa::uInt> > spwmap_;
123
124 // list of apply tables
125 std::vector<STCalSkyTable*> skytable_;
126 std::vector<STCalTsysTable*> tsystable_;
127
128 // calibration type
129 STCalEnum::CalType caltype_;
130 casa::Bool doTsys_;
131
132 // selector
133 STSelector sel_;
134
135 // logger
136 casa::LogIO os_;
137};
138
139}
140
141#endif
Note: See TracBrowser for help on using the repository browser.