Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

incl/snifs_structures.h

Go to the documentation of this file.
00001 /* === Doxygen Comment ======================================= */
00039 /* =========================================================== */
00040 
00041 #ifndef _SNIFS_STRUCTURES_H
00042 #define _SNIFS_STRUCTURES_H
00043 
00044 /* ##### INSTRUMENTAL STRUCTURES ############################## */
00045 
00053 typedef enum {
00054 
00055   UNKNOWN_CHANNEL, 
00056   BLUE_CHANNEL, 
00057   RED_CHANNEL, 
00058   NB_CHANNELS 
00059 
00060 } Channel;
00061 
00064 extern char channel_names[NB_CHANNELS][8];
00065 
00066 /* ===== Materials ============================== */
00067 
00070 typedef struct {
00071 
00073   enum { 
00074     BK7,                        
00075     UBK7, 
00076     SF4, 
00077     SK5, 
00078     F2, 
00079     SF57, 
00080     FS,                         
00081     EPR,                        
00082     EPB,                        
00083     NB_MATERIAL                 
00084   } id;
00085   char   name[lg_label+1];      
00086   double *sellcoeffs;           
00087 
00088 } Material;
00089 
00092 extern char material_names[NB_MATERIAL][5];
00093 
00094 /* ===== Previously in IOlib ============================== */
00095 
00098 typedef struct {
00099 
00100   double aperture;              
00101   double central_obscuration;   
00102   float fratio;                 
00103   double scale;                 
00104 
00105 } Telescope;
00106 
00107 /* ===== CameraCollimator ============================== */
00108 
00111 typedef struct {
00112 
00113   double focal;                 
00114   double distor;                
00115 
00117   struct {
00118     double coef[3];             
00119     double lbdaref;             
00120   } LateralColor;
00121 
00122 } CameraCollimator;
00123 
00149 typedef struct {
00150 
00151   int    set;                   
00152   Material prism;               
00153   double A;                     
00154   Material grating;             
00155   double g_per_mm;              
00156   double blaze;                 
00157   double w_disp;                
00158   double tiltx;                 
00159   double tilty;                 
00160   double rotz;                  
00161 
00162 } Grism;
00163 
00164 /* ===== SnifsOptics ============================== */
00165 
00168 typedef struct {
00169 
00170   Channel channel;              
00171 
00173   struct {
00174     double gamma;               
00175   } enlarger;
00176 
00177   CameraCollimator collimator;  
00178   Grism            grism;       
00179   CameraCollimator camera;      
00180 
00182   struct { 
00183     double size;                
00184     double sizepix;             
00185     double angle;               
00186   } MLA; 
00187 
00189   struct { 
00190     double inf_util;            
00191     double sup_util;            
00192     double central_util;        
00193     double width_util;          
00194     double inf_total;           
00195     double sup_total;           
00196     double central_total;       
00197     double width_total;         
00198   } filter;
00199 
00201   struct { 
00202     double xc, yc;
00203   } center;
00204 
00205 } SnifsOptics; 
00206 
00207 /* ===== SnifsDetector ============================== */
00208 
00211 typedef struct { 
00212 
00213   char   name[lg_ident+1];      
00214   float  pixsize;               
00215   double gain;                  
00216   double ron;                   
00217   double dark;                  
00218   int    nx,ny;                 
00219 
00220 } SnifsDetector;
00221 
00222 /* ===== SnifsConfig ============================== */
00223 
00226 typedef struct { 
00227 
00228   char        name[lg_ident+1]; 
00229   SnifsOptics optics;           
00230   Telescope   telescope;        
00231   SnifsDetector ccd;            
00232 
00233 } SnifsConfig;
00234 
00235 /* ===== CorePSF ============================== */
00236 
00239 typedef struct { 
00240 
00241   int nggeo;                    
00242   double *Igeo, *Xgeo, *Sgeo;
00243 
00244   int ngpsf;                    
00245   double **Ipsf, **Spsf;
00246 
00247   int ngloc;                    
00248 
00249   double scale;                 
00250   double norm;                  
00251 
00252 } CorePSF;
00253 
00254 /* ===== SpectrumCCD ============================== */
00255 
00258 typedef struct { 
00259 
00260   int no;
00261   int I,J;                      
00262   float xref, yref;             
00263   struct {
00264     float xlo, ylo;             
00265     float xup, yup;             
00266     float lmin, lmax;           
00267   } useful;
00268   struct {
00269     float xlo, ylo;             
00270     float xup, yup;             
00271     float lmin, lmax;           
00272   } total;
00273   
00274   struct {
00275     int ncoeff;
00276     double *coeff;
00277   } dx, sig;                    
00278   struct {
00279     int ncoeff;
00280     float *coeff; 
00281   } xofy, yofl, lofy;           
00282   
00283   double **Ics, **Scs;          
00284 
00285 } SpectrumCCD;
00286 
00287 /* ##### PLOTTING STRUCTURES ############################## */
00288 
00301 typedef struct {
00302 
00303   float xmin,xmax,ymin,ymax;
00304 
00305 } PlotLimits;
00306 
00309 typedef struct {
00310 
00311   int shape;                    
00312   int size;                     
00313   int color;                    
00314   
00315 } PlotSymbol;
00316 
00319 typedef struct {
00320 
00321   char devname[lg_name+1];      
00322   PlotLimits Limits;            
00323   PlotSymbol Symbol;            
00324   float mincut,maxcut;          
00325 
00326 } Plot;
00327 
00332 #endif /* _SNIFS_STRUCTURES_H */
00333 
00334 /* 
00335 ;;; Local Variables: ***
00336 ;;; eval: (add-to-list 'c-font-lock-extra-types "CameraCollimator") ***
00337 ;;; eval: (add-to-list 'c-font-lock-extra-types "Grism") ***
00338 ;;; eval: (add-to-list 'c-font-lock-extra-types "Material") ***
00339 ;;; eval: (add-to-list 'c-font-lock-extra-types "PlotLimits") ***
00340 ;;; eval: (add-to-list 'c-font-lock-extra-types "PlotSymbol") ***
00341 ;;; eval: (setq comment-column 32) ***
00342 ;;; End: ***
00343 */

Generated on Wed Oct 26 23:59:39 2005 for Snifs by doxygen 1.3.5