00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
#ifndef CalBandpassTable_CLASS
00035
#define CalBandpassTable_CLASS
00036
00037
#include <string>
00038
#include <vector>
00039
#include <map>
00040
#include <set>
00041
using std::string;
00042
using std::vector;
00043
using std::map;
00044
00045
#include <Angle.h>
00046
#include <AngularRate.h>
00047
#include <ArrayTime.h>
00048
#include <ArrayTimeInterval.h>
00049
#include <Complex.h>
00050
#include <Entity.h>
00051
#include <EntityId.h>
00052
#include <EntityRef.h>
00053
#include <Flux.h>
00054
#include <Frequency.h>
00055
#include <Humidity.h>
00056
#include <Interval.h>
00057
#include <Length.h>
00058
#include <PartId.h>
00059
#include <Pressure.h>
00060
#include <Speed.h>
00061
#include <Tag.h>
00062
#include <Temperature.h>
00063
#include <ConversionException.h>
00064
#include <DuplicateKey.h>
00065
#include <UniquenessViolationException.h>
00066
#include <NoSuchRow.h>
00067
#include <DuplicateKey.h>
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
#include "CBasebandName.h"
00079
using namespace BasebandNameMod;
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
#include "CReceiverBand.h"
00098
using namespace ReceiverBandMod;
00099
00100
00101
00102
00103
00104
00105
00106
#include "CAtmPhaseCorrection.h"
00107
using namespace AtmPhaseCorrectionMod;
00108
00109
00110
00111
#include "CPolarizationType.h"
00112
using namespace PolarizationTypeMod;
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
#ifndef WITHOUT_ACS
00129
#include <asdmIDLC.h>
00130
using asdmIDL::CalBandpassTableIDL;
00131
#endif
00132
00133
using asdm::Angle;
00134
using asdm::AngularRate;
00135
using asdm::ArrayTime;
00136
using asdm::Complex;
00137
using asdm::Entity;
00138
using asdm::EntityId;
00139
using asdm::EntityRef;
00140
using asdm::Flux;
00141
using asdm::Frequency;
00142
using asdm::Humidity;
00143
using asdm::Interval;
00144
using asdm::Length;
00145
using asdm::PartId;
00146
using asdm::Pressure;
00147
using asdm::Speed;
00148
using asdm::Tag;
00149
using asdm::Temperature;
00150
00151
using asdm::DuplicateKey;
00152
using asdm::ConversionException;
00153
using asdm::NoSuchRow;
00154
using asdm::DuplicateKey;
00155
00156
#include <Representable.h>
00157
00158
namespace asdm {
00159
00160
00161
00162
00163
class ASDM;
00164
class CalBandpassRow;
00316 class CalBandpassTable :
public Representable {
00317
friend class asdm::ASDM;
00318
00319
public:
00320
00321
00327
static vector<string>
getKeyName();
00328
00329
00330
virtual ~
CalBandpassTable();
00331
00337
ASDM &
getContainer()
const;
00338
00344
unsigned int size() ;
00345
00351 string
getName()
const;
00352
00356
Entity getEntity()
const;
00357
00362
void setEntity(
Entity e);
00363
00364
00365
00366
00367
00372
CalBandpassRow *
newRow();
00373
00378
CalBandpassRow*
newRowEmpty();
00379
00380
00428
CalBandpassRow *
newRow(
Tag calDataId,
Tag calReductionId, BasebandNameMod::BasebandName basebandName,
int numAntenna,
int numBaseline,
int numAPC,
int numReceptor,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > freqLimits, ReceiverBandMod::ReceiverBand receiverBand, vector<string > antennaNames, string refAntennaName, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
int numAmpliPoly, vector<vector<vector<vector<float > > > > ampliCurve, vector<vector<vector<float > > > ampliRms,
int numPhasePoly, vector<vector<vector<vector<Angle > > > > phaseCurve, vector<vector<vector<float > > > phaseRms);
00429
00434
CalBandpassRow *
newRowFull(
Tag calDataId,
Tag calReductionId, BasebandNameMod::BasebandName basebandName,
int numAntenna,
int numBaseline,
int numAPC,
int numReceptor,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > freqLimits, ReceiverBandMod::ReceiverBand receiverBand, vector<string > antennaNames, string refAntennaName, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
int numAmpliPoly, vector<vector<vector<vector<float > > > > ampliCurve, vector<vector<vector<float > > > ampliRms,
int numPhasePoly, vector<vector<vector<vector<Angle > > > > phaseCurve, vector<vector<vector<float > > > phaseRms);
00435
00436
00449
CalBandpassRow *
newRow(
CalBandpassRow *row);
00450
00455
CalBandpassRow *
newRowCopy(
CalBandpassRow *row);
00456
00457
00458
00459
00460
00461
00474
CalBandpassRow*
add(
CalBandpassRow* x) ;
00475
00476
00477
00478
00479
00480
00481
00482
00483
00489 vector<CalBandpassRow *>
get() ;
00490
00491
00492
00493
00494
00508
CalBandpassRow*
getRowByKey(
Tag calDataId,
Tag calReductionId, BasebandNameMod::BasebandName basebandName);
00509
00510
00511
00512
00513
00563
CalBandpassRow*
lookup(
Tag calDataId,
Tag calReductionId, BasebandNameMod::BasebandName basebandName,
int numAntenna,
int numBaseline,
int numAPC,
int numReceptor,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > freqLimits, ReceiverBandMod::ReceiverBand receiverBand, vector<string > antennaNames, string refAntennaName, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
int numAmpliPoly, vector<vector<vector<vector<float > > > > ampliCurve, vector<vector<vector<float > > > ampliRms,
int numPhasePoly, vector<vector<vector<vector<Angle > > > > phaseCurve, vector<vector<vector<float > > > phaseRms);
00564
00565
00566
#ifndef WITHOUT_ACS
00567
00573 CalBandpassTableIDL *
toIDL() ;
00574
#endif
00575
00576
#ifndef WITHOUT_ACS
00577
00583
void fromIDL(CalBandpassTableIDL x)
throw(
DuplicateKey,
ConversionException);
00584
#endif
00585
00589
char *
toFITS()
const throw(
ConversionException);
00590
00594
void fromFITS(
char *fits)
throw(
ConversionException);
00595
00599 string
toVOTable()
const throw(
ConversionException);
00600
00604
void fromVOTable(string vo)
throw(
ConversionException);
00605
00612 string
toXML()
throw(
ConversionException);
00613
00619
void fromXML(string xmlDoc)
throw(
ConversionException);
00620
00626 string
toMIME();
00627
00634
void setFromMIME(
const string & mimeMsg);
00635
00645
void toFile(string directory);
00646
00655
void setFromFile(
const string& directory);
00656
00657
private:
00658
00667
CalBandpassTable (
ASDM & container);
00668
00669
ASDM & container;
00670
00671
bool archiveAsBin;
00672
bool fileAsBin ;
00673
00674
Entity entity;
00675
00676
00677
00681
static string tableName;
00682
00683
00687
static vector<string> key;
00688
00689
00695
CalBandpassRow* checkAndAdd(
CalBandpassRow* x)
throw (
DuplicateKey);
00696
00697
00698
00699
00700
00701
00702 vector<CalBandpassRow * > privateRows;
00703
00704
00705
00706 vector<CalBandpassRow *> row;
00707
00708
00709
void error()
throw(
ConversionException);
00710
00711 };
00712
00713 }
00714
00715
#endif