source: Sophya/trunk/Cosmo/RadioBeam/qhist.h@ 4050

Last change on this file since 4050 was 3947, checked in by ansari, 15 years ago

Amelioration et modifs diverses lors de la redaction du papier, Reza 13/02/2011

File size: 1.8 KB
RevLine 
[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
17class 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
38class QHis2D {
39public:
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]60protected:
[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
Note: See TracBrowser for help on using the repository browser.