00001 00002 /******************************************************************************* 00003 * M3: M3_format_LevelS.h * 00004 * * 00005 * Version 2.0 April 2007 * 00006 * * 00007 * Copyright (C) 2004 C.M. Cantalupo * 00008 * * 00009 * This program is free software; you can redistribute it and/or modify * 00010 * it under the terms of the GNU General Public License as published by * 00011 * the Free Software Foundation; either version 2 of the License, or * 00012 * (at your option) any later version. * 00013 * * 00014 * This program is distributed in the hope that it will be useful, * 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00017 * GNU General Public License for more details. * 00018 * * 00019 * You should have received a copy of the GNU General Public License * 00020 * along with this program; if not, write to the Free Software * 00021 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * 00022 * * 00023 *******************************************************************************/ 00024 00025 #ifndef _H_M3_format_LevelS 00026 #define _H_M3_format_LevelS 00027 00028 #include <M3.h> 00029 #include <ccFitsTools.h> 00030 00031 typedef struct 00032 { 00033 char rotateDirection[128]; /* String specifying two frames to rotate pointing coordinates between */ 00034 char rotateEquinox[128]; /* String specifying the equinox for rotating pointing coordinates */ 00035 char detectorID[128]; /* Detector ID to be matched with focal plane database for noise filter parameters. */ 00036 double psiPol; /* Polarization angle for a detector given for full pointing (psi angle in file needs to be rotated) */ 00037 int64_t firstSample; /* First sample for a noise filter for tod and pointing files first sample which overrides what is given in the header for in header */ 00038 int64_t lastSample; /* Last sample for a noise filter */ 00039 int64_t corLength; /* The corelation length for a noise filter */ 00040 int nside; /* Specifies the nside of the pointing data output. */ 00041 int numPeriod; /* Specifies the number of pointing periods stored in a tod or full pointing file */ 00042 int simmission2006; /* Boolean expression specifying if a simmission file has the format that was introduced in 2006 */ 00043 int header2007; /* Boolean expression specifying if the fits header contains keys in the format specified in LevelS by 2007 */ 00044 int template; /* Boolean expression specifying if a pointing file is a time stream template to be used as weights with pixel index 0 */ 00045 int pixelType; /* One of the M3 pixel types ( M3_DEFAULT_PIXEL_TYPE, M3_CMB_I_PIXEL_TYPE, M3_CMB_Q_PIXEL_TYPE, M3_CMB_U_PIXEL_TYPE ) */ 00046 int LFI; /* Determines if a tod file is in LFI format (5 columns). */ 00047 char pixelScheme; /* One of two values (r, n) for ring or nested pixel ordering in the healpix pixelation for pointing data output */ 00048 char spinAxis; /* Determines the spin axis convention for simmission files (x or z). */ 00049 } M3_FormatStruct_LevelS; 00050 00051 void M3_File_parseFormatString_LevelS( M3_File *theFile, M3_FormatStruct_LevelS *formatStruct ); 00052 00053 void M3_File_readHeader_LevelS( M3_File *theFile, void *data ); 00054 void M3_File_readData_LevelS( M3_File *theFile, void *readArg, void *data ); 00055 00056 void M3_File_readHeader_LevelS_tod( M3_File *theFile, M3_TODheader *data ); 00057 void M3_File_readHeader_LevelS_pointing( M3_File *theFile, M3_PointingHeader *data ); 00058 void M3_File_readHeader_LevelS_gcpointing( M3_File *theFile, M3_GCPointingHeader *data ); 00059 void M3_File_readHeader_LevelS_aux( M3_File *theFile, M3_AuxHeader *data ); 00060 void M3_File_readHeader_LevelS_noise( M3_File *theFile, M3_NoiseHeader *data ); 00061 00062 00063 void M3_File_readData_LevelS_tod( M3_File *theFile, M3_Interval *readInterval, double *data ); 00064 void M3_File_readData_LevelS_pointing( M3_File *theFile, M3_Interval *readInterval, M3_PointingEl *data ); 00065 void M3_File_readData_LevelS_gcpointing( M3_File *theFile, M3_Interval *readInterval, double *data ); 00066 void M3_File_readData_LevelS_aux( M3_File *theFile, M3_planckAux *data ); 00067 void M3_File_readData_LevelS_noise( M3_File *theFile, double *data ); 00068 00069 #endif
1.5.3-20071008