Changeset 3060 in Sophya for trunk/SophyaLib/HiStats/histos2.cc


Ignore:
Timestamp:
Aug 13, 2006, 3:20:02 PM (19 years ago)
Author:
cmv
Message:

amelioration gestion allocations cmv 13/8/2006

File:
1 edited

Legend:

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

    r3057 r3060  
    9696
    9797mHprojx = mHprojy = NULL;
    98 if(h.mHprojx) {
    99   SetProjX();
    100   *mHprojx = *(h.mHprojx);
    101 }
    102 if(h.mHprojy) {
    103   SetProjY();
    104   *mHprojy = *(h.mHprojy);
    105 }
    106 
    107 int_4 nb;
    108 r_8 min,max;
     98if(h.mHprojx) {SetProjX(); *mHprojx = *(h.mHprojx);}
     99if(h.mHprojy) {SetProjY(); *mHprojy = *(h.mHprojy);}
     100
     101int_4 nb; r_8 min,max;
    109102nb = h.NSliX();
    110 if(nb>0) {
    111   SetSliX(nb);
    112   for(i=0; i<NSliX();i++) *HSliX(i) = *(h.HSliX(i));
    113 }
     103if(nb>0) {SetSliX(nb); for(i=0;i<NSliX();i++) *HSliX(i)=*(h.HSliX(i));}
    114104nb = h.NSliY();
    115 if(nb>0) {
    116   SetSliY(nb);
    117   for(i=0; i<NSliY();i++) *HSliY(i) = *(h.HSliY(i));
    118 }
     105if(nb>0) {SetSliY(nb); for(i=0;i<NSliY();i++) *HSliY(i)=*(h.HSliY(i));}
    119106
    120107nb = h.NBandX();
    121108if(nb>0) {
    122   for(i=0; i<nb;i++) {
    123     h.GetBandX(i,min,max);
    124     SetBandX(min,max);
    125     *HBandX(i) = *(h.HBandX(i));
    126   }
    127   for(i=0; i<NBandX();i++) *HBandX(i) = *(h.HBandX(i));
     109  for(i=0;i<nb;i++)
     110    {h.GetBandX(i,min,max); SetBandX(min,max); *HBandX(i)=*(h.HBandX(i));}
     111  for(i=0;i<NBandX();i++) *HBandX(i) = *(h.HBandX(i));
    128112}
    129113nb = h.NBandY();
    130114if(nb>0) {
    131   for(i=0; i<nb;i++) {
    132     h.GetBandY(i,min,max);
    133     SetBandY(min,max);
    134     *HBandY(i) = *(h.HBandY(i));
    135   }
     115  for(i=0;i<nb;i++)
     116    {h.GetBandY(i,min,max); SetBandY(min,max); *HBandY(i)=*(h.HBandY(i));}
    136117  for(i=0; i<NBandY();i++) *HBandY(i) = *(h.HBandY(i));
    137118}
     
    166147  for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.;
    167148  mB_s.H = NULL;
     149
     150  DelProjX(); DelProjY();
     151  DelBandX(); DelBandY();
     152  DelSliX(); DelSliY();
    168153}
    169154
     
    177162
    178163  DelProj();
    179 
    180   DelBandX();
    181   DelBandY();
    182 
    183   DelSliX();
    184   DelSliY();
     164  DelBandX(); DelBandY();
     165  DelSliX();  DelSliY();
    185166
    186167  nHist = 0;
     
    208189  ZeroProj();
    209190
    210   ZeroBandX();
    211   ZeroBandY();
    212 
    213   ZeroSliX();
    214   ZeroSliY();
     191  ZeroBandX(); ZeroBandY();
     192
     193  ZeroSliX(); ZeroSliY();
    215194}
    216195
     
    242221  nHist = h.nHist;  nEntries = h.nEntries; 
    243222
    244   DelProjX();
    245   if(h.mHprojx) {
    246     SetProjX();
    247     *mHprojx = *(h.mHprojx);
    248   }
    249   DelProjY();
    250   if(h.mHprojy) {
    251     SetProjY();
    252     *mHprojy = *(h.mHprojy);
    253   }
     223  if(h.mHprojx) {SetProjX(); *mHprojx = *(h.mHprojx);}
     224  if(h.mHprojy) {SetProjY(); *mHprojy = *(h.mHprojy);}
    254225
    255226  int_4 nb;
    256   DelSliX();
    257227  nb = h.NSliX();
    258228  if(nb>0) {
     
    260230    for(int i=0; i<NSliX();i++) *HSliX(i) = *(h.HSliX(i));
    261231  }
    262   DelSliY();
    263232  nb = h.NSliY();
    264233  if(nb>0) {
     
    267236  }
    268237
    269   DelBandX();
    270238  nb = h.NBandX();
    271239  if(nb>0) {
     
    278246    for(int i=0; i<NBandX();i++) *HBandX(i) = *(h.HBandX(i));
    279247  }
    280   DelBandY();
    281248  nb = h.NBandY();
    282249  if(nb>0) {
     
    10631030if( mHprojx != NULL ) DelProjX();
    10641031mHprojx = new Histo(mXmin,mXmax,mNx);
    1065 if( mErr2 != NULL && mHprojx != NULL ) mHprojx->Errors();
     1032if(mErr2 && mHprojx) mHprojx->Errors();
    10661033}
    10671034
     
    10731040if( mHprojy != NULL ) DelProjY();
    10741041mHprojy = new Histo(mYmin,mYmax,mNy);
    1075 if( mErr2 != NULL && mHprojy != NULL  ) mHprojy->Errors();
     1042if(mErr2 && mHprojy) mHprojy->Errors();
    10761043}
    10771044
     
    11641131mB_s.max = ybmax;
    11651132mB_s.H = new Histo(mXmin,mXmax,mNx);
     1133if(mErr2 && mB_s.H) mB_s.H->Errors();
    11661134mLBandx.push_back(mB_s);
    11671135mB_s.H = NULL;
     
    11781146mB_s.max = xbmax;
    11791147mB_s.H = new Histo(mYmin,mYmax,mNy);
     1148if(mErr2 && mB_s.H) mB_s.H->Errors();
    11801149mLBandy.push_back(mB_s);
    11811150mB_s.H = NULL;
     
    13171286  mB_s.max = mB_s.min + w;
    13181287  mB_s.H = new Histo(mXmin,mXmax,mNx);
     1288  if(mErr2 && mB_s.H) mB_s.H->Errors();
    13191289  mLSlix.push_back(mB_s);
    13201290  mB_s.H = NULL;
     
    13381308  mB_s.max = mB_s.min + w;
    13391309  mB_s.H = new Histo(mYmin,mYmax,mNy);
     1310  if(mErr2 && mB_s.H) mB_s.H->Errors();
    13401311  mLSliy.push_back(mB_s);
    13411312  mB_s.H = NULL;
     
    14101381              if( (*i).num == n ) return (*i).H;
    14111382return NULL;
     1383}
     1384
     1385/*!
     1386  Retourne les limites de la bande equidistante numero `n' selon X.
     1387*/
     1388void Histo2D::GetSliX(int_4 n,r_8& ybmin,r_8& ybmax) const
     1389{
     1390ybmin = 0.; ybmax = 0.;
     1391if( mLSlix.size() <= 0 || n < 0 || n >= (int_4) mLSlix.size() ) return;
     1392for(list<bande_slice>::const_iterator i = mLSlix.begin(); i != mLSlix.end(); i++)
     1393  if( (*i).num == n ) { ybmin = (*i).min; ybmax = (*i).max; return;}
     1394return;
     1395}
     1396
     1397/*!
     1398  Retourne les limites de la bande equidistante numero `n' selon Y.
     1399*/
     1400void Histo2D::GetSliY(int_4 n,r_8& xbmin,r_8& xbmax) const
     1401{
     1402xbmin = 0.; xbmax = 0.;
     1403if( mLSliy.size() <= 0 || n < 0 || n >= (int_4) mLSliy.size() ) return;
     1404for(list<bande_slice>::const_iterator i = mLSliy.begin(); i != mLSliy.end(); i++)
     1405  if( (*i).num == n ) { xbmin = (*i).min; xbmax = (*i).max; return;}
     1406return;
    14121407}
    14131408
Note: See TracChangeset for help on using the changeset viewer.