// // C++ Implementation: STCalTsys // // Description: // // // Author: Takeshi Nakazato (C) 2012 // // Copyright: See COPYING file that comes with this distribution // // #include #include #include #include "STSelector.h" #include "STCalTsys.h" #include "STDefs.h" #include using namespace std; using namespace casa; namespace asap { STCalTsys::STCalTsys(CountedPtr &s, vector &iflist) : STCalibration(s, "TSYS"), iflist_(iflist) { applytable_ = new STCalTsysTable(*s); } void STCalTsys::setupSelector(const STSelector &sel) { sel_ = sel; vector ifnos = sel_.getIFs(); if (ifnos.size() > 0) { int nif = 0; int nifOrg = iflist_.size(); vector iflistNew(iflist_); for (int i = 0; i < nifOrg; i++) { if (find(ifnos.begin(), ifnos.end(), iflist_[i]) != ifnos.end()) { iflistNew[nif] = iflist_[i]; ++nif; } } if (nif == 0) { LogIO os(LogOrigin("STCalTsys", "setupSelector", WHERE)); os << LogIO::SEVERE << "Selection contains no data." << LogIO::EXCEPTION; } sel_.setIFs(iflistNew); } else { sel_.setIFs(iflist_); } } void STCalTsys::appenddata(uInt scanno, uInt cycleno, uInt beamno, uInt ifno, uInt polno, uInt freqid, Double time, Float elevation, Vector any_data) { STCalTsysTable *p = dynamic_cast(&(*applytable_)); p->appenddata(scanno, cycleno, beamno, ifno, polno, freqid, time, elevation, any_data); } }