Changeset 914 in Sophya for trunk/SophyaLib/HiStats/hisprof.cc


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/hisprof.cc

    r763 r914  
    66#include "perrors.h"
    77
    8 //++
    9 // Class        HProf
    10 // Lib  Outils++
    11 // include      hisprof.h
    12 //
    13 //      Classe de profil d'histogrammes.
    14 //--
    15 
    16 //++
    17 // Titre        Constructeurs
    18 //--
    19 
    20 /********* Methode *********/
    21 //++
     8
     9/********* Methode *********/
     10/*!
     11  Constructeur par defaut.
     12*/
    2213HProf::HProf()
    23 //
    24 //      Constructeur par defaut.
    25 //--
    2614: Histo()
    2715, SumY(NULL), SumY2(NULL), SumW(NULL), Ok(false), YMin(1.), YMax(-1.), Opt(0)
     
    3119
    3220/********* Methode *********/
    33 //++
     21/*!
     22  Constructeur. Histogramme de profil de ``nBin'' bins entre ``xMin''
     23  et ``xMax'' avec coupure d'acceptance sur y entre ``yMin'' et ``yMax''.
     24  Si yMin>=yMax alors pas de coupure d'acceptance sur y.
     25  Par defaut l'erreur du profil represente la dispersion dans le bin,
     26  SetErrOpt(1) permet de demander de calculer l'erreur sur la moyenne.
     27*/
    3428HProf::HProf(float xMin, float xMax, int nBin, float yMin, float yMax)
    35 //
    36 //      Constructeur. Histogramme de profil de ``nBin'' bins entre ``xMin''
    37 //      et ``xMax'' avec coupure d'acceptance sur y entre ``yMin'' et ``yMax''.
    38 //      Si yMin>=yMax alors pas de coupure d'acceptance sur y.
    39 //      Par defaut l'erreur du profil represente la dispersion dans le bin,
    40 //      SetErrOpt(1) permet de demander de calculer l'erreur sur la moyenne.
    41 //--
    4229: Histo(xMin,xMax,nBin)
    4330, SumY(new double[nBin]), SumY2(new double[nBin]), SumW(new double[nBin])
     
    5037
    5138/********* Methode *********/
    52 //++
     39/*!
     40  Constructeur par copie.
     41*/
    5342HProf::HProf(const HProf& H)
    54 //
    55 //      Constructeur par copie.
    56 //--
    5743: Histo(H)
    5844, SumY(new double[H.bins]), SumY2(new double[H.bins]), SumW(new double[H.bins])
     
    6652
    6753/********* Methode *********/
     54/*!
     55  Des-allocation
     56*/
    6857void HProf::Delete()
    6958{
     
    7564
    7665/********* Methode *********/
     66/*!
     67  Destructeur
     68*/
    7769HProf::~HProf()
    7870{
     
    8072}
    8173
    82 //++
    83 // Titre        Methodes
    84 //--
    85 
    86 /********* Methode *********/
    87 //++
     74/********* Methode *********/
     75/*!
     76  Remise a zero
     77*/
    8878void HProf::Zero()
    89 //
    90 //      Remise a zero
    91 //--
    9279{
    9380  memset(SumY,  0, bins*sizeof(double));
     
    9986
    10087/********* Methode *********/
    101 //++
     88/*!
     89  Pour changer l'option de calcul de l'erreur du profile.
     90  Si ``spread'' = true alors l'erreur represente la dispersion
     91  des donnees dans le bin, si = false elle represente l'erreur
     92  sur la moyenne du bin.
     93  \verbatim
     94    - Pour le bin (j):
     95    H(j) = sum(y), E(j) = sum(y^2), L(j) = sum(w)
     96    ->  s(j) = sqrt(E(j)/L(j) - (H(j)/L(j))^2)  dispersion
     97    ->  e(j) = s(j)/sqrt(L(j)) erreur sur la moyenne
     98    spread=true:  opt=0 : dispersion des donnees dans le bin = s(j)
     99    spread=false: opt=1 : erreur sur la moyenne du bin = e(j)
     100  \endverbatim
     101*/
    102102void HProf::SetErrOpt(bool spread)
    103 //
    104 //      Pour changer l'option de calcul de l'erreur du profile.
    105 //      Si ``spread'' = true alors l'erreur represente la dispersion
    106 //      des donnees dans le bin, si = false elle represente l'erreur
    107 //      sur la moyenne du bin.
    108 //| - Pour le bin (j):
    109 //| H(j) = sum(y), E(j) = sum(y^2), L(j) = sum(w)
    110 //| ->  s(j) = sqrt(E(j)/L(j) - (H(j)/L(j))^2)  dispersion
    111 //| ->  e(j) = s(j)/sqrt(L(j)) erreur sur la moyenne
    112 //| spread=true:  opt=0 : dispersion des donnees dans le bin = s(j)
    113 //| spread=false: opt=1 : erreur sur la moyenne du bin = e(j)
    114 //--
    115103{
    116104int opt = (spread) ? 0 : 1;
     
    119107
    120108/********* Methode *********/
    121 //++
     109/*!
     110  Pour mettre a jour l'histogramme de profil.
     111  Il est important d'appeler cette methode si on veut
     112  utiliser les methodes de la classe Histo qui ne sont
     113  pas redefinies dans la classe HProf.
     114  En effet, pour des raisons de precision la classe
     115  HProf travaille avec des tableaux en double precision
     116  et seulement au moment ou l'on a besoin de l'histogramme
     117  ce dernier est rempli avec les valeurs demandees (moyenne
     118  et dispersion/erreur sur la moyenne).
     119*/
    122120void HProf::UpdateHisto() const
    123 //
    124 //      Pour mettre a jour l'histogramme de profil.
    125 //      Il est important d'appeler cette methode si on veut
    126 //      utiliser les methodes de la classe Histo qui ne sont
    127 //      pas redefinies dans la classe HProf.
    128 //      En effet, pour des raisons de precision la classe
    129 //      HProf travaille avec des tableaux en double precision
    130 //      et seulement au moment ou l'on a besoin de l'histogramme
    131 //      ce dernier est rempli avec les valeurs demandees (moyenne
    132 //      et dispersion/erreur sur la moyenne).
    133 //--
    134121{
    135122
     
    153140
    154141/********* Methode *********/
    155 //++
     142/*!
     143  Addition au contenu de l'histo pour abscisse x de la valeur y et poids w
     144*/
    156145void HProf::Add(float x, float y, float w)
    157 //
    158 //      Addition au contenu de l'histo pour abscisse x de la valeur y et poids w
    159 //--
    160146{
    161147  if(YMax>YMin && (y<YMin || YMax<y)) return;
     
    174160
    175161/********* Methode *********/
    176 //++
     162/*!
     163  Addition au contenu de l'histo bin numBin de la valeur y poids w
     164*/
    177165void HProf::AddBin(int numBin, float y, float w)
    178 //
    179 //      Addition au contenu de l'histo bin numBin de la valeur y poids w
    180 //--
    181166{
    182167  if(YMax>YMin && (y<YMin || YMax<y)) return;
     
    194179
    195180/********* Methode *********/
    196 //++
     181/*!
     182  Operateur H = H1
     183*/
    197184HProf& HProf::operator = (const HProf& h)
    198 //
    199 //--
    200185{
    201186if(this == &h) return *this;
     
    218203
    219204/********* Methode *********/
    220 //++
     205/*!
     206  Operateur H += H1
     207
     208  Attention dans cette addition il n'y a pas de gestion
     209  des YMin et YMax. L'addition est faite meme si les limites
     210  en Y de ``a'' sont differentes de celles de ``this''.
     211*/
    221212HProf& HProf::operator += (const HProf& a)
    222 //
    223 //      Attention dans cette addition il n'y a pas de gestion
    224 //      des YMin et YMax. L'addition est faite meme si les limites
    225 //      en Y de ``a'' sont differentes de celles de ``this''.
    226 //--
    227213{
    228214if(bins!=a.bins) THROW(sizeMismatchErr);
     
    240226
    241227/********* Methode *********/
    242 //++
     228/*!
     229  Operateur H = H1 + H2
     230  Meme commentaire que pour l'operateur +=
     231*/
    243232HProf operator + (const HProf& a, const HProf& b)
    244 //
    245 //      Meme commentaire que pour l'operateur +=
    246 //--
    247233{
    248234if (b.NBins()!=a.NBins()) THROW(sizeMismatchErr);
     
    250236return (c += b);
    251237}
    252 
    253 // Rappel des inlines functions pour commentaires
    254 //++
    255 //   inline Histo GetHisto()
    256 //      Retourne l'histogramme de profil.
    257 //--
    258 //++
    259 // inline void GetMean(Vector& v)
    260 //      Retourne le contenu de la moyenne dans le vecteur v
    261 //--
    262 //++
    263 // inline void GetError2(Vector& v)
    264 //      Retourne le contenu au carre de la dispersion/erreur dans le vecteur v
    265 //--
    266 //++
    267 // inline float operator()(int i) const
    268 //      Retourne le contenu du bin i
    269 //--
    270 //++
    271 // inline float Error2(int i) const
    272 //      Retourne le carre de la dispersion/erreur du bin i
    273 //--
    274 //++
    275 // inline float Error(int i) const
    276 //      Retourne la dispersion/erreur du bin i
    277 //--
    278 //++
    279 // inline int Fit(GeneralFit& gfit)
    280 //      Fit du profile par ``gfit''.
    281 //--
    282 //++
    283 // inline Histo* FitResidus(GeneralFit& gfit)
    284 //      Retourne l'Histogramme des residus par ``gfit''.
    285 //--
    286 //++
    287 // inline Histo* FitFunction(GeneralFit& gfit)
    288 //      Retourne l'Histogramme de la fonction fittee par ``gfit''.
    289 //--
    290 //++
    291 // inline void Print(int dyn,float hmin,float hmax,int pflag,int il,int ih)
    292 //      Print, voir detail dans Histo::Print
    293 //--
    294 
    295238
    296239///////////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.