FlagCalTableHandler.h

Go to the documentation of this file.
00001 //# FlagCalTableHandler.h: This file contains the interface definition of the FlagCalTableHandler class.
00002 //#
00003 //#  CASA - Common Astronomy Software Applications (http://casa.nrao.edu/)
00004 //#  Copyright (C) Associated Universities, Inc. Washington DC, USA 2011, All rights reserved.
00005 //#  Copyright (C) European Southern Observatory, 2011, All rights reserved.
00006 //#
00007 //#  This library is free software; you can redistribute it and/or
00008 //#  modify it under the terms of the GNU Lesser General Public
00009 //#  License as published by the Free software Foundation; either
00010 //#  version 2.1 of the License, or (at your option) any later version.
00011 //#
00012 //#  This library is distributed in the hope that it will be useful,
00013 //#  but WITHOUT ANY WARRANTY, without even the implied warranty of
00014 //#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015 //#  Lesser General Public License for more details.
00016 //#
00017 //#  You should have received a copy of the GNU Lesser General Public
00018 //#  License along with this library; if not, write to the Free Software
00019 //#  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00020 //#  MA 02111-1307  USA
00021 //# $Id: $
00022 
00023 #ifndef FlagCalTableHandler_H_
00024 #define FlagCalTableHandler_H_
00025 
00026 #include <flagging/Flagging/FlagDataHandler.h>
00027 #include <ms/MSSel/MSSelectionTools.h>
00028 #include <synthesis/CalTables/NewCalTable.h>
00029 #include <synthesis/CalTables/CTInterface.h>
00030 #include <synthesis/CalTables/CTIter.h>
00031 #include <synthesis/CalTables/CalBuffer.h>
00032 #include <measures/Measures/Stokes.h>
00033 
00034 namespace casa { //# NAMESPACE CASA - BEGIN
00035 
00036 namespace vi {
00037 
00038 class WeightScaling;
00039 
00040 }
00041 
00042 #if !defined(__clang__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && \
00043     (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
00044 #pragma GCC diagnostic push
00045 #pragma GCC diagnostic ignored "-Wunused-parameter"
00046 #define CASA_WPOP_UNUSED
00047 #endif
00048 
00049 class DummyBufferImpl: public vi::VisBuffer2
00050 {
00051 public:
00052         DummyBufferImpl() {}
00053         ~DummyBufferImpl() {}
00054 
00055         virtual void copy (const VisBuffer2 & /*other*/, Bool /*fetchIfNeeded*/) {}
00056     virtual void copyComponents (const VisBuffer2 & /*other*/,
00057                                  const VisBufferComponents2 & /*components*/,
00058                                  Bool /*allowShapeChange*/ = False,
00059                                  Bool /*fetchIfNeeded*/ = True) {}
00060     virtual void copyCoordinateInfo(const VisBuffer2 * /*other*/, Bool /*includeDirections*/,
00061                                     Bool /*allowShapeChange*/ = False,
00062                     Bool /*fetchIfNeeded*/ = True) {}
00063 
00064     virtual void setShape (Int /*nCorrelations*/, Int /*nChannels*/, Int /*nRows*/, Bool) {}
00065     virtual const vi::VisibilityIterator2 * getVi () const {return NULL;}
00066 
00067     virtual Bool isAttached () const {return True;}
00068     virtual Bool isFillable () const {return True;}
00069 
00070     virtual void writeChangesBack () {}
00071     virtual void initWeightSpectrum (const Cube<Float>&) {}
00072     virtual void initSigmaSpectrum (const Cube<Float>&) {}
00073     virtual void dirtyComponentsAdd (const VisBufferComponents2 & /*additionalDirtyComponents*/) {}
00074     virtual void dirtyComponentsAdd (VisBufferComponent2 /*component*/) {}
00075     virtual void dirtyComponentsClear () {}
00076     virtual VisBufferComponents2 dirtyComponentsGet () const { VisBufferComponents2 dummy; return dummy;}
00077     virtual void dirtyComponentsSet (const VisBufferComponents2 & /*dirtyComponents*/) {}
00078     virtual void dirtyComponentsSet (VisBufferComponent2 /*component*/) {}
00079 
00080     virtual const Matrix<Float> & imagingWeight() const {static Matrix<Float> dummy; return dummy;}
00081     void setImagingWeight (const Matrix<float> &) {}
00082 
00083     virtual Double getFrequency (Int /*rowInBuffer*/, Int /*frequencyIndex*/,
00084                                  Int /*frame*/ = FrameNotSpecified) const { static Double dummy; return dummy;}
00085     virtual const Vector<Double> & getFrequencies (Int /*rowInBuffer*/,
00086                                                  Int /*frame*/ = FrameNotSpecified) const {static Vector<Double> dummy; return dummy;}
00087     virtual Int getChannelNumber (Int /*rowInBuffer*/, Int /*frequencyIndex*/) const {static Int dummy; return dummy;}
00088     virtual const Vector<Int> & getChannelNumbers (Int /*rowInBuffer*/) const {static Vector<Int> dummy; return dummy;}
00089 
00090     virtual void normalize() {}
00091 
00092     virtual void resetWeightsUsingSigma () {}
00093 
00094     virtual Bool isNewArrayId () const {static Bool dummy; return dummy;}
00095     virtual Bool isNewFieldId () const {static Bool dummy; return dummy;}
00096     virtual Bool isNewMs() const {static Bool dummy; return dummy;}
00097     virtual Bool isNewSpectralWindow () const {static Bool dummy; return dummy;}
00098     virtual Bool isWritable () const {static Bool dummy; return dummy;}
00099     virtual Int msId() const {static Int dummy; return dummy;}
00100     virtual String msName (Bool /*stripPath*/ = False) const {String dummy; return dummy;}
00101     virtual vi::Subchunk getSubchunk () const {vi::Subchunk dummy; return dummy;}
00102 
00103     virtual const Vector<Int> & antenna1 () const {static Vector<Int> dummy; return dummy;}
00104     virtual void setAntenna1 (const Vector<Int> & /*value*/) {}
00105     virtual const Vector<Int> & antenna2 () const {static Vector<Int> dummy; return dummy;}
00106     virtual void setAntenna2 (const Vector<Int> & /*value*/) {}
00107     virtual const Vector<Int>& arrayId () const {static Vector<Int> dummy; return dummy;}
00108     virtual void setArrayId (const Vector<Int>&) {}
00109     virtual Int dataDescriptionId () const {static Int dummy; return dummy;}
00110     virtual void setDataDescriptionId (Int /*value*/) {}
00111     virtual void setDataDescriptionIds(const casa::Vector<int>&){}
00112     virtual const Vector<MDirection> & direction1 () const {static Vector<MDirection> dummy; return dummy;}
00113     virtual const Vector<MDirection> & direction2 () const {static Vector<MDirection> dummy; return dummy;}
00114     virtual const Vector<Double> & exposure () const {static Vector<Double> dummy; return dummy;}
00115     virtual void setExposure (const Vector<Double> & /*value*/) {}
00116     virtual const Vector<Int> & feed1 () const {static Vector<Int> dummy; return dummy;}
00117     virtual void setFeed1 (const Vector<Int> & /*value*/) {}
00118     virtual const Vector<Int> & feed2 () const {static Vector<Int> dummy; return dummy;}
00119     virtual void setFeed2 (const Vector<Int> & /*value*/) {}
00120     virtual const Vector<Int>& fieldId () const {static Vector<Int> dummy; return dummy;}
00121     virtual void setFieldId (const Vector<Int>&) {}
00122     virtual const Matrix<Bool> & flag () const {static Matrix<Bool> dummy; return dummy;}
00123     virtual void setFlag (const Matrix<Bool>& /*value*/) {}
00124     virtual const Array<Bool> & flagCategory () const {static Array<Bool> dummy; return dummy;}
00125     virtual void setFlagCategory (const Array<Bool>& /*value*/) {}
00126     virtual const Cube<Bool> & flagCube () const {static Cube<Bool> dummy; return dummy;}
00127     virtual void setFlagCube (const Cube<Bool>& /*value*/) {}
00128     virtual const Vector<Bool> & flagRow () const {static Vector<Bool> dummy; return dummy;}
00129     virtual void setFlagRow (const Vector<Bool>& /*value*/) {}
00130     virtual const Vector<Int> & observationId () const {static Vector<Int> dummy; return dummy;}
00131     virtual void setObservationId (const Vector<Int> & /*value*/) {}
00132     virtual const Vector<Int> & processorId () const {static Vector<Int> dummy; return dummy;}
00133     virtual void setProcessorId (const Vector<Int> & /*value*/) {}
00134     virtual const Vector<Int> & scan () const {static Vector<Int> dummy; return dummy;}
00135     virtual void setScan (const Vector<Int> & /*value*/) {}
00136     virtual const Matrix<Float> & sigma () const {static Matrix<Float> dummy; return dummy;}
00137     virtual void setSigma (const Matrix<Float> & /*value*/) {}
00138     virtual const Matrix<Float> & sigmaMat () const {static Matrix<Float> dummy; return dummy;}
00139     virtual const Vector<Int> & stateId () const {static Vector<Int> dummy; return dummy;}
00140     virtual void setStateId (const Vector<Int> & /*value*/) {}
00141     virtual const Vector<Double> & time () const {static Vector<Double> dummy; return dummy;}
00142     virtual void setTime (const Vector<Double> & /*value*/) {}
00143     virtual const Vector<Double> & timeCentroid () const {static Vector<Double> dummy; return dummy;}
00144     virtual void setTimeCentroid (const Vector<Double> & /*value*/) {}
00145     virtual const Vector<Double> & timeInterval () const {static Vector<Double> dummy; return dummy;}
00146     virtual void setTimeInterval (const Vector<Double> & /*value*/) {}
00147     virtual const Matrix<Double> & uvw () const {static Matrix<Double> dummy; return dummy;}
00148     virtual void setUvw (const Matrix<Double> & /*value*/) {}
00149     virtual const Matrix<Float> & weight () const {static Matrix<Float> dummy; return dummy;}
00150     virtual void setWeight (const Matrix<Float>& /*value*/) {}
00151     virtual const Matrix<Float> & weightMat () const {static Matrix<Float> dummy; return dummy;}
00152     virtual void setWeightMat (const Matrix<Float>& /*value*/) {}
00153     virtual const Cube<Float> & weightSpectrum () const {static Cube<Float> dummy; return dummy;}
00154     virtual void setWeightSpectrum (const Cube<Float>& /*value*/) {}
00155     virtual const Cube<float>& sigmaSpectrum() const {static Cube<Float> dummy; return dummy;}
00156     virtual void setSigmaSpectrum(const Cube<float>&) {}
00157 
00158     virtual const Cube<Complex> & visCube () const {static Cube<Complex> dummy; return dummy;}
00159     virtual void setVisCube(const Complex & /*c*/) {}
00160     virtual void setVisCube (const Cube<Complex> &){}
00161     virtual const Matrix<CStokesVector> & vis () const {static Matrix<CStokesVector> dummy; return dummy;}
00162     virtual void setVis (Matrix<CStokesVector> &) {}
00163     virtual const Cube<Complex> & visCubeCorrected () const {static Cube<Complex> dummy; return dummy;}
00164     virtual void setVisCubeCorrected (const Cube<Complex> &) {}
00165     virtual const Matrix<CStokesVector> & visCorrected () const {static Matrix<CStokesVector> dummy; return dummy;}
00166     virtual void setVisCorrected (const Matrix<CStokesVector> &) {}
00167     virtual const Cube<Float> & visCubeFloat () const {static Cube<Float> dummy; return dummy;}
00168     virtual void setVisCubeFloat (const Cube<Float> &) {}
00169     virtual const Cube<Complex> & visCubeModel () const {static Cube<Complex> dummy; return dummy;}
00170     virtual void setVisCubeModel(const Complex & /*c*/) {}
00171     virtual void setVisCubeModel(const Cube<Complex>& /*vis*/) {}
00172     virtual void setVisCubeModel(const Vector<Float>& /*stokes*/) {}
00173     virtual const Matrix<CStokesVector> & visModel () const {static Matrix<CStokesVector> dummy; return dummy;}
00174     virtual void setVisModel (Matrix<CStokesVector> &) {}
00175 
00176         virtual MDirection azel0 (Double /*time*/) const {static MDirection dummy; return dummy;}
00177         virtual Vector<MDirection> & azel(Double /*time*/) const {static Vector<MDirection> dummy; return dummy;}
00178         virtual const Vector<SquareMatrix<Complex, 2> > & cjones () const {static Vector<SquareMatrix<Complex, 2> > dummy; return dummy;}
00179         virtual const Vector<Int> & correlationTypes () const {static Vector<Int> dummy; return dummy;}
00180         virtual Vector<Float> & feedPa(Double /*time*/) const {static Vector<Float> dummy; return dummy;}
00181         virtual const Vector<Float> & feedPa1 () const {static Vector<Float> dummy; return dummy;}
00182         virtual const Vector<Float> & feedPa2 () const {static Vector<Float> dummy; return dummy;}
00183         virtual Double hourang(Double /*time*/) const {static Double dummy; return dummy;}
00184         virtual Int nAntennas () const {static Int dummy; return dummy;}
00185         virtual Int nChannels () const {static Int dummy; return dummy;}
00186         virtual Int nCorrelations () const {static Int dummy; return dummy;}
00187         virtual Int nRows () const {static Int dummy; return dummy;}
00188         virtual Float parang0(Double /*time*/) const {static Float dummy; return dummy;}
00189         virtual Vector<Float> & parang(Double /*time*/) const {static Vector<Float> dummy; return dummy;}
00190         virtual const MDirection& phaseCenter () const {static MDirection dummy; return dummy;}
00191         virtual Int polarizationFrame () const {static Int dummy; return dummy;}
00192         virtual Int polarizationId () const {static Int dummy; return dummy;}
00193         virtual const Vector<uInt> & rowIds () const {static Vector<uInt> dummy; return dummy;}
00194         virtual Int spectralWindow () const {static Int dummy; return dummy;}
00195         virtual const Vector<Int> & spectralWindows () const {static Vector<Int> dummy; return dummy;}
00196         virtual void setSpectralWindows (const Vector<Int> & /*spectralWindows*/) {}
00197         virtual Bool modelDataIsVirtual () const { return false;}
00198 
00199 
00200     virtual void setFillable (Bool /*isFillable*/) {}
00201     virtual const Vector<Int> & dataDescriptionIds () const {static Vector<Int> dummy; return dummy;}
00202     virtual Vector<Int> getCorrelationTypes () const {static Vector<Int> dummy; return dummy;}
00203     virtual void validateShapes () const {}
00204 
00205     virtual Float getWeightScaled (Int /*row*/) const { return 0;}
00206     virtual Float getWeightScaled (Int /*correlation*/, Int /*row*/) const { return 0;}
00207     virtual Float getWeightScaled (Int /*correlation*/, Int /*channel*/, Int /*row*/) const { return 0;}
00208     virtual Float getSigmaScaled (Int row) const { return 0;}
00209     virtual Float getSigmaScaled (Int correlation, Int row) const { return 0;}
00210     virtual Float getSigmaScaled (Int correlation, Int channel, Int row) const { return 0;}
00211     virtual CountedPtr<vi::WeightScaling> getWeightScaling () const { return 0; }
00212 
00213     virtual void phaseCenterShift(const Vector<Double>& phase) {};
00214     virtual void phaseCenterShift(Double dx, Double dy) {};
00215 
00216 
00217 protected:
00218 
00219     virtual void configureNewSubchunk (Int /*msId*/, const String & /*msName*/, Bool /*isNewMs*/,
00220                                        Bool /*isNewArrayId*/, Bool /*isNewFieldId*/,
00221                                        Bool /*isNewSpectralWindow*/, const vi::Subchunk & /*subchunk*/,
00222                                        Int /*nRows*/, Int /*nChannels*/, Int /*nCorrelations*/,
00223                                        const Vector<Int> & /*correlations*/,
00224                                        const Vector<Stokes::StokesTypes> &,
00225                                        const Vector<Stokes::StokesTypes> &,
00226                                        CountedPtr <vi::WeightScaling> /*weightScaling*/) {}
00227     virtual void invalidate() {}
00228     virtual Bool isRekeyable () const {static Bool dummy; return dummy;}
00229     virtual void setRekeyable (Bool /*isRekeable*/) {}
00230 
00231 };
00232 
00233 #ifdef CASA_WPOP
00234 #pragma GCC diagnostic pop
00235 #define CASA_WPOP
00236 #endif
00237 
00238 
00239 class CTCache
00240 {
00241 
00242 public:
00243         CTCache(CTIter *calIter);
00244         ~CTCache();
00245 
00246         Int arrayId();
00247         Int fieldId();
00248         Int spectralWindow();
00249         Vector<Int>& scan();
00250         Vector<Double>& time();
00251         Vector<Int>& antenna1();
00252         Vector<Int>& antenna2();
00253         Cube<Bool>& flagCube();
00254         Vector<Int>& getChannelNumbers(Int rowInBuffer);
00255         Vector<Double>& getFrequencies(Int rowInBuffer,Int frame = vi::VisBuffer2::FrameNotSpecified);
00256         Int nRowChunk();
00257         Int nRows();
00258         Int nChannels();
00259         Int nCorrelations();
00260 
00261         Cube<Complex>& visCube();
00262         Cube<Complex>& visCubeCorrected();
00263         Cube<Complex>& visCubeModel();
00264 
00265         // Convenient public methods for compatibility with MS-like interface
00266         Vector<Int>& observationId();
00267         Vector<Int>& correlationTypes();
00268 
00269         // Methods for efficient synchronization with CTIter
00270         void invalidate();
00271 
00272 private:
00273 
00274         CTIter *calIter_p;
00275         Int field0_p;
00276         Int spw0_p;
00277         Vector<Int> field_p;
00278         Vector<Int> spw_p;
00279         Vector<Int> scan_p;
00280         Vector<Double> time_p;
00281         Vector<Int> antenna1_p;
00282         Vector<Int> antenna2_p;
00283         Cube<Bool> flagCube_p;
00284         Vector<Int> channel_p;
00285         Vector<Double> frequency_p;
00286         Cube<Complex> cparam_p;   // This is an actual Cube<Complex>
00287         Cube<Complex> fparam_p;   // This is in reality a Cube<Float>
00288         Cube<Complex> snr_p;      // This is in reality a Cube<Float>
00289         Int nRowChunk_p;
00290         Int nRow_p;
00291         Int nChannel_p;
00292         Int nCorr_p;
00293 
00294         // Convenient members for compatibility with MS-like interface
00295         Vector<Int> observationId_p;
00296         Vector<Int> corrType_p;
00297 
00298         // Members for efficient synchronization with CTIter
00299         Bool CTfieldIdOK_p;
00300         Bool CTspectralWindowOK_p;
00301         Bool CTscanOK_p;
00302         Bool CTtimeOK_p;
00303         Bool CTantenna1OK_p;
00304         Bool CTantenna2OK_p;
00305         Bool CTflagCubeOk_p;
00306         Bool CTobservationIdOK_p;
00307         Bool CTcorrTypeOK_p;
00308         Bool CTchannelOK_p;
00309         Bool CTfrequencyOK_p;
00310         Bool CTVisCubeOK_p;
00311         Bool CTcorrectedVisCubeOK_p;
00312         Bool CTmodelVisCubeOK_p;
00313         Bool CTnRowChunkOK_p;
00314         Bool CTnRowOK_p;
00315         Bool CTnChannelOK_p;
00316         Bool CTnCorrOK_p;
00317 
00318         // Convenience methods and members to by-pass const methods issues
00319         Int& fillSpectralWindow();
00320         Int& fillFieldId();
00321         Int& fillnRowChunk();
00322 
00323 };
00324 
00325 
00326 class CTBuffer: public DummyBufferImpl
00327 {
00328 
00329 public:
00330 
00331         CTBuffer(CTIter *ctIter) {ctCache_p = new CTCache(ctIter);invalidate();}
00332         ~CTBuffer() {}
00333 
00334         const Vector<Int> & arrayId() const {arrayId_p.assign (Vector<Int> (time().nelements(), ctCache_p->arrayId())); return arrayId_p;}
00335         const Vector<Int> & fieldId() const {fieldId_p.assign (Vector<Int> (time().nelements(), ctCache_p->fieldId())); return fieldId_p;}
00336         Int spectralWindow() const {return ctCache_p->spectralWindow();}
00337         const Vector<Int>& scan() const {return ctCache_p->scan();}
00338         const Vector<Double>& time() const {return ctCache_p->time();}
00339         const Vector<Int>& antenna1() const {return ctCache_p->antenna1();}
00340         const Vector<Int>& antenna2() const {return ctCache_p->antenna2();}
00341         const Cube<Bool>& flagCube() const {return ctCache_p->flagCube();}
00342         const Vector<Int>& getChannelNumbers(Int rowInBuffer) const {return ctCache_p->getChannelNumbers(rowInBuffer);}
00343         Vector<Int> getChannelNumbersSelected (Int outputChannelIndex) const { throw AipsError ("Not Implemented");}
00344         const Vector<Double>& getFrequencies(Int rowInBuffer,Int /*frame*/ = vi::VisBuffer2::FrameNotSpecified) const {return ctCache_p->getFrequencies(rowInBuffer);}
00345         Int nRows() const {return ctCache_p->nRows();}
00346         Int nChannels() const {return ctCache_p->nChannels();}
00347         Int nCorrelations() const {return ctCache_p->nCorrelations();}
00348         const Vector<Int> &  spectralWindows () const {
00349             spectralWindows_p.assign (Vector<Int> (time().nelements(), ctCache_p->spectralWindow())); return spectralWindows_p;}
00350 
00351 
00352         const Cube<Complex>& visCube() const {return ctCache_p->visCube();}
00353         const Cube<Complex>& visCubeCorrected() const {return ctCache_p->visCubeCorrected();}
00354         const Cube<Complex>& visCubeModel() const {return ctCache_p->visCubeModel();}
00355 
00356         // Convenient public methods for compatibility with MS-like interface
00357         const Vector<Int>& observationId() const {return ctCache_p->observationId();}
00358         const Vector<Int>& correlationTypes() const {return ctCache_p->correlationTypes();}
00359         Vector<Stokes::StokesTypes> getCorrelationTypesDefined () const { throw AipsError ("Not Implemented");}
00360         Vector<Stokes::StokesTypes> getCorrelationTypesSelected () const { throw AipsError ("Not Implemented");}
00361 
00362         // Methods for efficient synchronization with CTIter
00363         void invalidate() {ctCache_p->invalidate();}
00364 
00365         Vector<bool>& flagRowRef() {throw AipsError ("Not implemented " , __FILE__, __LINE__);}
00366         Cube<bool>& flagCubeRef() {throw AipsError ("Not implemented " , __FILE__, __LINE__);}
00367         Cube<complex<float> >& visCubeRef() {throw AipsError ("Not implemented " , __FILE__, __LINE__);}
00368         Cube<complex<float> >& visCubeCorrectedRef() {throw AipsError ("Not implemented " , __FILE__, __LINE__);}
00369         Cube<complex<float> >& visCubeModelRef() {throw AipsError ("Not implemented " , __FILE__, __LINE__);}
00370         Cube<float >& weightSpectrumRef() {throw AipsError ("Not implemented " , __FILE__, __LINE__);}
00371         IPosition getShape () const { return IPosition ();}
00372 
00373 private:
00374 
00375         mutable Vector<Int> arrayId_p;
00376         mutable Vector<Int> fieldId_p;
00377         mutable Vector<Int> spectralWindows_p;
00378     CTIter *calIter_p;
00379         CTCache *ctCache_p;
00380 
00381 };
00382 
00383 // Flag Data Handler class definition
00384 class FlagCalTableHandler: public FlagDataHandler
00385 {
00386 
00387 public:
00388 
00389         // Default constructor
00390         // NOTE: Time interval 0 groups all time steps together in one chunk.
00391         FlagCalTableHandler(string msname, uShort iterationApproach = SUB_INTEGRATION, Double timeInterval = 0);
00392 
00393         // Default destructor
00394         ~FlagCalTableHandler();
00395 
00396         // Open CalTable
00397         bool open();
00398 
00399         // Close CalTable
00400         bool close();
00401 
00402         // Generate selected CalTable
00403         bool selectData();
00404 
00405         // Parse MSSelection expression
00406         bool parseExpression(MSSelection &parser);
00407 
00408         // Generate CalIter
00409         bool generateIterator();
00410 
00411         // Move to next chunk
00412         bool nextChunk();
00413 
00414         // Move to next buffer
00415         bool nextBuffer();
00416 
00417         // Write flag cube into MS
00418         bool flushFlags();
00419 
00420         // Provide table name (for flag version)
00421         String getTableName();
00422 
00423         // Check if a given column is available in the cal table
00424         bool checkIfColumnExists(String column);
00425 
00426         // Signal true when a progress summary has to be printed
00427         bool summarySignal();
00428 
00429 private:
00430 
00431         // Mapping functions
00432         void generateScanStartStopMap();
00433 
00434         // Convenient private methods for compatibility with MS-like interface
00435         Block<String> getSortColumns(Block<Int> intCols);
00436 
00437         // CatTable selection objects
00438         NewCalTable *selectedCalTable_p;
00439         NewCalTable *originalCalTable_p;
00440         CTInterface *calTableInterface_p;
00441 
00442         // Calibration Table iterator and buffer
00443         CTIter *calIter_p;
00444         CTBuffer *calBuffer_p;
00445 
00446 };
00447 
00448 } //# NAMESPACE CASA - END
00449 
00450 #endif /* FlagCalTableHandler_H_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1