| 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: map2toi.h,v 1.8 2002-05-31 15:44:55 ansari Exp $
 | 
|---|
| 8 | 
 | 
|---|
| 9 | #ifndef MAP2TOI_H
 | 
|---|
| 10 | #define MAP2TOI_H
 | 
|---|
| 11 | 
 | 
|---|
| 12 | #include "toiprocessor.h"
 | 
|---|
| 13 | #include "spherehealpix.h"
 | 
|---|
| 14 | #include "flagtoidef.h"
 | 
|---|
| 15 | #include "xastropack.h"
 | 
|---|
| 16 | 
 | 
|---|
| 17 | //-- Un generateur de TOI a partir d'une sphere et de 2 TOIs coordin1,coordin2
 | 
|---|
| 18 | // Lecture de 2 TOI coord1,coord2 et d'une Sphere Healpix
 | 
|---|
| 19 | // Sortie de 3 TOI coord1,coord2,boloMuV
 | 
|---|
| 20 | //
 | 
|---|
| 21 | // Structure generale :
 | 
|---|
| 22 | //             Sphere ---- |
 | 
|---|
| 23 | //                         |
 | 
|---|
| 24 | //                     -----------
 | 
|---|
| 25 | //   toi CoordIn1 ---> |         | ---> toi CoordOut1
 | 
|---|
| 26 | //                     | Map2TOI | ---> toi CoordOut2
 | 
|---|
| 27 | //   toi CoordIn2 ---> |         | ---> toi BoloOut
 | 
|---|
| 28 | //                     -----------
 | 
|---|
| 29 | // Gestion du type de coordonnees :
 | 
|---|
| 30 | // Coord1In,Coord2In : soit Equatoriales (Alpha,Delta)
 | 
|---|
| 31 | //                     soit Galactiques  (GLong,GLat)
 | 
|---|
| 32 | // La sphere peut avoir des coordonnees differentes des CoordIn
 | 
|---|
| 33 | // Si les CoordIn et les CoordSphere sont equatoriales -> meme equinoxe!
 | 
|---|
| 34 | // La sortie CoordOut aura les MEMES coordonnees que les CoordIn
 | 
|---|
| 35 | 
 | 
|---|
| 36 | class Map2TOI : public TOIProcessor {
 | 
|---|
| 37 | public:
 | 
|---|
| 38 |                  Map2TOI(SphereHEALPix<r_8>& sph);
 | 
|---|
| 39 |   virtual       ~Map2TOI();
 | 
|---|
| 40 | 
 | 
|---|
| 41 |   virtual void  init(void);
 | 
|---|
| 42 |   virtual void  run(void);
 | 
|---|
| 43 | 
 | 
|---|
| 44 |   // Flag pour les mauvais samples
 | 
|---|
| 45 |   inline void SetBad(unsigned long long flg=FlgToiOut)
 | 
|---|
| 46 |                     {mBadFlag = flg;}
 | 
|---|
| 47 | 
 | 
|---|
| 48 |   // Pour definir la partie astrometrie
 | 
|---|
| 49 |   inline void SetEquinox(double actualyear=2000.)
 | 
|---|
| 50 |               {mActualYear = actualyear;}
 | 
|---|
| 51 | 
 | 
|---|
| 52 |   inline void SetCoorIn(unsigned long mfg=TypCoordGalStd)
 | 
|---|
| 53 |               {mTypCoorIn = mfg;}
 | 
|---|
| 54 |   inline void SetCoorIn(char const *ctype)
 | 
|---|
| 55 |               {mTypCoorIn = DecodeTypAstro(ctype);}
 | 
|---|
| 56 | 
 | 
|---|
| 57 |   inline void SetCoorMap(unsigned long mfg=TypCoordGal)
 | 
|---|
| 58 |               {mTypCoorMap = mfg;}
 | 
|---|
| 59 |   inline void SetCoorMap(char const *ctype)
 | 
|---|
| 60 |               {mTypCoorMap = DecodeTypAstro(ctype);}
 | 
|---|
| 61 | 
 | 
|---|
| 62 |   // Print
 | 
|---|
| 63 |   void Print(::ostream & os);
 | 
|---|
| 64 |   inline int_8  ProcessedSampleCount() const { return totnscount; }
 | 
|---|
| 65 | 
 | 
|---|
| 66 | protected:
 | 
|---|
| 67 |   SphereHEALPix<r_8>& mSph;
 | 
|---|
| 68 |   unsigned long mTypCoorIn,mTypCoorMap;
 | 
|---|
| 69 |   unsigned long long mBadFlag;
 | 
|---|
| 70 |   double mActualYear;
 | 
|---|
| 71 | 
 | 
|---|
| 72 |   int_8 totnscount;   // Nombre total d'echantillon processe
 | 
|---|
| 73 | };
 | 
|---|
| 74 | 
 | 
|---|
| 75 | #endif
 | 
|---|