Problems with the HP compiler fixed.
[u/mrichter/AliRoot.git] / ITS / AliITSstatistics2.h
1 #ifndef ALIITSSTATISTICS2_H
2 #define ALIITSSTATISTICS2_H
3 //////////////////////////////////////////////////////////////////////////
4 //  Alice ITS first detector alignment program.                         //
5 //                                                                      //
6 // version: 0.0.0 Draft.                                                //
7 // Date: April 18 1999                                                  //
8 // By: Bjorn S. Nilsen                                                  //
9 //                                                                      //
10 //////////////////////////////////////////////////////////////////////////
11 #include "TObject.h"
12
13 class AliITSstatistics2 : public TObject {
14 //
15
16  public:
17     AliITSstatistics2();
18     AliITSstatistics2(Int_t order);
19          AliITSstatistics2(AliITSstatistics2 &source); // copy  constructor
20          AliITSstatistics2& operator=(AliITSstatistics2 &source); // operator=   
21     virtual ~AliITSstatistics2();
22     void Reset();
23     void AddValue(Double_t y,Double_t x,Double_t w);
24     void AddValue(Double_t y,Double_t x){
25                                               // default weight
26                                               AddValue(y,x,1.0);
27                                                                                                           } 
28     void AddValue(Float_t y,Float_t x,Float_t w){
29                                                       // Floating point version
30                                                  AddValue((Double_t)y,(Double_t)x,(Double_t)w);
31                                                                                                                                  } 
32     void AddValue(Float_t y,Float_t x){
33                                             // default weight F.
34                                             AddValue((Double_t)y,(Double_t)x,(Double_t)1.0);
35                                                                                                   }
36     Double_t GetXNth (Int_t order);
37     Double_t GetYNth (Int_t order);
38     Double_t GetYXNth(Int_t order);
39     Double_t GetMeanY()  {
40                                // return mean y
41                                return GetYNth(1);
42                                                                  };
43     Double_t GetMeanX()  {
44                                // return mean x
45                                return GetXNth(1);
46                                                                  };
47     Double_t GetMeanYX() {
48                                // return mean Y*X
49                                return GetYXNth(1);
50                                                                  };
51     Int_t GetN(){
52                       // retrun the number of entries
53                       return fN;
54                                          };
55     Int_t GetOrder(){
56                           // return the maximum moment order
57                           return fOrder;
58                                                   };
59     Double_t GetXN (Int_t order){
60                                       // returns x^n
61                                       return fx[order-1];
62                                                                                   };
63     Double_t GetYN (Int_t order){
64                                       // returns y^n
65                                       return fy[order-1];
66                                                                                   };
67     Double_t GetYXN(Int_t order){
68                                       // returns (yx)^n
69                                       return fyx[order-1];
70                                                                                   };
71     Double_t GetWN (Int_t order){
72                                       // returns w^n (weight)
73                                       return fw[order-1];
74                                                                                   };
75     Double_t GetRMSY();
76     Double_t GetRMSX();
77     Double_t GetRMSYX();
78     Double_t GetErrorMeanY();
79     Double_t GetErrorMeanX();
80     Double_t GetErrorMeanYX();
81     Double_t GetErrorRMSY();
82     Double_t GetErrorRMSX();
83     Double_t GetErrorRMSYX();
84     Double_t FitToLine(Double_t &a,Double_t &b);
85
86  private:
87     Double_t *fx;    // array of sums of x^n
88          Double_t *fyx;   // array of sums of (xy)^n
89          Double_t *fy;    // array of sums of y^n
90          Double_t *fw;    // array of sums of w^n (weights)
91     Int_t  fN;       // number of enetries
92          Int_t  fOrder;   // maximum moment of distributions (^n)
93
94
95     ClassDef(AliITSstatistics2,1)  //
96 };
97 #endif