| [1365] | 1 | // This may look like C code, but it is really -*- C++ -*- | 
|---|
|  | 2 |  | 
|---|
| [1738] | 3 | // ArchTOIPipe           (C)     CEA/DAPNIA/SPP IN2P3/LAL | 
|---|
|  | 4 | //                               Eric Aubourg | 
|---|
|  | 5 | //                               Christophe Magneville | 
|---|
|  | 6 | //                               Reza Ansari | 
|---|
| [2206] | 7 | // $Id: fitstoirdr.h,v 1.14 2002-10-07 14:23:02 aubourg Exp $ | 
|---|
| [1738] | 8 |  | 
|---|
|  | 9 |  | 
|---|
| [1365] | 10 | #ifndef FITSTOIRDR_H | 
|---|
|  | 11 | #define FITSTOIRDR_H | 
|---|
|  | 12 |  | 
|---|
| [1793] | 13 | #include "config.h" | 
|---|
| [1365] | 14 | #include "toiprocessor.h" | 
|---|
|  | 15 | #include <string> | 
|---|
| [1793] | 16 | #include <vector> | 
|---|
| [1765] | 17 | #include <map> | 
|---|
| [1365] | 18 | #include "fitsio.h" | 
|---|
| [2058] | 19 | #include "flagtoidef.h" | 
|---|
| [1365] | 20 |  | 
|---|
|  | 21 | class FITSTOIReader : public TOIProcessor { | 
|---|
|  | 22 | public: | 
|---|
| [1994] | 23 | FITSTOIReader(string fn,int buff_sz=1024); | 
|---|
| [1365] | 24 | ~FITSTOIReader(); | 
|---|
| [1480] | 25 |  | 
|---|
| [1994] | 26 | void         setImplicitSN(long snStart=0); | 
|---|
| [1725] | 27 |  | 
|---|
| [1994] | 28 | void         setBufferSize(int buffsz=1024); | 
|---|
|  | 29 | inline int   getBufferSize() { return Buff_Sz; } | 
|---|
|  | 30 |  | 
|---|
| [1480] | 31 | virtual void addFile(string fn); | 
|---|
|  | 32 |  | 
|---|
| [2058] | 33 | // Methode rajoutee pour gerer les fichiers de flag de LevelS | 
|---|
|  | 34 | // Reza 18/6/2002 | 
|---|
|  | 35 | // fn : Nom du fichier FITS, | 
|---|
|  | 36 | // flags: Indique le nombre de colonne et la correspondence avec les | 
|---|
|  | 37 | // flags d'ArchTOIPipe flags[0..N-1] ---> 1ere...Neme colonnes | 
|---|
|  | 38 | virtual void setFlagFile(string fn, vector<FlagToiDef> flags); | 
|---|
|  | 39 |  | 
|---|
| [1365] | 40 | virtual void init(); | 
|---|
| [1629] | 41 | virtual void run(); | 
|---|
|  | 42 |  | 
|---|
|  | 43 | inline int_8  ProcessedSampleCount() const { return totnscount; } | 
|---|
| [2187] | 44 | virtual void printLimits(); | 
|---|
| [1365] | 45 |  | 
|---|
|  | 46 | protected: | 
|---|
|  | 47 | virtual int   calcMinOut(); | 
|---|
|  | 48 | virtual int   calcMaxOut(); | 
|---|
| [2187] | 49 |  | 
|---|
|  | 50 | // ajout vf 31/07/2002 | 
|---|
|  | 51 | virtual bool checkSampleLimits(long& min, long& max, int pass); | 
|---|
|  | 52 | virtual void calcSampleLimits(long& min, long& max); | 
|---|
| [2206] | 53 | virtual bool checkSampleLimits(int pass) {return TOIProcessor::checkSampleLimits(pass);} | 
|---|
| [1365] | 54 |  | 
|---|
| [1480] | 55 | virtual void run1(); | 
|---|
| [1717] | 56 | virtual void run2(); | 
|---|
| [1480] | 57 | virtual void openFile(string fn); | 
|---|
|  | 58 |  | 
|---|
| [1365] | 59 | private: | 
|---|
| [1480] | 60 | fitsfile* fptr; | 
|---|
|  | 61 | int       fstatus; | 
|---|
|  | 62 | string    fname;   // current file | 
|---|
|  | 63 | long      nrows;   // current file | 
|---|
|  | 64 | int       firstSn; // current file | 
|---|
| [1717] | 65 | int       Buff_Sz; // buffer size | 
|---|
| [1480] | 66 |  | 
|---|
| [1527] | 67 | int       ncols;   // including flags. getNOut() is # of tois. | 
|---|
| [2187] | 68 |  | 
|---|
|  | 69 | // supression de la redefinition vf 23/08/2002 | 
|---|
|  | 70 | //int       snBegin; // first file | 
|---|
|  | 71 | //int       snEnd;   // last file | 
|---|
| [1725] | 72 |  | 
|---|
|  | 73 | bool      implicitSN; | 
|---|
| [1994] | 74 | long      implicitSNStart; | 
|---|
| [1480] | 75 |  | 
|---|
|  | 76 | vector<string> allfn; | 
|---|
| [1527] | 77 | map<int,pair<int, bool> > colsinput; // iTOI -> (colonne, hasflag) | 
|---|
|  | 78 | // le flag est alors en colonne+1 | 
|---|
| [1480] | 79 |  | 
|---|
| [1629] | 80 | int_8 totnscount;   // Nombre total d'echantillon processe | 
|---|
|  | 81 |  | 
|---|
| [2058] | 82 | // Variables rajoutee pour gerer les fichiers de flag de LevelS (Reza 18/6/2002) | 
|---|
|  | 83 | bool sepFlagfile; | 
|---|
|  | 84 | string sepFlagFileName; | 
|---|
|  | 85 | vector<FlagToiDef> sepFlagCols; | 
|---|
|  | 86 | fitsfile* fptrflg; | 
|---|
|  | 87 |  | 
|---|
| [1365] | 88 | }; | 
|---|
|  | 89 |  | 
|---|
|  | 90 | #endif | 
|---|