#include #include "unitvector.h" #include "lightptsrclevsinband.h" LightPtSrcLevSInBand::LightPtSrcLevSInBand(char FileOfPtSrc[]) { // le fichier de pointsource ordonnŽ en Theta sprintf(Name, "Sources Ponctuelles du Level S"); readLevSPtSrc(FileOfPtSrc); } void LightPtSrcLevSInBand::readLevSPtSrc(char PtSrcfile[]) { char Line[200]; double theta, phi; float f30, f44, f70, f100, f143, f217, f352, f545, f857; LevSPtSrcData UneSource; UnitVector UnCoord; ifstream HFI(PtSrcfile); if (!HFI) { cout<< "Erreur a l'ouverture du fichier de donnees :"<>theta; HFI>>phi; HFI>>f30; HFI>>f44; HFI>>f70; HFI>>f100; HFI>>f143; HFI>>f217; HFI>>f352; HFI>>f545; HFI>>f857; compteur++; if(HFI.fail()) { HFI.clear(); HFI.getline(Line, 199); if(HFI.eof()) // Fin de lecture du fichier { cerr<< "Fin de lecture du fichier: "<UneValeur=make_pair(UnCoord, UneSource); MapOfPtSrc.insert(MapOfPtSrc.end(),UneValeur); compteur2++; } } cerr<< compteur<<'\t'< Sphere(128); multimap ::iterator iter; multimap ::iterator iterBegin=MapOfPtSrc.begin(); multimap ::iterator iterEnd=MapOfPtSrc.end(); long indexSphere; double theta; double phi; double power; for(iter=iterBegin; !(iter==iterEnd); iter++) { theta=(*iter).first.Theta(); phi=(*iter).first.Phi(); power=(*iter).second.getPower(band); indexSphere=Sphere.PixIndexSph(theta,phi); Sphere(indexSphere) += power; } FITS_SphereHEALPix FSphere(Sphere); FSphere.Mollweide_picture_projection("SkyOfPtSrcInBandMollweide.fits"); return; }