GSI Object Oriented Online Offline (Go4)  GO4-6.3.0
TGo4FitModelGaussN.h
Go to the documentation of this file.
1 // $Id$
2 //-----------------------------------------------------------------------
3 // The GSI Online Offline Object Oriented (Go4) Project
4 // Experiment Data Processing at EE department, GSI
5 //-----------------------------------------------------------------------
6 // Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7 // Planckstr. 1, 64291 Darmstadt, Germany
8 // Contact: http://go4.gsi.de
9 //-----------------------------------------------------------------------
10 // This software can be used under the license agreements as stated
11 // in Go4License.txt file which is part of the distribution.
12 //-----------------------------------------------------------------------
13 
14 #ifndef TGO4FITMODELGAUSSN_H
15 #define TGO4FITMODELGAUSSN_H
16 
17 #include "TGo4FitModel.h"
18 
19 #include "TArrayI.h"
20 #include "TVectorD.h"
21 #include "TMatrixD.h"
22 
38  public:
39 
44 
49  TGo4FitModelGaussN(const char *iName, Int_t iNDimension = 3);
50 
54  virtual ~TGo4FitModelGaussN();
55 
59  Int_t GetAxisNumbers() const { return fxIndexes.GetSize(); }
60 
64  Bool_t SetAxisNumbers(Int_t naxis);
65 
71  Int_t GetAxisForIndex(Int_t indx) const { return fxIndexes[indx]; }
72 
76  void SetAxisForIndex(Int_t indx, Int_t axis) { fxIndexes[indx] = axis; }
77 
82  Bool_t ResortIndexes(Int_t leaveaxis = -1);
83 
87  void FillMuVector(TVectorD &Mu);
88 
92  void FillSigmaMatrix(TMatrixD &Sigma);
93 
97  void Print(Option_t *option = "") const override;
98 
99  Bool_t BeforeEval(Int_t) override;
100  Double_t EvalN(const Double_t *v) override;
101 
102  protected:
103  TString GetPosParName(Int_t naxis);
104  TString GetWidthParName(Int_t naxis);
105  TString GetCovarParName(Int_t naxis1, Int_t naxis2);
106 
107  Int_t GetPosParIndex(Int_t naxis) override;
108  Int_t GetWidthParIndex(Int_t naxis) override;
109 
110  void AfterEval() override;
111 
115  TArrayI fxIndexes;
116 
117  private:
118 
122  Int_t Par_ndim{0};
123 
127  Int_t *Par_indx{nullptr};
128 
132  TVectorD *Vect_mu{nullptr};
133 
137  TMatrixD *Matr_sig{nullptr};
138 
142  TVectorD *Vect_x{nullptr};
143 
147  TVectorD *Vect_dx{nullptr};
148 
149  ClassDefOverride(TGo4FitModelGaussN,1)
150 };
151 #endif // TGO4FITMODELGAUSSN_H
Bool_t ResortIndexes(Int_t leaveaxis=-1)
void AfterEval() override
TString GetPosParName(Int_t naxis)
Int_t GetAxisForIndex(Int_t indx) const
void FillMuVector(TVectorD &Mu)
void FillSigmaMatrix(TMatrixD &Sigma)
Int_t GetPosParIndex(Int_t naxis) override
void SetAxisForIndex(Int_t indx, Int_t axis)
Bool_t SetAxisNumbers(Int_t naxis)
TString GetCovarParName(Int_t naxis1, Int_t naxis2)
Int_t GetWidthParIndex(Int_t naxis) override
TString GetWidthParName(Int_t naxis)
void Print(Option_t *option="") const override
Double_t EvalN(const Double_t *v) override
Int_t GetAxisNumbers() const
Bool_t BeforeEval(Int_t) override