00001 //------------------------------------------------------------- 00002 // Go4 Release Package v3.04-01 (build 30401) 00003 // 28-November-2008 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at EE department, GSI 00007 //--------------------------------------------------------------- 00008 // 00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI 00010 // Planckstr. 1, 64291 Darmstadt, Germany 00011 //Contact: http://go4.gsi.de 00012 //---------------------------------------------------------------- 00013 //This software can be used under the license agreements as stated 00014 //in Go4License.txt file which is part of the distribution. 00015 //---------------------------------------------------------------- 00016 #ifndef TGO4FITMODELGAUSSN_H 00017 #define TGO4FITMODELGAUSSN_H 00018 00019 #include "TGo4FitModel.h" 00020 00021 #include "TArrayI.h" 00022 #include "TVectorD.h" 00023 #include "TMatrixD.h" 00024 00039 class TGo4FitModelGaussN : public TGo4FitModel { 00040 public: 00041 00045 TGo4FitModelGaussN(); 00046 00051 TGo4FitModelGaussN(const char* iName, Int_t iNDimension = 3); 00052 00056 virtual ~TGo4FitModelGaussN(); 00057 00061 Int_t GetAxisNumbers() { return fxIndexes.GetSize(); } 00062 00066 Bool_t SetAxisNumbers(Int_t naxis); 00067 00073 Int_t GetAxisForIndex(Int_t indx) { return fxIndexes[indx]; } 00074 00078 void SetAxisForIndex(Int_t indx, Int_t axis) { fxIndexes[indx] = axis; } 00079 00084 Bool_t ResortIndexes(Int_t leaveaxis = -1); 00085 00089 void FillMuVector(TVectorD& Mu); 00090 00094 void FillSigmaMatrix(TMatrixD& Sigma); 00095 00099 virtual void Print(Option_t* option) const; 00100 00101 virtual Bool_t BeforeEval(Int_t); 00102 virtual Double_t EvalN(const Double_t* v); 00103 00104 protected: 00105 TString GetPosParName(Int_t naxis); 00106 TString GetWidthParName(Int_t naxis); 00107 TString GetCovarParName(Int_t naxis1, Int_t naxis2); 00108 00109 virtual Int_t GetPosParIndex(Int_t naxis); 00110 virtual Int_t GetWidthParIndex(Int_t naxis); 00111 00112 virtual void AfterEval(); 00113 00117 TArrayI fxIndexes; 00118 00119 private: 00120 00124 Int_t Par_ndim; 00125 00126 00130 Int_t* Par_indx; 00131 00132 00136 TVectorD* Vect_mu; 00137 00138 00142 TMatrixD* Matr_sig; 00143 00144 00148 TVectorD* Vect_x; 00149 00150 00154 TVectorD* Vect_dx; 00155 00156 ClassDef(TGo4FitModelGaussN,1) 00157 }; 00158 #endif // TGO4FITMODELGAUSSN_H 00159 00160 //----------------------------END OF GO4 SOURCE FILE ---------------------