| 1 | // gondolageom.h
 | 
|---|
| 2 | // Eric Aubourg         CEA/DAPNIA/SPP   octobre 1999
 | 
|---|
| 3 | 
 | 
|---|
| 4 | #ifndef GONDOLAGEOM_H
 | 
|---|
| 5 | #define GONDOLAGEOM_H
 | 
|---|
| 6 | 
 | 
|---|
| 7 | #include "polfitclip.h"
 | 
|---|
| 8 | 
 | 
|---|
| 9 | class GondolaGeom {
 | 
|---|
| 10 | public:
 | 
|---|
| 11 |   GondolaGeom();
 | 
|---|
| 12 |   
 | 
|---|
| 13 |   void setEarthPos(double lon, double lat);
 | 
|---|
| 14 |   void setTSid(double ts);
 | 
|---|
| 15 |   void setPendulation(double azimuth, double ampl);
 | 
|---|
| 16 |   
 | 
|---|
| 17 |   // Set orientation through SST
 | 
|---|
| 18 |   void addStar(double deltasn, double az, double elv, double diod);
 | 
|---|
| 19 |   int solveStars();
 | 
|---|
| 20 |   
 | 
|---|
| 21 |   void getPointing(double elv, double az, double& trueElv, double& trueAz);
 | 
|---|
| 22 |   void getSkyPointing(double elv, double az, double& ra, double& dec);
 | 
|---|
| 23 |   
 | 
|---|
| 24 |   double getAzimutBolo(int ibolo); // ibolo, comme dans les TOI
 | 
|---|
| 25 |   double getElvBolo(int ibolo);
 | 
|---|
| 26 |   double getAlphaBolo(int ibolo);
 | 
|---|
| 27 |   double getDeltaBolo(int ibolo);
 | 
|---|
| 28 |   double getAzimutCenter();
 | 
|---|
| 29 |   double getElvCenter();
 | 
|---|
| 30 |   double getAlphaCenter();
 | 
|---|
| 31 |   double getDeltaCenter();
 | 
|---|
| 32 |   double getAzimutSST(); // diode 0
 | 
|---|
| 33 |   double getElvSST();
 | 
|---|
| 34 |   double getAlphaSST();
 | 
|---|
| 35 |   double getDeltaSST();
 | 
|---|
| 36 |   double getAzimutAxis();
 | 
|---|
| 37 |   double getElvAxis();
 | 
|---|
| 38 |   double getAlphaAxis();
 | 
|---|
| 39 |   double getDeltaAxis();
 | 
|---|
| 40 | 
 | 
|---|
| 41 | 
 | 
|---|
| 42 | // Geometry, "elevation" means if gondola is vertical
 | 
|---|
| 43 |   static double elevFPC;    // degrees
 | 
|---|
| 44 |   static double azFPC;      // degrees, relative to SST alignment
 | 
|---|
| 45 |   static double elevSST0;   // degrees
 | 
|---|
| 46 |   static double sstPixelHeight;  // degrees
 | 
|---|
| 47 |   
 | 
|---|
| 48 |   static void getAltAzBolo(int ibolo, double& elv, double& az); // pure geom, 
 | 
|---|
| 49 |      // azimuth relative to SST.
 | 
|---|
| 50 |   
 | 
|---|
| 51 | protected:
 | 
|---|
| 52 | 
 | 
|---|
| 53 |   double lon; // degrees  +=EST
 | 
|---|
| 54 |   double lat; // degrees  +=NORD
 | 
|---|
| 55 |   double ts;  // secondes 
 | 
|---|
| 56 |   
 | 
|---|
| 57 |   double azPend;
 | 
|---|
| 58 |   double angPend;
 | 
|---|
| 59 |   
 | 
|---|
| 60 |   double azimut; // horizontal, for SST
 | 
|---|
| 61 |   
 | 
|---|
| 62 |   long nstars;
 | 
|---|
| 63 |   double az0;
 | 
|---|
| 64 |   
 | 
|---|
| 65 |   PolFitClip fit;
 | 
|---|
| 66 | };
 | 
|---|
| 67 | 
 | 
|---|
| 68 | 
 | 
|---|
| 69 | 
 | 
|---|
| 70 | #endif
 | 
|---|