M3_format_LevelS.h

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

Generated on Mon Nov 24 10:05:12 2008 for M3 by  doxygen 1.5.3-20071008