Changeset 1516 in Sophya for trunk/ArchTOIPipe/ProcWSophya/toi2map.cc
- Timestamp:
- Jun 12, 2001, 6:00:35 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ArchTOIPipe/ProcWSophya/toi2map.cc
r1498 r1516 4 4 #include "ctimer.h" 5 5 #include "toi2map.h" 6 #include "xastropack.h"7 6 8 7 //////////////////////////////////////////////////////////////////////// 9 8 TOI2Map::TOI2Map(SphereHEALPix<r_8>* sph,SphereHEALPix<r_8>* wsph) 10 : mSph(sph), mWSph(wsph), mWSphInternal(false) , mTypCoor(false), fTypCoor(false), mActualYear(2001.)9 : mSph(sph), mWSph(wsph), mWSphInternal(false) 11 10 { 11 SetEquinox(); 12 SetCoorIn(); 13 SetCoorOut(); 14 12 15 if(mSph->NbPixels()<1) { 13 16 cout<<"TOI2Map::TOI2Map() Bad number of pixels in sphere mSph " … … 44 47 declareInput("Coord1In"); // input index 0 45 48 declareInput("Coord2In"); // input index 1 46 declareInput("BoloIn"); // input index 249 declareInput("BoloIn"); // input index 2 47 50 } 48 51 … … 61 64 throw ParmError("TOI2Map::run() Output TOI (Coord1In or Coord2In or BoloIn) not connected!"); 62 65 } 66 if( !(mTypCoorIn&TypCoordEq || mTypCoorIn&TypCoordGal) ) { 67 cout<<"TOI2Map::run() - Input Coordinates not Eq or Gal! "<<endl; 68 throw ParmError("TOI2Map::run() - Input Coordinates not Eq or Gal!"); 69 } 70 if( !(mTypCoorOut&TypCoordEq || mTypCoorOut&TypCoordGal) ) { 71 cout<<"TOI2Map::run() - Output Coordinates not Eq or Gal! "<<endl; 72 throw ParmError("TOI2Map::run() - Output Coordinates not Eq or Gal!"); 73 } 63 74 64 75 //--------------------------------------------------------- … … 69 80 uint_4 mNSnFill=0, mNpixFill=0, NFill[NFILL]; 70 81 for(ii=0;ii<NFILL;ii++) NFill[ii]=0; 82 double mjd = MJDfrYear(mActualYear); 71 83 72 84 // Remplissage des spheres 73 85 for(int s=snb;s<=sne;s++) { 74 int_8 fgbolo = 0; 86 int_8 fgbolo = 0; 75 87 double bolo; 88 // Equatoriales / Galactiques 89 // coord1,2 = alpha,delta / gLon,gLat 90 double coord1 = getData(0,s); 91 double coord2 = getData(1,s); 76 92 77 double coord1 = getData(0,s); // gLat ou delta entre [-90,90] en degres78 double coord2 = getData(1,s); // gLon entre [0,360[ en degres ou alpha entre [0,24[ en heures79 93 getData(2,s,bolo,fgbolo); 94 if(bolo<-32767.) continue; // Bidouille (A CORRIGER QUAND FGBOLO DISPO) 80 95 81 if(coord2<-90. || coord2>90.) fgbolo=1; 82 if((coord1<0.) || (!mTypCoor && coord1>=24.) || (mTypCoor && coord1>=360.) ) {fgbolo=1; 83 cout << "!!!!!!!!" <<coord1 << endl; 96 // sphere phi entre [0,2*Pi] en radians 97 // sphere theta entre [0,Pi] en radians 98 double phi,theta; 99 CoordConvertToStd(mTypCoorIn,coord1,coord2); 100 if(mTypCoorIn&TypCoordEq && mTypCoorOut&TypCoordGal) { // Eq -> Gal 101 EqtoGal(mjd,coord1,coord2,&coord1,&coord2); 102 phi = coord1 * M_PI/180.; 103 } else if(mTypCoorIn&TypCoordGal && mTypCoorOut&TypCoordEq) { // Gal -> Eq 104 GaltoEq(mjd,coord1,coord2,&coord1,&coord2); 105 phi = coord1 * M_PI/12.; 106 } else if(mTypCoorOut&TypCoordGal) { // Gal -> Gal 107 phi = coord1 * M_PI/180.; 108 } else if(mTypCoorOut&TypCoordEq) { // Eq -> Eq 109 phi = coord1 * M_PI/12.; 84 110 } 85 86 87 88 if(bolo<-32767.) fgbolo=1; // Bidouille Archeops 89 90 if(!fgbolo) { 91 // sphere phi entre [0,2*Pi] en radians 92 // sphere phi entre [0,2*Pi] en radians 93 // sphere theta entre [0,Pi] en radians 94 double phi,theta; 95 if(fTypCoor && !mTypCoor) { //on a alpha,delta et on veut l,b 96 double mjd = MJDfrYear(mActualYear); 97 EqtoGal(mjd,coord1,coord2,&coord1,&coord2); 98 } 111 theta = (90.-coord2) * M_PI/180.; 112 if(phi<0. || phi>=2*M_PI) continue; 113 if(theta<0. || theta>=M_PI) continue; 99 114 100 if(!fTypCoor && mTypCoor) { //on a l,b et on veut alpha,delta 101 double mjd = MJDfrYear(mActualYear); 102 GaltoEq(mjd,coord1,coord2,&coord1,&coord2); 103 } 104 105 if(fTypCoor) phi = coord1 * M_PI/180.; 106 else phi = coord1 * M_PI/12.; 107 108 theta = (90.-coord2)*M_PI/180.; 109 110 int_4 ipix = mSph->PixIndexSph(theta,phi); 111 (*mSph)(ipix) += bolo; 112 ((*mWSph)(ipix))++; 113 mNSnFill++; 114 } 115 int_4 ipix = mSph->PixIndexSph(theta,phi); 116 (*mSph)(ipix) += bolo; 117 ((*mWSph)(ipix))++; 118 mNSnFill++; 115 119 } 116 120 … … 129 133 <<" mNpixFill="<<mNpixFill 130 134 <<" mNSnFill="<<mNSnFill<<endl 131 <<" --> FracSky="<<mNpixFill*100./(double)mSph->NbPixels()<<"%"<<endl132 <<" NFill["<<NFILL<<"] ="<<endl;133 for(ii=0;ii<NFILL;ii++) cout<<NFill[ii]<<" ";135 <<" --> FracSky="<<mNpixFill*100./(double)mSph->NbPixels()<<"%" 136 <<" NFill["<<NFILL<<"] ="<<endl; 137 for(ii=0;ii<NFILL;ii++) {cout<<NFill[ii]<<" "; if(ii%10==9) cout<<endl;} 134 138 cout<<endl; 135 139
Note:
See TracChangeset
for help on using the changeset viewer.