Ignore:
Timestamp:
Jun 1, 2006, 4:35:47 PM (19 years ago)
Author:
ansari
Message:

petites corrections + doc(xygen) / Protection Resize() ds SphereHEALPix et SphereThetaPhi - Reza 1/06/2006

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/SkyMap/spherethetaphi.h

    r2433 r2960  
    2121
    2222// ***************** Class SphereThetaPhi *****************************
    23 /*!    sphere splitted with respect to theta, phi : each hemisphere is
    24     splitted into (m-1) parallels (equator does not enter into account).
    25    This operation defines m slices, each of which is splitted into
    26     equidistant meridians. This splitting is realized in such a way that
    27     all pixels have the same area and are as square as possible.
    28 
    29     One begins with the hemisphere with positive z, starting from the pole
    30     toward the equator. The first pixel is the polar cap ; it is circular
    31     and centered on theta=0.
    32 */
    3323template <class T>
    3424class SphereThetaPhi : public SphericalMap<T>
     
    3828
    3929SphereThetaPhi();
    40 /*!    m is the number of slices in theta on an hemisphere (the polar cap
    41    forms the first slice).
    42     pet is a dummy parameter at the moment.
    43 */
    4430SphereThetaPhi(int_4 m);
    4531SphereThetaPhi(const SphereThetaPhi<T>& s, bool share);
     
    6854
    6955/* retourne le nombre de pixels */
    70 /*!    Return total number of pixels  */
    7156virtual int_4 NbPixels() const;
    7257
    7358/* retourne la valeur du pixel d'indice k */
    74 /*!    Return value of pixel with index k */
    7559virtual T&       PixVal(int_4 k);
    7660virtual T const& PixVal(int_4 k) const;
     
    8367
    8468/* retourne les coordonnees Spheriques du centre du pixel d'indice k */
    85 /*!   Return (theta,phi) coordinates of middle of  pixel with  index k */
    8669virtual void PixThetaPhi(int_4 k, double& theta, double& phi) const;
    8770
    88 /*! Setting pixel values to a constant */
     71/* Setting pixel values to a constant */
    8972virtual T SetPixels(T v);
    9073
    9174/* retourne/fixe l'angle Solide de Pixel   (steradians) */
    92 /*!   Pixel Solid angle  (steradians)
    93 
    94     All the pixels have the same solid angle. The dummy argument is
    95    for compatibility with eventual pixelizations which would not
    96     fulfil this requirement.
    97 */
    9875virtual double PixSolAngle(int_4 dummy=0) const;
    9976 
    10077/* retourne/fixe la valeur du parametre de decoupage m */
     78//! Return the pixelisation parameter (number of slices in a hemisphere)
    10179inline virtual int_4 SizeIndex() const { return( NTheta_); }
    10280
    10381/*  Acces to the DataBlock  */
     82//! Acces to the pixel data NDataBlock<T> object
    10483inline       NDataBlock<T>& DataBlock()       {return pixels_;}
     84//! Acces to the pixel data NDataBlock<T> object (const version)
    10585inline const NDataBlock<T>& DataBlock() const {return pixels_;}
    10686
    10787// ------------- Specific methods  ----------------------
    10888
    109 /*!   re-pixelize the sphere */
    11089virtual void Resize(int_4 m);
    11190
     
    11796
    11897/* Nombre de tranches en theta */
    119 /*!    Return number of theta-slices on the sphere */
     98/*    Return number of theta-slices on the sphere */
    12099uint_4 NbThetaSlices() const;
    121100
     
    125104/* Renvoie dans t1,t2 les valeurs respectives de theta min et theta max  */
    126105/* de la tranche d'indice kt  */
    127 /*!    Return  theta values which limit the slice kt */
    128106void Theta(int_4 kt, double& t1, double& t2);
    129107
    130108/* Renvoie dans p1,p2 les valeurs phimin et phimax du pixel d'indice jp  */
    131109/* dans la tranche d'indice kt  */
    132 /*!   Return values of phi which limit the jp-th pixel of the kt-th slice */
    133110void Phi(int_4 kt, int_4 jp, double& p1, double& p2);
    134111
     
    138115
    139116/* Indice kt de la tranche et indice jp du pixel d'indice k  */
    140 /*!    Return indices kt (theta) and jp (phi) of  pixel with index k */
    141117void ThetaPhiIndex(int_4 k,int_4& kt,int_4& jp);
    142118
    143 /*!    achieve the splitting into pixels (m has the same signification
    144     as for the constructor)
    145 
    146     Each theta-slice of the north hemisphere will be spitted starting f
    147     from  phi=0 ...
    148 
    149     South hemisphere is scanned in the same direction according to phi
    150     and from equator to the pole (the pixel following the last one of
    151     the slice closest to the equator with z>0, is the pixel with lowest
    152     phi of the slice closest of the equator with z<0).
    153 */
    154119void Pixelize(int_4);
    155120
    156 /*!   For a theta-slice with index 'index', return :
    157 
    158    the corresponding "theta"
    159 
    160     a vector containing the phi's of the pixels of the slice
    161 
    162     a vector containing the corresponding values of pixels
    163 */
    164121virtual void GetThetaSlice(int_4 index,r_8& theta,TVector<r_8>& phi,TVector<T>& value) const;
    165 
    166 /*!   For a theta-slice with index 'index', return :
    167 
    168    the corresponding "theta"
    169 
    170    the corresponding "phi" for first pixel of the slice
    171 
    172     a vector containing indices of the pixels of the slice
    173 
    174    (equally distributed in phi)
    175 
    176     a vector containing the corresponding values of pixels
    177 */
    178122virtual void GetThetaSlice(int_4 index, r_8& theta, r_8& phi0,TVector<int_4>& pixelIndices, TVector<T>& value) const ;
    179123
    180124
    181 /* impression */
     125//! ASCII dump (print) of the pixel map
    182126void print(ostream& os) const;
    183127
     
    331275inline SphereThetaPhi<T> operator - (const SphereThetaPhi<T>& a,const SphereThetaPhi<T>& b)
    332276    { SphereThetaPhi<T> result; result.SetTemp(true);
    333     if (b.IsTemp())  { result.Share(b); result.SubElt(a, true); }
    334     else { result.CloneOrShare(a); result.SubElt(b); }
     277    result.CloneOrShare(a); result.SubElt(b);
    335278    return result; }
    336279
Note: See TracChangeset for help on using the changeset viewer.