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


Ignore:
Timestamp:
Jul 7, 2000, 10:41:11 AM (25 years ago)
Author:
ansari
Message:

cmv 7/7/2000

hisprof.cc,h:

fonction IsOk()
GetMean -> GetValue (mauvais nom)
float Error2() -> double Error2()
nouveau: GetError(TVector<r_8>& v)
HProf::PrintF() sur-ecriture de Histo::PrintF
protection dans createur par copie dans alloc

SumY... pour le cas ou H.bins==0

protection dans UpdateHisto pour HProf cree par defaut (bins==0)
Dans WriteSelf UpdateHisto appele que si necessaire (IsOk()?)

histos2.cc : le Print() dit si les erreurs ont ete demandees
histos.cc,h:

protection dans createur par copie dans alloc

pour le cas ou H.bins==0

protection dans Zero() pour Histo cree par defaut (bins==0)
protection dans operator=() pour Histo cree par defaut (bins==0)
le Print() dit si les erreurs ont ete demandees

cmv 7/7/2000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/hisprof.cc

    r1053 r1056  
    4747HProf::HProf(const HProf& H)
    4848: Histo(H)
    49 , SumY(new double[H.bins]), SumY2(new double[H.bins]), SumW(new double[H.bins])
     49, SumY((H.bins>0)  ? new double[H.bins] : NULL)
     50, SumY2((H.bins>0) ? new double[H.bins] : NULL)
     51, SumW((H.bins>0)  ? new double[H.bins] : NULL)
    5052, Ok(H.Ok), YMin(H.YMin), YMax(H.YMax), Opt(H.Opt)
    5153{
    52   memcpy(SumY,  H.SumY,  bins*sizeof(double));
    53   memcpy(SumY2, H.SumY2, bins*sizeof(double));
    54   memcpy(SumW,  H.SumW,  bins*sizeof(double));
     54  if(bins>0) {
     55    memcpy(SumY,  H.SumY,  bins*sizeof(double));
     56    memcpy(SumY2, H.SumY2, bins*sizeof(double));
     57    memcpy(SumW,  H.SumW,  bins*sizeof(double));
     58  }
    5559  END_CONSTRUCTOR
    5660}
     
    125129void HProf::UpdateHisto() const
    126130{
    127 
    128131float m,e2;
     132if(bins<=0) return;
    129133for(int i=0;i<bins;i++) {
    130134  if(SumW[i]<=0.) {
     
    185189/********* Methode *********/
    186190/*!
    187   Operateur H = H1
     191  Operateur HProf H = H1
    188192*/
    189193HProf& HProf::operator = (const HProf& h)
     
    209213/********* Methode *********/
    210214/*!
    211   Operateur H += H1
     215  Operateur HProf H += H1
    212216
    213217  Attention dans cette addition il n'y a pas de gestion
     
    273277char strg[256];
    274278
    275 dobj->UpdateHisto();
     279if(!(dobj->IsOk())) dobj->UpdateHisto();
    276280
    277281// Ecriture entete pour identifier facilement
Note: See TracChangeset for help on using the changeset viewer.