| [3783] | 1 | //  Simple specific histo-like classes 
 | 
|---|
 | 2 | //  R. Ansari - Avril-Mai 2010 
 | 
|---|
 | 3 | 
 | 
|---|
 | 4 | #ifndef QHIST_SEEN
 | 
|---|
 | 5 | #define QHIST_SEEN
 | 
|---|
 | 6 | 
 | 
|---|
 | 7 | #include "histats.h"       // SOPHYA .h 
 | 
|---|
 | 8 | 
 | 
|---|
 | 9 | #include "machdefs.h"      // SOPHYA .h  
 | 
|---|
 | 10 | #include "sopnamsp.h"      // SOPHYA .h  
 | 
|---|
 | 11 | #include <iostream>
 | 
|---|
 | 12 | 
 | 
|---|
 | 13 | #include "histats.h"       // SOPHYA .h 
 | 
|---|
 | 14 | 
 | 
|---|
 | 15 | // -----------------------------------
 | 
|---|
 | 16 | // -- Classe ressemblant a un histo 1D 
 | 
|---|
 | 17 | class QHis1D {
 | 
|---|
 | 18 |   QHis1D();
 | 
|---|
 | 19 |   QHis1D(QHis1D const& a);
 | 
|---|
 | 20 |   QHis1D(r_8 xMin,r_8 xMax,int_4 nxBin);
 | 
|---|
 | 21 |   void Define(r_8 xMin,r_8 xMax,int_4 nxBin); 
 | 
|---|
 | 22 |   sa_size_t Add(r_8 x, r_8 w=1.);
 | 
|---|
 | 23 |   inline double WBinX() { return dxb_; }
 | 
|---|
 | 24 |   inline double NBinX() { return nx_; }
 | 
|---|
 | 25 | 
 | 
|---|
 | 26 |   Histo Convert();
 | 
|---|
 | 27 |   
 | 
|---|
 | 28 |   r_8 xmin_,xmax_;
 | 
|---|
 | 29 |   r_8 dxb_;
 | 
|---|
 | 30 |   sa_size_t nx_;
 | 
|---|
 | 31 |   TArray<r_8> aw_;
 | 
|---|
 | 32 |   sa_size_t nhis_, nunder_, nover_;
 | 
|---|
 | 33 |   r_8 swunder_, swover_ ; 
 | 
|---|
 | 34 | };
 | 
|---|
 | 35 | 
 | 
|---|
 | 36 | // -----------------------------------
 | 
|---|
 | 37 | // -- Classe ressemblant a un histo 2D 
 | 
|---|
 | 38 | class QHis2D {
 | 
|---|
 | 39 | public:
 | 
|---|
 | 40 |   QHis2D();
 | 
|---|
 | 41 |   QHis2D(r_8 xMin,r_8 xMax,int_4 nxBin,r_8 yMin,r_8 yMax,int_4 nyBin);
 | 
|---|
 | 42 |   void Define(r_8 xMin,r_8 xMax,int_4 nxBin,r_8 yMin,r_8 yMax,int_4 nyBin);
 | 
|---|
 | 43 |   double Add(r_8 x, r_8 y, r_8 w, bool fgfh);
 | 
|---|
 | 44 |   void SetZeroBin(r_8 x=0, r_8 y=0);
 | 
|---|
| [3947] | 45 |   inline r_8 WBinX() { return dxb; }
 | 
|---|
 | 46 |   inline r_8 WBinY() { return dyb; }
 | 
|---|
 | 47 |   inline sa_size_t NBinX() { return nx; }
 | 
|---|
 | 48 |   inline sa_size_t NBinY() { return ny; }
 | 
|---|
 | 49 |   inline r_8 X(sa_size_t i) { return (dxb*((double)i+0.5)+xmin); }
 | 
|---|
 | 50 |   inline r_8 Y(sa_size_t j) { return (dyb*((double)j+0.5)+ymin); }
 | 
|---|
 | 51 |   inline r_8 operator()(sa_size_t i, sa_size_t j) { return aw(i,j); }
 | 
|---|
 | 52 | 
 | 
|---|
 | 53 |   inline void GetMinMax(r_8& min, r_8& max) { return aw.MinMax(min,max); }
 | 
|---|
 | 54 | 
 | 
|---|
 | 55 |   inline double SumWBinZero() { return sumw0; }
 | 
|---|
 | 56 |   void Renormalize(r_8 mfac=1.) { aw*=mfac; }
 | 
|---|
 | 57 | 
 | 
|---|
| [3783] | 58 |   Histo2D Convert();
 | 
|---|
 | 59 |   
 | 
|---|
| [3947] | 60 | protected:
 | 
|---|
| [3783] | 61 |   r_8 xmin,xmax,ymin,ymax;
 | 
|---|
 | 62 |   r_8 dxb,dyb;
 | 
|---|
 | 63 |   sa_size_t nx,ny;
 | 
|---|
 | 64 |   sa_size_t ixb0, jyb0;
 | 
|---|
 | 65 |   TArray<r_8> aw;
 | 
|---|
 | 66 |   double sumw0;
 | 
|---|
 | 67 | };
 | 
|---|
 | 68 | 
 | 
|---|
 | 69 | 
 | 
|---|
 | 70 | #endif
 | 
|---|