28 for (Int_t n = 0; n < iNDimension; n++)
31 for (Int_t n = 0; n < iNDimension; n++)
34 for (Int_t n = 0; n < iNDimension; n++)
37 for (Int_t n1 = 0; n1 < iNDimension; n1++)
38 for (Int_t n2 = n1 + 1; n2 < iNDimension; n2++)
65 res.Form(
"Pos%d", naxis);
72 res.Form(
"Width%d", naxis);
79 res.Form(
"Cov%d_%d", naxis1, naxis2);
86 if ((naxis < 0) || (oldnaxis == naxis))
88 if (naxis < oldnaxis) {
89 for (Int_t n = naxis; n < oldnaxis; n++) {
93 for (Int_t n1 = 0; n1 < oldnaxis; n1++)
94 for (Int_t n2 = n1 + 1; n2 < oldnaxis; n2++)
95 if ((n1 >= naxis) || (n2 >= naxis))
100 for (Int_t n = oldnaxis; n < naxis; n++) {
107 for (Int_t n1 = 0; n1 < naxis; n1++)
108 for (Int_t n2 = n1 + 1; n2 < naxis; n2++) {
117 for (Int_t n = oldnaxis; n < naxis; n++) {
122 for (Int_t n1 = 0; n1 < n; n1++)
139 for (Int_t n =
fxIndexes.GetSize() - 1; n >= 0; n--) {
143 Bool_t find, first = kTRUE;
146 for (Int_t n1 = 0; n1 <
fxIndexes.GetSize(); n1++)
147 if ((n != n1) && (test ==
fxIndexes[n1])) {
158 res = res || (!first);
165 for (Int_t n = 0; n <
fxIndexes.GetSize(); n++)
173 for (Int_t n = 0; n <
fxIndexes.GetSize(); n++)
183 for (Int_t n = 0; n < ndim; n++)
190 Sigma.ResizeTo(ndim, ndim);
191 for (Int_t n = 0; n < ndim; n++)
193 Int_t indx = 1 + 2 * ndim;
194 for (Int_t n1 = 0; n1 < ndim; n1++)
195 for (Int_t n2 = n1 + 1; n2 < ndim; n2++) {
206 for (Int_t i = 0; i <
Par_ndim; i++)
208 std::cout <<
"TGo4FitModelGaussN:: invalid index " << std::endl;
212 Vect_mu =
new TVectorD(Par_ndim);
213 Matr_sig =
new TMatrixD(Par_ndim, Par_ndim);
214 Vect_x =
new TVectorD(Par_ndim);
215 Vect_dx =
new TVectorD(Par_ndim);
222 std::cout <<
"TGo4FitModelGaussN:: Invalid sigma matrice " << std::endl;
232 for (Int_t n = 0; n <
Par_ndim; n++)
238 return TMath::Exp(-0.5 * z);
264 std::cout <<
" N-dimensional Gauss" << std::endl;
265 std::cout <<
" axis indexes:";
266 for (Int_t i = 0; i <
fxIndexes.GetSize(); i++)
268 std::cout << std::endl;
Double_t GetValue() const
Bool_t ResortIndexes(Int_t leaveaxis=-1)
void AfterEval() override
TString GetPosParName(Int_t naxis)
TGo4FitParameter * GetPar(Int_t n)
void FillMuVector(TVectorD &Mu)
TGo4FitParameter * NewParameter(const char *Name, const char *Title, Double_t iValue=0., Bool_t Fixed=kFALSE, Int_t AtIndx=-1)
void Print(Option_t *option="") const override
void FillSigmaMatrix(TMatrixD &Sigma)
Int_t GetPosParIndex(Int_t naxis) override
Bool_t SetAxisNumbers(Int_t naxis)
Bool_t RemovePar(const char *name)
TString GetCovarParName(Int_t naxis1, Int_t naxis2)
Int_t GetWidthParIndex(Int_t naxis) override
TGo4FitParameter * FindPar(const char *ParName)
TString GetWidthParName(Int_t naxis)
void Print(Option_t *option="") const override
Double_t EvalN(const Double_t *v) override
Int_t GetParIndex(const TGo4FitParameter *par)
virtual ~TGo4FitModelGaussN()
Int_t GetAxisNumbers() const
Bool_t BeforeEval(Int_t) override