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 CalPointingModelTable_CLASS
00035
#define CalPointingModelTable_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
00079
00080
#include "CAntennaMake.h"
00081
using namespace AntennaMakeMod;
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
#include "CPointingModelMode.h"
00112
using namespace PointingModelModeMod;
00113
00114
00115
00116
#include "CReceiverBand.h"
00117
using namespace ReceiverBandMod;
00118
00119
00120
00121
#ifndef WITHOUT_ACS
00122
#include <asdmIDLC.h>
00123
using asdmIDL::CalPointingModelTableIDL;
00124
#endif
00125
00126
using asdm::Angle;
00127
using asdm::AngularRate;
00128
using asdm::ArrayTime;
00129
using asdm::Complex;
00130
using asdm::Entity;
00131
using asdm::EntityId;
00132
using asdm::EntityRef;
00133
using asdm::Flux;
00134
using asdm::Frequency;
00135
using asdm::Humidity;
00136
using asdm::Interval;
00137
using asdm::Length;
00138
using asdm::PartId;
00139
using asdm::Pressure;
00140
using asdm::Speed;
00141
using asdm::Tag;
00142
using asdm::Temperature;
00143
00144
using asdm::DuplicateKey;
00145
using asdm::ConversionException;
00146
using asdm::NoSuchRow;
00147
using asdm::DuplicateKey;
00148
00149
#include <Representable.h>
00150
00151
namespace asdm {
00152
00153
00154
00155
00156
class ASDM;
00157
class CalPointingModelRow;
00299 class CalPointingModelTable :
public Representable {
00300
friend class asdm::ASDM;
00301
00302
public:
00303
00304
00310
static vector<string>
getKeyName();
00311
00312
00313
virtual ~
CalPointingModelTable();
00314
00320
ASDM &
getContainer()
const;
00321
00327
unsigned int size() ;
00328
00334 string
getName()
const;
00335
00339
Entity getEntity()
const;
00340
00345
void setEntity(
Entity e);
00346
00347
00348
00349
00350
00355
CalPointingModelRow *
newRow();
00356
00361
CalPointingModelRow*
newRowEmpty();
00362
00363
00407
CalPointingModelRow *
newRow(
Tag calDataId,
Tag calReductionId, string antennaName, ReceiverBandMod::ReceiverBand receiverBand, AntennaMakeMod::AntennaMake antennaMake,
int numObs,
int numCoeff,
ArrayTime startValidTime,
ArrayTime endValidTime,
int numFormula,
Angle azimuthRms,
Angle elevationRms,
Angle skyRms, vector<string > coeffName, vector<float > coeffVal, vector<float > coeffError, vector<bool > coeffFixed, vector<string > coeffFormula, PointingModelModeMod::PointingModelMode pointingModelMode);
00408
00413
CalPointingModelRow *
newRowFull(
Tag calDataId,
Tag calReductionId, string antennaName, ReceiverBandMod::ReceiverBand receiverBand, AntennaMakeMod::AntennaMake antennaMake,
int numObs,
int numCoeff,
ArrayTime startValidTime,
ArrayTime endValidTime,
int numFormula,
Angle azimuthRms,
Angle elevationRms,
Angle skyRms, vector<string > coeffName, vector<float > coeffVal, vector<float > coeffError, vector<bool > coeffFixed, vector<string > coeffFormula, PointingModelModeMod::PointingModelMode pointingModelMode);
00414
00415
00428
CalPointingModelRow *
newRow(
CalPointingModelRow *row);
00429
00434
CalPointingModelRow *
newRowCopy(
CalPointingModelRow *row);
00435
00436
00437
00438
00439
00440
00453
CalPointingModelRow*
add(
CalPointingModelRow* x) ;
00454
00455
00456
00457
00458
00459
00460
00461
00462
00468 vector<CalPointingModelRow *>
get() ;
00469
00470
00471
00472
00473
00489
CalPointingModelRow*
getRowByKey(
Tag calDataId,
Tag calReductionId, string antennaName, ReceiverBandMod::ReceiverBand receiverBand);
00490
00491
00492
00493
00494
00540
CalPointingModelRow*
lookup(
Tag calDataId,
Tag calReductionId, string antennaName, ReceiverBandMod::ReceiverBand receiverBand, AntennaMakeMod::AntennaMake antennaMake,
int numObs,
int numCoeff,
ArrayTime startValidTime,
ArrayTime endValidTime,
int numFormula,
Angle azimuthRms,
Angle elevationRms,
Angle skyRms, vector<string > coeffName, vector<float > coeffVal, vector<float > coeffError, vector<bool > coeffFixed, vector<string > coeffFormula, PointingModelModeMod::PointingModelMode pointingModelMode);
00541
00542
00543
#ifndef WITHOUT_ACS
00544
00550 CalPointingModelTableIDL *
toIDL() ;
00551
#endif
00552
00553
#ifndef WITHOUT_ACS
00554
00560
void fromIDL(CalPointingModelTableIDL x)
throw(
DuplicateKey,
ConversionException);
00561
#endif
00562
00566
char *
toFITS()
const throw(
ConversionException);
00567
00571
void fromFITS(
char *fits)
throw(
ConversionException);
00572
00576 string
toVOTable()
const throw(
ConversionException);
00577
00581
void fromVOTable(string vo)
throw(
ConversionException);
00582
00589 string
toXML()
throw(
ConversionException);
00590
00596
void fromXML(string xmlDoc)
throw(
ConversionException);
00597
00603 string
toMIME();
00604
00611
void setFromMIME(
const string & mimeMsg);
00612
00622
void toFile(string directory);
00623
00632
void setFromFile(
const string& directory);
00633
00634
private:
00635
00644
CalPointingModelTable (
ASDM & container);
00645
00646
ASDM & container;
00647
00648
bool archiveAsBin;
00649
bool fileAsBin ;
00650
00651
Entity entity;
00652
00653
00654
00658
static string tableName;
00659
00660
00664
static vector<string> key;
00665
00666
00672
CalPointingModelRow* checkAndAdd(
CalPointingModelRow* x)
throw (
DuplicateKey);
00673
00674
00675
00676
00677
00678
00679 vector<CalPointingModelRow * > privateRows;
00680
00681
00682
00683 vector<CalPointingModelRow *> row;
00684
00685
00686
void error()
throw(
ConversionException);
00687
00688 };
00689
00690 }
00691
00692
#endif