source: Sophya/trunk/ArchTOIPipe/Kernel/fitstoirdr.h@ 2071

Last change on this file since 2071 was 2058, checked in by ansari, 23 years ago

Ajout methode FITSTOIReader::setFlagFile() pour fichiers flag separes
de Level2 - Reza 18/6/2002

File size: 2.1 KB
Line 
1// This may look like C code, but it is really -*- C++ -*-
2
3// ArchTOIPipe (C) CEA/DAPNIA/SPP IN2P3/LAL
4// Eric Aubourg
5// Christophe Magneville
6// Reza Ansari
7// $Id: fitstoirdr.h,v 1.12 2002-06-18 12:21:08 ansari Exp $
8
9
10#ifndef FITSTOIRDR_H
11#define FITSTOIRDR_H
12
13#include "config.h"
14#include "toiprocessor.h"
15#include <string>
16#include <vector>
17#include <map>
18#include "fitsio.h"
19#include "flagtoidef.h"
20
21class FITSTOIReader : public TOIProcessor {
22public:
23 FITSTOIReader(string fn,int buff_sz=1024);
24 ~FITSTOIReader();
25
26 void setImplicitSN(long snStart=0);
27
28 void setBufferSize(int buffsz=1024);
29 inline int getBufferSize() { return Buff_Sz; }
30
31 virtual void addFile(string fn);
32
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
40 virtual void init();
41 virtual void run();
42
43 inline int_8 ProcessedSampleCount() const { return totnscount; }
44
45protected:
46 virtual int calcMinOut();
47 virtual int calcMaxOut();
48
49 virtual void run1();
50 virtual void run2();
51 virtual void openFile(string fn);
52
53private:
54 fitsfile* fptr;
55 int fstatus;
56 string fname; // current file
57 long nrows; // current file
58 int firstSn; // current file
59 int Buff_Sz; // buffer size
60
61 int ncols; // including flags. getNOut() is # of tois.
62 int snBegin; // first file
63 int snEnd; // last file
64
65 bool implicitSN;
66 long implicitSNStart;
67
68 vector<string> allfn;
69 map<int,pair<int, bool> > colsinput; // iTOI -> (colonne, hasflag)
70 // le flag est alors en colonne+1
71
72 int_8 totnscount; // Nombre total d'echantillon processe
73
74 // Variables rajoutee pour gerer les fichiers de flag de LevelS (Reza 18/6/2002)
75 bool sepFlagfile;
76 string sepFlagFileName;
77 vector<FlagToiDef> sepFlagCols;
78 fitsfile* fptrflg;
79
80};
81
82#endif
Note: See TracBrowser for help on using the repository browser.