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


Ignore:
Timestamp:
Aug 12, 2006, 7:29:29 PM (19 years ago)
Author:
cmv
Message:

correction bug + addaptation pour ecriture fits cmv 12/8/2006

File:
1 edited

Legend:

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

    r2868 r3053  
    3939
    4040///////////////////////////////////////////////////////////////////
     41
     42/*!
     43  Constructeur par defaut.
     44*/
     45Histo2D::Histo2D()
     46: mData(NULL), mErr2(NULL)
     47, nHist(0), nEntries(0)
     48, mNx(0), mNy(0), mNxy(0), mXmin(0), mXmax(0), mYmin(0), mYmax(0), mWBinx(0), mWBiny(0)
     49, mHprojx(NULL), mHprojy(NULL)
     50{
     51 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.;
     52 mB_s.H = NULL;
     53}
     54
    4155/*!
    4256  Createur d'un histogramme 2D ayant nxBin,nyBin bins
     
    4458*/
    4559Histo2D::Histo2D(r_8 xMin,r_8 xMax,int_4 nxBin,r_8 yMin,r_8 yMax,int_4 nyBin)
    46       : mData(new r_8[nxBin*nyBin]), mErr2(NULL)
    47       , nHist(0), nEntries(0)
    48       , mNx(nxBin), mNy(nyBin), mNxy(nxBin*nyBin)
    49       , mXmin(xMin), mXmax(xMax), mYmin(yMin), mYmax(yMax)
    50       , mWBinx((xMax - xMin)/nxBin), mWBiny((yMax - yMin)/nyBin)
    51       , mHprojx(NULL), mHprojy(NULL)
    52 {
    53 ASSERT(nxBin>0 && nyBin>0 && xMin<xMax && yMin<yMax);
    54 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.;
    55 Zero();
    56 mB_s.H = NULL;
     60: mData(NULL), mErr2(NULL), mHprojx(NULL), mHprojy(NULL)
     61{
     62  CreateOrResize(xMin,xMax,nxBin,yMin,yMax,nyBin);
    5763}
    5864
     
    6268*/
    6369Histo2D::Histo2D(r_4 xMin,r_4 xMax,int_4 nxBin,r_4 yMin,r_4 yMax,int_4 nyBin)
    64       : mData(new r_8[nxBin*nyBin]), mErr2(NULL)
    65       , nHist(0), nEntries(0)
    66       , mNx(nxBin), mNy(nyBin), mNxy(nxBin*nyBin)
    67       , mXmin((r_8)xMin), mXmax((r_8)xMax), mYmin((r_8)yMin), mYmax((r_8)yMax)
    68       , mWBinx((xMax - xMin)/nxBin), mWBiny((yMax - yMin)/nyBin)
    69       , mHprojx(NULL), mHprojy(NULL)
    70 {
    71 ASSERT(nxBin>0 && nyBin>0 && xMin<xMax && yMin<yMax);
    72 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.;
    73 Zero();
    74 mB_s.H = NULL;
     70: mData(NULL), mErr2(NULL), mHprojx(NULL), mHprojy(NULL)
     71{
     72  CreateOrResize((r_8)xMin,(r_8)xMax,nxBin,(r_8)yMin,(r_8)yMax,nyBin);
    7573}
    7674
     
    142140
    143141/*!
    144   Constructeur par defaut.
    145 */
    146 Histo2D::Histo2D()
    147       : mData(NULL), mErr2(NULL)
    148       , nHist(0), nEntries(0)
    149       , mNx(0), mNy(0), mNxy(0)
    150       , mXmin(0), mXmax(0), mYmin(0), mYmax(0)
    151       , mWBinx(0), mWBiny(0)
    152       , mHprojx(NULL), mHprojy(NULL)
    153 {
    154 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.;
    155 mB_s.H = NULL;
    156 }
    157 
    158 ///////////////////////////////////////////////////////////////////
     142  Destructeur.
     143*/
     144Histo2D::~Histo2D()
     145{
     146  Delete();
     147}
     148
     149///////////////////////////////////////////////////////////////////
     150/*!
     151  allocation de la place de l'histogramme (fct privee).
     152*/
     153void Histo2D::CreateOrResize(r_8 xMin,r_8 xMax,int_4 nxBin,r_8 yMin,r_8 yMax,int_4 nyBin)
     154{
     155 int_8 n = nxBin*nyBin;
     156 if(mData!=NULL) {delete[] mData; mData = NULL;}
     157 if(n>0) {mData = new r_8[n]; memset(mData, 0, n*sizeof(r_8));}
     158 mNx = nxBin; mNy = nyBin; mNxy = nxBin*nyBin;
     159 mXmin = xMin; mXmax = xMax; mYmin = yMin; mYmax = yMax;
     160 mWBinx = (nxBin>0) ? (xMax - xMin)/nxBin: 0.;
     161 mWBiny = (nyBin>0) ? (yMax - yMin)/nyBin: 0.;
     162 nHist = 0; nEntries = 0;
     163 for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.;
     164 mB_s.H = NULL;
     165}
     166
    159167/*!
    160168  Desallocation de la place de l'histogramme (fct privee).
     
    163171{
    164172  if( mData != NULL ) { delete[] mData; mData = NULL;}
    165 
    166173  if( mErr2 != NULL ) { delete[] mErr2; mErr2 = NULL;}
    167174
     
    180187  mWBinx = 0; mWBiny = 0;
    181188  for(int_4 i=0;i<3;i++) for(int_4 j=0;j<3;j++) mOver[i][j]=0.;
    182   mB_s.H = NULL;
    183 }
    184 
    185 /*!
    186   Destructeur.
    187 */
    188 Histo2D::~Histo2D()
    189 {
    190 Delete();
     189  mB_s.H = NULL;  // Ne pas faire de delete!
    191190}
    192191
     
    219218void Histo2D::Errors()
    220219{
    221  if( mNxy > 0 ) {
    222    if(mErr2==NULL) mErr2 = new r_8[mNxy];
    223    memset(mErr2, 0, mNxy*sizeof(r_8));
    224  }
     220 if(mErr2!=NULL) {delete[] mErr2; mErr2 = NULL;}
     221 if(mNxy <= 0) return;
     222 mErr2 = new r_8[mNxy];
     223 memset(mErr2,0,mNxy*sizeof(r_8));
    225224}
    226225
Note: See TracChangeset for help on using the changeset viewer.