Changeset 914 in Sophya for trunk/SophyaLib/HiStats/histos2.h


Ignore:
Timestamp:
Apr 13, 2000, 6:04:50 PM (25 years ago)
Author:
ansari
Message:

documentation cmv 13/4/00

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/histos2.h

    r763 r914  
    2222class GeneralFit;
    2323
     24
     25/*!
     26  Classe d'histogrammes 2D
     27  \verbatim
     28    Remarque sur les indices:
     29     H(i,j)   -> i  = coord x (0<i<nx),     j  = coord y (0<j<ny)
     30     v(ii,jj) -> ii = ligne (0<i<NRows()),  jj = colonne (0<i<NCol())
     31     On fait une correspondance directe i<->ii et j<->jj
     32     ce qui, en representation classique des histos2D et des matrices
     33     entraine une inversion x<->y cad une symetrie / diagonale principale
     34     H(0,...)  represente ^         mais v(0,...) represente
     35                          |x.......               |xxxxxxxx|
     36                          |x.......               |........|
     37                          |x.......               |........|
     38                          |x.......               |........|
     39                          |x.......               |........|
     40                          --------->
     41                          colonne no 1            ligne no 1
     42  \endverbatim
     43*/
    2444class Histo2D : public AnyDataObj {
    2545  friend class ObjFileIO<Histo2D>;
     
    7595
    7696  // INLINES
     97  //! Retourne l'abscisse minimum.
    7798  inline float   XMin() const {return xmin;}
     99  //! Retourne l'abscisse maximum.
    78100  inline float   XMax() const {return xmax;}
     101  //! Retourne l'ordonnee minimum.
    79102  inline float   YMin() const {return ymin;}
     103  //! Retourne l'ordonnee maximum.
    80104  inline float   YMax() const {return ymax;}
     105  //! Retourne le nombre de bins selon X.
    81106  inline int_4   NBinX() const {return nx;}
     107  //! Retourne le nombre de bins selon Y.
    82108  inline int_4   NBinY() const {return ny;}
     109  //! Retourne la largeur du bin selon X.
    83110  inline float   WBinX() const {return wbinx;}
     111  //! Retourne la largeur du bin selon Y.
    84112  inline float   WBinY() const {return wbiny;}
     113  //! Retourne le pointeur sur le tableaux des contenus.
    85114  inline float*  Bins() const  {return data;}
     115  //! Retourne le contenu du bin i,j.
    86116  inline float   operator()(int i,int j) const {return data[j*nx+i];}
     117  //! Remplit le contenu du bin i,j.
    87118  inline float&  operator()(int i,int j)       {return data[j*nx+i];}
     119  //! retourne "true" si il y a des erreurs stoquees
    88120  inline bool    HasErrors() { if(err2) return true; else return false;}
     121  //! Retourne l'erreur du bin i,j.
    89122  inline float   Error(int i,int j)  const
    90123                   {if(err2)
    91124                      {if(err2[j*nx+i]>0.) return sqrt(err2[j*nx+i]); else return 0.;}
    92125                    else return 0.;}
     126  //! Remplit l'erreur au carre du bin i,j.
    93127  inline double  Error2(int i,int j) const
    94128                   {if(err2) return err2[j*nx+i]; else return 0.;}
     129  //! Remplit l'erreur au carre du bin i,j.
    95130  inline double& Error2(int i,int j) {return err2[j*nx+i];}
     131  //! Retourne la somme ponderee.
    96132  inline float   NData() const    {return (float) nHist;}
     133  //! Retourne le nombre d'entrees.
    97134  inline int_4   NEntries() const {return nEntries;}
     135  //! Retourne l'abscisse et l'ordonnee du coin inferieur du bin i,j.
    98136  inline void BinLowEdge(int i,int j,float& x,float& y)
    99137                 {x = xmin + i*wbinx; y = ymin + j*wbiny;}
     138  //! Retourne l'abscisse et l'ordonnee du centre du bin i,j.
    100139  inline void BinCenter(int i,int j,float& x,float& y)
    101140                 {x = xmin + (i+0.5)*wbinx; y = ymin + (j+0.5)*wbiny;}
     141  //! Retourne l'abscisse et l'ordonnee du coin superieur du bin i,j.
    102142  inline void BinHighEdge(int i,int j,float& x,float& y)
    103143                 {x = xmin + (i+1)*wbinx; y = ymin + (j+1)*wbiny;}
     144  //! Retourne les numeros du bin contenant l'abscisse et l'ordonnee x,y.
    104145  inline void FindBin(float x,float y,int& i,int& j)
    105146    { i = (int) floorf((x - xmin)/wbinx); j = (int) floorf((y - ymin)/wbiny);}
     
    139180  void           ZeroProjY();
    140181  void           ZeroProj();
     182  //! Retourne le pointeur sur l'histo 1D de la projection selon X.
    141183  inline Histo*  HProjX() const {return hprojx;}
     184  //! Retourne le pointeur sur l'histo 1D de la projection selon Y.
    142185  inline Histo*  HProjY() const {return hprojy;}
    143186  void           ShowProj();
    144187
    145188  // BANDES
     189  //! Retourne le nombre de bandes selon X
    146190  inline int     NBandX() const {return lbandx.size();}
     191  //! Retourne le nombre de bandes selon Y
    147192  inline int     NBandY() const {return lbandy.size();}
    148193  int            SetBandX(float ybmin,float ybmax);
     
    159204
    160205  // SLICES
     206  //! Retourne le nombre de slices selon X
    161207  inline int     NSliX() const {return lslix.size();}
     208  //! Retourne le nombre de slices selon Y
    162209  inline int     NSliY() const {return lsliy.size();}
    163210  int            SetSliX(int nsli);
     
    174221protected:
    175222#endif
     223  //! structure de definition des bandes
    176224  struct bande_slice {
    177     int num;
    178     float min, max;
    179     Histo* H;
     225    int num;   //!< nombre de bandes
     226    float min; //!< limite minimum pour remplir la bande
     227    float max; //!< limite maximum pour remplir la bande
     228    Histo* H;  //!< pointer sur l Histo 1D de la bande
    180229    STRUCTCOMP(bande_slice)
    181230  };
     
    186235  void Delete();
    187236
    188   float*         data;
    189   double*        err2;
    190 
    191   float          over[3][3];
    192   double         nHist;
    193   int_4          nEntries;
    194 
    195   int_4          nx,ny,nxy;
    196   float          xmin;
    197   float          xmax;
    198   float          ymin;
    199   float          ymax;
    200   float          wbinx;
    201   float          wbiny;
     237  float*         data; //!< donnees
     238  double*        err2; //!< erreurs carrees
     239
     240  float          over[3][3]; //!< overflow table
     241  double         nHist;      //!< somme ponderee des entrees
     242  int_4          nEntries;   //!< nombre d'entrees
     243
     244  int_4          nx;    //!< nombre de bins en X
     245  int_4          ny;    //!< nombre de bins en Y
     246  int_4          nxy;   //!< nombre de bins total
     247  float          xmin;  //!< abscisse minimum
     248  float          xmax;  //!< abscisse maximum
     249  float          ymin;  //!< ordonnee minimum
     250  float          ymax;  //!< ordonnee maximum
     251  float          wbinx; //!< largeur du bin en X
     252  float          wbiny; //!< largeur du bin en Y
    202253
    203254  bande_slice    b_s;
    204255
    205   Histo*         hprojx;
    206   Histo*         hprojy;
    207 
    208   list<bande_slice>  lbandx;
    209   list<bande_slice>  lbandy;
     256  Histo*         hprojx; //!< pointer sur Histo des proj X
     257  Histo*         hprojy; //!< pointer sur Histo des proj Y
     258
     259  list<bande_slice>  lbandx; //!< liste des bandes selon X
     260  list<bande_slice>  lbandy; //!< liste des bandes selon Y
    210261 
    211   list<bande_slice>  lslix;
    212   list<bande_slice>  lsliy;
     262  list<bande_slice>  lslix; //!< liste des slices selon X
     263  list<bande_slice>  lsliy; //!< liste des slices selon Y
    213264
    214265};
Note: See TracChangeset for help on using the changeset viewer.