casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Integration.h
Go to the documentation of this file.
00001 #if     !defined(_INTEGRATION_H)
00002 
00003 #include <vector>
00004 #include <CorrelationMode.h>
00005 #include <AxisName.h>
00006 #include <NetSideband.h>
00007 
00008 using namespace std;
00009 
00010 namespace sdmbin {
00011 
00044   class DataStructure{
00045   public:
00047     DataStructure();
00048 
00058     DataStructure(  uint32_t      numPolProduct,     
00059                     uint32_t      numBin,            
00060                     Enum<NetSideband> e_sideband,        
00061                     uint32_t      numBaseband,       
00062                     uint32_t      numAnt,            
00063                     CorrelationMode   correlationMode);  
00064 
00086     DataStructure(  uint32_t      numPolProduct,
00087                     uint32_t      numSpectralPoint,
00088                     uint32_t      numBin,
00089                     Enum<NetSideband> e_sideband,
00090                     uint32_t      numBaseband,
00091                     uint32_t      numAnt,
00092                     CorrelationMode   correlationMode);
00093 
00120     DataStructure( vector<vector<uint32_t> >       vv_numCrossPolProduct,// /bb/spw
00121                    vector<vector<uint32_t> >       vv_numAutoPolProduct, // /bb/spw
00122                    vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
00123                    vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
00124                    vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
00125                    uint32_t                        numApc,
00126                    vector<uint32_t>                v_numSpectralWindow,  // /bb
00127                    uint32_t                        numBaseband,
00128                    uint32_t                        numAnt,
00129                    CorrelationMode                     correlationMode);
00130 
00157     DataStructure( vector<vector<uint32_t> >       vv_numAutoPolProduct, // /bb/spw
00158                    vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
00159                    vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
00160                    vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
00161                    uint32_t                        numApc,
00162                    vector<uint32_t>                v_numSpectralWindow,  // /bb
00163                    uint32_t                        numBaseband,
00164                    uint32_t                        numAnt,
00165                    CorrelationMode                     correlationMode);
00166 
00168     DataStructure( const DataStructure &);
00169 
00171     ~DataStructure();
00172 
00173 
00177     vector<vector<uint32_t> > numCrossPolProducts();
00178 
00182     vector<vector<uint32_t> > numAutoPolProducts();
00183 
00187     vector<vector<uint32_t> > numSpectralPoints();
00188 
00189 
00193     vector<vector<uint32_t> > numBins();
00194 
00198     vector<vector<Enum<NetSideband> > > sidebands();
00199 
00201     uint32_t                  numApc();
00202 
00204     vector<uint32_t>          numSpectralWindows();
00205 
00207     uint32_t                  numBaseband();
00208 
00210     uint32_t                  numAnt();
00211 
00217     CorrelationMode                 correlationMode();
00218 
00229     vector<uint32_t> leafAxisSizes();
00230 
00243     vector<uint32_t> leafAxisSizes(uint32_t basebandIndex, uint32_t spectralWindowIndex);
00244 
00259     vector<uint32_t> leafAxisSizes(uint32_t dataDescriptionIndex);
00260 
00261 
00270     uint32_t         isIndexible() const;
00271 
00272 
00280     vector<uint32_t> eAxisSizes() const;
00281 
00288     vector<uint32_t> axisSizes() const;
00289 
00294     uint32_t         dimension() const;
00295 
00300     vector<uint32_t> minAxSize() const;
00301 
00306     vector<uint32_t> maxAxSize() const;
00307 
00310     uint32_t         numAutoData() const;
00311 
00314     uint32_t         numCrossData() const;
00315 
00319     string               axisSequence() const;
00320 
00323     void                 summary() const;
00324 
00325   protected:
00326     vector<vector<uint32_t> >       vv_numCrossPolProduct_;// /bb/spw
00327     vector<vector<uint32_t> >       vv_numAutoPolProduct_; // /bb/spw
00328     vector<vector<uint32_t> >       vv_numSpectralPoint_;  // /bb/spw
00329     vector<vector<uint32_t> >       vv_numBin_;            // /bb/spw
00330     vector<vector<Enum<NetSideband> > > vv_e_sideband_;        // /bb/spw
00331     uint32_t                        numApc_;
00332     vector<uint32_t>                v_numSpectralWindow_;  // /bb
00333     uint32_t                        numBaseband_;
00334     uint32_t                        numAnt_;
00335     CorrelationMode                     correlationMode_;
00336     string                              axisSequence_;
00337     vector<uint32_t>                v_minSize_;
00338     vector<uint32_t>                v_maxSize_;
00339     
00340   private:
00341     string                              setStructureProperties();
00342   };
00343 
00370   class DataDump : public DataStructure {
00371   public:
00372     DataDump();
00373     
00395     DataDump( uint32_t      numPolProduct,
00396               uint32_t      numBin,
00397               Enum<NetSideband> e_sideband,
00398               uint32_t      numBaseband,
00399               uint32_t      numAnt,
00400               CorrelationMode   correlationMode,
00401               uint64_t         time,
00402               uint64_t         timeCentroid,  
00403               uint64_t         interval, 
00404               uint64_t         exposure,
00405               const float*      floatData);
00406 
00432     DataDump( uint32_t      numSdPolProduct,
00433               uint32_t      numSpectralPoint,
00434               uint32_t      numBin,
00435               Enum<NetSideband> e_sideband,
00436               uint32_t      numBaseband,
00437               uint32_t      numAnt,
00438               CorrelationMode   correlationMode,
00439               uint64_t         time, 
00440               uint64_t         timeCentroid, 
00441               uint64_t         interval,
00442               uint64_t         exposure,
00443               const float*             floatData, 
00444               const uint32_t* dataFlags); // TODO
00445 
00449     DataDump( vector<vector<uint32_t> >       vv_numPolProduct,     // /bb/spw
00450               vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
00451               vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
00452               vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
00453               uint32_t                        numApc,
00454               vector<uint32_t>                v_numSpectralWindow,  // /bb
00455               uint32_t                        numBaseband,
00456               uint32_t                        numAnt,
00457               CorrelationMode                     correlationMode,
00458               uint64_t                           time, 
00459               uint64_t                           timeCentroid, 
00460               uint64_t                           interval, 
00461               uint64_t                           exposure,
00462               const float*                        floatData);
00463 
00467     DataDump( vector<vector<uint32_t> >       vv_numPolProduct,     // /bb/spw
00468               vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
00469               vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
00470               vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
00471               uint32_t                        numApc,
00472               vector<uint32_t>                v_numSpectralWindow,  // /bb
00473               uint32_t                        numBaseband,
00474               uint32_t                        numAnt,
00475               CorrelationMode                     correlationMode,
00476               uint64_t                           time,
00477               uint64_t                           timeCentroid,  
00478               uint64_t                           interval, 
00479               uint64_t                           exposure,
00480               const float*                        floatData, 
00481               const uint32_t*                 dataFlags);
00482 
00485     DataDump( vector<vector<uint32_t> >       vv_numCrossPolProduct,// /bb/spw
00486               vector<vector<uint32_t> >       vv_numAutoPolProduct, // /bb/spw
00487               vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
00488               vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
00489               vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
00490               uint32_t                        numApc,
00491               vector<uint32_t>                v_numSpectralWindow,  // /bb
00492               uint32_t                        numBaseband,
00493               uint32_t                        numAnt,
00494               CorrelationMode                     correlationMode,
00495               uint64_t                           time,
00496               uint64_t                           timeCentroid,  
00497               uint64_t                           interval, 
00498               uint64_t                           exposure);
00499 
00517     ~DataDump();
00518 
00522     DataDump(const DataDump& a);
00523 
00525     DataDump & operator = (const DataDump& a);
00526 
00527     void attachFlags( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00528                       uint32_t numData, const uint32_t* flagsPtr);
00529     void importFlags( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00530                       uint32_t numData, const uint32_t* flagsPtr);
00531 
00532     void attachActualTimes( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00533                             uint32_t numData, const int64_t * actualTimesPtr);
00534 
00535     void importActualTimes( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00536                             uint32_t numData, const  int64_t * actualTimesPtr);
00537 
00538     void attachActualDurations( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00539                                 uint32_t numData, const int64_t * durationsPtr);
00540 
00541     void importActualDurations( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00542                                 uint32_t numData, const int64_t * durationsPtr);
00543 
00544 
00545     void attachZeroLags ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00546                           uint32_t numData, const float* zeroLagsPtr);
00547 
00548     void importZeroLags ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00549                           uint32_t numData, const float* zeroLagsPtr);
00550 
00551 
00552     void attachAutoData ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00553                           uint32_t numData, const float * autoDataPtr);
00554 
00555     void importAutoData ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00556                           uint32_t numData, const float * autoDataPtr);
00557 
00558     void attachCrossData ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00559                            uint32_t numData, const short int* crossDataPtr);
00560     void importCrossData ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00561                            uint32_t numData, const short int* crossDataPtr);
00562     void attachCrossData ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00563                            uint32_t numData, const int * crossDataPtr);
00564     void importCrossData ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00565                            uint32_t numData, const int * crossDataPtr);
00566     void attachCrossData ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00567                            uint32_t numData, const float * crossDataPtr);
00568     void importCrossData ( uint32_t declaredSize, EnumSet<AxisName> es_an, 
00569                            uint32_t numData, const float * crossDataPtr);
00570 
00571     void         setScaleFactor(vector<vector<float> > vv_scaleFactor);
00572     uint32_t setIntegration(uint32_t integNum);
00573     uint32_t setSubintegration(uint32_t integNum, uint32_t subintegNum);
00574     uint32_t setContextUsingProjectPath(string projectPathUri);
00575 
00576     // Accessor
00577     uint32_t integrationNum();
00578     uint32_t subintegrationNum();
00579 
00580     float scaleFactor(uint32_t nbb, uint32_t nspw);
00581 
00582     float scaleFactor(uint32_t ndd);
00583 
00588     uint64_t      time() const;
00589     uint64_t      timeCentroid() const;
00590     uint64_t      interval() const;
00591     uint64_t      exposure() const;
00593 
00598     const int64_t* actualTimes() const;
00599     const int64_t* actualDurations() const;
00604     const uint32_t*      flags()    const;
00605     const float*             zeroLags() const;
00606 
00607 
00619     const float*             autoData() const;
00620 
00621     const short*             crossDataShort() const;
00622 
00623     const int*              crossDataLong() const;
00624 
00625     const float*             crossDataFloat() const;
00626 
00637     uint32_t floatData(vector<vector<float>& >);
00638 
00639 
00656     uint32_t floatData(vector<vector<float*> >&);
00657 
00658 
00664     uint32_t floatData(vector<vector<vector<float> > >&);
00665 
00666 
00684     uint32_t floatData(vector<vector<vector<float*> > >&);
00685 
00686 
00702     uint32_t floatData(vector<vector<vector<vector<float> > > >&);
00703 
00704 
00705 
00711     uint32_t floatData(vector<vector<vector<vector<float*> > > >&);
00712 
00720     uint32_t floatData(vector<vector<vector<vector<vector<float> > > > >&);
00721 
00722     // /nant/nbb/nspw/nbin/napc/nsp/npol
00723     // |    |   |    |    |    |   | 
00724     // |    |   |    |    |    | corr or uncorr (enum)
00725     // |    |   |    |    | scId (global keys)
00726     // |    |   |    | spwNames (keys in baseband context)
00727     // |    |   | basebandNames (global keys)
00728     // |    | antNames (global keys)
00729     // | configDescId (global key)
00730 
00732 
00761     DataDump            operator - (const DataDump & B);  // shape unchanged
00762 
00787     DataDump           operator -= (const DataDump &);  // shape unchanged
00788 
00816     DataDump            operator + (const DataDump &);  // shape unchanged
00817 
00818 
00847     DataDump      operator += (const DataDump &);
00848 
00849     DataDump      operator *  (const float &);
00850     DataDump      operator /  (const float &);
00851 /*     DataDump      operator *  (const DataProfile &); */
00852 /*     DataDump      operator /  (const DataProfile &); */
00853 /*     DataProfile   operator *= (const DataProfile &); */
00854 /*     Dataprofile   operator /= (const DataProfile &); */
00855 
00856 
00857 
00859 
00865     DataDump      spectralAverage();
00866     DataDump      spectralAverage(uint32_t startIndex, uint32_t endIndex);
00867     DataDump            decim(const DataDump &);
00868     DataDump      subtractRef(const DataDump &);
00870 
00871 
00872     //DataDump     binSequence(vector<const DataDump &>); see Subscan
00873 
00874   protected:
00875 
00876     uint32_t              integrationNum_;
00877     uint32_t              subintegrationNum_;
00878     uint64_t                 time_;
00879     uint64_t                 timeCentroid_; 
00880     uint64_t                 interval_;
00881     uint64_t                 exposure_;
00882 
00883     EnumSet<AxisName>         es_flagsAxes_;
00884     EnumSet<AxisName>         es_actualTimesAxes_;
00885     EnumSet<AxisName>         es_actualDurationsAxes_;
00886     EnumSet<AxisName>         es_weightsAxes_;
00887     EnumSet<AxisName>         es_zeroLagsAxes_;
00888     EnumSet<AxisName>         es_autoDataAxes_;
00889     EnumSet<AxisName>         es_crossDataAxes_;
00890 
00891     uint32_t              numFlags_;
00892     uint32_t              numActualTimes_;
00893     uint32_t              numActualDurations_;
00894     uint32_t              numWeights_;
00895     uint32_t              numZeroLags_;
00896     uint32_t              numAutoData_;
00897     uint32_t              numCrossData_;
00898 
00899     vector<vector<float> >    vv_scaleFactor_;     // /bb/spw
00900     vector<float>             v_scaleFactor_;      // /ndd      linearized version of vv_scaleFactor_ for fast access
00901 
00902     const uint32_t*     cuintFlagsPtr_;
00903     const int64_t*      clonlonActualTimesPtr_;
00904     const int64_t*      clonlonActualDurationsPtr_;
00905     const float*        cfloatWeightsPtr_;
00906     const float*        cfloatZeroLagsPtr_;
00907     const float*        cfloatAutoDataPtr_;
00908     const short int*    cshortCrossDataPtr_;
00909     const int*          cintCrossDataPtr_;
00910     const float*        cfloatCrossDataPtr_;
00911 
00912     uint32_t*   uintFlagsPtr_;
00913     int64_t*    lonlonActualTimesPtr_;
00914     int64_t*    lonlonActualDurationsPtr_;
00915     float*      floatWeightsPtr_;
00916     float*      floatZeroLagsPtr_;
00917     float*      floatAutoDataPtr_;
00918     short int*  shortCrossDataPtr_;
00919     int*        intCrossDataPtr_;
00920     float*      floatCrossDataPtr_;
00921 
00923     DataDump( vector<vector<uint32_t> >       vv_numCrossPolProduct,// /bb/spw
00924               vector<vector<uint32_t> >       vv_numAutoPolProduct, // /bb/spw
00925               vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
00926               vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
00927               vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
00928               uint32_t                        numApc,
00929               vector<uint32_t>                v_numSpectralWindow,  // /bb
00930               uint32_t                        numBaseband,
00931               uint32_t                        numAnt,
00932               CorrelationMode                     correlationMode,
00933               uint64_t                           time,
00934               uint64_t                           timeCentroid,  
00935               uint64_t                           interval, 
00936               uint64_t                           exposure,
00937               uint32_t                    numCrossData,
00938               const int*                      crossData,
00939               uint32_t                    numAutoData,
00940               const float*                    floatData,
00941               uint32_t                    numFlags,
00942               const uint32_t*            dataFlags);
00943 
00944   private:
00945 
00946     void                          getDataStructure();
00947   };
00948 
00949 
00954   class Integration : public DataDump
00955   {
00956   public:
00957     Integration();
00958     Integration( vector<vector<uint32_t> >       vv_numPolProduct,     // /bb/spw
00959                  vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
00960                  vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
00961                  vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
00962                  uint32_t                        numApc,
00963                  vector<uint32_t>                v_numSpectralWindow,  // /bb
00964                  uint32_t                        numBaseband,
00965                  uint32_t                        numAnt,
00966                  CorrelationMode                     correlationMode,
00967                  uint64_t                           time,
00968                  uint64_t                           timeCentroid,  
00969                  uint64_t                           interval, 
00970                  uint64_t                           exposure,
00971                  float*                              floatData, 
00972                  uint32_t                        integNum);
00973 
00974 
00975     Integration( vector<vector<uint32_t> >       vv_numPolProduct,     // /bb/spw
00976                  vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
00977                  vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
00978                  vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
00979                  uint32_t                        numApc,
00980                  vector<uint32_t>                v_numSpectralWindow,  // /bb
00981                  uint32_t                        numBaseband,
00982                  uint32_t                        numAnt,
00983                  CorrelationMode                     correlationMode,
00984                  uint64_t                           time, 
00985                  uint64_t                           timeCentroid, 
00986                  uint64_t                           interval,
00987                  uint64_t                           exposure, 
00988                  float*                              floatData, 
00989                  uint32_t*                       dataFlags,
00990                  uint32_t                        integNum);
00991 
00992     Integration( uint32_t      numPolProduct,
00993                  uint32_t      numSpectralPoint,
00994                  uint32_t      numBin,
00995                  Enum<NetSideband> e_sideband,
00996                  uint32_t      numApc,
00997                  uint32_t      numSpectralWindow,
00998                  uint32_t      numBaseband,
00999                  uint32_t      numAnt, 
01000                  CorrelationMode   correlationMode,
01001                  uint64_t         time, 
01002                  uint64_t         timeCentroid,
01003                  uint64_t         interval,
01004                  uint64_t         exposure, 
01005                  float*            floatData);
01006 
01007     Integration( uint32_t      numPolProduct,
01008                  uint32_t      numSpectralPoint,
01009                  uint32_t      numBin,
01010                  Enum<NetSideband> e_sideband,
01011                  uint32_t      numApc,
01012                  uint32_t      numSpectralWindow,
01013                  uint32_t      numBaseband,
01014                  uint32_t      numAnt,
01015                  CorrelationMode   correlationMode,
01016                  uint64_t         time, 
01017                  uint64_t         timeCentroid, 
01018                  uint64_t         interval,
01019                  uint64_t         exposure, 
01020                  float*            floatData, 
01021                  uint32_t*   dataFlags,  // TODO
01022                  uint32_t      integNum);
01023     ~Integration();
01024 
01025     Integration( const Integration & a);
01026 
01027   
01028   private:
01029 /*     uint32_t integrationNum_; */
01030 /*     uint32_t subintegrationNum_; */
01031   };
01032 
01033 /*   uint32_t Integration::subintegrationNum_=0; */
01034 
01040   class Subintegration : public DataDump
01041   {
01042   public:
01043 
01052     Subintegration (const Integration&, uint32_t subintegNum );
01053 
01060     Subintegration( vector<vector<uint32_t> >       vv_numPolProduct,     // /bb/spw
01061                     vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
01062                     vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
01063                     vector<uint32_t>                v_numSpectralWindow,  // /bb
01064                     uint32_t                        numBaseband,
01065                     uint32_t                        numAnt,
01066                     CorrelationMode                     correlationMode, 
01067                     uint64_t                           time,
01068                     uint64_t                           timeCentroid, 
01069                     uint64_t                           interval,
01070                     uint64_t                           exposure,
01071                     float*                              floatData,
01072                     uint32_t                        integNum,
01073                     uint32_t                        subintegNum);
01074 
01081     Subintegration( vector<vector<uint32_t> >       vv_numPolProduct,     // /bb/spw
01082                     vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
01083                     vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
01084                     vector<uint32_t>                v_numSpectralWindow,  // /bb
01085                     uint32_t                        numBaseband,
01086                     uint32_t                        numAnt,
01087                     CorrelationMode                     correlationMode, 
01088                     uint64_t                           time, 
01089                     uint64_t                           timeCentroid, 
01090                     uint64_t                           interval,
01091                     uint64_t                           exposure, 
01092                     float*                              floatData,
01093                     uint32_t*                 dataFlags,  // TODO
01094                     uint32_t                        integNum,
01095                     uint32_t                        subintegNum);
01096 
01104     Subintegration( vector<vector<uint32_t> >       vv_numPolProduct,     // /bb/spw
01105                     vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
01106                     vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
01107                     uint32_t                        numApc,
01108                     vector<uint32_t>                v_numSpectralWindow,  // /bb
01109                     uint32_t                        numBaseband,
01110                     uint32_t                        numAnt,
01111                     CorrelationMode                     correlationMode, 
01112                     uint64_t                           time,
01113                     uint64_t                           timeCentroid, 
01114                     uint64_t                           interval,
01115                     uint64_t                           exposure,
01116                     float*                              floatData,
01117                     uint32_t                        integNum,
01118                     uint32_t                        subintegNum);
01119 
01125     Subintegration( vector<vector<uint32_t> >       vv_numPolProduct,     // /bb/spw
01126                     vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
01127                     vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
01128                     vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
01129                     uint32_t                        numApc,
01130                     vector<uint32_t>                v_numSpectralWindow,  // /bb
01131                     uint32_t    numBaseband,
01132                     uint32_t    numAnt, 
01133                     CorrelationMode correlationMode,
01134                     uint64_t       time, 
01135                     uint64_t       timeCentroid, 
01136                     uint64_t       interval,
01137                     uint64_t       exposure, 
01138                     float*          floatData,
01139                     uint32_t    integNum,
01140                     uint32_t    subintegNum);
01141 
01147     Subintegration( vector<vector<uint32_t> >       vv_numPolProduct,     // /bb/spw
01148                     vector<vector<uint32_t> >       vv_numSpectralPoint,  // /bb/spw
01149                     vector<vector<uint32_t> >       vv_numBin,            // /bb/spw
01150                     vector<vector<Enum<NetSideband> > > vv_e_sideband,        // /bb/spw
01151                     uint32_t                        numApc,
01152                     vector<uint32_t>                v_numSpectralWindow,  // /bb
01153                     uint32_t    numBaseband,
01154                     uint32_t    numAnt,
01155                     CorrelationMode correlationMode,
01156                     uint64_t       time, 
01157                     uint64_t       timeCentroid, 
01158                     uint64_t       interval,
01159                     uint64_t       exposure, 
01160                     float*          floatData, 
01161                     uint32_t*   dataFlags, // TODO
01162                     uint32_t    integNum,
01163                     uint32_t    subintegNum);
01164 
01165   private:
01166 
01167 /*     uint32_t integrationNum_; */
01168 /*     uint32_t subintegrationNum_; */
01169 
01170   };
01171 
01172 }
01173 
01174 #define _INTEGRATION_H 
01175 #endif