// @(#)root/hist:$Id$
// Author: Christian Holm Christensen 07/11/2000

//____________________________________________________________________
//
//
// Begin_Html
/*
</pre>
<H1><A NAME="SECTION00010000000000000000">
Multidimensional Fits in ROOT</A>
</H1>

<H1><A NAME="SECTION00020000000000000000"></A>
<A NAME="sec:overview"></A><BR>
Overview
</H1>

<P>
A common problem encountered in different fields of applied science is
to find an expression for one physical quantity in terms of several
others, which are directly measurable.

<P>
An example in high energy physics is the evaluation of the momentum of
a charged particle from the observation of its trajectory in a magnetic
field.  The problem is to relate the momentum of the particle to the
observations, which may consists of of positional measurements at
intervals along the particle trajectory.

<P>
The exact functional relationship between the measured quantities
(e.g., the space-points) and the dependent quantity (e.g., the
momentum) is in general not known, but one possible way of solving the
problem, is to find an expression which reliably approximates the
dependence of the momentum on the observations.

<P>
This explicit function of the observations can be obtained by a
<I>least squares</I> fitting procedure applied to a representive
sample of the data, for which the dependent quantity (e.g., momentum)
and the independent observations are known. The function can then be
used to compute the quantity of interest for new observations of the
independent variables.

<P>
This class <TT>TMultiDimFit</TT> implements such a procedure in
ROOT. It is largely based on the CERNLIB MUDIFI package
[<A
HREF="TMultiFimFit.html#mudifi">2</A>]. Though the basic concepts are still sound, and
therefore kept, a few implementation details have changed, and this
class can take advantage of MINUIT [<A
HREF="TMultiFimFit.html#minuit">4</A>] to improve the errors
of the fitting, thanks to the class <TT>TMinuit</TT>.

<P>
In [<A
HREF="TMultiFimFit.html#wind72">5</A>] and [<A
HREF="TMultiFimFit.html#wind81">6</A>] H. Wind demonstrates the utility
of this procedure in the context of tracking, magnetic field
parameterisation, and so on. The outline of the method used in this
class is based on Winds discussion, and I refer these two excellents

<P>
And example of usage is given in
<A NAME="tex2html1"
HREF="
./examples/multidimfit.C"><TT>$ROOTSYS/tutorials/fit/multidimfit.C</TT></A>. <P> <H1><A NAME="SECTION00030000000000000000"></A> <A NAME="sec:method"></A><BR> The Method </H1> <P> Let <IMG WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img7.gif" ALT="$ D$"> by the dependent quantity of interest, which depends smoothly on the observable quantities <!-- MATH$x_1, \ldots, x_N$--> <IMG WIDTH="80" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img8.gif" ALT="$ x_1, \ldots, x_N$">, which we'll denote by <!-- MATH$\mathbf{x}$--> <IMG WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img9.gif" ALT="$ \mathbf{x}$">. Given a training sample of <IMG WIDTH="21" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img10.gif" ALT="$ M$"> tuples of the form, (<A NAME="tex2html2" HREF=" ./TMultiDimFit.html#TMultiDimFit:AddRow"><TT>TMultiDimFit::AddRow</TT></A>) <!-- MATH \begin{displaymath} \left(\mathbf{x}_j, D_j, E_j\right)\quad, \end{displaymath} --> <P></P><DIV ALIGN="CENTER"> <IMG WIDTH="108" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img11.gif" ALT="$\displaystyle \left(\mathbf{x}_j, D_j, E_j\right)\quad,
$"> </DIV><P></P> where <!-- MATH$\mathbf{x}_j = (x_{1,j},\ldots,x_{N,j})$--> <IMG WIDTH="148" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img12.gif" ALT="$ \mathbf{x}_j = (x_{1,j},\ldots,x_{N,j})$"> are <IMG WIDTH="19" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img13.gif" ALT="$ N$"> independent variables, <IMG WIDTH="24" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img14.gif" ALT="$ D_j$"> is the known, quantity dependent at <!-- MATH$\mathbf{x}_j$--> <IMG WIDTH="20" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img15.gif" ALT="$ \mathbf{x}_j$">, and <IMG WIDTH="23" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img16.gif" ALT="$ E_j$"> is the square error in <IMG WIDTH="24" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img14.gif" ALT="$ D_j$">, the class <A NAME="tex2html3" HREF="../TMultiDimFit.html"><TT>TMultiDimFit</TT></A> will try to find the parameterization <P></P> <DIV ALIGN="CENTER"><A NAME="Dp"></A><!-- MATH $$D_p(\mathbf{x}) = \sum_{l=1}^{L} c_l \prod_{i=1}^{N} p_{li}\left(x_i\right) = \sum_{l=1}^{L} c_l F_l(\mathbf{x})$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="274" HEIGHT="65" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img17.gif" ALT="$\displaystyle D_p(\mathbf{x}) = \sum_{l=1}^{L} c_l \prod_{i=1}^{N} p_{li}\left(x_i\right) = \sum_{l=1}^{L} c_l F_l(\mathbf{x})$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (1)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> such that <P></P> <DIV ALIGN="CENTER"><A NAME="S"></A><!-- MATH $$S \equiv \sum_{j=1}^{M} \left(D_j - D_p\left(\mathbf{x}_j\right)\right)^2$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="172" HEIGHT="65" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img18.gif" ALT="$\displaystyle S \equiv \sum_{j=1}^{M} \left(D_j - D_p\left(\mathbf{x}_j\right)\right)^2$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (2)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> is minimal. Here <!-- MATH$p_{li}(x_i)$--> <IMG WIDTH="48" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img19.gif" ALT="$ p_{li}(x_i)$"> are monomials, or Chebyshev or Legendre polynomials, labelled <!-- MATH$l = 1, \ldots, L$--> <IMG WIDTH="87" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img20.gif" ALT="$ l = 1, \ldots, L$">, in each variable <IMG WIDTH="18" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img21.gif" ALT="$ x_i$">, <!-- MATH$i=1, \ldots, N$--> <IMG WIDTH="91" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img22.gif" ALT="$ i=1, \ldots, N$">. <P> So what <TT>TMultiDimFit</TT> does, is to determine the number of terms <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img23.gif" ALT="$ L$">, and then <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img23.gif" ALT="$ L$"> terms (or functions) <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$">, and the <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img23.gif" ALT="$ L$"> coefficients <IMG WIDTH="16" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img25.gif" ALT="$ c_l$">, so that <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$"> is minimal (<A NAME="tex2html4" HREF=" ./TMultiDimFit.html#TMultiDimFit:FindParameterization"><TT>TMultiDimFit::FindParameterization</TT></A>). <P> Of course it's more than a little unlikely that <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$"> will ever become exact zero as a result of the procedure outlined below. Therefore, the user is asked to provide a minimum relative error <IMG WIDTH="11" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img27.gif" ALT="$ \epsilon$"> (<A NAME="tex2html5" HREF=" ./TMultiDimFit.html#TMultiDimFit:SetMinRelativeError"><TT>TMultiDimFit::SetMinRelativeError</TT></A>), and <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$"> will be considered minimized when <!-- MATH \begin{displaymath} R = \frac{S}{\sum_{j=1}^M D_j^2} < \epsilon \end{displaymath} --> <P></P><DIV ALIGN="CENTER"> <IMG WIDTH="132" HEIGHT="51" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img28.gif" ALT="$\displaystyle R = \frac{S}{\sum_{j=1}^M D_j^2} &lt; \epsilon
$"> </DIV><P></P> <P> Optionally, the user may impose a functional expression by specifying the powers of each variable in <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img23.gif" ALT="$ L$"> specified functions <!-- MATH$F_1, \ldots,
F_L$--> <IMG WIDTH="79" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img29.gif" ALT="$ F_1, \ldots,
F_L$"> (<A NAME="tex2html6" HREF=" ./TMultiDimFit.html#TMultiDimFit:SetPowers"><TT>TMultiDimFit::SetPowers</TT></A>). In that case, only the coefficients <IMG WIDTH="16" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img25.gif" ALT="$ c_l$"> is calculated by the class. <P> <H2><A NAME="SECTION00031000000000000000"></A> <A NAME="sec:selection"></A><BR> Limiting the Number of Terms </H2> <P> As always when dealing with fits, there's a real chance of <I>over fitting</I>. As is well-known, it's always possible to fit an <IMG WIDTH="46" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img30.gif" ALT="$ N-1$"> polynomial in <IMG WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img31.gif" ALT="$ x$"> to <IMG WIDTH="19" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img13.gif" ALT="$ N$"> points <IMG WIDTH="41" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img32.gif" ALT="$ (x,y)$"> with <!-- MATH$\chi^2 = 0$--> <IMG WIDTH="50" HEIGHT="33" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img33.gif" ALT="$ \chi^2 = 0$">, but the polynomial is not likely to fit new data at all [<A HREF="TMultiFimFit.html#bevington">1</A>]. Therefore, the user is asked to provide an upper limit, <IMG WIDTH="41" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img34.gif" ALT="$ L_{max}$"> to the number of terms in <IMG WIDTH="25" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img35.gif" ALT="$ D_p$"> (<A NAME="tex2html7" HREF=" ./TMultiDimFit.html#TMultiDimFit:SetMaxTerms"><TT>TMultiDimFit::SetMaxTerms</TT></A>). <P> However, since there's an infinite number of <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$"> to choose from, the user is asked to give the maximum power. <IMG WIDTH="49" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img36.gif" ALT="$ P_{max,i}$">, of each variable <IMG WIDTH="18" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img21.gif" ALT="$ x_i$"> to be considered in the minimization of <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$"> (<A NAME="tex2html8" HREF=" ./TMultiDimFit.html#TMultiDimFit:SetMaxPowers"><TT>TMultiDimFit::SetMaxPowers</TT></A>). <P> One way of obtaining values for the maximum power in variable <IMG WIDTH="10" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img37.gif" ALT="$ i$">, is to perform a regular fit to the dependent quantity <IMG WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img7.gif" ALT="$ D$">, using a polynomial only in <IMG WIDTH="18" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img21.gif" ALT="$ x_i$">. The maximum power is <IMG WIDTH="49" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img36.gif" ALT="$ P_{max,i}$"> is then the power that does not significantly improve the one-dimensional least-square fit over <IMG WIDTH="18" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img21.gif" ALT="$ x_i$"> to <IMG WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img7.gif" ALT="$ D$"> [<A HREF="TMultiFimFit.html#wind72">5</A>]. <P> There are still a huge amount of possible choices for <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$">; in fact there are <!-- MATH$\prod_{i=1}^{N} (P_{max,i} + 1)$--> <IMG WIDTH="125" HEIGHT="39" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img38.gif" ALT="$ \prod_{i=1}^{N} (P_{max,i} + 1)$"> possible choices. Obviously we need to limit this. To this end, the user is asked to set a <I>power control limit</I>, <IMG WIDTH="17" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img39.gif" ALT="$ Q$"> (<A NAME="tex2html9" HREF=" ./TMultiDimFit.html#TMultiDimFit:SetPowerLimit"><TT>TMultiDimFit::SetPowerLimit</TT></A>), and a function <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$"> is only accepted if <!-- MATH \begin{displaymath} Q_l = \sum_{i=1}^{N} \frac{P_{li}}{P_{max,i}} < Q \end{displaymath} --> <P></P><DIV ALIGN="CENTER"> <IMG WIDTH="151" HEIGHT="65" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img40.gif" ALT="$\displaystyle Q_l = \sum_{i=1}^{N} \frac{P_{li}}{P_{max,i}} &lt; Q
$"> </DIV><P></P> where <IMG WIDTH="24" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img41.gif" ALT="$ P_{li}$"> is the leading power of variable <IMG WIDTH="18" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img21.gif" ALT="$ x_i$"> in function <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$">. (<A NAME="tex2html10" HREF=" ./TMultiDimFit.html#TMultiDimFit:MakeCandidates"><TT>TMultiDimFit::MakeCandidates</TT></A>). So the number of functions increase with <IMG WIDTH="17" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img39.gif" ALT="$ Q$"> (1, 2 is fine, 5 is way out). <P> <H2><A NAME="SECTION00032000000000000000"> Gram-Schmidt Orthogonalisation</A> </H2> <P> To further reduce the number of functions in the final expression, only those functions that significantly reduce <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$"> is chosen. What significant' means, is chosen by the user, and will be discussed below (see&nbsp;<A HREF="TMultiFimFit.html#sec:selectiondetail">2.3</A>). <P> The functions <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$"> are generally not orthogonal, which means one will have to evaluate all possible <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$">'s over all data-points before finding the most significant [<A HREF="TMultiFimFit.html#bevington">1</A>]. We can, however, do better then that. By applying the <I>modified Gram-Schmidt orthogonalisation</I> algorithm [<A HREF="TMultiFimFit.html#wind72">5</A>] [<A HREF="TMultiFimFit.html#golub">3</A>] to the functions <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$">, we can evaluate the contribution to the reduction of <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$"> from each function in turn, and we may delay the actual inversion of the curvature-matrix (<A NAME="tex2html11" HREF=" ./TMultiDimFit.html#TMultiDimFit:MakeGramSchmidt"><TT>TMultiDimFit::MakeGramSchmidt</TT></A>). <P> So we are let to consider an <IMG WIDTH="52" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img42.gif" ALT="$ M\times L$"> matrix <!-- MATH$\mathsf{F}$--> <IMG WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img43.gif" ALT="$ \mathsf{F}$">, an element of which is given by <P></P> <DIV ALIGN="CENTER"><A NAME="eq:Felem"></A><!-- MATH $$f_{jl} = F_j\left(x_{1j} , x_{2j}, \ldots, x_{Nj}\right) = F_l(\mathbf{x}_j)\, \quad\mbox{with}~j=1,2,\ldots,M,$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="260" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img44.gif" ALT="$\displaystyle f_{jl} = F_j\left(x_{1j} , x_{2j}, \ldots, x_{Nj}\right) = F_l(\mathbf{x}_j) $">&nbsp; &nbsp;with<IMG WIDTH="120" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img45.gif" ALT="$\displaystyle &nbsp;j=1,2,\ldots,M,$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (3)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> where <IMG WIDTH="12" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img46.gif" ALT="$ j$"> labels the <IMG WIDTH="21" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img10.gif" ALT="$ M$"> rows in the training sample and <IMG WIDTH="9" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img47.gif" ALT="$ l$"> labels <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img23.gif" ALT="$ L$"> functions of <IMG WIDTH="19" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img13.gif" ALT="$ N$"> variables, and <IMG WIDTH="53" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img48.gif" ALT="$ L \leq M$">. That is, <IMG WIDTH="23" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img49.gif" ALT="$ f_{jl}$"> is the term (or function) numbered <IMG WIDTH="9" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img47.gif" ALT="$ l$"> evaluated at the data point <IMG WIDTH="12" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img46.gif" ALT="$ j$">. We have to normalise <!-- MATH$\mathbf{x}_j$--> <IMG WIDTH="20" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img15.gif" ALT="$ \mathbf{x}_j$"> to <IMG WIDTH="48" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img50.gif" ALT="$ [-1,1]$"> for this to succeed [<A HREF="TMultiFimFit.html#wind72">5</A>] (<A NAME="tex2html12" HREF=" ./TMultiDimFit.html#TMultiDimFit:MakeNormalized"><TT>TMultiDimFit::MakeNormalized</TT></A>). We then define a matrix <!-- MATH$\mathsf{W}$--> <IMG WIDTH="19" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img51.gif" ALT="$ \mathsf{W}$"> of which the columns <!-- MATH$\mathbf{w}_j$--> <IMG WIDTH="24" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img52.gif" ALT="$ \mathbf{w}_j$"> are given by <BR> <DIV ALIGN="CENTER"><A NAME="eq:wj"></A><!-- MATH \begin{eqnarray} \mathbf{w}_1 &=& \mathbf{f}_1 = F_1\left(\mathbf x_1\right)\\ \mathbf{w}_l &=& \mathbf{f}_l - \sum^{l-1}_{k=1} \frac{\mathbf{f}_l \bullet \mathbf{w}_k}{\mathbf{w}_k^2}\mathbf{w}_k\,. \end{eqnarray} --> <TABLE CELLPADDING="0" ALIGN="CENTER" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="25" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img53.gif" ALT="$\displaystyle \mathbf{w}_1$"></TD> <TD WIDTH="10" ALIGN="CENTER" NOWRAP><IMG WIDTH="16" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img54.gif" ALT="$\displaystyle =$"></TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="87" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img55.gif" ALT="$\displaystyle \mathbf{f}_1 = F_1\left(\mathbf x_1\right)$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (4)</TD></TR> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="22" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img56.gif" ALT="$\displaystyle \mathbf{w}_l$"></TD> <TD WIDTH="10" ALIGN="CENTER" NOWRAP><IMG WIDTH="16" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img54.gif" ALT="$\displaystyle =$"></TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="138" HEIGHT="66" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img57.gif" ALT="$\displaystyle \mathbf{f}_l - \sum^{l-1}_{k=1} \frac{\mathbf{f}_l \bullet
\mathbf{w}_k}{\mathbf{w}_k^2}\mathbf{w}_k .$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (5)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> and <!-- MATH$\mathbf{w}_{l}$--> <IMG WIDTH="22" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img58.gif" ALT="$ \mathbf{w}_{l}$"> is the component of <!-- MATH$\mathbf{f}_{l}$--> <IMG WIDTH="15" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img59.gif" ALT="$ \mathbf{f}_{l}$"> orthogonal to <!-- MATH$\mathbf{w}_{1}, \ldots, \mathbf{w}_{l-1}$--> <IMG WIDTH="97" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img60.gif" ALT="$ \mathbf{w}_{1}, \ldots, \mathbf{w}_{l-1}$">. Hence we obtain [<A HREF="TMultiFimFit.html#golub">3</A>], <P></P> <DIV ALIGN="CENTER"><A NAME="eq:worto"></A><!-- MATH $$\mathbf{w}_k\bullet\mathbf{w}_l = 0\quad\mbox{if}~k \neq l\quad.$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="87" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img61.gif" ALT="$\displaystyle \mathbf{w}_k\bullet\mathbf{w}_l = 0$">&nbsp; &nbsp;if<IMG WIDTH="65" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img62.gif" ALT="$\displaystyle &nbsp;k \neq l\quad.$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (6)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> <P> We now take as a new model <!-- MATH$\mathsf{W}\mathbf{a}$--> <IMG WIDTH="28" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img63.gif" ALT="$ \mathsf{W}\mathbf{a}$">. We thus want to minimize <P></P> <DIV ALIGN="CENTER"><A NAME="eq:S"></A><!-- MATH $$S\equiv \left(\mathbf{D} - \mathsf{W}\mathbf{a}\right)^2\quad,$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="136" HEIGHT="38" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img64.gif" ALT="$\displaystyle S\equiv \left(\mathbf{D} - \mathsf{W}\mathbf{a}\right)^2\quad,$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (7)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> where <!-- MATH$\mathbf{D} = \left(D_1,\ldots,D_M\right)$--> <IMG WIDTH="137" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img65.gif" ALT="$ \mathbf{D} = \left(D_1,\ldots,D_M\right)$"> is a vector of the dependent quantity in the sample. Differentiation with respect to <IMG WIDTH="19" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img66.gif" ALT="$ a_j$"> gives, using&nbsp;(<A HREF="TMultiFimFit.html#eq:worto">6</A>), <P></P> <DIV ALIGN="CENTER"><A NAME="eq:dS"></A><!-- MATH $$\mathbf{D}\bullet\mathbf{w}_l - a_l\mathbf{w}_l^2 = 0$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="134" HEIGHT="35" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img67.gif" ALT="$\displaystyle \mathbf{D}\bullet\mathbf{w}_l - a_l\mathbf{w}_l^2 = 0$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (8)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> or <P></P> <DIV ALIGN="CENTER"><A NAME="eq:dS2"></A><!-- MATH $$a_l = \frac{\mathbf{D}_l\bullet\mathbf{w}_l}{\mathbf{w}_l^2}$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="95" HEIGHT="51" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img68.gif" ALT="$\displaystyle a_l = \frac{\mathbf{D}_l\bullet\mathbf{w}_l}{\mathbf{w}_l^2}$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (9)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> Let <IMG WIDTH="21" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img69.gif" ALT="$ S_j$"> be the sum of squares of residuals when taking <IMG WIDTH="12" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img46.gif" ALT="$ j$"> functions into account. Then <P></P> <DIV ALIGN="CENTER"><A NAME="eq:Sj"></A><!-- MATH $$S_l = \left[\mathbf{D} - \sum^l_{k=1} a_k\mathbf{w}_k\right]^2 = \mathbf{D}^2 - 2\mathbf{D} \sum^l_{k=1} a_k\mathbf{w}_k + \sum^l_{k=1} a_k^2\mathbf{w}_k^2$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="394" HEIGHT="72" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img70.gif" ALT="$\displaystyle S_l = \left[\mathbf{D} - \sum^l_{k=1} a_k\mathbf{w}_k\right]^2 = ...
...2 - 2\mathbf{D} \sum^l_{k=1} a_k\mathbf{w}_k + \sum^l_{k=1} a_k^2\mathbf{w}_k^2$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (10)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> Using (<A HREF="TMultiFimFit.html#eq:dS2">9</A>), we see that <BR> <DIV ALIGN="CENTER"><A NAME="eq:sj2"></A><!-- MATH \begin{eqnarray} S_l &=& \mathbf{D}^2 - 2 \sum^l_{k=1} a_k^2\mathbf{w}_k^2 + \sum^j_{k=1} a_k^2\mathbf{w}_k^2\nonumber\\ &=& \mathbf{D}^2 - \sum^l_{k=1} a_k^2\mathbf{w}_k^2\nonumber\\ &=& \mathbf{D}^2 - \sum^l_{k=1} \frac{\left(\mathbf D\bullet \mathbf w_k\right)}{\mathbf w_k^2} \end{eqnarray} --> <TABLE CELLPADDING="0" ALIGN="CENTER" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img71.gif" ALT="$\displaystyle S_l$"></TD> <TD WIDTH="10" ALIGN="CENTER" NOWRAP><IMG WIDTH="16" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img54.gif" ALT="$\displaystyle =$"></TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="201" HEIGHT="67" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img72.gif" ALT="$\displaystyle \mathbf{D}^2 - 2 \sum^l_{k=1} a_k^2\mathbf{w}_k^2 +
\sum^j_{k=1} a_k^2\mathbf{w}_k^2$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> &nbsp;</TD></TR> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT">&nbsp;</TD> <TD WIDTH="10" ALIGN="CENTER" NOWRAP><IMG WIDTH="16" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img54.gif" ALT="$\displaystyle =$"></TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="108" HEIGHT="66" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img73.gif" ALT="$\displaystyle \mathbf{D}^2 - \sum^l_{k=1} a_k^2\mathbf{w}_k^2$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> &nbsp;</TD></TR> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT">&nbsp;</TD> <TD WIDTH="10" ALIGN="CENTER" NOWRAP><IMG WIDTH="16" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img54.gif" ALT="$\displaystyle =$"></TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="137" HEIGHT="66" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img74.gif" ALT="$\displaystyle \mathbf{D}^2 - \sum^l_{k=1} \frac{\left(\mathbf D\bullet \mathbf
w_k\right)}{\mathbf w_k^2}$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (11)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> <P> So for each new function <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$"> included in the model, we get a reduction of the sum of squares of residuals of <!-- MATH$a_l^2\mathbf{w}_l^2$--> <IMG WIDTH="40" HEIGHT="33" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img75.gif" ALT="$ a_l^2\mathbf{w}_l^2$">, where <!-- MATH$\mathbf{w}_l$--> <IMG WIDTH="22" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img76.gif" ALT="$ \mathbf{w}_l$"> is given by (<A HREF="TMultiFimFit.html#eq:wj">4</A>) and <IMG WIDTH="17" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img77.gif" ALT="$ a_l$"> by (<A HREF="TMultiFimFit.html#eq:dS2">9</A>). Thus, using the Gram-Schmidt orthogonalisation, we can decide if we want to include this function in the final model, <I>before</I> the matrix inversion. <P> <H2><A NAME="SECTION00033000000000000000"></A> <A NAME="sec:selectiondetail"></A><BR> Function Selection Based on Residual </H2> <P> Supposing that <IMG WIDTH="42" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img78.gif" ALT="$ L-1$"> steps of the procedure have been performed, the problem now is to consider the <!-- MATH$L^{\mbox{th}}$--> <IMG WIDTH="31" HEIGHT="20" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img79.gif" ALT="$ L^{\mbox{th}}$"> function. <P> The sum of squares of residuals can be written as <P></P> <DIV ALIGN="CENTER"><A NAME="eq:sums"></A><!-- MATH $$S_L = \textbf{D}^T\bullet\textbf{D} - \sum^L_{l=1}a^2_l\left(\textbf{w}_l^T\bullet\textbf{w}_l\right)$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="232" HEIGHT="65" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img80.gif" ALT="$\displaystyle S_L = \textbf{D}^T\bullet\textbf{D} - \sum^L_{l=1}a^2_l\left(\textbf{w}_l^T\bullet\textbf{w}_l\right)$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (12)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> where the relation (<A HREF="TMultiFimFit.html#eq:dS2">9</A>) have been taken into account. The contribution of the <!-- MATH$L^{\mbox{th}}$--> <IMG WIDTH="31" HEIGHT="20" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img79.gif" ALT="$ L^{\mbox{th}}$"> function to the reduction of S, is given by <P></P> <DIV ALIGN="CENTER"><A NAME="eq:dSN"></A><!-- MATH $$\Delta S_L = a^2_L\left(\textbf{w}_L^T\bullet\textbf{w}_L\right)$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="154" HEIGHT="36" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img81.gif" ALT="$\displaystyle \Delta S_L = a^2_L\left(\textbf{w}_L^T\bullet\textbf{w}_L\right)$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (13)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> <P> Two test are now applied to decide whether this <!-- MATH$L^{\mbox{th}}$--> <IMG WIDTH="31" HEIGHT="20" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img79.gif" ALT="$ L^{\mbox{th}}$"> function is to be included in the final expression, or not. <P> <H3><A NAME="SECTION00033100000000000000"></A> <A NAME="testone"></A><BR> Test 1 </H3> <P> Denoting by <IMG WIDTH="43" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img82.gif" ALT="$ H_{L-1}$"> the subspace spanned by <!-- MATH$\textbf{w}_1,\ldots,\textbf{w}_{L-1}$--> <IMG WIDTH="102" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img83.gif" ALT="$ \textbf{w}_1,\ldots,\textbf{w}_{L-1}$"> the function <!-- MATH$\textbf{w}_L$--> <IMG WIDTH="27" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img5.gif" ALT="$ \textbf {w}_L$"> is by construction (see (<A HREF="TMultiFimFit.html#eq:wj">4</A>)) the projection of the function <IMG WIDTH="24" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img84.gif" ALT="$ F_L$"> onto the direction perpendicular to <IMG WIDTH="43" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img82.gif" ALT="$ H_{L-1}$">. Now, if the length of <!-- MATH$\textbf{w}_L$--> <IMG WIDTH="27" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img5.gif" ALT="$ \textbf {w}_L$"> (given by <!-- MATH$\textbf{w}_L\bullet\textbf{w}_L$--> <IMG WIDTH="65" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img85.gif" ALT="$ \textbf{w}_L\bullet\textbf{w}_L$">) is very small compared to the length of <!-- MATH$\textbf{f}_L$--> <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img3.gif" ALT="$ \textbf {f}_L$"> this new function can not contribute much to the reduction of the sum of squares of residuals. The test consists then in calculating the angle <IMG WIDTH="12" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img1.gif" ALT="$ \theta $"> between the two vectors <!-- MATH$\textbf{w}_L$--> <IMG WIDTH="27" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img5.gif" ALT="$ \textbf {w}_L$"> and <!-- MATH$\textbf{f}_L$--> <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img3.gif" ALT="$ \textbf {f}_L$"> (see also figure&nbsp;<A HREF="TMultiFimFit.html#fig:thetaphi">1</A>) and requiring that it's <I>greater</I> then a threshold value which the user must set (<A NAME="tex2html14" HREF=" ./TMultiDimFit.html#TMultiDimFit:SetMinAngle"><TT>TMultiDimFit::SetMinAngle</TT></A>). <P> <P></P> <DIV ALIGN="CENTER"><A NAME="fig:thetaphi"></A><A NAME="519"></A> <TABLE> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG> (a) Angle <IMG WIDTH="12" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img1.gif" ALT="$ \theta $"> between <!-- MATH$\textbf{w}_l$--> <IMG WIDTH="22" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img2.gif" ALT="$ \textbf {w}_l$"> and <!-- MATH$\textbf{f}_L$--> <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img3.gif" ALT="$ \textbf {f}_L$">, (b) angle <IMG WIDTH="14" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img4.gif" ALT="$ \phi $"> between <!-- MATH$\textbf{w}_L$--> <IMG WIDTH="27" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img5.gif" ALT="$ \textbf {w}_L$"> and <!-- MATH$\textbf{D}$--> <IMG WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img6.gif" ALT="$ \textbf {D}$"></CAPTION> <TR><TD><IMG WIDTH="466" HEIGHT="172" BORDER="0" SRC="gif/multidimfit_img86.gif" ALT="\begin{figure}\begin{center} \begin{tabular}{p{.4\textwidth}p{.4\textwidth}} \... ... \put(80,100){$\mathbf{D}$} \end{picture} \end{tabular} \end{center}\end{figure}"></TD></TR> </TABLE> </DIV><P></P> <P> <H3><A NAME="SECTION00033200000000000000"></A> <A NAME="testtwo"></A><BR> Test 2 </H3> <P> Let <!-- MATH$\textbf{D}$--> <IMG WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img6.gif" ALT="$ \textbf {D}$"> be the data vector to be fitted. As illustrated in figure&nbsp;<A HREF="TMultiFimFit.html#fig:thetaphi">1</A>, the <!-- MATH$L^{\mbox{th}}$--> <IMG WIDTH="31" HEIGHT="20" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img79.gif" ALT="$ L^{\mbox{th}}$"> function <!-- MATH$\textbf{w}_L$--> <IMG WIDTH="27" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img5.gif" ALT="$ \textbf {w}_L$"> will contribute significantly to the reduction of <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$">, if the angle <!-- MATH$\phi^\prime$--> <IMG WIDTH="18" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img87.gif" ALT="$ \phi^\prime$"> between <!-- MATH$\textbf{w}_L$--> <IMG WIDTH="27" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img5.gif" ALT="$ \textbf {w}_L$"> and <!-- MATH$\textbf{D}$--> <IMG WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img6.gif" ALT="$ \textbf {D}$"> is smaller than an upper limit <IMG WIDTH="14" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img4.gif" ALT="$ \phi $">, defined by the user (<A NAME="tex2html15" HREF=" ./TMultiDimFit.html#TMultiDimFit:SetMaxAngle"><TT>TMultiDimFit::SetMaxAngle</TT></A>) <P> However, the method automatically readjusts the value of this angle while fitting is in progress, in order to make the selection criteria less and less difficult to be fulfilled. The result is that the functions contributing most to the reduction of <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$"> are chosen first (<A NAME="tex2html16" HREF=" ./TMultiDimFit.html#TMultiDimFit:TestFunction"><TT>TMultiDimFit::TestFunction</TT></A>). <P> In case <IMG WIDTH="14" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img4.gif" ALT="$ \phi $"> isn't defined, an alternative method of performing this second test is used: The <!-- MATH$L^{\mbox{th}}$--> <IMG WIDTH="31" HEIGHT="20" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img79.gif" ALT="$ L^{\mbox{th}}$"> function <!-- MATH$\textbf{f}_L$--> <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img3.gif" ALT="$ \textbf {f}_L$"> is accepted if (refer also to equation&nbsp;(<A HREF="TMultiFimFit.html#eq:dSN">13</A>)) <P></P> <DIV ALIGN="CENTER"><A NAME="eq:dSN2"></A><!-- MATH $$\Delta S_L > \frac{S_{L-1}}{L_{max}-L}$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="129" HEIGHT="51" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img88.gif" ALT="$\displaystyle \Delta S_L &gt; \frac{S_{L-1}}{L_{max}-L}$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (14)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> where <IMG WIDTH="40" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img89.gif" ALT="$ S_{L-1}$"> is the sum of the <IMG WIDTH="42" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img78.gif" ALT="$ L-1$"> first residuals from the <IMG WIDTH="42" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img78.gif" ALT="$ L-1$"> functions previously accepted; and <IMG WIDTH="41" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img34.gif" ALT="$ L_{max}$"> is the total number of functions allowed in the final expression of the fit (defined by user). <P> >From this we see, that by restricting <IMG WIDTH="41" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img34.gif" ALT="$ L_{max}$"> -- the number of terms in the final model -- the fit is more difficult to perform, since the above selection criteria is more limiting. <P> The more coefficients we evaluate, the more the sum of squares of residuals <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$"> will be reduced. We can evaluate <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$"> before inverting <!-- MATH$\mathsf{B}$--> <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img90.gif" ALT="$ \mathsf{B}$"> as shown below. <P> <H2><A NAME="SECTION00034000000000000000"> Coefficients and Coefficient Errors</A> </H2> <P> Having found a parameterization, that is the <IMG WIDTH="19" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img24.gif" ALT="$ F_l$">'s and <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img23.gif" ALT="$ L$">, that minimizes <IMG WIDTH="15" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img26.gif" ALT="$ S$">, we still need to determine the coefficients <IMG WIDTH="16" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img25.gif" ALT="$ c_l$">. However, it's a feature of how we choose the significant functions, that the evaluation of the <IMG WIDTH="16" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img25.gif" ALT="$ c_l$">'s becomes trivial [<A HREF="TMultiFimFit.html#wind72">5</A>]. To derive <!-- MATH$\mathbf{c}$--> <IMG WIDTH="12" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img91.gif" ALT="$ \mathbf{c}$">, we first note that equation&nbsp;(<A HREF="TMultiFimFit.html#eq:wj">4</A>) can be written as <P></P> <DIV ALIGN="CENTER"><A NAME="eq:FF"></A><!-- MATH $$\mathsf{F} = \mathsf{W}\mathsf{B}$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="60" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img92.gif" ALT="$\displaystyle \mathsf{F} = \mathsf{W}\mathsf{B}$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (15)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> where <P></P> <DIV ALIGN="CENTER"><A NAME="eq:bij"></A><!-- MATH $$b_{ij} = \left\{\begin{array}{rcl} \frac{\mathbf{f}_j \bullet \mathbf{w}_i}{\mathbf{w}_i^2} & \mbox{if} & i < j\\ 1 & \mbox{if} & i = j\\ 0 & \mbox{if} & i > j \end{array}\right.$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="187" HEIGHT="79" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img93.gif" ALT="$\displaystyle b_{ij} = \left\{\begin{array}{rcl} \frac{\mathbf{f}_j \bullet \ma...
...f} &amp; i &lt; j\  1 &amp; \mbox{if} &amp; i = j\  0 &amp; \mbox{if} &amp; i &gt; j \end{array}\right.$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (16)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> Consequently, <!-- MATH$\mathsf{B}$--> <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img90.gif" ALT="$ \mathsf{B}$"> is an upper triangle matrix, which can be readily inverted. So we now evaluate <P></P> <DIV ALIGN="CENTER"><A NAME="eq:FFF"></A><!-- MATH $$\mathsf{F}\mathsf{B}^{-1} = \mathsf{W}$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="77" HEIGHT="35" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img94.gif" ALT="$\displaystyle \mathsf{F}\mathsf{B}^{-1} = \mathsf{W}$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (17)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> The model <!-- MATH$\mathsf{W}\mathbf{a}$--> <IMG WIDTH="28" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img63.gif" ALT="$ \mathsf{W}\mathbf{a}$"> can therefore be written as <!-- MATH \begin{displaymath} (\mathsf{F}\mathsf{B}^{-1})\mathbf{a} = \mathsf{F}(\mathsf{B}^{-1}\mathbf{a})\,. \end{displaymath} --> <P></P><DIV ALIGN="CENTER"> <IMG WIDTH="148" HEIGHT="35" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img95.gif" ALT="$\displaystyle (\mathsf{F}\mathsf{B}^{-1})\mathbf{a} =
\mathsf{F}(\mathsf{B}^{-1}\mathbf{a}) .
$"> </DIV><P></P> The original model <!-- MATH$\mathsf{F}\mathbf{c}$--> <IMG WIDTH="21" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img96.gif" ALT="$ \mathsf{F}\mathbf{c}$"> is therefore identical with this if <P></P> <DIV ALIGN="CENTER"><A NAME="eq:id:cond"></A><!-- MATH $$\mathbf{c} = \left(\mathsf{B}^{-1}\mathbf{a}\right) = \left[\mathbf{a}^T\left(\mathsf{B}^{-1}\right)^T\right]^T\,.$$ --> <TABLE CELLPADDING="0" WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"> <TD NOWRAP ALIGN="CENTER"><IMG WIDTH="214" HEIGHT="51" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img97.gif" ALT="$\displaystyle \mathbf{c} = \left(\mathsf{B}^{-1}\mathbf{a}\right) = \left[\mathbf{a}^T\left(\mathsf{B}^{-1}\right)^T\right]^T .$"></TD> <TD NOWRAP WIDTH="10" ALIGN="RIGHT"> (18)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> The reason we use <!-- MATH$\left(\mathsf{B}^{-1}\right)^T$--> <IMG WIDTH="56" HEIGHT="42" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img98.gif" ALT="$ \left(\mathsf{B}^{-1}\right)^T$"> rather then <!-- MATH$\mathsf{B}^{-1}$--> <IMG WIDTH="32" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img99.gif" ALT="$ \mathsf{B}^{-1}$"> is to save storage, since <!-- MATH$\left(\mathsf{B}^{-1}\right)^T$--> <IMG WIDTH="56" HEIGHT="42" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img98.gif" ALT="$ \left(\mathsf{B}^{-1}\right)^T$"> can be stored in the same matrix as <!-- MATH$\mathsf{B}$--> <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img90.gif" ALT="$ \mathsf{B}$"> (<A NAME="tex2html17" HREF=" ./TMultiDimFit.html#TMultiDimFit:MakeCoefficients"><TT>TMultiDimFit::MakeCoefficients</TT></A>). The errors in the coefficients is calculated by inverting the curvature matrix of the non-orthogonal functions <IMG WIDTH="23" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img100.gif" ALT="$ f_{lj}$"> [<A HREF="TMultiFimFit.html#bevington">1</A>] (<A NAME="tex2html18" HREF=" ./TMultiDimFit.html#TMultiDimFit:MakeCoefficientErrors"><TT>TMultiDimFit::MakeCoefficientErrors</TT></A>). <P> <H2><A NAME="SECTION00035000000000000000"></A> <A NAME="sec:considerations"></A><BR> Considerations </H2> <P> It's important to realize that the training sample should be representive of the problem at hand, in particular along the borders of the region of interest. This is because the algorithm presented here, is a <I>interpolation</I>, rahter then a <I>extrapolation</I> [<A HREF="TMultiFimFit.html#wind72">5</A>]. <P> Also, the independent variables <IMG WIDTH="18" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img101.gif" ALT="$ x_{i}$"> need to be linear independent, since the procedure will perform poorly if they are not [<A HREF="TMultiFimFit.html#wind72">5</A>]. One can find an linear transformation from ones original variables <IMG WIDTH="16" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img102.gif" ALT="$ \xi_{i}$"> to a set of linear independent variables <IMG WIDTH="18" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img101.gif" ALT="$ x_{i}$">, using a <I>Principal Components Analysis</I> <A NAME="tex2html19" HREF="../TPrincipal.html">(see <TT>TPrincipal</TT>)</A>, and then use the transformed variable as input to this class [<A HREF="TMultiFimFit.html#wind72">5</A>] [<A HREF="TMultiFimFit.html#wind81">6</A>]. <P> H. Wind also outlines a method for parameterising a multidimensional dependence over a multidimensional set of variables. An example of the method from [<A HREF="TMultiFimFit.html#wind72">5</A>], is a follows (please refer to [<A HREF="TMultiFimFit.html#wind72">5</A>] for a full discussion): <P> <OL> <LI>Define <!-- MATH$\mathbf{P} = (P_1, \ldots, P_5)$--> <IMG WIDTH="123" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img103.gif" ALT="$ \mathbf{P} = (P_1, \ldots, P_5)$"> are the 5 dependent quantities that define a track. </LI> <LI>Compute, for <IMG WIDTH="21" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img10.gif" ALT="$ M$"> different values of <!-- MATH$\mathbf{P}$--> <IMG WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img104.gif" ALT="$ \mathbf{P}$">, the tracks through the magnetic field, and determine the corresponding <!-- MATH$\mathbf{x} = (x_1, \ldots, x_N)$--> <IMG WIDTH="123" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img105.gif" ALT="$ \mathbf{x} = (x_1, \ldots, x_N)$">. </LI> <LI>Use the simulated observations to determine, with a simple approximation, the values of <!-- MATH$\mathbf{P}_j$--> <IMG WIDTH="23" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img106.gif" ALT="$ \mathbf{P}_j$">. We call these values <!-- MATH$\mathbf{P}^\prime_j, j = 1, \ldots, M$--> <IMG WIDTH="122" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img107.gif" ALT="$ \mathbf{P}^\prime_j, j = 1, \ldots, M$">. </LI> <LI>Determine from <!-- MATH$\mathbf{x}$--> <IMG WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img9.gif" ALT="$ \mathbf{x}$"> a set of at least five relevant coordinates <!-- MATH$\mathbf{x}^\prime$--> <IMG WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img108.gif" ALT="$ \mathbf{x}^\prime$">, using contrains, <I>or alternative:</I> </LI> <LI>Perform a Principal Component Analysis (using <A NAME="tex2html20" HREF="../TPrincipal.html"><TT>TPrincipal</TT></A>), and use to get a linear transformation <!-- MATH$\mathbf{x} \rightarrow \mathbf{x}^\prime$--> <IMG WIDTH="53" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img109.gif" ALT="$ \mathbf{x} \rightarrow \mathbf{x}^\prime$">, so that <!-- MATH$\mathbf{x}^\prime$--> <IMG WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img108.gif" ALT="$ \mathbf{x}^\prime$"> are constrained and linear independent. </LI> <LI>Perform a Principal Component Analysis on <!-- MATH$Q_i = P_i / P^\prime_i\, i = 1, \ldots, 5$--> <IMG WIDTH="210" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img110.gif" ALT="$ Q_i = P_i / P^prime_i  i = 1, \ldots, 5$">, to get linear indenpendent (among themselves, but not independent of <!-- MATH$\mathbf{x}$--> <IMG WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img9.gif" ALT="$ \mathbf{x}$">) quantities <!-- MATH$\mathbf{Q}^\prime$--> <IMG WIDTH="22" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img111.gif" ALT="$ \mathbf{Q}^\prime$"> </LI> <LI>For each component <!-- MATH$Q^\prime_i$--> <IMG WIDTH="22" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img112.gif" ALT="$ Q^\prime_i$"> make a mutlidimensional fit, using <!-- MATH$\mathbf{x}^\prime$--> <IMG WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img108.gif" ALT="$ \mathbf{x}^\prime$"> as the variables, thus determing a set of coefficents <!-- MATH$\mathbf{c}_i$--> <IMG WIDTH="17" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img113.gif" ALT="$ \mathbf{c}_i$">. </LI> </OL> <P> To process data, using this parameterisation, do <OL> <LI>Test wether the observation <!-- MATH$\mathbf{x}$--> <IMG WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img9.gif" ALT="$ \mathbf{x}$"> within the domain of the parameterization, using the result from the Principal Component Analysis. </LI> <LI>Determine <!-- MATH$\mathbf{P}^\prime$--> <IMG WIDTH="21" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img114.gif" ALT="$ \mathbf{P}^\prime$"> as before. </LI> <LI>Detetmine <!-- MATH$\mathbf{x}^\prime$--> <IMG WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img108.gif" ALT="$ \mathbf{x}^\prime$"> as before. </LI> <LI>Use the result of the fit to determind <!-- MATH$\mathbf{Q}^\prime$--> <IMG WIDTH="22" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img111.gif" ALT="$ \mathbf{Q}^\prime$">. </LI> <LI>Transform back to <!-- MATH$\mathbf{P}$--> <IMG WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img104.gif" ALT="$ \mathbf{P}$"> from <!-- MATH$\mathbf{Q}^\prime$--> <IMG WIDTH="22" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img111.gif" ALT="$ \mathbf{Q}^\prime$">, using the result from the Principal Component Analysis. </LI> </OL> <P> <H2><A NAME="SECTION00036000000000000000"></A> <A NAME="sec:testing"></A><BR> Testing the parameterization </H2> <P> The class also provides functionality for testing the, over the training sample, found parameterization (<A NAME="tex2html21" HREF=" ./TMultiDimFit.html#TMultiDimFit:Fit"><TT>TMultiDimFit::Fit</TT></A>). This is done by passing the class a test sample of <IMG WIDTH="25" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img115.gif" ALT="$ M_t$"> tuples of the form <!-- MATH$(\mathbf{x}_{t,j},
D_{t,j}, E_{t,j})$--> <IMG WIDTH="111" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img116.gif" ALT="$ (\mathbf{x}_{t,j},
D_{t,j}, E_{t,j})$">, where <!-- MATH$\mathbf{x}_{t,j}$--> <IMG WIDTH="29" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img117.gif" ALT="$ \mathbf{x}_{t,j}$"> are the independent variables, <IMG WIDTH="33" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img118.gif" ALT="$ D_{t,j}$"> the known, dependent quantity, and <IMG WIDTH="31" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img119.gif" ALT="$ E_{t,j}$"> is the square error in <IMG WIDTH="33" HEIGHT="29" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img118.gif" ALT="$ D_{t,j}$"> (<A NAME="tex2html22" HREF=" ./TMultiDimFit.html#TMultiDimFit:AddTestRow"><TT>TMultiDimFit::AddTestRow</TT></A>). <P> The parameterization is then evaluated at every <!-- MATH$\mathbf{x}_t$--> <IMG WIDTH="19" HEIGHT="28" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img120.gif" ALT="$ \mathbf{x}_t$"> in the test sample, and <!-- MATH \begin{displaymath} S_t \equiv \sum_{j=1}^{M_t} \left(D_{t,j} - D_p\left(\mathbf{x}_{t,j}\right)\right)^2 \end{displaymath} --> <P></P><DIV ALIGN="CENTER"> <IMG WIDTH="194" HEIGHT="66" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img121.gif" ALT="$\displaystyle S_t \equiv \sum_{j=1}^{M_t} \left(D_{t,j} -
D_p\left(\mathbf{x}_{t,j}\right)\right)^2
$"> </DIV><P></P> is evaluated. The relative error over the test sample <!-- MATH \begin{displaymath} R_t = \frac{S_t}{\sum_{j=1}^{M_t} D_{t,j}^2} \end{displaymath} --> <P></P><DIV ALIGN="CENTER"> <IMG WIDTH="118" HEIGHT="51" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img122.gif" ALT="$\displaystyle R_t = \frac{S_t}{\sum_{j=1}^{M_t} D_{t,j}^2}
$"> </DIV><P></P> should not be to low or high compared to <IMG WIDTH="16" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="gif/multidimfit_img123.gif" ALT="$ R$"> from the training sample. Also, multiple correlation coefficient from both samples should be fairly close, otherwise one of the samples is not representive of the problem. A large difference in the reduced <IMG WIDTH="21" HEIGHT="33" ALIGN="MIDDLE" BORDER="0" SRC="gif/multidimfit_img124.gif" ALT="$ \chi^2\$"> over the two
samples indicate an over fit, and the maximum number of terms in the
parameterisation should be reduced.

<P>
It's possible to use <A NAME="tex2html23"
HREF="../TMinuit.html"><I>Minuit</I></A>
[<A
HREF="TMultiFimFit.html#minuit">4</A>] to further improve the fit, using the test sample.

<P>
<DIV ALIGN="RIGHT">
Christian Holm
<BR>  November 2000, NBI

</DIV>

<P>

<H2><A NAME="SECTION00040000000000000000">
Bibliography</A>
</H2><DL COMPACT><DD><P></P><DT><A NAME="bevington">1</A>
<DD>
Philip&nbsp;R. Bevington and D.&nbsp;Keith Robinson.
<BR><EM>Data Reduction and Error Analysis for the Physical Sciences</EM>.
<BR>McGraw-Hill, 2 edition, 1992.

<P></P><DT><A NAME="mudifi">2</A>
<DD>
Ren&#233; Brun et&nbsp;al.
<BR>Mudifi.
<BR>Long writeup DD/75-23, CERN, 1980.

<P></P><DT><A NAME="golub">3</A>
<DD>
Gene&nbsp;H. Golub and Charles&nbsp;F. van Loan.
<BR><EM>Matrix Computations</EM>.
<BR>John Hopkins Univeristy Press, Baltimore, 3 edition, 1996.

<P></P><DT><A NAME="minuit">4</A>
<DD>
F.&nbsp;James.
<BR>Minuit.
<BR>Long writeup D506, CERN, 1998.

<P></P><DT><A NAME="wind72">5</A>
<DD>
H.&nbsp;Wind.
<BR>Function parameterization.
<BR>In <EM>Proceedings of the 1972 CERN Computing and Data Processing
School</EM>, volume 72-21 of <EM>Yellow report</EM>. CERN, 1972.

<P></P><DT><A NAME="wind81">6</A>
<DD>
H.&nbsp;Wind.
<BR>1. principal component analysis, 2. pattern recognition for track
finding, 3. interpolation and functional representation.
<BR>Yellow report EP/81-12, CERN, 1981.
</DL>
<pre>
*/
//End_Html
//

#include "Riostream.h"
#include "TMultiDimFit.h"
#include "TMath.h"
#include "TH1.h"
#include "TH2.h"
#include "TROOT.h"
#include "TBrowser.h"
#include "TDecompChol.h"

#define HIST_XORIG     0
#define HIST_DORIG     1
#define HIST_XNORM     2
#define HIST_DSHIF     3
#define HIST_RX        4
#define HIST_RD        5
#define HIST_RTRAI     6
#define HIST_RTEST     7
#define PARAM_MAXSTUDY 1
#define PARAM_SEVERAL  2
#define PARAM_RELERR   3
#define PARAM_MAXTERMS 4

//____________________________________________________________________
static void mdfHelper(int&, double*, double&, double*, int);

//____________________________________________________________________
ClassImp(TMultiDimFit);

//____________________________________________________________________
// Static instance. Used with mdfHelper and TMinuit
TMultiDimFit* TMultiDimFit::fgInstance = 0;

//____________________________________________________________________
TMultiDimFit::TMultiDimFit()
{
// Empty CTOR. Do not use
fMeanQuantity           = 0;
fMaxQuantity            = 0;
fMinQuantity            = 0;
fSumSqQuantity          = 0;
fSumSqAvgQuantity       = 0;

fNVariables             = 0;
fSampleSize             = 0;
fTestSampleSize         = 0;

fMinAngle               = 1;
fMaxAngle               = 0;
fMaxTerms               = 0;
fMinRelativeError       = 0;
fMaxPowers              = 0;
fPowerLimit             = 0;

fMaxFunctions           = 0;
fFunctionCodes          = 0;
fMaxStudy               = 0;
fMaxFuncNV              = 0;

fMaxPowersFinal         = 0;
fPowers                 = 0;
fPowerIndex             = 0;

fMaxResidual            = 0;
fMinResidual            = 0;
fMaxResidualRow         = 0;
fMinResidualRow         = 0;
fSumSqResidual          = 0;

fNCoefficients          = 0;
fRMS                    = 0;
fChi2                   = 0;
fParameterisationCode   = 0;

fError                  = 0;
fTestError              = 0;
fPrecision              = 0;
fTestPrecision          = 0;
fCorrelationCoeff       = 0;
fTestCorrelationCoeff   = 0;

fHistograms             = 0;
fBinVarX                = 100;
fBinVarY                = 100;

fFitter                 = 0;
fPolyType               = kMonomials;
fShowCorrelation        = kFALSE;
fIsUserFunction         = kFALSE;
fIsVerbose              = kFALSE;

}

//____________________________________________________________________
TMultiDimFit::TMultiDimFit(Int_t dimension,
EMDFPolyType type,
Option_t *option)
: TNamed("multidimfit","Multi-dimensional fit object"),
fQuantity(dimension),
fSqError(dimension),
fVariables(dimension*100),
fMeanVariables(dimension),
fMaxVariables(dimension),
fMinVariables(dimension)
{
// Constructor
// Second argument is the type of polynomials to use in
// parameterisation, one of:
//      TMultiDimFit::kMonomials
//      TMultiDimFit::kChebyshev
//      TMultiDimFit::kLegendre
//
// Options:
//   K      Compute (k)correlation matrix
//   V      Be verbose
//
// Default is no options.
//

fgInstance = this;

fMeanQuantity           = 0;
fMaxQuantity            = 0;
fMinQuantity            = 0;
fSumSqQuantity          = 0;
fSumSqAvgQuantity       = 0;

fNVariables             = dimension;
fSampleSize             = 0;
fTestSampleSize         = 0;

fMinAngle               = 1;
fMaxAngle               = 0;
fMaxTerms               = 0;
fMinRelativeError       = 0.01;
fMaxPowers              = new Int_t[dimension];
fPowerLimit             = 1;

fMaxFunctions           = 0;
fFunctionCodes          = 0;
fMaxStudy               = 0;
fMaxFuncNV              = 0;

fMaxPowersFinal         = new Int_t[dimension];
fPowers                 = 0;
fPowerIndex             = 0;

fMaxResidual            = 0;
fMinResidual            = 0;
fMaxResidualRow         = 0;
fMinResidualRow         = 0;
fSumSqResidual          = 0;

fNCoefficients          = 0;
fRMS                    = 0;
fChi2                   = 0;
fParameterisationCode   = 0;

fError                  = 0;
fTestError              = 0;
fPrecision              = 0;
fTestPrecision          = 0;
fCorrelationCoeff       = 0;
fTestCorrelationCoeff   = 0;

fHistograms             = 0;
fBinVarX                = 100;
fBinVarY                = 100;

fFitter                 = 0;
fPolyType               = type;
fShowCorrelation        = kFALSE;
fIsUserFunction         = kFALSE;
fIsVerbose              = kFALSE;
TString opt             = option;
opt.ToLower();

if (opt.Contains("k")) fShowCorrelation = kTRUE;
if (opt.Contains("v")) fIsVerbose       = kTRUE;
}

//____________________________________________________________________
TMultiDimFit::~TMultiDimFit()
{
// Destructor
delete [] fPowers;
delete [] fMaxPowers;
delete [] fMaxPowersFinal;
delete [] fPowerIndex;
delete [] fFunctionCodes;
if (fHistograms) fHistograms->Clear("nodelete");
delete fHistograms;
}

//____________________________________________________________________
void TMultiDimFit::AddRow(const Double_t *x, Double_t D, Double_t E)
{
// Add a row consisting of fNVariables independent variables, the
// known, dependent quantity, and optionally, the square error in
// the dependent quantity, to the training sample to be used for the
// parameterization.
// The mean of the variables and quantity is calculated on the fly,
// This sample should be representive of the problem at hand.
// Please note, that if no error is given Poisson statistics is
// assumed and the square error is set to the value of dependent
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
if (!x)
return;

if (++fSampleSize == 1) {
fMeanQuantity  = D;
fMaxQuantity   = D;
fMinQuantity   = D;
fSumSqQuantity = D * D;// G.Q. erratum on August 15th, 2008
}
else {
fMeanQuantity  *= 1 - 1./Double_t(fSampleSize);
fMeanQuantity  += D / Double_t(fSampleSize);
fSumSqQuantity += D * D;

if (D >= fMaxQuantity) fMaxQuantity = D;
if (D <= fMinQuantity) fMinQuantity = D;
}

// If the vector isn't big enough to hold the new data, then
// expand the vector by half it's size.
Int_t size = fQuantity.GetNrows();
if (fSampleSize > size) {
fQuantity.ResizeTo(size + size/2);
fSqError.ResizeTo(size + size/2);
}

// Store the value
fQuantity(fSampleSize-1) = D;
fSqError(fSampleSize-1) = (E == 0 ? D : E);

// Store data point in internal vector
// If the vector isn't big enough to hold the new data, then
// expand the vector by half it's size
size = fVariables.GetNrows();
if (fSampleSize * fNVariables > size)
fVariables.ResizeTo(size + size/2);

// Increment the data point counter
Int_t i,j;
for (i = 0; i < fNVariables; i++) {
if (fSampleSize == 1) {
fMeanVariables(i) = x[i];
fMaxVariables(i)  = x[i];
fMinVariables(i)  = x[i];
}
else {
fMeanVariables(i) *= 1 - 1./Double_t(fSampleSize);
fMeanVariables(i) += x[i] / Double_t(fSampleSize);

// Update the maximum value for this component
if (x[i] >= fMaxVariables(i)) fMaxVariables(i)  = x[i];

// Update the minimum value for this component
if (x[i] <= fMinVariables(i)) fMinVariables(i)  = x[i];

}

// Store the data.
j = (fSampleSize-1) * fNVariables + i;
fVariables(j) = x[i];
}
}

//____________________________________________________________________
void TMultiDimFit::AddTestRow(const Double_t *x, Double_t D, Double_t E)
{
// Add a row consisting of fNVariables independent variables, the
// known, dependent quantity, and optionally, the square error in
// the dependent quantity, to the test sample to be used for the
// test of the parameterization.
// This sample needn't be representive of the problem at hand.
// Please note, that if no error is given Poisson statistics is
// assumed and the square error is set to the value of dependent
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
if (fTestSampleSize++ == 0) {
fTestQuantity.ResizeTo(fNVariables);
fTestSqError.ResizeTo(fNVariables);
fTestVariables.ResizeTo(fNVariables * 100);
}

// If the vector isn't big enough to hold the new data, then
// expand the vector by half it's size.
Int_t size = fTestQuantity.GetNrows();
if (fTestSampleSize > size) {
fTestQuantity.ResizeTo(size + size/2);
fTestSqError.ResizeTo(size + size/2);
}

// Store the value
fTestQuantity(fTestSampleSize-1) = D;
fTestSqError(fTestSampleSize-1) = (E == 0 ? D : E);

// Store data point in internal vector
// If the vector isn't big enough to hold the new data, then
// expand the vector by half it's size
size = fTestVariables.GetNrows();
if (fTestSampleSize * fNVariables > size)
fTestVariables.ResizeTo(size + size/2);

// Increment the data point counter
Int_t i,j;
for (i = 0; i < fNVariables; i++) {
j = fNVariables * (fTestSampleSize - 1) + i;
fTestVariables(j) = x[i];

if (x[i] > fMaxVariables(i))
Warning("AddTestRow", "variable %d (row: %d) too large: %f > %f",
i, fTestSampleSize, x[i], fMaxVariables(i));
if (x[i] < fMinVariables(i))
Warning("AddTestRow", "variable %d (row: %d) too small: %f < %f",
i, fTestSampleSize, x[i], fMinVariables(i));
}
}

//____________________________________________________________________
void TMultiDimFit::Browse(TBrowser* b)
{
// Browse the TMultiDimFit object in the TBrowser.
if (fHistograms) {
TIter next(fHistograms);
TH1* h = 0;
while ((h = (TH1*)next()))
}
if (fVariables.IsValid())
if (fQuantity.IsValid())
if (fSqError.IsValid())
if (fMeanVariables.IsValid())
if (fMaxVariables.IsValid())
if (fMinVariables.IsValid())
if (fTestVariables.IsValid())
if (fTestQuantity.IsValid())
if (fTestSqError.IsValid())
if (fFunctions.IsValid())
if(fCoefficients.IsValid())
if(fCoefficientsRMS.IsValid())
if (fOrthFunctions.IsValid())
if (fOrthFunctionNorms.IsValid())
if (fResiduals.IsValid())
if(fOrthCoefficients.IsValid())
if (fOrthCurvatureMatrix.IsValid())
if(fCorrelationMatrix.IsValid())
if (fFitter)
}

//____________________________________________________________________
void TMultiDimFit::Clear(Option_t *option)
{
// Clear internal structures and variables
Int_t i, j, n = fNVariables, m = fMaxFunctions;

// Training sample, dependent quantity
fQuantity.Zero();
fSqError.Zero();
fMeanQuantity                 = 0;
fMaxQuantity                  = 0;
fMinQuantity                  = 0;
fSumSqQuantity                = 0;
fSumSqAvgQuantity             = 0;

// Training sample, independent variables
fVariables.Zero();
fNVariables                   = 0;
fSampleSize                   = 0;
fMeanVariables.Zero();
fMaxVariables.Zero();
fMinVariables.Zero();

// Test sample
fTestQuantity.Zero();
fTestSqError.Zero();
fTestVariables.Zero();
fTestSampleSize               = 0;

// Functions
fFunctions.Zero();
//for (i = 0; i < fMaxTerms; i++)  fPowerIndex[i]    = 0;
//for (i = 0; i < fMaxTerms; i++)  fFunctionCodes[i] = 0;
fMaxFunctions                 = 0;
fMaxStudy                     = 0;
fOrthFunctions.Zero();
fOrthFunctionNorms.Zero();

// Control parameters
fMinRelativeError             = 0;
fMinAngle                     = 0;
fMaxAngle                     = 0;
fMaxTerms                     = 0;

// Powers
for (i = 0; i < n; i++) {
fMaxPowers[i]               = 0;
fMaxPowersFinal[i]          = 0;
for (j = 0; j < m; j++)
fPowers[i * n + j]        = 0;
}
fPowerLimit                   = 0;

// Residuals
fMaxResidual                  = 0;
fMinResidual                  = 0;
fMaxResidualRow               = 0;
fMinResidualRow               = 0;
fSumSqResidual                = 0;

// Fit
fNCoefficients                = 0;
fOrthCoefficients             = 0;
fOrthCurvatureMatrix          = 0;
fRMS                          = 0;
fCorrelationMatrix.Zero();
fError                        = 0;
fTestError                    = 0;
fPrecision                    = 0;
fTestPrecision                = 0;

// Coefficients
fCoefficients.Zero();
fCoefficientsRMS.Zero();
fResiduals.Zero();
fHistograms->Clear(option);

// Options
fPolyType                     = kMonomials;
fShowCorrelation              = kFALSE;
fIsUserFunction               = kFALSE;
}

//____________________________________________________________________
Double_t TMultiDimFit::Eval(const Double_t *x, const Double_t* coeff) const
{
// Evaluate parameterization at point x. Optional argument coeff is
// a vector of coefficients for the parameterisation, fNCoefficients
// elements long.
Double_t returnValue = fMeanQuantity;
Double_t term        = 0;
Int_t    i, j;

for (i = 0; i < fNCoefficients; i++) {
// Evaluate the ith term in the expansion
term = (coeff ? coeff[i] : fCoefficients(i));
for (j = 0; j < fNVariables; j++) {
// Evaluate the factor (polynomial) in the j-th variable.
Int_t    p  =  fPowers[fPowerIndex[i] * fNVariables + j];
Double_t y  =  1 + 2. / (fMaxVariables(j) - fMinVariables(j))
* (x[j] - fMaxVariables(j));
term        *= EvalFactor(p,y);
}
// Add this term to the final result
returnValue += term;
}
return returnValue;
}

//____________________________________________________________________
Double_t TMultiDimFit::EvalError(const Double_t *x, const Double_t* coeff) const
{
// Evaluate parameterization error at point x. Optional argument coeff is
// a vector of coefficients for the parameterisation, fNCoefficients
// elements long.
Double_t returnValue = 0;
Double_t term        = 0;
Int_t    i, j;

for (i = 0; i < fNCoefficients; i++) {
//     std::cout << "Error coef " << i << " -> " << fCoefficientsRMS(i) << std::endl;
}
for (i = 0; i < fNCoefficients; i++) {
// Evaluate the ith term in the expansion
term = (coeff ? coeff[i] : fCoefficientsRMS(i));
for (j = 0; j < fNVariables; j++) {
// Evaluate the factor (polynomial) in the j-th variable.
Int_t    p  =  fPowers[fPowerIndex[i] * fNVariables + j];
Double_t y  =  1 + 2. / (fMaxVariables(j) - fMinVariables(j))
* (x[j] - fMaxVariables(j));
term        *= EvalFactor(p,y);
//   std::cout << "i,j " << i << ", " << j << "  "  << p << "  " << y << "  " << EvalFactor(p,y) << "  " << term << std::endl;
}
// Add this term to the final result
returnValue += term*term;
//      std::cout << " i = " << i << " value = " << returnValue << std::endl;
}
returnValue = sqrt(returnValue);
return returnValue;
}

//____________________________________________________________________
Double_t TMultiDimFit::EvalControl(const Int_t *iv) const
{
// PRIVATE METHOD:
// Calculate the control parameter from the passed powers
Double_t s = 0;
Double_t epsilon = 1e-6; // a small number
for (Int_t i = 0; i < fNVariables; i++) {
if (fMaxPowers[i] != 1)
s += (epsilon + iv[i] - 1) / (epsilon + fMaxPowers[i] - 1);
}
return s;
}

//____________________________________________________________________
Double_t TMultiDimFit::EvalFactor(Int_t p, Double_t x) const
{
// PRIVATE METHOD:
// Evaluate function with power p at variable value x
Int_t    i   = 0;
Double_t p1  = 1;
Double_t p2  = 0;
Double_t p3  = 0;
Double_t r   = 0;

switch(p) {
case 1:
r = 1;
break;
case 2:
r =  x;
break;
default:
p2 = x;
for (i = 3; i <= p; i++) {
p3 = p2 * x;
if (fPolyType == kLegendre)
p3 = ((2 * i - 3) * p2 * x - (i - 2) * p1) / (i - 1);
else if (fPolyType == kChebyshev)
p3 = 2 * x * p2 - p1;
p1 = p2;
p2 = p3;
}
r = p3;
}

return r;
}

//____________________________________________________________________
void TMultiDimFit::FindParameterization(Option_t *)
{
// Find the parameterization
//
// Options:
//     None so far
//
// For detailed description of what this entails, please refer to the
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
MakeNormalized();
MakeCandidates();
MakeParameterization();
MakeCoefficients();
MakeCoefficientErrors();
MakeCorrelation();
}

//____________________________________________________________________
void TMultiDimFit::Fit(Option_t *option)
{
// Try to fit the found parameterisation to the test sample.
//
// Options
//     M     use Minuit to improve coefficients
//
// Also, refer to
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
Int_t i, j;
Double_t*      x    = new Double_t[fNVariables];
Double_t  sumSqD    = 0;
Double_t    sumD    = 0;
Double_t  sumSqR    = 0;
Double_t    sumR    = 0;

// Calculate the residuals over the test sample
for (i = 0; i < fTestSampleSize; i++) {
for (j = 0; j < fNVariables; j++)
x[j] = fTestVariables(i * fNVariables + j);
Double_t res =  fTestQuantity(i) - Eval(x);
sumD         += fTestQuantity(i);
sumSqD       += fTestQuantity(i) * fTestQuantity(i);
sumR         += res;
sumSqR       += res * res;
((TH1D*)fHistograms->FindObject("res_test"))->Fill(res);
}
Double_t dAvg         = sumSqD - (sumD * sumD) / fTestSampleSize;
Double_t rAvg         = sumSqR - (sumR * sumR) / fTestSampleSize;
fTestCorrelationCoeff = (dAvg - rAvg) / dAvg;
fTestError            = sumSqR;
fTestPrecision        = sumSqR / sumSqD;

TString opt(option);
opt.ToLower();

if (!opt.Contains("m"))
MakeChi2();

if (fNCoefficients * 50 > fTestSampleSize)
Warning("Fit", "test sample is very small");

if (!opt.Contains("m")) {
Error("Fit", "invalid option");
delete [] x;
return;
}

fFitter = TVirtualFitter::Fitter(0,fNCoefficients);
if (!fFitter) {
Error("Fit", "Vannot create Fitter");
delete [] x;
return;
}
fFitter->SetFCN(mdfHelper);

const Int_t  maxArgs = 16;
Int_t           args = 1;
Double_t*   arglist  = new Double_t[maxArgs];
arglist[0]           = -1;
fFitter->ExecuteCommand("SET PRINT",arglist,args);

for (i = 0; i < fNCoefficients; i++) {
Double_t startVal = fCoefficients(i);
Double_t startErr = fCoefficientsRMS(i);
fFitter->SetParameter(i, Form("coeff%02d",i),
startVal, startErr, 0, 0);
}

// arglist[0]           = 0;
args                 = 1;
// fFitter->ExecuteCommand("SET PRINT",arglist,args);

for (i = 0; i < fNCoefficients; i++) {
Double_t val = 0, err = 0, low = 0, high = 0;
fFitter->GetParameter(i, Form("coeff%02d",i),
val, err, low, high);
fCoefficients(i)    = val;
fCoefficientsRMS(i) = err;
}
delete [] x;
}

//____________________________________________________________________
TMultiDimFit* TMultiDimFit::Instance()
{
// Return the static instance.
return fgInstance;
}

//____________________________________________________________________
void TMultiDimFit::MakeCandidates()
{
// PRIVATE METHOD:
// Create list of candidate functions for the parameterisation. See
// also
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
Int_t i = 0;
Int_t j = 0;
Int_t k = 0;

// The temporary array to store the powers in. We don't need to
// initialize this array however.
fMaxFuncNV = fNVariables * fMaxFunctions;
Int_t *powers = new Int_t[fMaxFuncNV];

// store of control variables'
Double_t* control  = new Double_t[fMaxFunctions];

// We've better initialize the variables
Int_t *iv = new Int_t[fNVariables];
for (i = 0; i < fNVariables; i++)
iv[i] = 1;

if (!fIsUserFunction) {

// Number of funcs selected
Int_t     numberFunctions = 0;

// Absolute max number of functions
Int_t maxNumberFunctions = 1;
for (i = 0; i < fNVariables; i++)
maxNumberFunctions *= fMaxPowers[i];

while (kTRUE) {
// Get the control value for this function
Double_t s = EvalControl(iv);

if (s <= fPowerLimit) {

// Call over-loadable method Select, as to allow the user to
// interfere with the selection of functions.
if (Select(iv)) {
numberFunctions++;

// If we've reached the user defined limit of how many
// functions we can consider, break out of the loop
if (numberFunctions > fMaxFunctions)
break;

// Store the control value, so we can sort array of powers
// later on
control[numberFunctions-1] = Int_t(1.0e+6*s);

// Store the powers in powers array.
for (i = 0; i < fNVariables; i++) {
j = (numberFunctions - 1) * fNVariables + i;
powers[j] = iv[i];
}
} // if (Select())
} // if (s <= fPowerLimit)

for (i = 0; i < fNVariables; i++)
if (iv[i] < fMaxPowers[i])
break;

// If all variables have reached their maximum power, then we
// break out of the loop
if (i == fNVariables) {
fMaxFunctions = numberFunctions;
break;
}

// Next power in variable i
if (i < fNVariables) iv[i]++;

for (j = 0; j < i; j++)
iv[j] = 1;
} // while (kTRUE)
}
else {
// In case the user gave an explicit function
for (i = 0; i < fMaxFunctions; i++) {
// Copy the powers to working arrays
for (j = 0; j < fNVariables; j++) {
powers[i * fNVariables + j] = fPowers[i * fNVariables + j];
iv[j]                 = fPowers[i * fNVariables + j];
}

control[i] = Int_t(1.0e+6*EvalControl(iv));
}
}

// Now we need to sort the powers according to least control
// variable'
Int_t *order = new Int_t[fMaxFunctions];
for (i = 0; i < fMaxFunctions; i++)
order[i] = i;
fMaxFuncNV = fMaxFunctions * fNVariables;
fPowers = new Int_t[fMaxFuncNV];

for (i = 0; i < fMaxFunctions; i++) {
Double_t x = control[i];
Int_t    l = order[i];
k = i;

for (j = i; j < fMaxFunctions; j++) {
if (control[j] <= x) {
x = control[j];
l = order[j];
k = j;
}
}

if (k != i) {
control[k] = control[i];
control[i] = x;
order[k]   = order[i];
order[i]   = l;
}
}

for (i = 0; i < fMaxFunctions; i++)
for (j = 0; j < fNVariables; j++)
fPowers[i * fNVariables + j] = powers[order[i] * fNVariables + j];

delete [] control;
delete [] powers;
delete [] order;
delete [] iv;
}

//____________________________________________________________________
Double_t TMultiDimFit::MakeChi2(const Double_t* coeff)
{
// Calculate Chi square over either the test sample. The optional
// argument coeff is a vector of coefficients to use in the
// evaluation of the parameterisation. If coeff == 0, then the found
// coefficients is used.
// Used my MINUIT for fit (see TMultDimFit::Fit)
fChi2 = 0;
Int_t i, j;
Double_t* x = new Double_t[fNVariables];
for (i = 0; i < fTestSampleSize; i++) {
// Get the stored point
for (j = 0; j < fNVariables; j++)
x[j] = fTestVariables(i * fNVariables + j);

// Evaluate function. Scale to shifted values
Double_t f = Eval(x,coeff);

// Calculate contribution to Chic square
fChi2 += 1. / TMath::Max(fTestSqError(i),1e-20)
* (fTestQuantity(i) - f) * (fTestQuantity(i) - f);
}

// Clean up
delete [] x;

return fChi2;
}

//____________________________________________________________________
void TMultiDimFit::MakeCode(const char* filename, Option_t *option)
{
// Generate the file <filename> with .C appended if argument doesn't
// end in .cxx or .C. The contains the implementation of the
// function:
//
//   Double_t <funcname>(Double_t *x)
//
// which does the same as TMultiDimFit::Eval. Please refer to this
// method.
//
// Further, the static variables:
//
//     Int_t    gNVariables
//     Int_t    gNCoefficients
//     Double_t gDMean
//     Double_t gXMean[]
//     Double_t gXMin[]
//     Double_t gXMax[]
//     Double_t gCoefficient[]
//     Int_t    gPower[]
//
// are initialized. The only ROOT header file needed is Rtypes.h
//
// See TMultiDimFit::MakeRealCode for a list of options

TString outName(filename);
if (!outName.EndsWith(".C") && !outName.EndsWith(".cxx"))
outName += ".C";

MakeRealCode(outName.Data(),"",option);
}

//____________________________________________________________________
void TMultiDimFit::MakeCoefficientErrors()
{
// PRIVATE METHOD:
// Compute the errors on the coefficients. For this to be done, the
// curvature matrix of the non-orthogonal functions, is computed.
Int_t    i = 0;
Int_t    j = 0;
Int_t    k = 0;
TVectorD iF(fSampleSize);
TVectorD jF(fSampleSize);
fCoefficientsRMS.ResizeTo(fNCoefficients);

TMatrixDSym curvatureMatrix(fNCoefficients);

// Build the curvature matrix
for (i = 0; i < fNCoefficients; i++) {
iF = TMatrixDRow(fFunctions,i);
for (j = 0; j <= i; j++) {
jF = TMatrixDRow(fFunctions,j);
for (k = 0; k < fSampleSize; k++)
curvatureMatrix(i,j) +=
1 / TMath::Max(fSqError(k), 1e-20) * iF(k) * jF(k);
curvatureMatrix(j,i) = curvatureMatrix(i,j);
}
}

// Calculate Chi Square
fChi2 = 0;
for (i = 0; i < fSampleSize; i++) {
Double_t f = 0;
for (j = 0; j < fNCoefficients; j++)
f += fCoefficients(j) * fFunctions(j,i);
fChi2 += 1. / TMath::Max(fSqError(i),1e-20) * (fQuantity(i) - f)
* (fQuantity(i) - f);
}

// Invert the curvature matrix
const TVectorD diag = TMatrixDDiag_const(curvatureMatrix);
curvatureMatrix.NormByDiag(diag);

TDecompChol chol(curvatureMatrix);
if (!chol.Decompose())
Error("MakeCoefficientErrors", "curvature matrix is singular");
chol.Invert(curvatureMatrix);

curvatureMatrix.NormByDiag(diag);

for (i = 0; i < fNCoefficients; i++)
fCoefficientsRMS(i) = TMath::Sqrt(curvatureMatrix(i,i));
}

//____________________________________________________________________
void TMultiDimFit::MakeCoefficients()
{
// PRIVATE METHOD:
// Invert the model matrix B, and compute final coefficients. For a
// more thorough discussion of what this means, please refer to the
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
//
// First we invert the lower triangle matrix fOrthCurvatureMatrix
// and store the inverted matrix in the upper triangle.

Int_t i = 0, j = 0;
Int_t col = 0, row = 0;

// Invert the B matrix
for (col = 1; col < fNCoefficients; col++) {
for (row = col - 1; row > -1; row--) {
fOrthCurvatureMatrix(row,col) = 0;
for (i = row; i <= col ; i++)
fOrthCurvatureMatrix(row,col) -=
fOrthCurvatureMatrix(i,row)
* fOrthCurvatureMatrix(i,col);
}
}

// Compute the final coefficients
fCoefficients.ResizeTo(fNCoefficients);

for (i = 0; i < fNCoefficients; i++) {
Double_t sum = 0;
for (j = i; j < fNCoefficients; j++)
sum += fOrthCurvatureMatrix(i,j) * fOrthCoefficients(j);
fCoefficients(i) = sum;
}

// Compute the final residuals
fResiduals.ResizeTo(fSampleSize);
for (i = 0; i < fSampleSize; i++)
fResiduals(i) = fQuantity(i);

for (i = 0; i < fNCoefficients; i++)
for (j = 0; j < fSampleSize; j++)
fResiduals(j) -= fCoefficients(i) * fFunctions(i,j);

// Compute the max and minimum, and squared sum of the evaluated
// residuals
fMinResidual = 10e10;
fMaxResidual = -10e10;
Double_t sqRes  = 0;
for (i = 0; i < fSampleSize; i++){
sqRes += fResiduals(i) * fResiduals(i);
if (fResiduals(i) <= fMinResidual) {
fMinResidual     = fResiduals(i);
fMinResidualRow  = i;
}
if (fResiduals(i) >= fMaxResidual) {
fMaxResidual     = fResiduals(i);
fMaxResidualRow  = i;
}
}

fCorrelationCoeff = fSumSqResidual / fSumSqAvgQuantity;
fPrecision        = TMath::Sqrt(sqRes / fSumSqQuantity);

// If we use histograms, fill some more
for (i = 0; i < fSampleSize; i++) {
((TH2D*)fHistograms->FindObject("res_d"))->Fill(fQuantity(i),
fResiduals(i));
((TH1D*)fHistograms->FindObject("res_train"))->Fill(fResiduals(i));

for (j = 0; j < fNVariables; j++)
((TH2D*)fHistograms->FindObject(Form("res_x_%d",j)))
->Fill(fVariables(i * fNVariables + j),fResiduals(i));
}
} // If histograms

}

//____________________________________________________________________
void TMultiDimFit::MakeCorrelation()
{
// PRIVATE METHOD:
// Compute the correlation matrix
if (!fShowCorrelation)
return;

fCorrelationMatrix.ResizeTo(fNVariables,fNVariables+1);

Double_t d2      = 0;
Double_t ddotXi  = 0; // G.Q. needs to be reinitialized in the loop over i fNVariables
Double_t xiNorm  = 0; // G.Q. needs to be reinitialized in the loop over i fNVariables
Double_t xidotXj = 0; // G.Q. needs to be reinitialized in the loop over j fNVariables
Double_t xjNorm  = 0; // G.Q. needs to be reinitialized in the loop over j fNVariables

Int_t i, j, k, l, m;  // G.Q. added m variable
for (i = 0; i < fSampleSize; i++)
d2 += fQuantity(i) * fQuantity(i);

for (i = 0; i < fNVariables; i++) {
ddotXi = 0.; // G.Q. reinitialisation
xiNorm = 0.; // G.Q. reinitialisation
for (j = 0; j< fSampleSize; j++) {
// Index of sample j of variable i
k =  j * fNVariables + i;
ddotXi += fQuantity(j) * (fVariables(k) - fMeanVariables(i));
xiNorm += (fVariables(k) - fMeanVariables(i))
* (fVariables(k) - fMeanVariables(i));
}
fCorrelationMatrix(i,0) = ddotXi / TMath::Sqrt(d2 * xiNorm);

for (j = 0; j < i; j++) {
xidotXj = 0.; // G.Q. reinitialisation
xjNorm = 0.; // G.Q. reinitialisation
for (k = 0; k < fSampleSize; k++) {
// Index of sample j of variable i
// l =  j * fNVariables + k;  // G.Q.
l =  k * fNVariables + j; // G.Q.
m =  k * fNVariables + i; // G.Q.
// G.Q.        xidotXj += (fVariables(i) - fMeanVariables(i))
// G.Q.          * (fVariables(l) - fMeanVariables(j));
xidotXj += (fVariables(m) - fMeanVariables(i))
* (fVariables(l) - fMeanVariables(j));  // G.Q. modified index for Xi
xjNorm  += (fVariables(l) - fMeanVariables(j))
* (fVariables(l) - fMeanVariables(j));
}
//fCorrelationMatrix(i+1,j) = xidotXj / TMath::Sqrt(xiNorm * xjNorm);
fCorrelationMatrix(i,j+1) = xidotXj / TMath::Sqrt(xiNorm * xjNorm);
}
}
}

//____________________________________________________________________
Double_t TMultiDimFit::MakeGramSchmidt(Int_t function)
{
// PRIVATE METHOD:
// Make Gram-Schmidt orthogonalisation. The class description gives
// a thorough account of this algorithm, as well as
// references. Please refer to the
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html

// calculate w_i, that is, evaluate the current function at data
// point i
Double_t f2                        = 0;
fOrthCoefficients(fNCoefficients)      = 0;
fOrthFunctionNorms(fNCoefficients)  = 0;
Int_t j        = 0;
Int_t k        = 0;

for (j = 0; j < fSampleSize; j++) {
fFunctions(fNCoefficients, j) = 1;
fOrthFunctions(fNCoefficients, j) = 0;
// First, however, we need to calculate f_fNCoefficients
for (k = 0; k < fNVariables; k++) {
Int_t    p   =  fPowers[function * fNVariables + k];
Double_t x   =  fVariables(j * fNVariables + k);
fFunctions(fNCoefficients, j) *= EvalFactor(p,x);
}

// Calculate f dot f in f2
f2 += fFunctions(fNCoefficients,j) *  fFunctions(fNCoefficients,j);
// Assign to w_fNCoefficients f_fNCoefficients
fOrthFunctions(fNCoefficients, j) = fFunctions(fNCoefficients, j);
}

// the first column of w is equal to f
for (j = 0; j < fNCoefficients; j++) {
Double_t fdw = 0;
// Calculate (f_fNCoefficients dot w_j) / w_j^2
for (k = 0; k < fSampleSize; k++) {
fdw += fFunctions(fNCoefficients, k) * fOrthFunctions(j,k)
/ fOrthFunctionNorms(j);
}

fOrthCurvatureMatrix(fNCoefficients,j) = fdw;
// and subtract it from the current value of w_ij
for (k = 0; k < fSampleSize; k++)
fOrthFunctions(fNCoefficients,k) -= fdw * fOrthFunctions(j,k);
}

for (j = 0; j < fSampleSize; j++) {
// calculate squared length of w_fNCoefficients
fOrthFunctionNorms(fNCoefficients) +=
fOrthFunctions(fNCoefficients,j)
* fOrthFunctions(fNCoefficients,j);

// calculate D dot w_fNCoefficients in A
fOrthCoefficients(fNCoefficients) += fQuantity(j)
* fOrthFunctions(fNCoefficients, j);
}

// First test, but only if didn't user specify
if (!fIsUserFunction)
if (TMath::Sqrt(fOrthFunctionNorms(fNCoefficients) / (f2 + 1e-10))
return 0;

// The result found by this code for the first residual is always
// much less then the one found be MUDIFI. That's because it's
// supposed to be. The cause is the improved precision of Double_t
// over DOUBLE PRECISION!
fOrthCurvatureMatrix(fNCoefficients,fNCoefficients) = 1;
Double_t b = fOrthCoefficients(fNCoefficients);
fOrthCoefficients(fNCoefficients) /= fOrthFunctionNorms(fNCoefficients);

// Calculate the residual from including this fNCoefficients.
Double_t dResidur = fOrthCoefficients(fNCoefficients) * b;

return dResidur;
}

//____________________________________________________________________
void TMultiDimFit::MakeHistograms(Option_t *option)
{
// Make histograms of the result of the analysis. This message
// should be sent after having read all data points, but before
// finding the parameterization
//
// Options:
//     A         All the below
//     X         Original independent variables
//     D         Original dependent variables
//     N         Normalised independent variables
//     S         Shifted dependent variables
//     R1        Residuals versus normalised independent variables
//     R2        Residuals versus dependent variable
//     R3        Residuals computed on training sample
//     R4        Residuals computed on test sample
//
// For a description of these quantities, refer to
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
TString opt(option);
opt.ToLower();

if (opt.Length() < 1)
return;

if (!fHistograms)
fHistograms = new TList;

// Counter variable
Int_t i = 0;

// Histogram of original variables
if (opt.Contains("x") || opt.Contains("a")) {
for (i = 0; i < fNVariables; i++)
if (!fHistograms->FindObject(Form("x_%d_orig",i)))
Form("Original variable # %d",i),
fBinVarX, fMinVariables(i),
fMaxVariables(i)));
}

// Histogram of original dependent variable
if (opt.Contains("d") || opt.Contains("a")) {
if (!fHistograms->FindObject("d_orig"))
fBinVarX, fMinQuantity, fMaxQuantity));
}

// Histograms of normalized variables
if (opt.Contains("n") || opt.Contains("a")) {
for (i = 0; i < fNVariables; i++)
if (!fHistograms->FindObject(Form("x_%d_norm",i)))
Form("Normalized variable # %d",i),
fBinVarX, -1,1));
}

// Histogram of shifted dependent variable
if (opt.Contains("s") || opt.Contains("a")) {
if (!fHistograms->FindObject("d_shifted"))
fBinVarX, fMinQuantity - fMeanQuantity,
fMaxQuantity - fMeanQuantity));
}

// Residual from training sample versus independent variables
if (opt.Contains("r1") || opt.Contains("a")) {
for (i = 0; i < fNVariables; i++)
if (!fHistograms->FindObject(Form("res_x_%d",i)))
Form("Computed residual versus x_%d", i),
fBinVarX, -1,    1,
fBinVarY,
fMinQuantity - fMeanQuantity,
fMaxQuantity - fMeanQuantity));
}

// Residual from training sample versus. dependent variable
if (opt.Contains("r2") || opt.Contains("a")) {
if (!fHistograms->FindObject("res_d"))
"Computed residuals vs Quantity",
fBinVarX,
fMinQuantity - fMeanQuantity,
fMaxQuantity - fMeanQuantity,
fBinVarY,
fMinQuantity - fMeanQuantity,
fMaxQuantity - fMeanQuantity));
}

// Residual from training sample
if (opt.Contains("r3") || opt.Contains("a")) {
if (!fHistograms->FindObject("res_train"))
"Computed residuals over training sample",
fBinVarX, fMinQuantity - fMeanQuantity,
fMaxQuantity - fMeanQuantity));

}
if (opt.Contains("r4") || opt.Contains("a")) {
if (!fHistograms->FindObject("res_test"))
"Distribution of residuals from test",
fBinVarX,fMinQuantity - fMeanQuantity,
fMaxQuantity - fMeanQuantity));
}
}

//____________________________________________________________________
void TMultiDimFit::MakeMethod(const Char_t* classname, Option_t* option)
{
// Generate the file <classname>MDF.cxx which contains the
// implementation of the method:
//
//   Double_t <classname>::MDF(Double_t *x)
//
// which does the same as  TMultiDimFit::Eval. Please refer to this
// method.
//
// Further, the public static members:
//
//   Int_t    <classname>::fgNVariables
//   Int_t    <classname>::fgNCoefficients
//   Double_t <classname>::fgDMean
//   Double_t <classname>::fgXMean[]       //[fgNVariables]
//   Double_t <classname>::fgXMin[]        //[fgNVariables]
//   Double_t <classname>::fgXMax[]        //[fgNVariables]
//   Double_t <classname>::fgCoefficient[] //[fgNCoeffficents]
//   Int_t    <classname>::fgPower[]       //[fgNCoeffficents*fgNVariables]
//
// are initialized, and assumed to exist. The class declaration is
// assumed to be in <classname>.h and assumed to be provided by the
// user.
//
// See TMultiDimFit::MakeRealCode for a list of options
//
// The minimal class definition is:
//
//   class <classname> {
//   public:
//     Int_t    <classname>::fgNVariables;     // Number of variables
//     Int_t    <classname>::fgNCoefficients;  // Number of terms
//     Double_t <classname>::fgDMean;          // Mean from training sample
//     Double_t <classname>::fgXMean[];        // Mean from training sample
//     Double_t <classname>::fgXMin[];         // Min from training sample
//     Double_t <classname>::fgXMax[];         // Max from training sample
//     Double_t <classname>::fgCoefficient[];  // Coefficients
//     Int_t    <classname>::fgPower[];        // Function powers
//
//     Double_t Eval(Double_t *x);
//   };
//
// Whether the method <classname>::Eval should be static or not, is
// up to the user.

MakeRealCode(Form("%sMDF.cxx", classname), classname, option);
}

//____________________________________________________________________
void TMultiDimFit::MakeNormalized()
{
// PRIVATE METHOD:
// Normalize data to the interval [-1;1]. This is needed for the
// classes method to work.

Int_t i = 0;
Int_t j = 0;
Int_t k = 0;

for (i = 0; i < fSampleSize; i++) {
((TH1D*)fHistograms->FindObject("d_orig"))->Fill(fQuantity(i));

fQuantity(i) -= fMeanQuantity;
fSumSqAvgQuantity  += fQuantity(i) * fQuantity(i);

((TH1D*)fHistograms->FindObject("d_shifted"))->Fill(fQuantity(i));

for (j = 0; j < fNVariables; j++) {
Double_t range = 1. / (fMaxVariables(j) - fMinVariables(j));
k              = i * fNVariables + j;

// Fill histograms of original independent variables
((TH1D*)fHistograms->FindObject(Form("x_%d_orig",j)))
->Fill(fVariables(k));

// Normalise independent variables
fVariables(k) = 1 + 2 * range * (fVariables(k) - fMaxVariables(j));

// Fill histograms of normalised independent variables
((TH1D*)fHistograms->FindObject(Form("x_%d_norm",j)))
->Fill(fVariables(k));

}
}
// Shift min and max of dependent variable
fMaxQuantity -= fMeanQuantity;
fMinQuantity -= fMeanQuantity;

// Shift mean of independent variables
for (i = 0; i < fNVariables; i++) {
Double_t range = 1. / (fMaxVariables(i) - fMinVariables(i));
fMeanVariables(i) = 1 + 2 * range * (fMeanVariables(i)
- fMaxVariables(i));
}
}

//____________________________________________________________________
void TMultiDimFit::MakeParameterization()
{
// PRIVATE METHOD:
// Find the parameterization over the training sample. A full account
// of the algorithm is given in the
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html

Int_t     i              = -1;
Int_t     j              = 0;
Int_t     k              = 0;
Int_t     maxPass        = 3;
Int_t     studied        = 0;
Double_t  squareResidual = fSumSqAvgQuantity;
fNCoefficients            = 0;
fSumSqResidual           = fSumSqAvgQuantity;
fFunctions.ResizeTo(fMaxTerms,fSampleSize);
fOrthFunctions.ResizeTo(fMaxTerms,fSampleSize);
fOrthFunctionNorms.ResizeTo(fMaxTerms);
fOrthCoefficients.ResizeTo(fMaxTerms);
fOrthCurvatureMatrix.ResizeTo(fMaxTerms,fMaxTerms);
fFunctions = 1;

fFunctionCodes = new Int_t[fMaxFunctions];
fPowerIndex    = new Int_t[fMaxTerms];
Int_t l;
for (l=0;l<fMaxFunctions;l++) fFunctionCodes[l] = 0;
for (l=0;l<fMaxTerms;l++)     fPowerIndex[l]    = 0;

if (fMaxAngle != 0)  maxPass = 100;
if (fIsUserFunction) maxPass = 1;

// Loop over the number of functions we want to study.
// increment inspection counter
while(kTRUE) {

// Reach user defined limit of studies
if (studied++ >= fMaxStudy) {
fParameterisationCode = PARAM_MAXSTUDY;
break;
}

// Considered all functions several times
if (k >= maxPass) {
fParameterisationCode = PARAM_SEVERAL;
break;
}

// increment function counter
i++;

// If we've reached the end of the functions, restart pass
if (i == fMaxFunctions) {
if (fMaxAngle != 0)
fMaxAngle += (90 - fMaxAngle) / 2;
i = 0;
studied--;
k++;
continue;
}
if (studied == 1)
fFunctionCodes[i] = 0;
else if (fFunctionCodes[i] >= 2)
continue;

// Print a happy message
if (fIsVerbose && studied == 1)
std::cout << "Coeff   SumSqRes    Contrib   Angle      QM   Func"
<< "     Value        W^2  Powers" << std::endl;

// Make the Gram-Schmidt
Double_t dResidur = MakeGramSchmidt(i);

if (dResidur == 0) {
// This function is no good!
// First test is in MakeGramSchmidt
fFunctionCodes[i] = 1;
continue;
}

// If user specified function, assume they know what they are doing
if (!fIsUserFunction) {
// Flag this function as considered
fFunctionCodes[i] = 2;

// Test if this function contributes to the fit
if (!TestFunction(squareResidual, dResidur)) {
fFunctionCodes[i] = 1;
continue;
}
}

// If we get to here, the function currently considered is
// fNCoefficients, so we increment the counter
// Flag this function as OK, and store and the number in the
// index.
fFunctionCodes[i]          = 3;
fPowerIndex[fNCoefficients] = i;
fNCoefficients++;

// We add the current contribution to the sum of square of
// residuals;
squareResidual -= dResidur;

// Calculate control parameter from this function
for (j = 0; j < fNVariables; j++) {
if (fNCoefficients == 1
|| fMaxPowersFinal[j] <= fPowers[i * fNVariables + j] - 1)
fMaxPowersFinal[j] = fPowers[i * fNVariables + j] - 1;
}
Double_t s = EvalControl(&fPowers[i * fNVariables]);

if (fIsVerbose) {
std::cout << std::setw(5)  << fNCoefficients << " "
<< std::setw(10) << std::setprecision(4) << squareResidual << " "
<< std::setw(10) << std::setprecision(4) << dResidur << " "
<< std::setw(7)  << std::setprecision(3) << fMaxAngle << " "
<< std::setw(7)  << std::setprecision(3) << s << " "
<< std::setw(5)  << i << " "
<< std::setw(10) << std::setprecision(4)
<< fOrthCoefficients(fNCoefficients-1) << " "
<< std::setw(10) << std::setprecision(4)
<< fOrthFunctionNorms(fNCoefficients-1) << " "
<< std::flush;
for (j = 0; j < fNVariables; j++)
std::cout << " " << fPowers[i * fNVariables + j] - 1 << std::flush;
std::cout << std::endl;
}

if (fNCoefficients >= fMaxTerms /* && fIsVerbose */) {
fParameterisationCode = PARAM_MAXTERMS;
break;
}

Double_t err  = TMath::Sqrt(TMath::Max(1e-20,squareResidual) /
fSumSqAvgQuantity);
if (err < fMinRelativeError) {
fParameterisationCode = PARAM_RELERR;
break;
}

}

fError          = TMath::Max(1e-20,squareResidual);
fSumSqResidual -= fError;
fRMS = TMath::Sqrt(fError / fSampleSize);
}

//____________________________________________________________________
void TMultiDimFit::MakeRealCode(const char *filename,
const char *classname,
Option_t *)
{
// PRIVATE METHOD:
// This is the method that actually generates the code for the
// evaluation the parameterization on some point.
// It's called by TMultiDimFit::MakeCode and TMultiDimFit::MakeMethod.
//
// The options are: NONE so far
Int_t i, j;

Bool_t  isMethod     = (classname[0] == '\0' ? kFALSE : kTRUE);
const char *prefix   = (isMethod ? Form("%s::", classname) : "");
const char *cv_qual  = (isMethod ? "" : "static ");

std::ofstream outFile(filename,std::ios::out|std::ios::trunc);
if (!outFile) {
Error("MakeRealCode","couldn't open output file '%s'",filename);
return;
}

if (fIsVerbose)
std::cout << "Writing on file \"" << filename << "\" ... " << std::flush;
//
//
// Emacs mode line ;-)
outFile << "// -*- mode: c++ -*-" << std::endl;
outFile << "// " << std::endl
<< "// File " << filename
<< " generated by TMultiDimFit::MakeRealCode" << std::endl;
// Time stamp
TDatime date;
outFile << "// on " << date.AsString() << std::endl;
// ROOT version info
outFile << "// ROOT version " << gROOT->GetVersion()
<< std::endl << "//" << std::endl;
// General information on the code
outFile << "// This file contains the function " << std::endl
<< "//" << std::endl
<< "//    double  " << prefix << "MDF(double *x); " << std::endl
<< "//" << std::endl
<< "// For evaluating the parameterization obtained" << std::endl
<< "// from TMultiDimFit and the point x" << std::endl
<< "// " << std::endl
<< "// See TMultiDimFit class documentation for more "
<< "information " << std::endl << "// " << std::endl;
if (isMethod)
// If these are methods, we need the class header
outFile << "#include \"" << classname << ".h\"" << std::endl;

//
// Now for the data
//
outFile << "//" << std::endl
<< "// Static data variables"  << std::endl
<< "//" << std::endl;
outFile << cv_qual << "int    " << prefix << "gNVariables    = "
<< fNVariables << ";" << std::endl;
outFile << cv_qual << "int    " << prefix << "gNCoefficients = "
<< fNCoefficients << ";" << std::endl;
outFile << cv_qual << "double " << prefix << "gDMean         = "
<< fMeanQuantity << ";" << std::endl;

// Assignment to mean vector.
outFile << "// Assignment to mean vector." << std::endl;
outFile << cv_qual << "double " << prefix
<< "gXMean[] = {" << std::endl;
for (i = 0; i < fNVariables; i++)
outFile << (i != 0 ? ", " : "  ") << fMeanVariables(i) << std::flush;
outFile << " };" << std::endl << std::endl;

// Assignment to minimum vector.
outFile << "// Assignment to minimum vector." << std::endl;
outFile << cv_qual << "double " << prefix
<< "gXMin[] = {" << std::endl;
for (i = 0; i < fNVariables; i++)
outFile << (i != 0 ? ", " : "  ") << fMinVariables(i) << std::flush;
outFile << " };" << std::endl << std::endl;

// Assignment to maximum vector.
outFile << "// Assignment to maximum vector." << std::endl;
outFile << cv_qual << "double " << prefix
<< "gXMax[] = {" << std::endl;
for (i = 0; i < fNVariables; i++)
outFile << (i != 0 ? ", " : "  ") << fMaxVariables(i) << std::flush;
outFile << " };" << std::endl << std::endl;

// Assignment to coefficients vector.
outFile << "// Assignment to coefficients vector." << std::endl;
outFile << cv_qual << "double " << prefix
<< "gCoefficient[] = {" << std::flush;
for (i = 0; i < fNCoefficients; i++)
outFile << (i != 0 ? "," : "") << std::endl
<< "  " << fCoefficients(i) << std::flush;
outFile << std::endl << " };" << std::endl << std::endl;

// Assignment to error coefficients vector.
outFile << "// Assignment to error coefficients vector." << std::endl;
outFile << cv_qual << "double " << prefix
<< "gCoefficientRMS[] = {" << std::flush;
for (i = 0; i < fNCoefficients; i++)
outFile << (i != 0 ? "," : "") << std::endl
<< "  " << fCoefficientsRMS(i) << std::flush;
outFile << std::endl << " };" << std::endl << std::endl;

// Assignment to powers vector.
outFile << "// Assignment to powers vector." << std::endl
<< "// The powers are stored row-wise, that is" << std::endl
<< "//  p_ij = " << prefix
<< "gPower[i * NVariables + j];" << std::endl;
outFile << cv_qual << "int    " << prefix
<< "gPower[] = {" << std::flush;
for (i = 0; i < fNCoefficients; i++) {
for (j = 0; j < fNVariables; j++) {
if (j != 0) outFile << std::flush << "  ";
else        outFile << std::endl << "  ";
outFile << fPowers[fPowerIndex[i] * fNVariables + j]
<< (i == fNCoefficients - 1 && j == fNVariables - 1 ? "" : ",")
<< std::flush;
}
}
outFile << std::endl << "};" << std::endl << std::endl;

//
// Finally we reach the function itself
//
outFile << "// " << std::endl
<< "// The "
<< (isMethod ? "method " : "function ")
<< "  double " << prefix
<< "MDF(double *x)"
<< std::endl << "// " << std::endl;
outFile << "double " << prefix
<< "MDF(double *x) {" << std::endl
<< "  double returnValue = " << prefix << "gDMean;" << std::endl
<< "  int    i = 0, j = 0, k = 0;" << std::endl
<< "  for (i = 0; i < " << prefix << "gNCoefficients ; i++) {"
<< std::endl
<< "    // Evaluate the ith term in the expansion" << std::endl
<< "    double term = " << prefix << "gCoefficient[i];"
<< std::endl
<< "    for (j = 0; j < " << prefix << "gNVariables; j++) {"
<< std::endl
<< "      // Evaluate the polynomial in the jth variable." << std::endl
<< "      int power = "<< prefix << "gPower["
<< prefix << "gNVariables * i + j]; " << std::endl
<< "      double p1 = 1, p2 = 0, p3 = 0, r = 0;" << std::endl
<< "      double v =  1 + 2. / ("
<< prefix << "gXMax[j] - " << prefix
<< "gXMin[j]) * (x[j] - " << prefix << "gXMax[j]);" << std::endl
<< "      // what is the power to use!" << std::endl
<< "      switch(power) {" << std::endl
<< "      case 1: r = 1; break; " << std::endl
<< "      case 2: r = v; break; " << std::endl
<< "      default: " << std::endl
<< "        p2 = v; " << std::endl
<< "        for (k = 3; k <= power; k++) { " << std::endl
<< "          p3 = p2 * v;" << std::endl;
if (fPolyType == kLegendre)
outFile << "          p3 = ((2 * i - 3) * p2 * v - (i - 2) * p1)"
<< " / (i - 1);" << std::endl;
if (fPolyType == kChebyshev)
outFile << "          p3 = 2 * v * p2 - p1; " << std::endl;
outFile << "          p1 = p2; p2 = p3; " << std::endl << "        }" << std::endl
<< "        r = p3;" << std::endl << "      }" << std::endl
<< "      // multiply this term by the poly in the jth var" << std::endl
<< "      term *= r; " << std::endl << "    }" << std::endl
<< "    // Add this term to the final result" << std::endl
<< "    returnValue += term;" << std::endl << "  }" << std::endl
<< "  return returnValue;" << std::endl << "}" << std::endl << std::endl;

// EOF
outFile << "// EOF for " << filename << std::endl;

// Close the file
outFile.close();

if (fIsVerbose)
std::cout << "done" << std::endl;
}

//____________________________________________________________________
void TMultiDimFit::Print(Option_t *option) const
{
// Print statistics etc.
// Options are
//   P        Parameters
//   S        Statistics
//   C        Coefficients
//   R        Result of parameterisation
//   F        Result of fit
//   K        Correlation Matrix
//   M        Pretty print formula
//
Int_t i = 0;
Int_t j = 0;

TString opt(option);
opt.ToLower();

if (opt.Contains("p")) {
// Print basic parameters for this object
std::cout << "User parameters:" << std::endl
<< "----------------" << std::endl
<< " Variables:                    " << fNVariables << std::endl
<< " Data points:                  " << fSampleSize << std::endl
<< " Max Terms:                    " << fMaxTerms << std::endl
<< " Power Limit Parameter:        " << fPowerLimit << std::endl
<< " Max functions:                " << fMaxFunctions << std::endl
<< " Max functions to study:       " << fMaxStudy << std::endl
<< " Max angle (optional):         " << fMaxAngle << std::endl
<< " Min angle:                    " << fMinAngle << std::endl
<< " Relative Error accepted:      " << fMinRelativeError << std::endl
<< " Maximum Powers:               " << std::flush;
for (i = 0; i < fNVariables; i++)
std::cout << " " << fMaxPowers[i] - 1 << std::flush;
std::cout << std::endl << std::endl
<< " Parameterisation will be done using " << std::flush;
if (fPolyType == kChebyshev)
std::cout << "Chebyshev polynomials" << std::endl;
else if (fPolyType == kLegendre)
std::cout << "Legendre polynomials" << std::endl;
else
std::cout << "Monomials" << std::endl;
std::cout << std::endl;
}

if (opt.Contains("s")) {
// Print statistics for read data
std::cout << "Sample statistics:" << std::endl
<< "------------------" << std::endl
<< "                 D"  << std::flush;
for (i = 0; i < fNVariables; i++)
std::cout << " " << std::setw(10) << i+1 << std::flush;
std::cout << std::endl << " Max:   " << std::setw(10) << std::setprecision(7)
<< fMaxQuantity << std::flush;
for (i = 0; i < fNVariables; i++)
std::cout << " " << std::setw(10) << std::setprecision(4)
<< fMaxVariables(i) << std::flush;
std::cout << std::endl << " Min:   " << std::setw(10) << std::setprecision(7)
<< fMinQuantity << std::flush;
for (i = 0; i < fNVariables; i++)
std::cout << " " << std::setw(10) << std::setprecision(4)
<< fMinVariables(i) << std::flush;
std::cout << std::endl << " Mean:  " << std::setw(10) << std::setprecision(7)
<< fMeanQuantity << std::flush;
for (i = 0; i < fNVariables; i++)
std::cout << " " << std::setw(10) << std::setprecision(4)
<< fMeanVariables(i) << std::flush;
std::cout << std::endl << " Function Sum Squares:         " << fSumSqQuantity
<< std::endl << std::endl;
}

if (opt.Contains("r")) {
std::cout << "Results of Parameterisation:" << std::endl
<< "----------------------------" << std::endl
<< " Total reduction of square residuals    "
<< fSumSqResidual << std::endl
<< " Relative precision obtained:           "
<< fPrecision   << std::endl
<< " Error obtained:                        "
<< fError << std::endl
<< " Multiple correlation coefficient:      "
<< fCorrelationCoeff   << std::endl
<< " Reduced Chi square over sample:        "
<< fChi2 / (fSampleSize - fNCoefficients) << std::endl
<< " Maximum residual value:                "
<< fMaxResidual << std::endl
<< " Minimum residual value:                "
<< fMinResidual << std::endl
<< " Estimated root mean square:            "
<< fRMS << std::endl
<< " Maximum powers used:                   " << std::flush;
for (j = 0; j < fNVariables; j++)
std::cout << fMaxPowersFinal[j] << " " << std::flush;
std::cout << std::endl
<< " Function codes of candidate functions." << std::endl
<< "  1: considered,"
<< "  2: too little contribution,"
<< "  3: accepted." << std::flush;
for (i = 0; i < fMaxFunctions; i++) {
if (i % 60 == 0)
std::cout << std::endl << " " << std::flush;
else if (i % 10 == 0)
std::cout << " " << std::flush;
std::cout << fFunctionCodes[i];
}
std::cout << std::endl << " Loop over candidates stopped because " << std::flush;
switch(fParameterisationCode){
case PARAM_MAXSTUDY:
std::cout << "max allowed studies reached" << std::endl; break;
case PARAM_SEVERAL:
std::cout << "all candidates considered several times" << std::endl; break;
case PARAM_RELERR:
std::cout << "wanted relative error obtained" << std::endl; break;
case PARAM_MAXTERMS:
std::cout << "max number of terms reached" << std::endl; break;
default:
std::cout << "some unknown reason" << std::endl;
break;
}
std::cout << std::endl;
}

if (opt.Contains("f")) {
std::cout << "Results of Fit:" << std::endl
<< "---------------" << std::endl
<< " Test sample size:                      "
<< fTestSampleSize << std::endl
<< " Multiple correlation coefficient:      "
<< fTestCorrelationCoeff << std::endl
<< " Relative precision obtained:           "
<< fTestPrecision   << std::endl
<< " Error obtained:                        "
<< fTestError << std::endl
<< " Reduced Chi square over sample:        "
<< fChi2 / (fSampleSize - fNCoefficients) << std::endl
<< std::endl;
if (fFitter) {
fFitter->PrintResults(1,1);
std::cout << std::endl;
}
}

if (opt.Contains("c")){
std::cout << "Coefficients:" << std::endl
<< "-------------" << std::endl
<< "   #         Value        Error   Powers" << std::endl
<< " ---------------------------------------" << std::endl;
for (i = 0; i < fNCoefficients; i++) {
std::cout << " " << std::setw(3) << i << "  "
<< std::setw(12) << fCoefficients(i) << "  "
<< std::setw(12) << fCoefficientsRMS(i) << "  " << std::flush;
for (j = 0; j < fNVariables; j++)
std::cout << " " << std::setw(3)
<< fPowers[fPowerIndex[i] * fNVariables + j] - 1 << std::flush;
std::cout << std::endl;
}
std::cout << std::endl;
}
if (opt.Contains("k") && fCorrelationMatrix.IsValid()) {
std::cout << "Correlation Matrix:" << std::endl
<< "-------------------";
fCorrelationMatrix.Print();
}

if (opt.Contains("m")) {
std::cout << "Parameterization:" << std::endl
<< "-----------------" << std::endl
<< "  Normalised variables: " << std::endl;
for (i = 0; i < fNVariables; i++)
std::cout << "\ty_" << i << "\t= 1 + 2 * (x_" << i << " - "
<< fMaxVariables(i) << ") / ("
<< fMaxVariables(i) << " - " << fMinVariables(i) << ")"
<< std::endl;
std::cout << std::endl
<< "  f(";
for (i = 0; i < fNVariables; i++) {
std::cout << "y_" << i;
if (i != fNVariables-1) std::cout << ", ";
}
std::cout << ") = ";
for (i = 0; i < fNCoefficients; i++) {
if (i != 0)
std::cout << std::endl << "\t" << (fCoefficients(i) < 0 ? "- " : "+ ")
<< TMath::Abs(fCoefficients(i));
else
std::cout << fCoefficients(i);
for (j = 0; j < fNVariables; j++) {
Int_t p = fPowers[fPowerIndex[i] * fNVariables + j];
switch (p) {
case 1: break;
case 2: std::cout << " * y_" << j; break;
default:
switch(fPolyType) {
case kLegendre:  std::cout << " * L_" << p-1 << "(y_" << j << ")"; break;
case kChebyshev: std::cout << " * C_" << p-1 << "(y_" << j << ")"; break;
default:         std::cout << " * y_" << j << "^" << p-1; break;
}
}

}
}
std::cout << std::endl;
}
}

//____________________________________________________________________
Bool_t TMultiDimFit::Select(const Int_t *)
{
// Selection method. User can override this method for specialized
// selection of acceptable functions in fit. Default is to select
// all. This message is sent during the build-up of the function
// candidates table once for each set of powers in
// variables. Notice, that the argument array contains the powers
// PLUS ONE. For example, to De select the function
//     f = x1^2 * x2^4 * x3^5,
// this method should return kFALSE if given the argument
//     { 3, 4, 6 }
return kTRUE;
}

//____________________________________________________________________
void TMultiDimFit::SetMaxAngle(Double_t ang)
{
// Set the max angle (in degrees) between the initial data vector to
// be fitted, and the new candidate function to be included in the
// fit.  By default it is 0, which automatically chooses another
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
if (ang >= 90 || ang < 0) {
Warning("SetMaxAngle", "angle must be in [0,90)");
return;
}

fMaxAngle = ang;
}

//____________________________________________________________________
void TMultiDimFit::SetMinAngle(Double_t ang)
{
// Set the min angle (in degrees) between a new candidate function
// and the subspace spanned by the previously accepted
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
if (ang > 90 || ang <= 0) {
Warning("SetMinAngle", "angle must be in [0,90)");
return;
}

fMinAngle = ang;

}

//____________________________________________________________________
void TMultiDimFit::SetPowers(const Int_t* powers, Int_t terms)
{
// Define a user function. The input array must be of the form
// (p11, ..., p1N, ... ,pL1, ..., pLN)
// Where N is the dimension of the data sample, L is the number of
// terms (given in terms) and the first number, labels the term, the
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
fIsUserFunction = kTRUE;
fMaxFunctions   = terms;
fMaxTerms       = terms;
fMaxStudy       = terms;
fMaxFuncNV      = fMaxFunctions * fNVariables;
fPowers         = new Int_t[fMaxFuncNV];
Int_t i, j;
for (i = 0; i < fMaxFunctions; i++)
for(j = 0; j < fNVariables; j++)
fPowers[i * fNVariables + j] = powers[i * fNVariables + j]  + 1;
}

//____________________________________________________________________
void TMultiDimFit::SetPowerLimit(Double_t limit)
{
// Set the user parameter for the function selection. The bigger the
// limit, the more functions are used. The meaning of this variable
// is defined in the
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
fPowerLimit = limit;
}

//____________________________________________________________________
void TMultiDimFit::SetMaxPowers(const Int_t* powers)
{
// Set the maximum power to be considered in the fit for each
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
if (!powers)
return;

for (Int_t i = 0; i < fNVariables; i++)
fMaxPowers[i] = powers[i]+1;
}

//____________________________________________________________________
void TMultiDimFit::SetMinRelativeError(Double_t error)
{
// Set the acceptable relative error for when sum of square
// residuals is considered minimized. For a full account, refer to
// the
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html
fMinRelativeError = error;
}

//____________________________________________________________________
Bool_t TMultiDimFit::TestFunction(Double_t squareResidual,
Double_t dResidur)
{
// PRIVATE METHOD:
// Test whether the currently considered function contributes to the
// Begin_Html<a href="#TMultiDimFit:description">class description</a>End_Html

if (fNCoefficients != 0) {
// Now for the second test:
if (fMaxAngle == 0) {
// If the user hasn't supplied a max angle do the test as,
if (dResidur <
squareResidual / (fMaxTerms - fNCoefficients + 1 + 1E-10)) {
return kFALSE;
}
}
else {
// If the user has provided a max angle, test if the calculated
// angle is less then the max angle.
if (TMath::Sqrt(dResidur/fSumSqAvgQuantity) <
return kFALSE;
}
}
}
// If we get here, the function is OK
return kTRUE;
}

//____________________________________________________________________
void mdfHelper(int& /*npar*/, double* /*divs*/, double& chi2,
double* coeffs, int /*flag*/)
{
// Helper function for doing the minimisation of Chi2 using Minuit

// Get pointer  to current TMultiDimFit object.
TMultiDimFit* mdf = TMultiDimFit::Instance();
chi2     = mdf->MakeChi2(coeffs);
}
`
TMultiDimFit.cxx:1
TMultiDimFit.cxx:2
TMultiDimFit.cxx:3
TMultiDimFit.cxx:4
TMultiDimFit.cxx:5
TMultiDimFit.cxx:6
TMultiDimFit.cxx:7
TMultiDimFit.cxx:8
TMultiDimFit.cxx:9
TMultiDimFit.cxx:10
TMultiDimFit.cxx:11
TMultiDimFit.cxx:12
TMultiDimFit.cxx:13
TMultiDimFit.cxx:14
TMultiDimFit.cxx:15
TMultiDimFit.cxx:16
TMultiDimFit.cxx:17
TMultiDimFit.cxx:18
TMultiDimFit.cxx:19
TMultiDimFit.cxx:20
TMultiDimFit.cxx:21
TMultiDimFit.cxx:22
TMultiDimFit.cxx:23
TMultiDimFit.cxx:24
TMultiDimFit.cxx:25
TMultiDimFit.cxx:26
TMultiDimFit.cxx:27
TMultiDimFit.cxx:28
TMultiDimFit.cxx:29
TMultiDimFit.cxx:30
TMultiDimFit.cxx:31
TMultiDimFit.cxx:32
TMultiDimFit.cxx:33
TMultiDimFit.cxx:34
TMultiDimFit.cxx:35
TMultiDimFit.cxx:36
TMultiDimFit.cxx:37
TMultiDimFit.cxx:38
TMultiDimFit.cxx:39
TMultiDimFit.cxx:40
TMultiDimFit.cxx:41
TMultiDimFit.cxx:42
TMultiDimFit.cxx:43
TMultiDimFit.cxx:44
TMultiDimFit.cxx:45
TMultiDimFit.cxx:46
TMultiDimFit.cxx:47
TMultiDimFit.cxx:48
TMultiDimFit.cxx:49
TMultiDimFit.cxx:50
TMultiDimFit.cxx:51
TMultiDimFit.cxx:52
TMultiDimFit.cxx:53
TMultiDimFit.cxx:54
TMultiDimFit.cxx:55
TMultiDimFit.cxx:56
TMultiDimFit.cxx:57
TMultiDimFit.cxx:58
TMultiDimFit.cxx:59
TMultiDimFit.cxx:60
TMultiDimFit.cxx:61
TMultiDimFit.cxx:62
TMultiDimFit.cxx:63
TMultiDimFit.cxx:64
TMultiDimFit.cxx:65
TMultiDimFit.cxx:66
TMultiDimFit.cxx:67
TMultiDimFit.cxx:68
TMultiDimFit.cxx:69
TMultiDimFit.cxx:70
TMultiDimFit.cxx:71
TMultiDimFit.cxx:72
TMultiDimFit.cxx:73
TMultiDimFit.cxx:74
TMultiDimFit.cxx:75
TMultiDimFit.cxx:76
TMultiDimFit.cxx:77
TMultiDimFit.cxx:78
TMultiDimFit.cxx:79
TMultiDimFit.cxx:80
TMultiDimFit.cxx:81
TMultiDimFit.cxx:82
TMultiDimFit.cxx:83
TMultiDimFit.cxx:84
TMultiDimFit.cxx:85
TMultiDimFit.cxx:86
TMultiDimFit.cxx:87
TMultiDimFit.cxx:88
TMultiDimFit.cxx:89
TMultiDimFit.cxx:90
TMultiDimFit.cxx:91
TMultiDimFit.cxx:92
TMultiDimFit.cxx:93
TMultiDimFit.cxx:94
TMultiDimFit.cxx:95
TMultiDimFit.cxx:96
TMultiDimFit.cxx:97
TMultiDimFit.cxx:98
TMultiDimFit.cxx:99
TMultiDimFit.cxx:100
TMultiDimFit.cxx:101
TMultiDimFit.cxx:102
TMultiDimFit.cxx:103
TMultiDimFit.cxx:104
TMultiDimFit.cxx:105
TMultiDimFit.cxx:106
TMultiDimFit.cxx:107
TMultiDimFit.cxx:108
TMultiDimFit.cxx:109
TMultiDimFit.cxx:110
TMultiDimFit.cxx:111
TMultiDimFit.cxx:112
TMultiDimFit.cxx:113
TMultiDimFit.cxx:114
TMultiDimFit.cxx:115
TMultiDimFit.cxx:116
TMultiDimFit.cxx:117
TMultiDimFit.cxx:118
TMultiDimFit.cxx:119
TMultiDimFit.cxx:120
TMultiDimFit.cxx:121
TMultiDimFit.cxx:122
TMultiDimFit.cxx:123
TMultiDimFit.cxx:124
TMultiDimFit.cxx:125
TMultiDimFit.cxx:126
TMultiDimFit.cxx:127
TMultiDimFit.cxx:128
TMultiDimFit.cxx:129
TMultiDimFit.cxx:130
TMultiDimFit.cxx:131
TMultiDimFit.cxx:132
TMultiDimFit.cxx:133
TMultiDimFit.cxx:134
TMultiDimFit.cxx:135
TMultiDimFit.cxx:136
TMultiDimFit.cxx:137
TMultiDimFit.cxx:138
TMultiDimFit.cxx:139
TMultiDimFit.cxx:140
TMultiDimFit.cxx:141
TMultiDimFit.cxx:142
TMultiDimFit.cxx:143
TMultiDimFit.cxx:144
TMultiDimFit.cxx:145
TMultiDimFit.cxx:146
TMultiDimFit.cxx:147
TMultiDimFit.cxx:148
TMultiDimFit.cxx:149
TMultiDimFit.cxx:150
TMultiDimFit.cxx:151
TMultiDimFit.cxx:152
TMultiDimFit.cxx:153
TMultiDimFit.cxx:154
TMultiDimFit.cxx:155
TMultiDimFit.cxx:156
TMultiDimFit.cxx:157
TMultiDimFit.cxx:158
TMultiDimFit.cxx:159
TMultiDimFit.cxx:160
TMultiDimFit.cxx:161
TMultiDimFit.cxx:162
TMultiDimFit.cxx:163
TMultiDimFit.cxx:164
TMultiDimFit.cxx:165
TMultiDimFit.cxx:166
TMultiDimFit.cxx:167
TMultiDimFit.cxx:168
TMultiDimFit.cxx:169
TMultiDimFit.cxx:170
TMultiDimFit.cxx:171
TMultiDimFit.cxx:172
TMultiDimFit.cxx:173
TMultiDimFit.cxx:174
TMultiDimFit.cxx:175
TMultiDimFit.cxx:176
TMultiDimFit.cxx:177
TMultiDimFit.cxx:178
TMultiDimFit.cxx:179
TMultiDimFit.cxx:180
TMultiDimFit.cxx:181
TMultiDimFit.cxx:182
TMultiDimFit.cxx:183
TMultiDimFit.cxx:184
TMultiDimFit.cxx:185
TMultiDimFit.cxx:186
TMultiDimFit.cxx:187
TMultiDimFit.cxx:188
TMultiDimFit.cxx:189
TMultiDimFit.cxx:190
TMultiDimFit.cxx:191
TMultiDimFit.cxx:192
TMultiDimFit.cxx:193
TMultiDimFit.cxx:194
TMultiDimFit.cxx:195
TMultiDimFit.cxx:196
TMultiDimFit.cxx:197
TMultiDimFit.cxx:198
TMultiDimFit.cxx:199
TMultiDimFit.cxx:200
TMultiDimFit.cxx:201
TMultiDimFit.cxx:202
TMultiDimFit.cxx:203
TMultiDimFit.cxx:204
TMultiDimFit.cxx:205
TMultiDimFit.cxx:206
TMultiDimFit.cxx:207
TMultiDimFit.cxx:208
TMultiDimFit.cxx:209
TMultiDimFit.cxx:210
TMultiDimFit.cxx:211
TMultiDimFit.cxx:212
TMultiDimFit.cxx:213
TMultiDimFit.cxx:214
TMultiDimFit.cxx:215
TMultiDimFit.cxx:216
TMultiDimFit.cxx:217
TMultiDimFit.cxx:218
TMultiDimFit.cxx:219
TMultiDimFit.cxx:220
TMultiDimFit.cxx:221
TMultiDimFit.cxx:222
TMultiDimFit.cxx:223
TMultiDimFit.cxx:224
TMultiDimFit.cxx:225
TMultiDimFit.cxx:226
TMultiDimFit.cxx:227
TMultiDimFit.cxx:228
TMultiDimFit.cxx:229
TMultiDimFit.cxx:230
TMultiDimFit.cxx:231
TMultiDimFit.cxx:232
TMultiDimFit.cxx:233
TMultiDimFit.cxx:234
TMultiDimFit.cxx:235
TMultiDimFit.cxx:236
TMultiDimFit.cxx:237
TMultiDimFit.cxx:238
TMultiDimFit.cxx:239
TMultiDimFit.cxx:240
TMultiDimFit.cxx:241
TMultiDimFit.cxx:242
TMultiDimFit.cxx:243
TMultiDimFit.cxx:244
TMultiDimFit.cxx:245
TMultiDimFit.cxx:246
TMultiDimFit.cxx:247
TMultiDimFit.cxx:248
TMultiDimFit.cxx:249
TMultiDimFit.cxx:250
TMultiDimFit.cxx:251
TMultiDimFit.cxx:252
TMultiDimFit.cxx:253
TMultiDimFit.cxx:254
TMultiDimFit.cxx:255
TMultiDimFit.cxx:256
TMultiDimFit.cxx:257
TMultiDimFit.cxx:258
TMultiDimFit.cxx:259
TMultiDimFit.cxx:260
TMultiDimFit.cxx:261
TMultiDimFit.cxx:262
TMultiDimFit.cxx:263
TMultiDimFit.cxx:264
TMultiDimFit.cxx:265
TMultiDimFit.cxx:266
TMultiDimFit.cxx:267
TMultiDimFit.cxx:268
TMultiDimFit.cxx:269
TMultiDimFit.cxx:270
TMultiDimFit.cxx:271
TMultiDimFit.cxx:272
TMultiDimFit.cxx:273
TMultiDimFit.cxx:274
TMultiDimFit.cxx:275
TMultiDimFit.cxx:276
TMultiDimFit.cxx:277
TMultiDimFit.cxx:278
TMultiDimFit.cxx:279
TMultiDimFit.cxx:280
TMultiDimFit.cxx:281
TMultiDimFit.cxx:282
TMultiDimFit.cxx:283
TMultiDimFit.cxx:284
TMultiDimFit.cxx:285
TMultiDimFit.cxx:286
TMultiDimFit.cxx:287
TMultiDimFit.cxx:288
TMultiDimFit.cxx:289
TMultiDimFit.cxx:290
TMultiDimFit.cxx:291
TMultiDimFit.cxx:292
TMultiDimFit.cxx:293
TMultiDimFit.cxx:294
TMultiDimFit.cxx:295
TMultiDimFit.cxx:296
TMultiDimFit.cxx:297
TMultiDimFit.cxx:298
TMultiDimFit.cxx:299
TMultiDimFit.cxx:300
TMultiDimFit.cxx:301
TMultiDimFit.cxx:302
TMultiDimFit.cxx:303
TMultiDimFit.cxx:304
TMultiDimFit.cxx:305
TMultiDimFit.cxx:306
TMultiDimFit.cxx:307
TMultiDimFit.cxx:308
TMultiDimFit.cxx:309
TMultiDimFit.cxx:310
TMultiDimFit.cxx:311
TMultiDimFit.cxx:312
TMultiDimFit.cxx:313
TMultiDimFit.cxx:314
TMultiDimFit.cxx:315
TMultiDimFit.cxx:316
TMultiDimFit.cxx:317
TMultiDimFit.cxx:318
TMultiDimFit.cxx:319
TMultiDimFit.cxx:320
TMultiDimFit.cxx:321
TMultiDimFit.cxx:322
TMultiDimFit.cxx:323
TMultiDimFit.cxx:324
TMultiDimFit.cxx:325
TMultiDimFit.cxx:326
TMultiDimFit.cxx:327
TMultiDimFit.cxx:328
TMultiDimFit.cxx:329
TMultiDimFit.cxx:330
TMultiDimFit.cxx:331
TMultiDimFit.cxx:332
TMultiDimFit.cxx:333
TMultiDimFit.cxx:334
TMultiDimFit.cxx:335
TMultiDimFit.cxx:336
TMultiDimFit.cxx:337
TMultiDimFit.cxx:338
TMultiDimFit.cxx:339
TMultiDimFit.cxx:340
TMultiDimFit.cxx:341
TMultiDimFit.cxx:342
TMultiDimFit.cxx:343
TMultiDimFit.cxx:344
TMultiDimFit.cxx:345
TMultiDimFit.cxx:346
TMultiDimFit.cxx:347
TMultiDimFit.cxx:348
TMultiDimFit.cxx:349
TMultiDimFit.cxx:350
TMultiDimFit.cxx:351
TMultiDimFit.cxx:352
TMultiDimFit.cxx:353
TMultiDimFit.cxx:354
TMultiDimFit.cxx:355
TMultiDimFit.cxx:356
TMultiDimFit.cxx:357
TMultiDimFit.cxx:358
TMultiDimFit.cxx:359
TMultiDimFit.cxx:360
TMultiDimFit.cxx:361
TMultiDimFit.cxx:362
TMultiDimFit.cxx:363
TMultiDimFit.cxx:364
TMultiDimFit.cxx:365
TMultiDimFit.cxx:366
TMultiDimFit.cxx:367
TMultiDimFit.cxx:368
TMultiDimFit.cxx:369
TMultiDimFit.cxx:370
TMultiDimFit.cxx:371
TMultiDimFit.cxx:372
TMultiDimFit.cxx:373
TMultiDimFit.cxx:374
TMultiDimFit.cxx:375
TMultiDimFit.cxx:376
TMultiDimFit.cxx:377
TMultiDimFit.cxx:378
TMultiDimFit.cxx:379
TMultiDimFit.cxx:380
TMultiDimFit.cxx:381
TMultiDimFit.cxx:382
TMultiDimFit.cxx:383
TMultiDimFit.cxx:384
TMultiDimFit.cxx:385
TMultiDimFit.cxx:386
TMultiDimFit.cxx:387
TMultiDimFit.cxx:388
TMultiDimFit.cxx:389
TMultiDimFit.cxx:390
TMultiDimFit.cxx:391
TMultiDimFit.cxx:392
TMultiDimFit.cxx:393
TMultiDimFit.cxx:394
TMultiDimFit.cxx:395
TMultiDimFit.cxx:396
TMultiDimFit.cxx:397
TMultiDimFit.cxx:398
TMultiDimFit.cxx:399
TMultiDimFit.cxx:400
TMultiDimFit.cxx:401
TMultiDimFit.cxx:402
TMultiDimFit.cxx:403
TMultiDimFit.cxx:404
TMultiDimFit.cxx:405
TMultiDimFit.cxx:406
TMultiDimFit.cxx:407
TMultiDimFit.cxx:408
TMultiDimFit.cxx:409
TMultiDimFit.cxx:410
TMultiDimFit.cxx:411
TMultiDimFit.cxx:412
TMultiDimFit.cxx:413
TMultiDimFit.cxx:414
TMultiDimFit.cxx:415
TMultiDimFit.cxx:416
TMultiDimFit.cxx:417
TMultiDimFit.cxx:418
TMultiDimFit.cxx:419
TMultiDimFit.cxx:420
TMultiDimFit.cxx:421
TMultiDimFit.cxx:422
TMultiDimFit.cxx:423
TMultiDimFit.cxx:424
TMultiDimFit.cxx:425
TMultiDimFit.cxx:426
TMultiDimFit.cxx:427
TMultiDimFit.cxx:428
TMultiDimFit.cxx:429
TMultiDimFit.cxx:430
TMultiDimFit.cxx:431
TMultiDimFit.cxx:432
TMultiDimFit.cxx:433
TMultiDimFit.cxx:434
TMultiDimFit.cxx:435
TMultiDimFit.cxx:436
TMultiDimFit.cxx:437
TMultiDimFit.cxx:438
TMultiDimFit.cxx:439
TMultiDimFit.cxx:440
TMultiDimFit.cxx:441
TMultiDimFit.cxx:442
TMultiDimFit.cxx:443
TMultiDimFit.cxx:444
TMultiDimFit.cxx:445
TMultiDimFit.cxx:446
TMultiDimFit.cxx:447
TMultiDimFit.cxx:448
TMultiDimFit.cxx:449
TMultiDimFit.cxx:450
TMultiDimFit.cxx:451
TMultiDimFit.cxx:452
TMultiDimFit.cxx:453
TMultiDimFit.cxx:454
TMultiDimFit.cxx:455
TMultiDimFit.cxx:456
TMultiDimFit.cxx:457
TMultiDimFit.cxx:458
TMultiDimFit.cxx:459
TMultiDimFit.cxx:460
TMultiDimFit.cxx:461
TMultiDimFit.cxx:462
TMultiDimFit.cxx:463
TMultiDimFit.cxx:464
TMultiDimFit.cxx:465
TMultiDimFit.cxx:466
TMultiDimFit.cxx:467
TMultiDimFit.cxx:468
TMultiDimFit.cxx:469
TMultiDimFit.cxx:470
TMultiDimFit.cxx:471
TMultiDimFit.cxx:472
TMultiDimFit.cxx:473
TMultiDimFit.cxx:474
TMultiDimFit.cxx:475
TMultiDimFit.cxx:476
TMultiDimFit.cxx:477
TMultiDimFit.cxx:478
TMultiDimFit.cxx:479
TMultiDimFit.cxx:480
TMultiDimFit.cxx:481
TMultiDimFit.cxx:482
TMultiDimFit.cxx:483
TMultiDimFit.cxx:484
TMultiDimFit.cxx:485
TMultiDimFit.cxx:486
TMultiDimFit.cxx:487
TMultiDimFit.cxx:488
TMultiDimFit.cxx:489
TMultiDimFit.cxx:490
TMultiDimFit.cxx:491
TMultiDimFit.cxx:492
TMultiDimFit.cxx:493
TMultiDimFit.cxx:494
TMultiDimFit.cxx:495
TMultiDimFit.cxx:496
TMultiDimFit.cxx:497
TMultiDimFit.cxx:498
TMultiDimFit.cxx:499
TMultiDimFit.cxx:500
TMultiDimFit.cxx:501
TMultiDimFit.cxx:502
TMultiDimFit.cxx:503
TMultiDimFit.cxx:504
TMultiDimFit.cxx:505
TMultiDimFit.cxx:506
TMultiDimFit.cxx:507
TMultiDimFit.cxx:508
TMultiDimFit.cxx:509
TMultiDimFit.cxx:510
TMultiDimFit.cxx:511
TMultiDimFit.cxx:512
TMultiDimFit.cxx:513
TMultiDimFit.cxx:514
TMultiDimFit.cxx:515
TMultiDimFit.cxx:516
TMultiDimFit.cxx:517
TMultiDimFit.cxx:518
TMultiDimFit.cxx:519
TMultiDimFit.cxx:520
TMultiDimFit.cxx:521
TMultiDimFit.cxx:522
TMultiDimFit.cxx:523
TMultiDimFit.cxx:524
TMultiDimFit.cxx:525
TMultiDimFit.cxx:526
TMultiDimFit.cxx:527
TMultiDimFit.cxx:528
TMultiDimFit.cxx:529
TMultiDimFit.cxx:530
TMultiDimFit.cxx:531
TMultiDimFit.cxx:532
TMultiDimFit.cxx:533
TMultiDimFit.cxx:534
TMultiDimFit.cxx:535
TMultiDimFit.cxx:536
TMultiDimFit.cxx:537
TMultiDimFit.cxx:538
TMultiDimFit.cxx:539
TMultiDimFit.cxx:540
TMultiDimFit.cxx:541
TMultiDimFit.cxx:542
TMultiDimFit.cxx:543
TMultiDimFit.cxx:544
TMultiDimFit.cxx:545
TMultiDimFit.cxx:546
TMultiDimFit.cxx:547
TMultiDimFit.cxx:548
TMultiDimFit.cxx:549
TMultiDimFit.cxx:550
TMultiDimFit.cxx:551
TMultiDimFit.cxx:552
TMultiDimFit.cxx:553
TMultiDimFit.cxx:554
TMultiDimFit.cxx:555
TMultiDimFit.cxx:556
TMultiDimFit.cxx:557
TMultiDimFit.cxx:558
TMultiDimFit.cxx:559
TMultiDimFit.cxx:560
TMultiDimFit.cxx:561
TMultiDimFit.cxx:562
TMultiDimFit.cxx:563
TMultiDimFit.cxx:564
TMultiDimFit.cxx:565
TMultiDimFit.cxx:566
TMultiDimFit.cxx:567
TMultiDimFit.cxx:568
TMultiDimFit.cxx:569
TMultiDimFit.cxx:570
TMultiDimFit.cxx:571
TMultiDimFit.cxx:572
TMultiDimFit.cxx:573
TMultiDimFit.cxx:574
TMultiDimFit.cxx:575
TMultiDimFit.cxx:576
TMultiDimFit.cxx:577
TMultiDimFit.cxx:578
TMultiDimFit.cxx:579
TMultiDimFit.cxx:580
TMultiDimFit.cxx:581
TMultiDimFit.cxx:582
TMultiDimFit.cxx:583
TMultiDimFit.cxx:584
TMultiDimFit.cxx:585
TMultiDimFit.cxx:586
TMultiDimFit.cxx:587
TMultiDimFit.cxx:588
TMultiDimFit.cxx:589
TMultiDimFit.cxx:590
TMultiDimFit.cxx:591
TMultiDimFit.cxx:592
TMultiDimFit.cxx:593
TMultiDimFit.cxx:594
TMultiDimFit.cxx:595
TMultiDimFit.cxx:596
TMultiDimFit.cxx:597
TMultiDimFit.cxx:598
TMultiDimFit.cxx:599
TMultiDimFit.cxx:600
TMultiDimFit.cxx:601
TMultiDimFit.cxx:602
TMultiDimFit.cxx:603
TMultiDimFit.cxx:604
TMultiDimFit.cxx:605
TMultiDimFit.cxx:606
TMultiDimFit.cxx:607
TMultiDimFit.cxx:608
TMultiDimFit.cxx:609
TMultiDimFit.cxx:610
TMultiDimFit.cxx:611
TMultiDimFit.cxx:612
TMultiDimFit.cxx:613
TMultiDimFit.cxx:614
TMultiDimFit.cxx:615
TMultiDimFit.cxx:616
TMultiDimFit.cxx:617
TMultiDimFit.cxx:618
TMultiDimFit.cxx:619
TMultiDimFit.cxx:620
TMultiDimFit.cxx:621
TMultiDimFit.cxx:622
TMultiDimFit.cxx:623
TMultiDimFit.cxx:624
TMultiDimFit.cxx:625
TMultiDimFit.cxx:626
TMultiDimFit.cxx:627
TMultiDimFit.cxx:628
TMultiDimFit.cxx:629
TMultiDimFit.cxx:630
TMultiDimFit.cxx:631
TMultiDimFit.cxx:632
TMultiDimFit.cxx:633
TMultiDimFit.cxx:634
TMultiDimFit.cxx:635
TMultiDimFit.cxx:636
TMultiDimFit.cxx:637
TMultiDimFit.cxx:638
TMultiDimFit.cxx:639
TMultiDimFit.cxx:640
TMultiDimFit.cxx:641
TMultiDimFit.cxx:642
TMultiDimFit.cxx:643
TMultiDimFit.cxx:644
TMultiDimFit.cxx:645
TMultiDimFit.cxx:646
TMultiDimFit.cxx:647
TMultiDimFit.cxx:648
TMultiDimFit.cxx:649
TMultiDimFit.cxx:650
TMultiDimFit.cxx:651
TMultiDimFit.cxx:652
TMultiDimFit.cxx:653
TMultiDimFit.cxx:654
TMultiDimFit.cxx:655
TMultiDimFit.cxx:656
TMultiDimFit.cxx:657
TMultiDimFit.cxx:658
TMultiDimFit.cxx:659
TMultiDimFit.cxx:660
TMultiDimFit.cxx:661
TMultiDimFit.cxx:662
TMultiDimFit.cxx:663
TMultiDimFit.cxx:664
TMultiDimFit.cxx:665
TMultiDimFit.cxx:666
TMultiDimFit.cxx:667
TMultiDimFit.cxx:668
TMultiDimFit.cxx:669
TMultiDimFit.cxx:670
TMultiDimFit.cxx:671
TMultiDimFit.cxx:672
TMultiDimFit.cxx:673
TMultiDimFit.cxx:674
TMultiDimFit.cxx:675
TMultiDimFit.cxx:676
TMultiDimFit.cxx:677
TMultiDimFit.cxx:678
TMultiDimFit.cxx:679
TMultiDimFit.cxx:680
TMultiDimFit.cxx:681
TMultiDimFit.cxx:682
TMultiDimFit.cxx:683
TMultiDimFit.cxx:684
TMultiDimFit.cxx:685
TMultiDimFit.cxx:686
TMultiDimFit.cxx:687
TMultiDimFit.cxx:688
TMultiDimFit.cxx:689
TMultiDimFit.cxx:690
TMultiDimFit.cxx:691
TMultiDimFit.cxx:692
TMultiDimFit.cxx:693
TMultiDimFit.cxx:694
TMultiDimFit.cxx:695
TMultiDimFit.cxx:696
TMultiDimFit.cxx:697
TMultiDimFit.cxx:698
TMultiDimFit.cxx:699
TMultiDimFit.cxx:700
TMultiDimFit.cxx:701
TMultiDimFit.cxx:702
TMultiDimFit.cxx:703
TMultiDimFit.cxx:704
TMultiDimFit.cxx:705
TMultiDimFit.cxx:706
TMultiDimFit.cxx:707
TMultiDimFit.cxx:708
TMultiDimFit.cxx:709
TMultiDimFit.cxx:710
TMultiDimFit.cxx:711
TMultiDimFit.cxx:712
TMultiDimFit.cxx:713
TMultiDimFit.cxx:714
TMultiDimFit.cxx:715
TMultiDimFit.cxx:716
TMultiDimFit.cxx:717
TMultiDimFit.cxx:718
TMultiDimFit.cxx:719
TMultiDimFit.cxx:720
TMultiDimFit.cxx:721
TMultiDimFit.cxx:722
TMultiDimFit.cxx:723
TMultiDimFit.cxx:724
TMultiDimFit.cxx:725
TMultiDimFit.cxx:726
TMultiDimFit.cxx:727
TMultiDimFit.cxx:728
TMultiDimFit.cxx:729
TMultiDimFit.cxx:730
TMultiDimFit.cxx:731
TMultiDimFit.cxx:732
TMultiDimFit.cxx:733
TMultiDimFit.cxx:734
TMultiDimFit.cxx:735
TMultiDimFit.cxx:736
TMultiDimFit.cxx:737
TMultiDimFit.cxx:738
TMultiDimFit.cxx:739
TMultiDimFit.cxx:740
TMultiDimFit.cxx:741
TMultiDimFit.cxx:742
TMultiDimFit.cxx:743
TMultiDimFit.cxx:744
TMultiDimFit.cxx:745
TMultiDimFit.cxx:746
TMultiDimFit.cxx:747
TMultiDimFit.cxx:748
TMultiDimFit.cxx:749
TMultiDimFit.cxx:750
TMultiDimFit.cxx:751
TMultiDimFit.cxx:752
TMultiDimFit.cxx:753
TMultiDimFit.cxx:754
TMultiDimFit.cxx:755
TMultiDimFit.cxx:756
TMultiDimFit.cxx:757
TMultiDimFit.cxx:758
TMultiDimFit.cxx:759
TMultiDimFit.cxx:760
TMultiDimFit.cxx:761
TMultiDimFit.cxx:762
TMultiDimFit.cxx:763
TMultiDimFit.cxx:764
TMultiDimFit.cxx:765
TMultiDimFit.cxx:766
TMultiDimFit.cxx:767
TMultiDimFit.cxx:768
TMultiDimFit.cxx:769
TMultiDimFit.cxx:770
TMultiDimFit.cxx:771
TMultiDimFit.cxx:772
TMultiDimFit.cxx:773
TMultiDimFit.cxx:774
TMultiDimFit.cxx:775
TMultiDimFit.cxx:776
TMultiDimFit.cxx:777
TMultiDimFit.cxx:778
TMultiDimFit.cxx:779
TMultiDimFit.cxx:780
TMultiDimFit.cxx:781
TMultiDimFit.cxx:782
TMultiDimFit.cxx:783
TMultiDimFit.cxx:784
TMultiDimFit.cxx:785
TMultiDimFit.cxx:786
TMultiDimFit.cxx:787
TMultiDimFit.cxx:788
TMultiDimFit.cxx:789
TMultiDimFit.cxx:790
TMultiDimFit.cxx:791
TMultiDimFit.cxx:792
TMultiDimFit.cxx:793
TMultiDimFit.cxx:794
TMultiDimFit.cxx:795
TMultiDimFit.cxx:796
TMultiDimFit.cxx:797
TMultiDimFit.cxx:798
TMultiDimFit.cxx:799
TMultiDimFit.cxx:800
TMultiDimFit.cxx:801
TMultiDimFit.cxx:802
TMultiDimFit.cxx:803
TMultiDimFit.cxx:804
TMultiDimFit.cxx:805
TMultiDimFit.cxx:806
TMultiDimFit.cxx:807
TMultiDimFit.cxx:808
TMultiDimFit.cxx:809
TMultiDimFit.cxx:810
TMultiDimFit.cxx:811
TMultiDimFit.cxx:812
TMultiDimFit.cxx:813
TMultiDimFit.cxx:814
TMultiDimFit.cxx:815
TMultiDimFit.cxx:816
TMultiDimFit.cxx:817
TMultiDimFit.cxx:818
TMultiDimFit.cxx:819
TMultiDimFit.cxx:820
TMultiDimFit.cxx:821
TMultiDimFit.cxx:822
TMultiDimFit.cxx:823
TMultiDimFit.cxx:824
TMultiDimFit.cxx:825
TMultiDimFit.cxx:826
TMultiDimFit.cxx:827
TMultiDimFit.cxx:828
TMultiDimFit.cxx:829
TMultiDimFit.cxx:830
TMultiDimFit.cxx:831
TMultiDimFit.cxx:832
TMultiDimFit.cxx:833
TMultiDimFit.cxx:834
TMultiDimFit.cxx:835
TMultiDimFit.cxx:836
TMultiDimFit.cxx:837
TMultiDimFit.cxx:838
TMultiDimFit.cxx:839
TMultiDimFit.cxx:840
TMultiDimFit.cxx:841
TMultiDimFit.cxx:842
TMultiDimFit.cxx:843
TMultiDimFit.cxx:844
TMultiDimFit.cxx:845
TMultiDimFit.cxx:846
TMultiDimFit.cxx:847
TMultiDimFit.cxx:848
TMultiDimFit.cxx:849
TMultiDimFit.cxx:850
TMultiDimFit.cxx:851
TMultiDimFit.cxx:852
TMultiDimFit.cxx:853
TMultiDimFit.cxx:854
TMultiDimFit.cxx:855
TMultiDimFit.cxx:856
TMultiDimFit.cxx:857
TMultiDimFit.cxx:858
TMultiDimFit.cxx:859
TMultiDimFit.cxx:860
TMultiDimFit.cxx:861
TMultiDimFit.cxx:862
TMultiDimFit.cxx:863
TMultiDimFit.cxx:864
TMultiDimFit.cxx:865
TMultiDimFit.cxx:866
TMultiDimFit.cxx:867
TMultiDimFit.cxx:868
TMultiDimFit.cxx:869
TMultiDimFit.cxx:870
TMultiDimFit.cxx:871
TMultiDimFit.cxx:872
TMultiDimFit.cxx:873
TMultiDimFit.cxx:874
TMultiDimFit.cxx:875
TMultiDimFit.cxx:876
TMultiDimFit.cxx:877
TMultiDimFit.cxx:878
TMultiDimFit.cxx:879
TMultiDimFit.cxx:880
TMultiDimFit.cxx:881
TMultiDimFit.cxx:882
TMultiDimFit.cxx:883
TMultiDimFit.cxx:884
TMultiDimFit.cxx:885
TMultiDimFit.cxx:886
TMultiDimFit.cxx:887
TMultiDimFit.cxx:888
TMultiDimFit.cxx:889
TMultiDimFit.cxx:890
TMultiDimFit.cxx:891
TMultiDimFit.cxx:892
TMultiDimFit.cxx:893
TMultiDimFit.cxx:894
TMultiDimFit.cxx:895
TMultiDimFit.cxx:896
TMultiDimFit.cxx:897
TMultiDimFit.cxx:898
TMultiDimFit.cxx:899
TMultiDimFit.cxx:900
TMultiDimFit.cxx:901
TMultiDimFit.cxx:902
TMultiDimFit.cxx:903
TMultiDimFit.cxx:904
TMultiDimFit.cxx:905
TMultiDimFit.cxx:906
TMultiDimFit.cxx:907
TMultiDimFit.cxx:908
TMultiDimFit.cxx:909
TMultiDimFit.cxx:910
TMultiDimFit.cxx:911
TMultiDimFit.cxx:912
TMultiDimFit.cxx:913
TMultiDimFit.cxx:914
TMultiDimFit.cxx:915
TMultiDimFit.cxx:916
TMultiDimFit.cxx:917
TMultiDimFit.cxx:918
TMultiDimFit.cxx:919
TMultiDimFit.cxx:920
TMultiDimFit.cxx:921
TMultiDimFit.cxx:922
TMultiDimFit.cxx:923
TMultiDimFit.cxx:924
TMultiDimFit.cxx:925
TMultiDimFit.cxx:926
TMultiDimFit.cxx:927
TMultiDimFit.cxx:928
TMultiDimFit.cxx:929
TMultiDimFit.cxx:930
TMultiDimFit.cxx:931
TMultiDimFit.cxx:932
TMultiDimFit.cxx:933
TMultiDimFit.cxx:934
TMultiDimFit.cxx:935
TMultiDimFit.cxx:936
TMultiDimFit.cxx:937
TMultiDimFit.cxx:938
TMultiDimFit.cxx:939
TMultiDimFit.cxx:940
TMultiDimFit.cxx:941
TMultiDimFit.cxx:942
TMultiDimFit.cxx:943
TMultiDimFit.cxx:944
TMultiDimFit.cxx:945
TMultiDimFit.cxx:946
TMultiDimFit.cxx:947
TMultiDimFit.cxx:948
TMultiDimFit.cxx:949
TMultiDimFit.cxx:950
TMultiDimFit.cxx:951
TMultiDimFit.cxx:952
TMultiDimFit.cxx:953
TMultiDimFit.cxx:954
TMultiDimFit.cxx:955
TMultiDimFit.cxx:956
TMultiDimFit.cxx:957
TMultiDimFit.cxx:958
TMultiDimFit.cxx:959
TMultiDimFit.cxx:960
TMultiDimFit.cxx:961
TMultiDimFit.cxx:962
TMultiDimFit.cxx:963
TMultiDimFit.cxx:964
TMultiDimFit.cxx:965
TMultiDimFit.cxx:966
TMultiDimFit.cxx:967
TMultiDimFit.cxx:968
TMultiDimFit.cxx:969
TMultiDimFit.cxx:970
TMultiDimFit.cxx:971
TMultiDimFit.cxx:972
TMultiDimFit.cxx:973
TMultiDimFit.cxx:974
TMultiDimFit.cxx:975
TMultiDimFit.cxx:976
TMultiDimFit.cxx:977
TMultiDimFit.cxx:978
TMultiDimFit.cxx:979
TMultiDimFit.cxx:980
TMultiDimFit.cxx:981
TMultiDimFit.cxx:982
TMultiDimFit.cxx:983
TMultiDimFit.cxx:984
TMultiDimFit.cxx:985
TMultiDimFit.cxx:986
TMultiDimFit.cxx:987
TMultiDimFit.cxx:988
TMultiDimFit.cxx:989
TMultiDimFit.cxx:990
TMultiDimFit.cxx:991
TMultiDimFit.cxx:992
TMultiDimFit.cxx:993
TMultiDimFit.cxx:994
TMultiDimFit.cxx:995
TMultiDimFit.cxx:996
TMultiDimFit.cxx:997
TMultiDimFit.cxx:998
TMultiDimFit.cxx:999
TMultiDimFit.cxx:1000
TMultiDimFit.cxx:1001
TMultiDimFit.cxx:1002
TMultiDimFit.cxx:1003
TMultiDimFit.cxx:1004
TMultiDimFit.cxx:1005
TMultiDimFit.cxx:1006
TMultiDimFit.cxx:1007
TMultiDimFit.cxx:1008
TMultiDimFit.cxx:1009
TMultiDimFit.cxx:1010
TMultiDimFit.cxx:1011
TMultiDimFit.cxx:1012
TMultiDimFit.cxx:1013
TMultiDimFit.cxx:1014
TMultiDimFit.cxx:1015
TMultiDimFit.cxx:1016
TMultiDimFit.cxx:1017
TMultiDimFit.cxx:1018
TMultiDimFit.cxx:1019
TMultiDimFit.cxx:1020
TMultiDimFit.cxx:1021
TMultiDimFit.cxx:1022
TMultiDimFit.cxx:1023
TMultiDimFit.cxx:1024
TMultiDimFit.cxx:1025
TMultiDimFit.cxx:1026
TMultiDimFit.cxx:1027
TMultiDimFit.cxx:1028
TMultiDimFit.cxx:1029
TMultiDimFit.cxx:1030
TMultiDimFit.cxx:1031
TMultiDimFit.cxx:1032
TMultiDimFit.cxx:1033
TMultiDimFit.cxx:1034
TMultiDimFit.cxx:1035
TMultiDimFit.cxx:1036
TMultiDimFit.cxx:1037
TMultiDimFit.cxx:1038
TMultiDimFit.cxx:1039
TMultiDimFit.cxx:1040
TMultiDimFit.cxx:1041
TMultiDimFit.cxx:1042
TMultiDimFit.cxx:1043
TMultiDimFit.cxx:1044
TMultiDimFit.cxx:1045
TMultiDimFit.cxx:1046
TMultiDimFit.cxx:1047
TMultiDimFit.cxx:1048
TMultiDimFit.cxx:1049
TMultiDimFit.cxx:1050
TMultiDimFit.cxx:1051
TMultiDimFit.cxx:1052
TMultiDimFit.cxx:1053
TMultiDimFit.cxx:1054
TMultiDimFit.cxx:1055
TMultiDimFit.cxx:1056
TMultiDimFit.cxx:1057
TMultiDimFit.cxx:1058
TMultiDimFit.cxx:1059
TMultiDimFit.cxx:1060
TMultiDimFit.cxx:1061
TMultiDimFit.cxx:1062
TMultiDimFit.cxx:1063
TMultiDimFit.cxx:1064
TMultiDimFit.cxx:1065
TMultiDimFit.cxx:1066
TMultiDimFit.cxx:1067
TMultiDimFit.cxx:1068
TMultiDimFit.cxx:1069
TMultiDimFit.cxx:1070
TMultiDimFit.cxx:1071
TMultiDimFit.cxx:1072
TMultiDimFit.cxx:1073
TMultiDimFit.cxx:1074
TMultiDimFit.cxx:1075
TMultiDimFit.cxx:1076
TMultiDimFit.cxx:1077
TMultiDimFit.cxx:1078
TMultiDimFit.cxx:1079
TMultiDimFit.cxx:1080
TMultiDimFit.cxx:1081
TMultiDimFit.cxx:1082
TMultiDimFit.cxx:1083
TMultiDimFit.cxx:1084
TMultiDimFit.cxx:1085
TMultiDimFit.cxx:1086
TMultiDimFit.cxx:1087
TMultiDimFit.cxx:1088
TMultiDimFit.cxx:1089
TMultiDimFit.cxx:1090
TMultiDimFit.cxx:1091
TMultiDimFit.cxx:1092
TMultiDimFit.cxx:1093
TMultiDimFit.cxx:1094
TMultiDimFit.cxx:1095
TMultiDimFit.cxx:1096
TMultiDimFit.cxx:1097
TMultiDimFit.cxx:1098
TMultiDimFit.cxx:1099
TMultiDimFit.cxx:1100
TMultiDimFit.cxx:1101
TMultiDimFit.cxx:1102
TMultiDimFit.cxx:1103
TMultiDimFit.cxx:1104
TMultiDimFit.cxx:1105
TMultiDimFit.cxx:1106
TMultiDimFit.cxx:1107
TMultiDimFit.cxx:1108
TMultiDimFit.cxx:1109
TMultiDimFit.cxx:1110
TMultiDimFit.cxx:1111
TMultiDimFit.cxx:1112
TMultiDimFit.cxx:1113
TMultiDimFit.cxx:1114
TMultiDimFit.cxx:1115
TMultiDimFit.cxx:1116
TMultiDimFit.cxx:1117
TMultiDimFit.cxx:1118
TMultiDimFit.cxx:1119
TMultiDimFit.cxx:1120
TMultiDimFit.cxx:1121
TMultiDimFit.cxx:1122
TMultiDimFit.cxx:1123
TMultiDimFit.cxx:1124
TMultiDimFit.cxx:1125
TMultiDimFit.cxx:1126
TMultiDimFit.cxx:1127
TMultiDimFit.cxx:1128
TMultiDimFit.cxx:1129
TMultiDimFit.cxx:1130
TMultiDimFit.cxx:1131
TMultiDimFit.cxx:1132
TMultiDimFit.cxx:1133
TMultiDimFit.cxx:1134
TMultiDimFit.cxx:1135
TMultiDimFit.cxx:1136
TMultiDimFit.cxx:1137
TMultiDimFit.cxx:1138
TMultiDimFit.cxx:1139
TMultiDimFit.cxx:1140
TMultiDimFit.cxx:1141
TMultiDimFit.cxx:1142
TMultiDimFit.cxx:1143
TMultiDimFit.cxx:1144
TMultiDimFit.cxx:1145
TMultiDimFit.cxx:1146
TMultiDimFit.cxx:1147
TMultiDimFit.cxx:1148
TMultiDimFit.cxx:1149
TMultiDimFit.cxx:1150
TMultiDimFit.cxx:1151
TMultiDimFit.cxx:1152
TMultiDimFit.cxx:1153
TMultiDimFit.cxx:1154
TMultiDimFit.cxx:1155
TMultiDimFit.cxx:1156
TMultiDimFit.cxx:1157
TMultiDimFit.cxx:1158
TMultiDimFit.cxx:1159
TMultiDimFit.cxx:1160
TMultiDimFit.cxx:1161
TMultiDimFit.cxx:1162
TMultiDimFit.cxx:1163
TMultiDimFit.cxx:1164
TMultiDimFit.cxx:1165
TMultiDimFit.cxx:1166
TMultiDimFit.cxx:1167
TMultiDimFit.cxx:1168
TMultiDimFit.cxx:1169
TMultiDimFit.cxx:1170
TMultiDimFit.cxx:1171
TMultiDimFit.cxx:1172
TMultiDimFit.cxx:1173
TMultiDimFit.cxx:1174
TMultiDimFit.cxx:1175
TMultiDimFit.cxx:1176
TMultiDimFit.cxx:1177
TMultiDimFit.cxx:1178
TMultiDimFit.cxx:1179
TMultiDimFit.cxx:1180
TMultiDimFit.cxx:1181
TMultiDimFit.cxx:1182
TMultiDimFit.cxx:1183
TMultiDimFit.cxx:1184
TMultiDimFit.cxx:1185
TMultiDimFit.cxx:1186
TMultiDimFit.cxx:1187
TMultiDimFit.cxx:1188
TMultiDimFit.cxx:1189
TMultiDimFit.cxx:1190
TMultiDimFit.cxx:1191
TMultiDimFit.cxx:1192
TMultiDimFit.cxx:1193
TMultiDimFit.cxx:1194
TMultiDimFit.cxx:1195
TMultiDimFit.cxx:1196
TMultiDimFit.cxx:1197
TMultiDimFit.cxx:1198
TMultiDimFit.cxx:1199
TMultiDimFit.cxx:1200
TMultiDimFit.cxx:1201
TMultiDimFit.cxx:1202
TMultiDimFit.cxx:1203
TMultiDimFit.cxx:1204
TMultiDimFit.cxx:1205
TMultiDimFit.cxx:1206
TMultiDimFit.cxx:1207
TMultiDimFit.cxx:1208
TMultiDimFit.cxx:1209
TMultiDimFit.cxx:1210
TMultiDimFit.cxx:1211
TMultiDimFit.cxx:1212
TMultiDimFit.cxx:1213
TMultiDimFit.cxx:1214
TMultiDimFit.cxx:1215
TMultiDimFit.cxx:1216
TMultiDimFit.cxx:1217
TMultiDimFit.cxx:1218
TMultiDimFit.cxx:1219
TMultiDimFit.cxx:1220
TMultiDimFit.cxx:1221
TMultiDimFit.cxx:1222
TMultiDimFit.cxx:1223
TMultiDimFit.cxx:1224
TMultiDimFit.cxx:1225
TMultiDimFit.cxx:1226
TMultiDimFit.cxx:1227
TMultiDimFit.cxx:1228
TMultiDimFit.cxx:1229
TMultiDimFit.cxx:1230
TMultiDimFit.cxx:1231
TMultiDimFit.cxx:1232
TMultiDimFit.cxx:1233
TMultiDimFit.cxx:1234
TMultiDimFit.cxx:1235
TMultiDimFit.cxx:1236
TMultiDimFit.cxx:1237
TMultiDimFit.cxx:1238
TMultiDimFit.cxx:1239
TMultiDimFit.cxx:1240
TMultiDimFit.cxx:1241
TMultiDimFit.cxx:1242
TMultiDimFit.cxx:1243
TMultiDimFit.cxx:1244
TMultiDimFit.cxx:1245
TMultiDimFit.cxx:1246
TMultiDimFit.cxx:1247
TMultiDimFit.cxx:1248
TMultiDimFit.cxx:1249
TMultiDimFit.cxx:1250
TMultiDimFit.cxx:1251
TMultiDimFit.cxx:1252
TMultiDimFit.cxx:1253
TMultiDimFit.cxx:1254
TMultiDimFit.cxx:1255
TMultiDimFit.cxx:1256
TMultiDimFit.cxx:1257
TMultiDimFit.cxx:1258
TMultiDimFit.cxx:1259
TMultiDimFit.cxx:1260
TMultiDimFit.cxx:1261
TMultiDimFit.cxx:1262
TMultiDimFit.cxx:1263
TMultiDimFit.cxx:1264
TMultiDimFit.cxx:1265
TMultiDimFit.cxx:1266
TMultiDimFit.cxx:1267
TMultiDimFit.cxx:1268
TMultiDimFit.cxx:1269
TMultiDimFit.cxx:1270
TMultiDimFit.cxx:1271
TMultiDimFit.cxx:1272
TMultiDimFit.cxx:1273
TMultiDimFit.cxx:1274
TMultiDimFit.cxx:1275
TMultiDimFit.cxx:1276
TMultiDimFit.cxx:1277
TMultiDimFit.cxx:1278
TMultiDimFit.cxx:1279
TMultiDimFit.cxx:1280
TMultiDimFit.cxx:1281
TMultiDimFit.cxx:1282
TMultiDimFit.cxx:1283
TMultiDimFit.cxx:1284
TMultiDimFit.cxx:1285
TMultiDimFit.cxx:1286
TMultiDimFit.cxx:1287
TMultiDimFit.cxx:1288
TMultiDimFit.cxx:1289
TMultiDimFit.cxx:1290
TMultiDimFit.cxx:1291
TMultiDimFit.cxx:1292
TMultiDimFit.cxx:1293
TMultiDimFit.cxx:1294
TMultiDimFit.cxx:1295
TMultiDimFit.cxx:1296
TMultiDimFit.cxx:1297
TMultiDimFit.cxx:1298
TMultiDimFit.cxx:1299
TMultiDimFit.cxx:1300
TMultiDimFit.cxx:1301
TMultiDimFit.cxx:1302
TMultiDimFit.cxx:1303
TMultiDimFit.cxx:1304
TMultiDimFit.cxx:1305
TMultiDimFit.cxx:1306
TMultiDimFit.cxx:1307
TMultiDimFit.cxx:1308
TMultiDimFit.cxx:1309
TMultiDimFit.cxx:1310
TMultiDimFit.cxx:1311
TMultiDimFit.cxx:1312
TMultiDimFit.cxx:1313
TMultiDimFit.cxx:1314
TMultiDimFit.cxx:1315
TMultiDimFit.cxx:1316
TMultiDimFit.cxx:1317
TMultiDimFit.cxx:1318
TMultiDimFit.cxx:1319
TMultiDimFit.cxx:1320
TMultiDimFit.cxx:1321
TMultiDimFit.cxx:1322
TMultiDimFit.cxx:1323
TMultiDimFit.cxx:1324
TMultiDimFit.cxx:1325
TMultiDimFit.cxx:1326
TMultiDimFit.cxx:1327
TMultiDimFit.cxx:1328
TMultiDimFit.cxx:1329
TMultiDimFit.cxx:1330
TMultiDimFit.cxx:1331
TMultiDimFit.cxx:1332
TMultiDimFit.cxx:1333
TMultiDimFit.cxx:1334
TMultiDimFit.cxx:1335
TMultiDimFit.cxx:1336
TMultiDimFit.cxx:1337
TMultiDimFit.cxx:1338
TMultiDimFit.cxx:1339
TMultiDimFit.cxx:1340
TMultiDimFit.cxx:1341
TMultiDimFit.cxx:1342
TMultiDimFit.cxx:1343
TMultiDimFit.cxx:1344
TMultiDimFit.cxx:1345
TMultiDimFit.cxx:1346
TMultiDimFit.cxx:1347
TMultiDimFit.cxx:1348
TMultiDimFit.cxx:1349
TMultiDimFit.cxx:1350
TMultiDimFit.cxx:1351
TMultiDimFit.cxx:1352
TMultiDimFit.cxx:1353
TMultiDimFit.cxx:1354
TMultiDimFit.cxx:1355
TMultiDimFit.cxx:1356
TMultiDimFit.cxx:1357
TMultiDimFit.cxx:1358
TMultiDimFit.cxx:1359
TMultiDimFit.cxx:1360
TMultiDimFit.cxx:1361
TMultiDimFit.cxx:1362
TMultiDimFit.cxx:1363
TMultiDimFit.cxx:1364
TMultiDimFit.cxx:1365
TMultiDimFit.cxx:1366
TMultiDimFit.cxx:1367
TMultiDimFit.cxx:1368
TMultiDimFit.cxx:1369
TMultiDimFit.cxx:1370
TMultiDimFit.cxx:1371
TMultiDimFit.cxx:1372
TMultiDimFit.cxx:1373
TMultiDimFit.cxx:1374
TMultiDimFit.cxx:1375
TMultiDimFit.cxx:1376
TMultiDimFit.cxx:1377
TMultiDimFit.cxx:1378
TMultiDimFit.cxx:1379
TMultiDimFit.cxx:1380
TMultiDimFit.cxx:1381
TMultiDimFit.cxx:1382
TMultiDimFit.cxx:1383
TMultiDimFit.cxx:1384
TMultiDimFit.cxx:1385
TMultiDimFit.cxx:1386
TMultiDimFit.cxx:1387
TMultiDimFit.cxx:1388
TMultiDimFit.cxx:1389
TMultiDimFit.cxx:1390
TMultiDimFit.cxx:1391
TMultiDimFit.cxx:1392
TMultiDimFit.cxx:1393
TMultiDimFit.cxx:1394
TMultiDimFit.cxx:1395
TMultiDimFit.cxx:1396
TMultiDimFit.cxx:1397
TMultiDimFit.cxx:1398
TMultiDimFit.cxx:1399
TMultiDimFit.cxx:1400
TMultiDimFit.cxx:1401
TMultiDimFit.cxx:1402
TMultiDimFit.cxx:1403
TMultiDimFit.cxx:1404
TMultiDimFit.cxx:1405
TMultiDimFit.cxx:1406
TMultiDimFit.cxx:1407
TMultiDimFit.cxx:1408
TMultiDimFit.cxx:1409
TMultiDimFit.cxx:1410
TMultiDimFit.cxx:1411
TMultiDimFit.cxx:1412
TMultiDimFit.cxx:1413
TMultiDimFit.cxx:1414
TMultiDimFit.cxx:1415
TMultiDimFit.cxx:1416
TMultiDimFit.cxx:1417
TMultiDimFit.cxx:1418
TMultiDimFit.cxx:1419
TMultiDimFit.cxx:1420
TMultiDimFit.cxx:1421
TMultiDimFit.cxx:1422
TMultiDimFit.cxx:1423
TMultiDimFit.cxx:1424
TMultiDimFit.cxx:1425
TMultiDimFit.cxx:1426
TMultiDimFit.cxx:1427
TMultiDimFit.cxx:1428
TMultiDimFit.cxx:1429
TMultiDimFit.cxx:1430
TMultiDimFit.cxx:1431
TMultiDimFit.cxx:1432
TMultiDimFit.cxx:1433
TMultiDimFit.cxx:1434
TMultiDimFit.cxx:1435
TMultiDimFit.cxx:1436
TMultiDimFit.cxx:1437
TMultiDimFit.cxx:1438
TMultiDimFit.cxx:1439
TMultiDimFit.cxx:1440
TMultiDimFit.cxx:1441
TMultiDimFit.cxx:1442
TMultiDimFit.cxx:1443
TMultiDimFit.cxx:1444
TMultiDimFit.cxx:1445
TMultiDimFit.cxx:1446
TMultiDimFit.cxx:1447
TMultiDimFit.cxx:1448
TMultiDimFit.cxx:1449
TMultiDimFit.cxx:1450
TMultiDimFit.cxx:1451
TMultiDimFit.cxx:1452
TMultiDimFit.cxx:1453
TMultiDimFit.cxx:1454
TMultiDimFit.cxx:1455
TMultiDimFit.cxx:1456
TMultiDimFit.cxx:1457
TMultiDimFit.cxx:1458
TMultiDimFit.cxx:1459
TMultiDimFit.cxx:1460
TMultiDimFit.cxx:1461
TMultiDimFit.cxx:1462
TMultiDimFit.cxx:1463
TMultiDimFit.cxx:1464
TMultiDimFit.cxx:1465
TMultiDimFit.cxx:1466
TMultiDimFit.cxx:1467
TMultiDimFit.cxx:1468
TMultiDimFit.cxx:1469
TMultiDimFit.cxx:1470
TMultiDimFit.cxx:1471
TMultiDimFit.cxx:1472
TMultiDimFit.cxx:1473
TMultiDimFit.cxx:1474
TMultiDimFit.cxx:1475
TMultiDimFit.cxx:1476
TMultiDimFit.cxx:1477
TMultiDimFit.cxx:1478
TMultiDimFit.cxx:1479
TMultiDimFit.cxx:1480
TMultiDimFit.cxx:1481
TMultiDimFit.cxx:1482
TMultiDimFit.cxx:1483
TMultiDimFit.cxx:1484
TMultiDimFit.cxx:1485
TMultiDimFit.cxx:1486
TMultiDimFit.cxx:1487
TMultiDimFit.cxx:1488
TMultiDimFit.cxx:1489
TMultiDimFit.cxx:1490
TMultiDimFit.cxx:1491
TMultiDimFit.cxx:1492
TMultiDimFit.cxx:1493
TMultiDimFit.cxx:1494
TMultiDimFit.cxx:1495
TMultiDimFit.cxx:1496
TMultiDimFit.cxx:1497
TMultiDimFit.cxx:1498
TMultiDimFit.cxx:1499
TMultiDimFit.cxx:1500
TMultiDimFit.cxx:1501
TMultiDimFit.cxx:1502
TMultiDimFit.cxx:1503
TMultiDimFit.cxx:1504
TMultiDimFit.cxx:1505
TMultiDimFit.cxx:1506
TMultiDimFit.cxx:1507
TMultiDimFit.cxx:1508
TMultiDimFit.cxx:1509
TMultiDimFit.cxx:1510
TMultiDimFit.cxx:1511
TMultiDimFit.cxx:1512
TMultiDimFit.cxx:1513
TMultiDimFit.cxx:1514
TMultiDimFit.cxx:1515
TMultiDimFit.cxx:1516
TMultiDimFit.cxx:1517
TMultiDimFit.cxx:1518
TMultiDimFit.cxx:1519
TMultiDimFit.cxx:1520
TMultiDimFit.cxx:1521
TMultiDimFit.cxx:1522
TMultiDimFit.cxx:1523
TMultiDimFit.cxx:1524
TMultiDimFit.cxx:1525
TMultiDimFit.cxx:1526
TMultiDimFit.cxx:1527
TMultiDimFit.cxx:1528
TMultiDimFit.cxx:1529
TMultiDimFit.cxx:1530
TMultiDimFit.cxx:1531
TMultiDimFit.cxx:1532
TMultiDimFit.cxx:1533
TMultiDimFit.cxx:1534
TMultiDimFit.cxx:1535
TMultiDimFit.cxx:1536
TMultiDimFit.cxx:1537
TMultiDimFit.cxx:1538
TMultiDimFit.cxx:1539
TMultiDimFit.cxx:1540
TMultiDimFit.cxx:1541
TMultiDimFit.cxx:1542
TMultiDimFit.cxx:1543
TMultiDimFit.cxx:1544
TMultiDimFit.cxx:1545
TMultiDimFit.cxx:1546
TMultiDimFit.cxx:1547
TMultiDimFit.cxx:1548
TMultiDimFit.cxx:1549
TMultiDimFit.cxx:1550
TMultiDimFit.cxx:1551
TMultiDimFit.cxx:1552
TMultiDimFit.cxx:1553
TMultiDimFit.cxx:1554
TMultiDimFit.cxx:1555
TMultiDimFit.cxx:1556
TMultiDimFit.cxx:1557
TMultiDimFit.cxx:1558
TMultiDimFit.cxx:1559
TMultiDimFit.cxx:1560
TMultiDimFit.cxx:1561
TMultiDimFit.cxx:1562
TMultiDimFit.cxx:1563
TMultiDimFit.cxx:1564
TMultiDimFit.cxx:1565
TMultiDimFit.cxx:1566
TMultiDimFit.cxx:1567
TMultiDimFit.cxx:1568
TMultiDimFit.cxx:1569
TMultiDimFit.cxx:1570
TMultiDimFit.cxx:1571
TMultiDimFit.cxx:1572
TMultiDimFit.cxx:1573
TMultiDimFit.cxx:1574
TMultiDimFit.cxx:1575
TMultiDimFit.cxx:1576
TMultiDimFit.cxx:1577
TMultiDimFit.cxx:1578
TMultiDimFit.cxx:1579
TMultiDimFit.cxx:1580
TMultiDimFit.cxx:1581
TMultiDimFit.cxx:1582
TMultiDimFit.cxx:1583
TMultiDimFit.cxx:1584
TMultiDimFit.cxx:1585
TMultiDimFit.cxx:1586
TMultiDimFit.cxx:1587
TMultiDimFit.cxx:1588
TMultiDimFit.cxx:1589
TMultiDimFit.cxx:1590
TMultiDimFit.cxx:1591
TMultiDimFit.cxx:1592
TMultiDimFit.cxx:1593
TMultiDimFit.cxx:1594
TMultiDimFit.cxx:1595
TMultiDimFit.cxx:1596
TMultiDimFit.cxx:1597
TMultiDimFit.cxx:1598
TMultiDimFit.cxx:1599
TMultiDimFit.cxx:1600
TMultiDimFit.cxx:1601
TMultiDimFit.cxx:1602
TMultiDimFit.cxx:1603
TMultiDimFit.cxx:1604
TMultiDimFit.cxx:1605
TMultiDimFit.cxx:1606
TMultiDimFit.cxx:1607
TMultiDimFit.cxx:1608
TMultiDimFit.cxx:1609
TMultiDimFit.cxx:1610
TMultiDimFit.cxx:1611
TMultiDimFit.cxx:1612
TMultiDimFit.cxx:1613
TMultiDimFit.cxx:1614
TMultiDimFit.cxx:1615
TMultiDimFit.cxx:1616
TMultiDimFit.cxx:1617
TMultiDimFit.cxx:1618
TMultiDimFit.cxx:1619
TMultiDimFit.cxx:1620
TMultiDimFit.cxx:1621
TMultiDimFit.cxx:1622
TMultiDimFit.cxx:1623
TMultiDimFit.cxx:1624
TMultiDimFit.cxx:1625
TMultiDimFit.cxx:1626
TMultiDimFit.cxx:1627
TMultiDimFit.cxx:1628
TMultiDimFit.cxx:1629
TMultiDimFit.cxx:1630
TMultiDimFit.cxx:1631
TMultiDimFit.cxx:1632
TMultiDimFit.cxx:1633
TMultiDimFit.cxx:1634
TMultiDimFit.cxx:1635
TMultiDimFit.cxx:1636
TMultiDimFit.cxx:1637
TMultiDimFit.cxx:1638
TMultiDimFit.cxx:1639
TMultiDimFit.cxx:1640
TMultiDimFit.cxx:1641
TMultiDimFit.cxx:1642
TMultiDimFit.cxx:1643
TMultiDimFit.cxx:1644
TMultiDimFit.cxx:1645
TMultiDimFit.cxx:1646
TMultiDimFit.cxx:1647
TMultiDimFit.cxx:1648
TMultiDimFit.cxx:1649
TMultiDimFit.cxx:1650
TMultiDimFit.cxx:1651
TMultiDimFit.cxx:1652
TMultiDimFit.cxx:1653
TMultiDimFit.cxx:1654
TMultiDimFit.cxx:1655
TMultiDimFit.cxx:1656
TMultiDimFit.cxx:1657
TMultiDimFit.cxx:1658
TMultiDimFit.cxx:1659
TMultiDimFit.cxx:1660
TMultiDimFit.cxx:1661
TMultiDimFit.cxx:1662
TMultiDimFit.cxx:1663
TMultiDimFit.cxx:1664
TMultiDimFit.cxx:1665
TMultiDimFit.cxx:1666
TMultiDimFit.cxx:1667
TMultiDimFit.cxx:1668
TMultiDimFit.cxx:1669
TMultiDimFit.cxx:1670
TMultiDimFit.cxx:1671
TMultiDimFit.cxx:1672
TMultiDimFit.cxx:1673
TMultiDimFit.cxx:1674
TMultiDimFit.cxx:1675
TMultiDimFit.cxx:1676
TMultiDimFit.cxx:1677
TMultiDimFit.cxx:1678
TMultiDimFit.cxx:1679
TMultiDimFit.cxx:1680
TMultiDimFit.cxx:1681
TMultiDimFit.cxx:1682
TMultiDimFit.cxx:1683
TMultiDimFit.cxx:1684
TMultiDimFit.cxx:1685
TMultiDimFit.cxx:1686
TMultiDimFit.cxx:1687
TMultiDimFit.cxx:1688
TMultiDimFit.cxx:1689
TMultiDimFit.cxx:1690
TMultiDimFit.cxx:1691
TMultiDimFit.cxx:1692
TMultiDimFit.cxx:1693
TMultiDimFit.cxx:1694
TMultiDimFit.cxx:1695
TMultiDimFit.cxx:1696
TMultiDimFit.cxx:1697
TMultiDimFit.cxx:1698
TMultiDimFit.cxx:1699
TMultiDimFit.cxx:1700
TMultiDimFit.cxx:1701
TMultiDimFit.cxx:1702
TMultiDimFit.cxx:1703
TMultiDimFit.cxx:1704
TMultiDimFit.cxx:1705
TMultiDimFit.cxx:1706
TMultiDimFit.cxx:1707
TMultiDimFit.cxx:1708
TMultiDimFit.cxx:1709
TMultiDimFit.cxx:1710
TMultiDimFit.cxx:1711
TMultiDimFit.cxx:1712
TMultiDimFit.cxx:1713
TMultiDimFit.cxx:1714
TMultiDimFit.cxx:1715
TMultiDimFit.cxx:1716
TMultiDimFit.cxx:1717
TMultiDimFit.cxx:1718
TMultiDimFit.cxx:1719
TMultiDimFit.cxx:1720
TMultiDimFit.cxx:1721
TMultiDimFit.cxx:1722
TMultiDimFit.cxx:1723
TMultiDimFit.cxx:1724
TMultiDimFit.cxx:1725
TMultiDimFit.cxx:1726
TMultiDimFit.cxx:1727
TMultiDimFit.cxx:1728
TMultiDimFit.cxx:1729
TMultiDimFit.cxx:1730
TMultiDimFit.cxx:1731
TMultiDimFit.cxx:1732
TMultiDimFit.cxx:1733
TMultiDimFit.cxx:1734
TMultiDimFit.cxx:1735
TMultiDimFit.cxx:1736
TMultiDimFit.cxx:1737
TMultiDimFit.cxx:1738
TMultiDimFit.cxx:1739
TMultiDimFit.cxx:1740
TMultiDimFit.cxx:1741
TMultiDimFit.cxx:1742
TMultiDimFit.cxx:1743
TMultiDimFit.cxx:1744
TMultiDimFit.cxx:1745
TMultiDimFit.cxx:1746
TMultiDimFit.cxx:1747
TMultiDimFit.cxx:1748
TMultiDimFit.cxx:1749
TMultiDimFit.cxx:1750
TMultiDimFit.cxx:1751
TMultiDimFit.cxx:1752
TMultiDimFit.cxx:1753
TMultiDimFit.cxx:1754
TMultiDimFit.cxx:1755
TMultiDimFit.cxx:1756
TMultiDimFit.cxx:1757
TMultiDimFit.cxx:1758
TMultiDimFit.cxx:1759
TMultiDimFit.cxx:1760
TMultiDimFit.cxx:1761
TMultiDimFit.cxx:1762
TMultiDimFit.cxx:1763
TMultiDimFit.cxx:1764
TMultiDimFit.cxx:1765
TMultiDimFit.cxx:1766
TMultiDimFit.cxx:1767
TMultiDimFit.cxx:1768
TMultiDimFit.cxx:1769
TMultiDimFit.cxx:1770
TMultiDimFit.cxx:1771
TMultiDimFit.cxx:1772
TMultiDimFit.cxx:1773
TMultiDimFit.cxx:1774
TMultiDimFit.cxx:1775
TMultiDimFit.cxx:1776
TMultiDimFit.cxx:1777
TMultiDimFit.cxx:1778
TMultiDimFit.cxx:1779
TMultiDimFit.cxx:1780
TMultiDimFit.cxx:1781
TMultiDimFit.cxx:1782
TMultiDimFit.cxx:1783
TMultiDimFit.cxx:1784
TMultiDimFit.cxx:1785
TMultiDimFit.cxx:1786
TMultiDimFit.cxx:1787
TMultiDimFit.cxx:1788
TMultiDimFit.cxx:1789
TMultiDimFit.cxx:1790
TMultiDimFit.cxx:1791
TMultiDimFit.cxx:1792
TMultiDimFit.cxx:1793
TMultiDimFit.cxx:1794
TMultiDimFit.cxx:1795
TMultiDimFit.cxx:1796
TMultiDimFit.cxx:1797
TMultiDimFit.cxx:1798
TMultiDimFit.cxx:1799
TMultiDimFit.cxx:1800
TMultiDimFit.cxx:1801
TMultiDimFit.cxx:1802
TMultiDimFit.cxx:1803
TMultiDimFit.cxx:1804
TMultiDimFit.cxx:1805
TMultiDimFit.cxx:1806
TMultiDimFit.cxx:1807
TMultiDimFit.cxx:1808
TMultiDimFit.cxx:1809
TMultiDimFit.cxx:1810
TMultiDimFit.cxx:1811
TMultiDimFit.cxx:1812
TMultiDimFit.cxx:1813
TMultiDimFit.cxx:1814
TMultiDimFit.cxx:1815
TMultiDimFit.cxx:1816
TMultiDimFit.cxx:1817
TMultiDimFit.cxx:1818
TMultiDimFit.cxx:1819
TMultiDimFit.cxx:1820
TMultiDimFit.cxx:1821
TMultiDimFit.cxx:1822
TMultiDimFit.cxx:1823
TMultiDimFit.cxx:1824
TMultiDimFit.cxx:1825
TMultiDimFit.cxx:1826
TMultiDimFit.cxx:1827
TMultiDimFit.cxx:1828
TMultiDimFit.cxx:1829
TMultiDimFit.cxx:1830
TMultiDimFit.cxx:1831
TMultiDimFit.cxx:1832
TMultiDimFit.cxx:1833
TMultiDimFit.cxx:1834
TMultiDimFit.cxx:1835
TMultiDimFit.cxx:1836
TMultiDimFit.cxx:1837
TMultiDimFit.cxx:1838
TMultiDimFit.cxx:1839
TMultiDimFit.cxx:1840
TMultiDimFit.cxx:1841
TMultiDimFit.cxx:1842
TMultiDimFit.cxx:1843
TMultiDimFit.cxx:1844
TMultiDimFit.cxx:1845
TMultiDimFit.cxx:1846
TMultiDimFit.cxx:1847
TMultiDimFit.cxx:1848
TMultiDimFit.cxx:1849
TMultiDimFit.cxx:1850
TMultiDimFit.cxx:1851
TMultiDimFit.cxx:1852
TMultiDimFit.cxx:1853
TMultiDimFit.cxx:1854
TMultiDimFit.cxx:1855
TMultiDimFit.cxx:1856
TMultiDimFit.cxx:1857
TMultiDimFit.cxx:1858
TMultiDimFit.cxx:1859
TMultiDimFit.cxx:1860
TMultiDimFit.cxx:1861
TMultiDimFit.cxx:1862
TMultiDimFit.cxx:1863
TMultiDimFit.cxx:1864
TMultiDimFit.cxx:1865
TMultiDimFit.cxx:1866
TMultiDimFit.cxx:1867
TMultiDimFit.cxx:1868
TMultiDimFit.cxx:1869
TMultiDimFit.cxx:1870
TMultiDimFit.cxx:1871
TMultiDimFit.cxx:1872
TMultiDimFit.cxx:1873
TMultiDimFit.cxx:1874
TMultiDimFit.cxx:1875
TMultiDimFit.cxx:1876
TMultiDimFit.cxx:1877
TMultiDimFit.cxx:1878
TMultiDimFit.cxx:1879
TMultiDimFit.cxx:1880
TMultiDimFit.cxx:1881
TMultiDimFit.cxx:1882
TMultiDimFit.cxx:1883
TMultiDimFit.cxx:1884
TMultiDimFit.cxx:1885
TMultiDimFit.cxx:1886
TMultiDimFit.cxx:1887
TMultiDimFit.cxx:1888
TMultiDimFit.cxx:1889
TMultiDimFit.cxx:1890
TMultiDimFit.cxx:1891
TMultiDimFit.cxx:1892
TMultiDimFit.cxx:1893
TMultiDimFit.cxx:1894
TMultiDimFit.cxx:1895
TMultiDimFit.cxx:1896
TMultiDimFit.cxx:1897
TMultiDimFit.cxx:1898
TMultiDimFit.cxx:1899
TMultiDimFit.cxx:1900
TMultiDimFit.cxx:1901
TMultiDimFit.cxx:1902
TMultiDimFit.cxx:1903
TMultiDimFit.cxx:1904
TMultiDimFit.cxx:1905
TMultiDimFit.cxx:1906
TMultiDimFit.cxx:1907
TMultiDimFit.cxx:1908
TMultiDimFit.cxx:1909
TMultiDimFit.cxx:1910
TMultiDimFit.cxx:1911
TMultiDimFit.cxx:1912
TMultiDimFit.cxx:1913
TMultiDimFit.cxx:1914
TMultiDimFit.cxx:1915
TMultiDimFit.cxx:1916
TMultiDimFit.cxx:1917
TMultiDimFit.cxx:1918
TMultiDimFit.cxx:1919
TMultiDimFit.cxx:1920
TMultiDimFit.cxx:1921
TMultiDimFit.cxx:1922
TMultiDimFit.cxx:1923
TMultiDimFit.cxx:1924
TMultiDimFit.cxx:1925
TMultiDimFit.cxx:1926
TMultiDimFit.cxx:1927
TMultiDimFit.cxx:1928
TMultiDimFit.cxx:1929
TMultiDimFit.cxx:1930
TMultiDimFit.cxx:1931
TMultiDimFit.cxx:1932
TMultiDimFit.cxx:1933
TMultiDimFit.cxx:1934
TMultiDimFit.cxx:1935
TMultiDimFit.cxx:1936
TMultiDimFit.cxx:1937
TMultiDimFit.cxx:1938
TMultiDimFit.cxx:1939
TMultiDimFit.cxx:1940
TMultiDimFit.cxx:1941
TMultiDimFit.cxx:1942
TMultiDimFit.cxx:1943
TMultiDimFit.cxx:1944
TMultiDimFit.cxx:1945
TMultiDimFit.cxx:1946
TMultiDimFit.cxx:1947
TMultiDimFit.cxx:1948
TMultiDimFit.cxx:1949
TMultiDimFit.cxx:1950
TMultiDimFit.cxx:1951
TMultiDimFit.cxx:1952
TMultiDimFit.cxx:1953
TMultiDimFit.cxx:1954
TMultiDimFit.cxx:1955
TMultiDimFit.cxx:1956
TMultiDimFit.cxx:1957
TMultiDimFit.cxx:1958
TMultiDimFit.cxx:1959
TMultiDimFit.cxx:1960
TMultiDimFit.cxx:1961
TMultiDimFit.cxx:1962
TMultiDimFit.cxx:1963
TMultiDimFit.cxx:1964
TMultiDimFit.cxx:1965
TMultiDimFit.cxx:1966
TMultiDimFit.cxx:1967
TMultiDimFit.cxx:1968
TMultiDimFit.cxx:1969
TMultiDimFit.cxx:1970
TMultiDimFit.cxx:1971
TMultiDimFit.cxx:1972
TMultiDimFit.cxx:1973
TMultiDimFit.cxx:1974
TMultiDimFit.cxx:1975
TMultiDimFit.cxx:1976
TMultiDimFit.cxx:1977
TMultiDimFit.cxx:1978
TMultiDimFit.cxx:1979
TMultiDimFit.cxx:1980
TMultiDimFit.cxx:1981
TMultiDimFit.cxx:1982
TMultiDimFit.cxx:1983
TMultiDimFit.cxx:1984
TMultiDimFit.cxx:1985
TMultiDimFit.cxx:1986
TMultiDimFit.cxx:1987
TMultiDimFit.cxx:1988
TMultiDimFit.cxx:1989
TMultiDimFit.cxx:1990
TMultiDimFit.cxx:1991
TMultiDimFit.cxx:1992
TMultiDimFit.cxx:1993
TMultiDimFit.cxx:1994
TMultiDimFit.cxx:1995
TMultiDimFit.cxx:1996
TMultiDimFit.cxx:1997
TMultiDimFit.cxx:1998
TMultiDimFit.cxx:1999
TMultiDimFit.cxx:2000
TMultiDimFit.cxx:2001
TMultiDimFit.cxx:2002
TMultiDimFit.cxx:2003
TMultiDimFit.cxx:2004
TMultiDimFit.cxx:2005
TMultiDimFit.cxx:2006
TMultiDimFit.cxx:2007
TMultiDimFit.cxx:2008
TMultiDimFit.cxx:2009
TMultiDimFit.cxx:2010
TMultiDimFit.cxx:2011
TMultiDimFit.cxx:2012
TMultiDimFit.cxx:2013
TMultiDimFit.cxx:2014
TMultiDimFit.cxx:2015
TMultiDimFit.cxx:2016
TMultiDimFit.cxx:2017
TMultiDimFit.cxx:2018
TMultiDimFit.cxx:2019
TMultiDimFit.cxx:2020
TMultiDimFit.cxx:2021
TMultiDimFit.cxx:2022
TMultiDimFit.cxx:2023
TMultiDimFit.cxx:2024
TMultiDimFit.cxx:2025
TMultiDimFit.cxx:2026
TMultiDimFit.cxx:2027
TMultiDimFit.cxx:2028
TMultiDimFit.cxx:2029
TMultiDimFit.cxx:2030
TMultiDimFit.cxx:2031
TMultiDimFit.cxx:2032
TMultiDimFit.cxx:2033
TMultiDimFit.cxx:2034
TMultiDimFit.cxx:2035
TMultiDimFit.cxx:2036
TMultiDimFit.cxx:2037
TMultiDimFit.cxx:2038
TMultiDimFit.cxx:2039
TMultiDimFit.cxx:2040
TMultiDimFit.cxx:2041
TMultiDimFit.cxx:2042
TMultiDimFit.cxx:2043
TMultiDimFit.cxx:2044
TMultiDimFit.cxx:2045
TMultiDimFit.cxx:2046
TMultiDimFit.cxx:2047
TMultiDimFit.cxx:2048
TMultiDimFit.cxx:2049
TMultiDimFit.cxx:2050
TMultiDimFit.cxx:2051
TMultiDimFit.cxx:2052
TMultiDimFit.cxx:2053
TMultiDimFit.cxx:2054
TMultiDimFit.cxx:2055
TMultiDimFit.cxx:2056
TMultiDimFit.cxx:2057
TMultiDimFit.cxx:2058
TMultiDimFit.cxx:2059
TMultiDimFit.cxx:2060
TMultiDimFit.cxx:2061
TMultiDimFit.cxx:2062
TMultiDimFit.cxx:2063
TMultiDimFit.cxx:2064
TMultiDimFit.cxx:2065
TMultiDimFit.cxx:2066
TMultiDimFit.cxx:2067
TMultiDimFit.cxx:2068
TMultiDimFit.cxx:2069
TMultiDimFit.cxx:2070
TMultiDimFit.cxx:2071
TMultiDimFit.cxx:2072
TMultiDimFit.cxx:2073
TMultiDimFit.cxx:2074
TMultiDimFit.cxx:2075
TMultiDimFit.cxx:2076
TMultiDimFit.cxx:2077
TMultiDimFit.cxx:2078
TMultiDimFit.cxx:2079
TMultiDimFit.cxx:2080
TMultiDimFit.cxx:2081
TMultiDimFit.cxx:2082
TMultiDimFit.cxx:2083
TMultiDimFit.cxx:2084
TMultiDimFit.cxx:2085
TMultiDimFit.cxx:2086
TMultiDimFit.cxx:2087
TMultiDimFit.cxx:2088
TMultiDimFit.cxx:2089
TMultiDimFit.cxx:2090
TMultiDimFit.cxx:2091
TMultiDimFit.cxx:2092
TMultiDimFit.cxx:2093
TMultiDimFit.cxx:2094
TMultiDimFit.cxx:2095
TMultiDimFit.cxx:2096
TMultiDimFit.cxx:2097
TMultiDimFit.cxx:2098
TMultiDimFit.cxx:2099
TMultiDimFit.cxx:2100
TMultiDimFit.cxx:2101
TMultiDimFit.cxx:2102
TMultiDimFit.cxx:2103
TMultiDimFit.cxx:2104
TMultiDimFit.cxx:2105
TMultiDimFit.cxx:2106
TMultiDimFit.cxx:2107
TMultiDimFit.cxx:2108
TMultiDimFit.cxx:2109
TMultiDimFit.cxx:2110
TMultiDimFit.cxx:2111
TMultiDimFit.cxx:2112
TMultiDimFit.cxx:2113
TMultiDimFit.cxx:2114
TMultiDimFit.cxx:2115
TMultiDimFit.cxx:2116
TMultiDimFit.cxx:2117
TMultiDimFit.cxx:2118
TMultiDimFit.cxx:2119
TMultiDimFit.cxx:2120
TMultiDimFit.cxx:2121
TMultiDimFit.cxx:2122
TMultiDimFit.cxx:2123
TMultiDimFit.cxx:2124
TMultiDimFit.cxx:2125
TMultiDimFit.cxx:2126
TMultiDimFit.cxx:2127
TMultiDimFit.cxx:2128
TMultiDimFit.cxx:2129
TMultiDimFit.cxx:2130
TMultiDimFit.cxx:2131
TMultiDimFit.cxx:2132
TMultiDimFit.cxx:2133
TMultiDimFit.cxx:2134
TMultiDimFit.cxx:2135
TMultiDimFit.cxx:2136
TMultiDimFit.cxx:2137
TMultiDimFit.cxx:2138
TMultiDimFit.cxx:2139
TMultiDimFit.cxx:2140
TMultiDimFit.cxx:2141
TMultiDimFit.cxx:2142
TMultiDimFit.cxx:2143
TMultiDimFit.cxx:2144
TMultiDimFit.cxx:2145
TMultiDimFit.cxx:2146
TMultiDimFit.cxx:2147
TMultiDimFit.cxx:2148
TMultiDimFit.cxx:2149
TMultiDimFit.cxx:2150
TMultiDimFit.cxx:2151
TMultiDimFit.cxx:2152
TMultiDimFit.cxx:2153
TMultiDimFit.cxx:2154
TMultiDimFit.cxx:2155
TMultiDimFit.cxx:2156
TMultiDimFit.cxx:2157
TMultiDimFit.cxx:2158
TMultiDimFit.cxx:2159
TMultiDimFit.cxx:2160
TMultiDimFit.cxx:2161
TMultiDimFit.cxx:2162
TMultiDimFit.cxx:2163
TMultiDimFit.cxx:2164
TMultiDimFit.cxx:2165
TMultiDimFit.cxx:2166
TMultiDimFit.cxx:2167
TMultiDimFit.cxx:2168
TMultiDimFit.cxx:2169
TMultiDimFit.cxx:2170
TMultiDimFit.cxx:2171
TMultiDimFit.cxx:2172
TMultiDimFit.cxx:2173
TMultiDimFit.cxx:2174
TMultiDimFit.cxx:2175
TMultiDimFit.cxx:2176
TMultiDimFit.cxx:2177
TMultiDimFit.cxx:2178
TMultiDimFit.cxx:2179
TMultiDimFit.cxx:2180
TMultiDimFit.cxx:2181
TMultiDimFit.cxx:2182
TMultiDimFit.cxx:2183
TMultiDimFit.cxx:2184
TMultiDimFit.cxx:2185
TMultiDimFit.cxx:2186
TMultiDimFit.cxx:2187
TMultiDimFit.cxx:2188
TMultiDimFit.cxx:2189
TMultiDimFit.cxx:2190
TMultiDimFit.cxx:2191
TMultiDimFit.cxx:2192
TMultiDimFit.cxx:2193
TMultiDimFit.cxx:2194
TMultiDimFit.cxx:2195
TMultiDimFit.cxx:2196
TMultiDimFit.cxx:2197
TMultiDimFit.cxx:2198
TMultiDimFit.cxx:2199
TMultiDimFit.cxx:2200
TMultiDimFit.cxx:2201
TMultiDimFit.cxx:2202
TMultiDimFit.cxx:2203
TMultiDimFit.cxx:2204
TMultiDimFit.cxx:2205
TMultiDimFit.cxx:2206
TMultiDimFit.cxx:2207
TMultiDimFit.cxx:2208
TMultiDimFit.cxx:2209
TMultiDimFit.cxx:2210
TMultiDimFit.cxx:2211
TMultiDimFit.cxx:2212
TMultiDimFit.cxx:2213
TMultiDimFit.cxx:2214
TMultiDimFit.cxx:2215
TMultiDimFit.cxx:2216
TMultiDimFit.cxx:2217
TMultiDimFit.cxx:2218
TMultiDimFit.cxx:2219
TMultiDimFit.cxx:2220
TMultiDimFit.cxx:2221
TMultiDimFit.cxx:2222
TMultiDimFit.cxx:2223
TMultiDimFit.cxx:2224
TMultiDimFit.cxx:2225
TMultiDimFit.cxx:2226
TMultiDimFit.cxx:2227
TMultiDimFit.cxx:2228
TMultiDimFit.cxx:2229
TMultiDimFit.cxx:2230
TMultiDimFit.cxx:2231
TMultiDimFit.cxx:2232
TMultiDimFit.cxx:2233
TMultiDimFit.cxx:2234
TMultiDimFit.cxx:2235
TMultiDimFit.cxx:2236
TMultiDimFit.cxx:2237
TMultiDimFit.cxx:2238
TMultiDimFit.cxx:2239
TMultiDimFit.cxx:2240
TMultiDimFit.cxx:2241
TMultiDimFit.cxx:2242
TMultiDimFit.cxx:2243
TMultiDimFit.cxx:2244
TMultiDimFit.cxx:2245
TMultiDimFit.cxx:2246
TMultiDimFit.cxx:2247
TMultiDimFit.cxx:2248
TMultiDimFit.cxx:2249
TMultiDimFit.cxx:2250
TMultiDimFit.cxx:2251
TMultiDimFit.cxx:2252
TMultiDimFit.cxx:2253
TMultiDimFit.cxx:2254
TMultiDimFit.cxx:2255
TMultiDimFit.cxx:2256
TMultiDimFit.cxx:2257
TMultiDimFit.cxx:2258
TMultiDimFit.cxx:2259
TMultiDimFit.cxx:2260
TMultiDimFit.cxx:2261
TMultiDimFit.cxx:2262
TMultiDimFit.cxx:2263
TMultiDimFit.cxx:2264
TMultiDimFit.cxx:2265
TMultiDimFit.cxx:2266
TMultiDimFit.cxx:2267
TMultiDimFit.cxx:2268
TMultiDimFit.cxx:2269
TMultiDimFit.cxx:2270
TMultiDimFit.cxx:2271
TMultiDimFit.cxx:2272
TMultiDimFit.cxx:2273
TMultiDimFit.cxx:2274
TMultiDimFit.cxx:2275
TMultiDimFit.cxx:2276
TMultiDimFit.cxx:2277
TMultiDimFit.cxx:2278
TMultiDimFit.cxx:2279
TMultiDimFit.cxx:2280
TMultiDimFit.cxx:2281
TMultiDimFit.cxx:2282
TMultiDimFit.cxx:2283
TMultiDimFit.cxx:2284
TMultiDimFit.cxx:2285
TMultiDimFit.cxx:2286
TMultiDimFit.cxx:2287
TMultiDimFit.cxx:2288
TMultiDimFit.cxx:2289
TMultiDimFit.cxx:2290
TMultiDimFit.cxx:2291
TMultiDimFit.cxx:2292
TMultiDimFit.cxx:2293
TMultiDimFit.cxx:2294
TMultiDimFit.cxx:2295
TMultiDimFit.cxx:2296
TMultiDimFit.cxx:2297
TMultiDimFit.cxx:2298
TMultiDimFit.cxx:2299
TMultiDimFit.cxx:2300
TMultiDimFit.cxx:2301
TMultiDimFit.cxx:2302
TMultiDimFit.cxx:2303
TMultiDimFit.cxx:2304
TMultiDimFit.cxx:2305
TMultiDimFit.cxx:2306
TMultiDimFit.cxx:2307
TMultiDimFit.cxx:2308
TMultiDimFit.cxx:2309
TMultiDimFit.cxx:2310
TMultiDimFit.cxx:2311
TMultiDimFit.cxx:2312
TMultiDimFit.cxx:2313
TMultiDimFit.cxx:2314
TMultiDimFit.cxx:2315
TMultiDimFit.cxx:2316
TMultiDimFit.cxx:2317
TMultiDimFit.cxx:2318
TMultiDimFit.cxx:2319
TMultiDimFit.cxx:2320
TMultiDimFit.cxx:2321
TMultiDimFit.cxx:2322
TMultiDimFit.cxx:2323
TMultiDimFit.cxx:2324
TMultiDimFit.cxx:2325
TMultiDimFit.cxx:2326
TMultiDimFit.cxx:2327
TMultiDimFit.cxx:2328
TMultiDimFit.cxx:2329
TMultiDimFit.cxx:2330
TMultiDimFit.cxx:2331
TMultiDimFit.cxx:2332
TMultiDimFit.cxx:2333
TMultiDimFit.cxx:2334
TMultiDimFit.cxx:2335
TMultiDimFit.cxx:2336
TMultiDimFit.cxx:2337
TMultiDimFit.cxx:2338
TMultiDimFit.cxx:2339
TMultiDimFit.cxx:2340
TMultiDimFit.cxx:2341
TMultiDimFit.cxx:2342
TMultiDimFit.cxx:2343
TMultiDimFit.cxx:2344
TMultiDimFit.cxx:2345
TMultiDimFit.cxx:2346
TMultiDimFit.cxx:2347
TMultiDimFit.cxx:2348
TMultiDimFit.cxx:2349
TMultiDimFit.cxx:2350
TMultiDimFit.cxx:2351
TMultiDimFit.cxx:2352
TMultiDimFit.cxx:2353
TMultiDimFit.cxx:2354
TMultiDimFit.cxx:2355
TMultiDimFit.cxx:2356
TMultiDimFit.cxx:2357
TMultiDimFit.cxx:2358
TMultiDimFit.cxx:2359
TMultiDimFit.cxx:2360
TMultiDimFit.cxx:2361
TMultiDimFit.cxx:2362
TMultiDimFit.cxx:2363
TMultiDimFit.cxx:2364
TMultiDimFit.cxx:2365
TMultiDimFit.cxx:2366
TMultiDimFit.cxx:2367
TMultiDimFit.cxx:2368
TMultiDimFit.cxx:2369
TMultiDimFit.cxx:2370
TMultiDimFit.cxx:2371
TMultiDimFit.cxx:2372
TMultiDimFit.cxx:2373
TMultiDimFit.cxx:2374
TMultiDimFit.cxx:2375
TMultiDimFit.cxx:2376
TMultiDimFit.cxx:2377
TMultiDimFit.cxx:2378
TMultiDimFit.cxx:2379
TMultiDimFit.cxx:2380
TMultiDimFit.cxx:2381
TMultiDimFit.cxx:2382
TMultiDimFit.cxx:2383
TMultiDimFit.cxx:2384
TMultiDimFit.cxx:2385
TMultiDimFit.cxx:2386
TMultiDimFit.cxx:2387
TMultiDimFit.cxx:2388
TMultiDimFit.cxx:2389
TMultiDimFit.cxx:2390
TMultiDimFit.cxx:2391
TMultiDimFit.cxx:2392
TMultiDimFit.cxx:2393
TMultiDimFit.cxx:2394
TMultiDimFit.cxx:2395
TMultiDimFit.cxx:2396
TMultiDimFit.cxx:2397
TMultiDimFit.cxx:2398
TMultiDimFit.cxx:2399
TMultiDimFit.cxx:2400
TMultiDimFit.cxx:2401
TMultiDimFit.cxx:2402
TMultiDimFit.cxx:2403
TMultiDimFit.cxx:2404
TMultiDimFit.cxx:2405
TMultiDimFit.cxx:2406
TMultiDimFit.cxx:2407
TMultiDimFit.cxx:2408
TMultiDimFit.cxx:2409
TMultiDimFit.cxx:2410
TMultiDimFit.cxx:2411
TMultiDimFit.cxx:2412
TMultiDimFit.cxx:2413
TMultiDimFit.cxx:2414
TMultiDimFit.cxx:2415
TMultiDimFit.cxx:2416
TMultiDimFit.cxx:2417
TMultiDimFit.cxx:2418
TMultiDimFit.cxx:2419
TMultiDimFit.cxx:2420
TMultiDimFit.cxx:2421
TMultiDimFit.cxx:2422
TMultiDimFit.cxx:2423
TMultiDimFit.cxx:2424
TMultiDimFit.cxx:2425
TMultiDimFit.cxx:2426
TMultiDimFit.cxx:2427
TMultiDimFit.cxx:2428
TMultiDimFit.cxx:2429
TMultiDimFit.cxx:2430
TMultiDimFit.cxx:2431
TMultiDimFit.cxx:2432
TMultiDimFit.cxx:2433
TMultiDimFit.cxx:2434
TMultiDimFit.cxx:2435
TMultiDimFit.cxx:2436
TMultiDimFit.cxx:2437
TMultiDimFit.cxx:2438
TMultiDimFit.cxx:2439
TMultiDimFit.cxx:2440
TMultiDimFit.cxx:2441
TMultiDimFit.cxx:2442
TMultiDimFit.cxx:2443
TMultiDimFit.cxx:2444
TMultiDimFit.cxx:2445
TMultiDimFit.cxx:2446
TMultiDimFit.cxx:2447
TMultiDimFit.cxx:2448
TMultiDimFit.cxx:2449
TMultiDimFit.cxx:2450
TMultiDimFit.cxx:2451
TMultiDimFit.cxx:2452
TMultiDimFit.cxx:2453
TMultiDimFit.cxx:2454
TMultiDimFit.cxx:2455
TMultiDimFit.cxx:2456
TMultiDimFit.cxx:2457
TMultiDimFit.cxx:2458
TMultiDimFit.cxx:2459
TMultiDimFit.cxx:2460
TMultiDimFit.cxx:2461
TMultiDimFit.cxx:2462
TMultiDimFit.cxx:2463
TMultiDimFit.cxx:2464
TMultiDimFit.cxx:2465
TMultiDimFit.cxx:2466
TMultiDimFit.cxx:2467
TMultiDimFit.cxx:2468
TMultiDimFit.cxx:2469
TMultiDimFit.cxx:2470
TMultiDimFit.cxx:2471
TMultiDimFit.cxx:2472
TMultiDimFit.cxx:2473
TMultiDimFit.cxx:2474
TMultiDimFit.cxx:2475
TMultiDimFit.cxx:2476
TMultiDimFit.cxx:2477
TMultiDimFit.cxx:2478
TMultiDimFit.cxx:2479
TMultiDimFit.cxx:2480
TMultiDimFit.cxx:2481
TMultiDimFit.cxx:2482
TMultiDimFit.cxx:2483
TMultiDimFit.cxx:2484
TMultiDimFit.cxx:2485
TMultiDimFit.cxx:2486
TMultiDimFit.cxx:2487
TMultiDimFit.cxx:2488
TMultiDimFit.cxx:2489
TMultiDimFit.cxx:2490
TMultiDimFit.cxx:2491
TMultiDimFit.cxx:2492
TMultiDimFit.cxx:2493
TMultiDimFit.cxx:2494
TMultiDimFit.cxx:2495
TMultiDimFit.cxx:2496
TMultiDimFit.cxx:2497
TMultiDimFit.cxx:2498
TMultiDimFit.cxx:2499
TMultiDimFit.cxx:2500
TMultiDimFit.cxx:2501
TMultiDimFit.cxx:2502
TMultiDimFit.cxx:2503
TMultiDimFit.cxx:2504
TMultiDimFit.cxx:2505
TMultiDimFit.cxx:2506
TMultiDimFit.cxx:2507
TMultiDimFit.cxx:2508
TMultiDimFit.cxx:2509
TMultiDimFit.cxx:2510
TMultiDimFit.cxx:2511
TMultiDimFit.cxx:2512
TMultiDimFit.cxx:2513
TMultiDimFit.cxx:2514
TMultiDimFit.cxx:2515
TMultiDimFit.cxx:2516
TMultiDimFit.cxx:2517
TMultiDimFit.cxx:2518
TMultiDimFit.cxx:2519
TMultiDimFit.cxx:2520
TMultiDimFit.cxx:2521
TMultiDimFit.cxx:2522
TMultiDimFit.cxx:2523
TMultiDimFit.cxx:2524
TMultiDimFit.cxx:2525
TMultiDimFit.cxx:2526
TMultiDimFit.cxx:2527
TMultiDimFit.cxx:2528
TMultiDimFit.cxx:2529
TMultiDimFit.cxx:2530
TMultiDimFit.cxx:2531
TMultiDimFit.cxx:2532
TMultiDimFit.cxx:2533
TMultiDimFit.cxx:2534
TMultiDimFit.cxx:2535
TMultiDimFit.cxx:2536
TMultiDimFit.cxx:2537
TMultiDimFit.cxx:2538
TMultiDimFit.cxx:2539
TMultiDimFit.cxx:2540
TMultiDimFit.cxx:2541
TMultiDimFit.cxx:2542
TMultiDimFit.cxx:2543
TMultiDimFit.cxx:2544
TMultiDimFit.cxx:2545
TMultiDimFit.cxx:2546
TMultiDimFit.cxx:2547
TMultiDimFit.cxx:2548
TMultiDimFit.cxx:2549
TMultiDimFit.cxx:2550
TMultiDimFit.cxx:2551
TMultiDimFit.cxx:2552
TMultiDimFit.cxx:2553
TMultiDimFit.cxx:2554
TMultiDimFit.cxx:2555
TMultiDimFit.cxx:2556
TMultiDimFit.cxx:2557
TMultiDimFit.cxx:2558
TMultiDimFit.cxx:2559
TMultiDimFit.cxx:2560
TMultiDimFit.cxx:2561
TMultiDimFit.cxx:2562
TMultiDimFit.cxx:2563
TMultiDimFit.cxx:2564
TMultiDimFit.cxx:2565
TMultiDimFit.cxx:2566
TMultiDimFit.cxx:2567
TMultiDimFit.cxx:2568
TMultiDimFit.cxx:2569
TMultiDimFit.cxx:2570
TMultiDimFit.cxx:2571
TMultiDimFit.cxx:2572
TMultiDimFit.cxx:2573
TMultiDimFit.cxx:2574
TMultiDimFit.cxx:2575
TMultiDimFit.cxx:2576
TMultiDimFit.cxx:2577
TMultiDimFit.cxx:2578
TMultiDimFit.cxx:2579
TMultiDimFit.cxx:2580
TMultiDimFit.cxx:2581
TMultiDimFit.cxx:2582
TMultiDimFit.cxx:2583
TMultiDimFit.cxx:2584
TMultiDimFit.cxx:2585
TMultiDimFit.cxx:2586
TMultiDimFit.cxx:2587
TMultiDimFit.cxx:2588
TMultiDimFit.cxx:2589
TMultiDimFit.cxx:2590
TMultiDimFit.cxx:2591
TMultiDimFit.cxx:2592
TMultiDimFit.cxx:2593
TMultiDimFit.cxx:2594
TMultiDimFit.cxx:2595
TMultiDimFit.cxx:2596
TMultiDimFit.cxx:2597
TMultiDimFit.cxx:2598
TMultiDimFit.cxx:2599
TMultiDimFit.cxx:2600
TMultiDimFit.cxx:2601
TMultiDimFit.cxx:2602
TMultiDimFit.cxx:2603
TMultiDimFit.cxx:2604
TMultiDimFit.cxx:2605
TMultiDimFit.cxx:2606
TMultiDimFit.cxx:2607
TMultiDimFit.cxx:2608
TMultiDimFit.cxx:2609
TMultiDimFit.cxx:2610
TMultiDimFit.cxx:2611
TMultiDimFit.cxx:2612
TMultiDimFit.cxx:2613
TMultiDimFit.cxx:2614
TMultiDimFit.cxx:2615
TMultiDimFit.cxx:2616
TMultiDimFit.cxx:2617
TMultiDimFit.cxx:2618
TMultiDimFit.cxx:2619
TMultiDimFit.cxx:2620
TMultiDimFit.cxx:2621
TMultiDimFit.cxx:2622
TMultiDimFit.cxx:2623
TMultiDimFit.cxx:2624
TMultiDimFit.cxx:2625
TMultiDimFit.cxx:2626
TMultiDimFit.cxx:2627
TMultiDimFit.cxx:2628
TMultiDimFit.cxx:2629
TMultiDimFit.cxx:2630
TMultiDimFit.cxx:2631
TMultiDimFit.cxx:2632
TMultiDimFit.cxx:2633
TMultiDimFit.cxx:2634
TMultiDimFit.cxx:2635
TMultiDimFit.cxx:2636
TMultiDimFit.cxx:2637
TMultiDimFit.cxx:2638
TMultiDimFit.cxx:2639
TMultiDimFit.cxx:2640
TMultiDimFit.cxx:2641
TMultiDimFit.cxx:2642
TMultiDimFit.cxx:2643
TMultiDimFit.cxx:2644
TMultiDimFit.cxx:2645
TMultiDimFit.cxx:2646
TMultiDimFit.cxx:2647
TMultiDimFit.cxx:2648
TMultiDimFit.cxx:2649
TMultiDimFit.cxx:2650
TMultiDimFit.cxx:2651
TMultiDimFit.cxx:2652
TMultiDimFit.cxx:2653
TMultiDimFit.cxx:2654
TMultiDimFit.cxx:2655
TMultiDimFit.cxx:2656
TMultiDimFit.cxx:2657
TMultiDimFit.cxx:2658
TMultiDimFit.cxx:2659
TMultiDimFit.cxx:2660
TMultiDimFit.cxx:2661
TMultiDimFit.cxx:2662
TMultiDimFit.cxx:2663
TMultiDimFit.cxx:2664
TMultiDimFit.cxx:2665
TMultiDimFit.cxx:2666
TMultiDimFit.cxx:2667
TMultiDimFit.cxx:2668
TMultiDimFit.cxx:2669
TMultiDimFit.cxx:2670
TMultiDimFit.cxx:2671
TMultiDimFit.cxx:2672
TMultiDimFit.cxx:2673
TMultiDimFit.cxx:2674
TMultiDimFit.cxx:2675
TMultiDimFit.cxx:2676
TMultiDimFit.cxx:2677
TMultiDimFit.cxx:2678
TMultiDimFit.cxx:2679
TMultiDimFit.cxx:2680
TMultiDimFit.cxx:2681
TMultiDimFit.cxx:2682
TMultiDimFit.cxx:2683
TMultiDimFit.cxx:2684
TMultiDimFit.cxx:2685
TMultiDimFit.cxx:2686
TMultiDimFit.cxx:2687
TMultiDimFit.cxx:2688
TMultiDimFit.cxx:2689
TMultiDimFit.cxx:2690
TMultiDimFit.cxx:2691
TMultiDimFit.cxx:2692
TMultiDimFit.cxx:2693
TMultiDimFit.cxx:2694
TMultiDimFit.cxx:2695
TMultiDimFit.cxx:2696
TMultiDimFit.cxx:2697
TMultiDimFit.cxx:2698
TMultiDimFit.cxx:2699
TMultiDimFit.cxx:2700
TMultiDimFit.cxx:2701
TMultiDimFit.cxx:2702
TMultiDimFit.cxx:2703
TMultiDimFit.cxx:2704
TMultiDimFit.cxx:2705
TMultiDimFit.cxx:2706
TMultiDimFit.cxx:2707
TMultiDimFit.cxx:2708
TMultiDimFit.cxx:2709
TMultiDimFit.cxx:2710
TMultiDimFit.cxx:2711
TMultiDimFit.cxx:2712
TMultiDimFit.cxx:2713
TMultiDimFit.cxx:2714
TMultiDimFit.cxx:2715
TMultiDimFit.cxx:2716
TMultiDimFit.cxx:2717
TMultiDimFit.cxx:2718
TMultiDimFit.cxx:2719
TMultiDimFit.cxx:2720
TMultiDimFit.cxx:2721
TMultiDimFit.cxx:2722
TMultiDimFit.cxx:2723
TMultiDimFit.cxx:2724
TMultiDimFit.cxx:2725
TMultiDimFit.cxx:2726
TMultiDimFit.cxx:2727
TMultiDimFit.cxx:2728
TMultiDimFit.cxx:2729
TMultiDimFit.cxx:2730
TMultiDimFit.cxx:2731
TMultiDimFit.cxx:2732
TMultiDimFit.cxx:2733
TMultiDimFit.cxx:2734
TMultiDimFit.cxx:2735
TMultiDimFit.cxx:2736
TMultiDimFit.cxx:2737
TMultiDimFit.cxx:2738
TMultiDimFit.cxx:2739
TMultiDimFit.cxx:2740
TMultiDimFit.cxx:2741
TMultiDimFit.cxx:2742
TMultiDimFit.cxx:2743
TMultiDimFit.cxx:2744
TMultiDimFit.cxx:2745
TMultiDimFit.cxx:2746
TMultiDimFit.cxx:2747
TMultiDimFit.cxx:2748
TMultiDimFit.cxx:2749
TMultiDimFit.cxx:2750
TMultiDimFit.cxx:2751
TMultiDimFit.cxx:2752
TMultiDimFit.cxx:2753
TMultiDimFit.cxx:2754
TMultiDimFit.cxx:2755
TMultiDimFit.cxx:2756
TMultiDimFit.cxx:2757
TMultiDimFit.cxx:2758
TMultiDimFit.cxx:2759
TMultiDimFit.cxx:2760
TMultiDimFit.cxx:2761
TMultiDimFit.cxx:2762
TMultiDimFit.cxx:2763
TMultiDimFit.cxx:2764
TMultiDimFit.cxx:2765
TMultiDimFit.cxx:2766
TMultiDimFit.cxx:2767
TMultiDimFit.cxx:2768
TMultiDimFit.cxx:2769
TMultiDimFit.cxx:2770
TMultiDimFit.cxx:2771
TMultiDimFit.cxx:2772
TMultiDimFit.cxx:2773
TMultiDimFit.cxx:2774
TMultiDimFit.cxx:2775
TMultiDimFit.cxx:2776
TMultiDimFit.cxx:2777
TMultiDimFit.cxx:2778
TMultiDimFit.cxx:2779
TMultiDimFit.cxx:2780
TMultiDimFit.cxx:2781
TMultiDimFit.cxx:2782
TMultiDimFit.cxx:2783
TMultiDimFit.cxx:2784
TMultiDimFit.cxx:2785
TMultiDimFit.cxx:2786
TMultiDimFit.cxx:2787
TMultiDimFit.cxx:2788
TMultiDimFit.cxx:2789
TMultiDimFit.cxx:2790
TMultiDimFit.cxx:2791
TMultiDimFit.cxx:2792
TMultiDimFit.cxx:2793
TMultiDimFit.cxx:2794
TMultiDimFit.cxx:2795
TMultiDimFit.cxx:2796
TMultiDimFit.cxx:2797
TMultiDimFit.cxx:2798
TMultiDimFit.cxx:2799
TMultiDimFit.cxx:2800
TMultiDimFit.cxx:2801
TMultiDimFit.cxx:2802
TMultiDimFit.cxx:2803
TMultiDimFit.cxx:2804
TMultiDimFit.cxx:2805
TMultiDimFit.cxx:2806
TMultiDimFit.cxx:2807
TMultiDimFit.cxx:2808
TMultiDimFit.cxx:2809
TMultiDimFit.cxx:2810
TMultiDimFit.cxx:2811
TMultiDimFit.cxx:2812
TMultiDimFit.cxx:2813
TMultiDimFit.cxx:2814
TMultiDimFit.cxx:2815
TMultiDimFit.cxx:2816
TMultiDimFit.cxx:2817
TMultiDimFit.cxx:2818
TMultiDimFit.cxx:2819
TMultiDimFit.cxx:2820
TMultiDimFit.cxx:2821
TMultiDimFit.cxx:2822
TMultiDimFit.cxx:2823
TMultiDimFit.cxx:2824
TMultiDimFit.cxx:2825
TMultiDimFit.cxx:2826
TMultiDimFit.cxx:2827
TMultiDimFit.cxx:2828
TMultiDimFit.cxx:2829
TMultiDimFit.cxx:2830
TMultiDimFit.cxx:2831
TMultiDimFit.cxx:2832
TMultiDimFit.cxx:2833
TMultiDimFit.cxx:2834
TMultiDimFit.cxx:2835
TMultiDimFit.cxx:2836
TMultiDimFit.cxx:2837
TMultiDimFit.cxx:2838
TMultiDimFit.cxx:2839
TMultiDimFit.cxx:2840
TMultiDimFit.cxx:2841
TMultiDimFit.cxx:2842
TMultiDimFit.cxx:2843
TMultiDimFit.cxx:2844
TMultiDimFit.cxx:2845
TMultiDimFit.cxx:2846
TMultiDimFit.cxx:2847
TMultiDimFit.cxx:2848
TMultiDimFit.cxx:2849
TMultiDimFit.cxx:2850
TMultiDimFit.cxx:2851
TMultiDimFit.cxx:2852
TMultiDimFit.cxx:2853
TMultiDimFit.cxx:2854
TMultiDimFit.cxx:2855
TMultiDimFit.cxx:2856
TMultiDimFit.cxx:2857
TMultiDimFit.cxx:2858
TMultiDimFit.cxx:2859
TMultiDimFit.cxx:2860
TMultiDimFit.cxx:2861
TMultiDimFit.cxx:2862
TMultiDimFit.cxx:2863
TMultiDimFit.cxx:2864
TMultiDimFit.cxx:2865
TMultiDimFit.cxx:2866
TMultiDimFit.cxx:2867
TMultiDimFit.cxx:2868
TMultiDimFit.cxx:2869
TMultiDimFit.cxx:2870
TMultiDimFit.cxx:2871
TMultiDimFit.cxx:2872
TMultiDimFit.cxx:2873
TMultiDimFit.cxx:2874
TMultiDimFit.cxx:2875
TMultiDimFit.cxx:2876
TMultiDimFit.cxx:2877
TMultiDimFit.cxx:2878
TMultiDimFit.cxx:2879
TMultiDimFit.cxx:2880
TMultiDimFit.cxx:2881
TMultiDimFit.cxx:2882
TMultiDimFit.cxx:2883
TMultiDimFit.cxx:2884
TMultiDimFit.cxx:2885
TMultiDimFit.cxx:2886
TMultiDimFit.cxx:2887
TMultiDimFit.cxx:2888
TMultiDimFit.cxx:2889
TMultiDimFit.cxx:2890
TMultiDimFit.cxx:2891
TMultiDimFit.cxx:2892
TMultiDimFit.cxx:2893
TMultiDimFit.cxx:2894
TMultiDimFit.cxx:2895
TMultiDimFit.cxx:2896
TMultiDimFit.cxx:2897
TMultiDimFit.cxx:2898
TMultiDimFit.cxx:2899
TMultiDimFit.cxx:2900
TMultiDimFit.cxx:2901
TMultiDimFit.cxx:2902
TMultiDimFit.cxx:2903
TMultiDimFit.cxx:2904
TMultiDimFit.cxx:2905
TMultiDimFit.cxx:2906
TMultiDimFit.cxx:2907
TMultiDimFit.cxx:2908
TMultiDimFit.cxx:2909
TMultiDimFit.cxx:2910
TMultiDimFit.cxx:2911
TMultiDimFit.cxx:2912
TMultiDimFit.cxx:2913
TMultiDimFit.cxx:2914
TMultiDimFit.cxx:2915
TMultiDimFit.cxx:2916
TMultiDimFit.cxx:2917
TMultiDimFit.cxx:2918
TMultiDimFit.cxx:2919
TMultiDimFit.cxx:2920
TMultiDimFit.cxx:2921
TMultiDimFit.cxx:2922
TMultiDimFit.cxx:2923
TMultiDimFit.cxx:2924
TMultiDimFit.cxx:2925
TMultiDimFit.cxx:2926
TMultiDimFit.cxx:2927
TMultiDimFit.cxx:2928
TMultiDimFit.cxx:2929
TMultiDimFit.cxx:2930
TMultiDimFit.cxx:2931
TMultiDimFit.cxx:2932
TMultiDimFit.cxx:2933
TMultiDimFit.cxx:2934
TMultiDimFit.cxx:2935
TMultiDimFit.cxx:2936
TMultiDimFit.cxx:2937
TMultiDimFit.cxx:2938
TMultiDimFit.cxx:2939
TMultiDimFit.cxx:2940
TMultiDimFit.cxx:2941
TMultiDimFit.cxx:2942
TMultiDimFit.cxx:2943
TMultiDimFit.cxx:2944
TMultiDimFit.cxx:2945
TMultiDimFit.cxx:2946
TMultiDimFit.cxx:2947
TMultiDimFit.cxx:2948
TMultiDimFit.cxx:2949
TMultiDimFit.cxx:2950
TMultiDimFit.cxx:2951
TMultiDimFit.cxx:2952
TMultiDimFit.cxx:2953
TMultiDimFit.cxx:2954
TMultiDimFit.cxx:2955
TMultiDimFit.cxx:2956
TMultiDimFit.cxx:2957
TMultiDimFit.cxx:2958
TMultiDimFit.cxx:2959
TMultiDimFit.cxx:2960
TMultiDimFit.cxx:2961
TMultiDimFit.cxx:2962
TMultiDimFit.cxx:2963
TMultiDimFit.cxx:2964
TMultiDimFit.cxx:2965
TMultiDimFit.cxx:2966
TMultiDimFit.cxx:2967
TMultiDimFit.cxx:2968
TMultiDimFit.cxx:2969
TMultiDimFit.cxx:2970
TMultiDimFit.cxx:2971
TMultiDimFit.cxx:2972
TMultiDimFit.cxx:2973
TMultiDimFit.cxx:2974
TMultiDimFit.cxx:2975
TMultiDimFit.cxx:2976
TMultiDimFit.cxx:2977
TMultiDimFit.cxx:2978
TMultiDimFit.cxx:2979
TMultiDimFit.cxx:2980
TMultiDimFit.cxx:2981
TMultiDimFit.cxx:2982
TMultiDimFit.cxx:2983
TMultiDimFit.cxx:2984
TMultiDimFit.cxx:2985
TMultiDimFit.cxx:2986
TMultiDimFit.cxx:2987
TMultiDimFit.cxx:2988
TMultiDimFit.cxx:2989
TMultiDimFit.cxx:2990
TMultiDimFit.cxx:2991
TMultiDimFit.cxx:2992
TMultiDimFit.cxx:2993
TMultiDimFit.cxx:2994
TMultiDimFit.cxx:2995
TMultiDimFit.cxx:2996
TMultiDimFit.cxx:2997
TMultiDimFit.cxx:2998
TMultiDimFit.cxx:2999
TMultiDimFit.cxx:3000
TMultiDimFit.cxx:3001
TMultiDimFit.cxx:3002
TMultiDimFit.cxx:3003
TMultiDimFit.cxx:3004
TMultiDimFit.cxx:3005
TMultiDimFit.cxx:3006
TMultiDimFit.cxx:3007
TMultiDimFit.cxx:3008
TMultiDimFit.cxx:3009
TMultiDimFit.cxx:3010
TMultiDimFit.cxx:3011
TMultiDimFit.cxx:3012
TMultiDimFit.cxx:3013
TMultiDimFit.cxx:3014
TMultiDimFit.cxx:3015
TMultiDimFit.cxx:3016
TMultiDimFit.cxx:3017
TMultiDimFit.cxx:3018
TMultiDimFit.cxx:3019
TMultiDimFit.cxx:3020
TMultiDimFit.cxx:3021
TMultiDimFit.cxx:3022
TMultiDimFit.cxx:3023
TMultiDimFit.cxx:3024
TMultiDimFit.cxx:3025
TMultiDimFit.cxx:3026
TMultiDimFit.cxx:3027
TMultiDimFit.cxx:3028
TMultiDimFit.cxx:3029
TMultiDimFit.cxx:3030
TMultiDimFit.cxx:3031
TMultiDimFit.cxx:3032
TMultiDimFit.cxx:3033
TMultiDimFit.cxx:3034
TMultiDimFit.cxx:3035
TMultiDimFit.cxx:3036
TMultiDimFit.cxx:3037
TMultiDimFit.cxx:3038
TMultiDimFit.cxx:3039
TMultiDimFit.cxx:3040
TMultiDimFit.cxx:3041
TMultiDimFit.cxx:3042
TMultiDimFit.cxx:3043
TMultiDimFit.cxx:3044
TMultiDimFit.cxx:3045
TMultiDimFit.cxx:3046
TMultiDimFit.cxx:3047
TMultiDimFit.cxx:3048
TMultiDimFit.cxx:3049
TMultiDimFit.cxx:3050
TMultiDimFit.cxx:3051
TMultiDimFit.cxx:3052
TMultiDimFit.cxx:3053
TMultiDimFit.cxx:3054
TMultiDimFit.cxx:3055
TMultiDimFit.cxx:3056
TMultiDimFit.cxx:3057
TMultiDimFit.cxx:3058
TMultiDimFit.cxx:3059
TMultiDimFit.cxx:3060
TMultiDimFit.cxx:3061
TMultiDimFit.cxx:3062
TMultiDimFit.cxx:3063
TMultiDimFit.cxx:3064
TMultiDimFit.cxx:3065
TMultiDimFit.cxx:3066
TMultiDimFit.cxx:3067
TMultiDimFit.cxx:3068
TMultiDimFit.cxx:3069
TMultiDimFit.cxx:3070
TMultiDimFit.cxx:3071
TMultiDimFit.cxx:3072
TMultiDimFit.cxx:3073
TMultiDimFit.cxx:3074
TMultiDimFit.cxx:3075
TMultiDimFit.cxx:3076
TMultiDimFit.cxx:3077
TMultiDimFit.cxx:3078
TMultiDimFit.cxx:3079
TMultiDimFit.cxx:3080
TMultiDimFit.cxx:3081
TMultiDimFit.cxx:3082
TMultiDimFit.cxx:3083
TMultiDimFit.cxx:3084
TMultiDimFit.cxx:3085
TMultiDimFit.cxx:3086
TMultiDimFit.cxx:3087
TMultiDimFit.cxx:3088
TMultiDimFit.cxx:3089
TMultiDimFit.cxx:3090
TMultiDimFit.cxx:3091
TMultiDimFit.cxx:3092
TMultiDimFit.cxx:3093
TMultiDimFit.cxx:3094
TMultiDimFit.cxx:3095
TMultiDimFit.cxx:3096
TMultiDimFit.cxx:3097
TMultiDimFit.cxx:3098
TMultiDimFit.cxx:3099
TMultiDimFit.cxx:3100
TMultiDimFit.cxx:3101
TMultiDimFit.cxx:3102
TMultiDimFit.cxx:3103
TMultiDimFit.cxx:3104
TMultiDimFit.cxx:3105
TMultiDimFit.cxx:3106
TMultiDimFit.cxx:3107
TMultiDimFit.cxx:3108
TMultiDimFit.cxx:3109
TMultiDimFit.cxx:3110
TMultiDimFit.cxx:3111
TMultiDimFit.cxx:3112
TMultiDimFit.cxx:3113
TMultiDimFit.cxx:3114
TMultiDimFit.cxx:3115
TMultiDimFit.cxx:3116
TMultiDimFit.cxx:3117
TMultiDimFit.cxx:3118
TMultiDimFit.cxx:3119
TMultiDimFit.cxx:3120
TMultiDimFit.cxx:3121
TMultiDimFit.cxx:3122
TMultiDimFit.cxx:3123
TMultiDimFit.cxx:3124
TMultiDimFit.cxx:3125
TMultiDimFit.cxx:3126
TMultiDimFit.cxx:3127
TMultiDimFit.cxx:3128
TMultiDimFit.cxx:3129
TMultiDimFit.cxx:3130
TMultiDimFit.cxx:3131
TMultiDimFit.cxx:3132
TMultiDimFit.cxx:3133
TMultiDimFit.cxx:3134
TMultiDimFit.cxx:3135
TMultiDimFit.cxx:3136
TMultiDimFit.cxx:3137
TMultiDimFit.cxx:3138
TMultiDimFit.cxx:3139
TMultiDimFit.cxx:3140
TMultiDimFit.cxx:3141
TMultiDimFit.cxx:3142
TMultiDimFit.cxx:3143
TMultiDimFit.cxx:3144
TMultiDimFit.cxx:3145
TMultiDimFit.cxx:3146
TMultiDimFit.cxx:3147
TMultiDimFit.cxx:3148
TMultiDimFit.cxx:3149
TMultiDimFit.cxx:3150
TMultiDimFit.cxx:3151
TMultiDimFit.cxx:3152
TMultiDimFit.cxx:3153
TMultiDimFit.cxx:3154
TMultiDimFit.cxx:3155
TMultiDimFit.cxx:3156
TMultiDimFit.cxx:3157
TMultiDimFit.cxx:3158
TMultiDimFit.cxx:3159
TMultiDimFit.cxx:3160
TMultiDimFit.cxx:3161
TMultiDimFit.cxx:3162
TMultiDimFit.cxx:3163
TMultiDimFit.cxx:3164
TMultiDimFit.cxx:3165
TMultiDimFit.cxx:3166
TMultiDimFit.cxx:3167
TMultiDimFit.cxx:3168
TMultiDimFit.cxx:3169
TMultiDimFit.cxx:3170
TMultiDimFit.cxx:3171
TMultiDimFit.cxx:3172
TMultiDimFit.cxx:3173
TMultiDimFit.cxx:3174
TMultiDimFit.cxx:3175
TMultiDimFit.cxx:3176
TMultiDimFit.cxx:3177
TMultiDimFit.cxx:3178
TMultiDimFit.cxx:3179
TMultiDimFit.cxx:3180
TMultiDimFit.cxx:3181
TMultiDimFit.cxx:3182
TMultiDimFit.cxx:3183
TMultiDimFit.cxx:3184
TMultiDimFit.cxx:3185
TMultiDimFit.cxx:3186
TMultiDimFit.cxx:3187
TMultiDimFit.cxx:3188
TMultiDimFit.cxx:3189
TMultiDimFit.cxx:3190
TMultiDimFit.cxx:3191
TMultiDimFit.cxx:3192
TMultiDimFit.cxx:3193
TMultiDimFit.cxx:3194
TMultiDimFit.cxx:3195
TMultiDimFit.cxx:3196
TMultiDimFit.cxx:3197
TMultiDimFit.cxx:3198
TMultiDimFit.cxx:3199
TMultiDimFit.cxx:3200
TMultiDimFit.cxx:3201
TMultiDimFit.cxx:3202
TMultiDimFit.cxx:3203
TMultiDimFit.cxx:3204
TMultiDimFit.cxx:3205
TMultiDimFit.cxx:3206
TMultiDimFit.cxx:3207
TMultiDimFit.cxx:3208
TMultiDimFit.cxx:3209
TMultiDimFit.cxx:3210
TMultiDimFit.cxx:3211
TMultiDimFit.cxx:3212
TMultiDimFit.cxx:3213
TMultiDimFit.cxx:3214
TMultiDimFit.cxx:3215
TMultiDimFit.cxx:3216
TMultiDimFit.cxx:3217
TMultiDimFit.cxx:3218
TMultiDimFit.cxx:3219
TMultiDimFit.cxx:3220
TMultiDimFit.cxx:3221
TMultiDimFit.cxx:3222
TMultiDimFit.cxx:3223
TMultiDimFit.cxx:3224
TMultiDimFit.cxx:3225
TMultiDimFit.cxx:3226
TMultiDimFit.cxx:3227
TMultiDimFit.cxx:3228
TMultiDimFit.cxx:3229
TMultiDimFit.cxx:3230
TMultiDimFit.cxx:3231
TMultiDimFit.cxx:3232
TMultiDimFit.cxx:3233
TMultiDimFit.cxx:3234
TMultiDimFit.cxx:3235
TMultiDimFit.cxx:3236
TMultiDimFit.cxx:3237
TMultiDimFit.cxx:3238
TMultiDimFit.cxx:3239
TMultiDimFit.cxx:3240
TMultiDimFit.cxx:3241
TMultiDimFit.cxx:3242
TMultiDimFit.cxx:3243
TMultiDimFit.cxx:3244
TMultiDimFit.cxx:3245
TMultiDimFit.cxx:3246
TMultiDimFit.cxx:3247
TMultiDimFit.cxx:3248
TMultiDimFit.cxx:3249
TMultiDimFit.cxx:3250
TMultiDimFit.cxx:3251
TMultiDimFit.cxx:3252
TMultiDimFit.cxx:3253
TMultiDimFit.cxx:3254
TMultiDimFit.cxx:3255
TMultiDimFit.cxx:3256
TMultiDimFit.cxx:3257
TMultiDimFit.cxx:3258
TMultiDimFit.cxx:3259
TMultiDimFit.cxx:3260
TMultiDimFit.cxx:3261
TMultiDimFit.cxx:3262
TMultiDimFit.cxx:3263
TMultiDimFit.cxx:3264
TMultiDimFit.cxx:3265
TMultiDimFit.cxx:3266
TMultiDimFit.cxx:3267
TMultiDimFit.cxx:3268
TMultiDimFit.cxx:3269
TMultiDimFit.cxx:3270
TMultiDimFit.cxx:3271
TMultiDimFit.cxx:3272
TMultiDimFit.cxx:3273
TMultiDimFit.cxx:3274
TMultiDimFit.cxx:3275
TMultiDimFit.cxx:3276
TMultiDimFit.cxx:3277
TMultiDimFit.cxx:3278
TMultiDimFit.cxx:3279
TMultiDimFit.cxx:3280
TMultiDimFit.cxx:3281
TMultiDimFit.cxx:3282
TMultiDimFit.cxx:3283
TMultiDimFit.cxx:3284
TMultiDimFit.cxx:3285
TMultiDimFit.cxx:3286
TMultiDimFit.cxx:3287
TMultiDimFit.cxx:3288
TMultiDimFit.cxx:3289
TMultiDimFit.cxx:3290
TMultiDimFit.cxx:3291
TMultiDimFit.cxx:3292
TMultiDimFit.cxx:3293
TMultiDimFit.cxx:3294
TMultiDimFit.cxx:3295
TMultiDimFit.cxx:3296
TMultiDimFit.cxx:3297
TMultiDimFit.cxx:3298
TMultiDimFit.cxx:3299
TMultiDimFit.cxx:3300
TMultiDimFit.cxx:3301
TMultiDimFit.cxx:3302
TMultiDimFit.cxx:3303
TMultiDimFit.cxx:3304
TMultiDimFit.cxx:3305
TMultiDimFit.cxx:3306
TMultiDimFit.cxx:3307
TMultiDimFit.cxx:3308
TMultiDimFit.cxx:3309
TMultiDimFit.cxx:3310
TMultiDimFit.cxx:3311
TMultiDimFit.cxx:3312
TMultiDimFit.cxx:3313
TMultiDimFit.cxx:3314
TMultiDimFit.cxx:3315
TMultiDimFit.cxx:3316
TMultiDimFit.cxx:3317
TMultiDimFit.cxx:3318
TMultiDimFit.cxx:3319
TMultiDimFit.cxx:3320
TMultiDimFit.cxx:3321
TMultiDimFit.cxx:3322
TMultiDimFit.cxx:3323
TMultiDimFit.cxx:3324
TMultiDimFit.cxx:3325
TMultiDimFit.cxx:3326
TMultiDimFit.cxx:3327
TMultiDimFit.cxx:3328
TMultiDimFit.cxx:3329
TMultiDimFit.cxx:3330
TMultiDimFit.cxx:3331
TMultiDimFit.cxx:3332
TMultiDimFit.cxx:3333
TMultiDimFit.cxx:3334
TMultiDimFit.cxx:3335
TMultiDimFit.cxx:3336
TMultiDimFit.cxx:3337
TMultiDimFit.cxx:3338
TMultiDimFit.cxx:3339
TMultiDimFit.cxx:3340
TMultiDimFit.cxx:3341
TMultiDimFit.cxx:3342
TMultiDimFit.cxx:3343
TMultiDimFit.cxx:3344
TMultiDimFit.cxx:3345
TMultiDimFit.cxx:3346
TMultiDimFit.cxx:3347
TMultiDimFit.cxx:3348
TMultiDimFit.cxx:3349
TMultiDimFit.cxx:3350
TMultiDimFit.cxx:3351
TMultiDimFit.cxx:3352
TMultiDimFit.cxx:3353
TMultiDimFit.cxx:3354
TMultiDimFit.cxx:3355
TMultiDimFit.cxx:3356
TMultiDimFit.cxx:3357
TMultiDimFit.cxx:3358
TMultiDimFit.cxx:3359
TMultiDimFit.cxx:3360
TMultiDimFit.cxx:3361
TMultiDimFit.cxx:3362
TMultiDimFit.cxx:3363
TMultiDimFit.cxx:3364
TMultiDimFit.cxx:3365
TMultiDimFit.cxx:3366
TMultiDimFit.cxx:3367
TMultiDimFit.cxx:3368
TMultiDimFit.cxx:3369
TMultiDimFit.cxx:3370
TMultiDimFit.cxx:3371
TMultiDimFit.cxx:3372
TMultiDimFit.cxx:3373
TMultiDimFit.cxx:3374
TMultiDimFit.cxx:3375
TMultiDimFit.cxx:3376
TMultiDimFit.cxx:3377
TMultiDimFit.cxx:3378
TMultiDimFit.cxx:3379
TMultiDimFit.cxx:3380
TMultiDimFit.cxx:3381
TMultiDimFit.cxx:3382
TMultiDimFit.cxx:3383
TMultiDimFit.cxx:3384
TMultiDimFit.cxx:3385
TMultiDimFit.cxx:3386
TMultiDimFit.cxx:3387
TMultiDimFit.cxx:3388
TMultiDimFit.cxx:3389
TMultiDimFit.cxx:3390
TMultiDimFit.cxx:3391
TMultiDimFit.cxx:3392
TMultiDimFit.cxx:3393
TMultiDimFit.cxx:3394
TMultiDimFit.cxx:3395
TMultiDimFit.cxx:3396
TMultiDimFit.cxx:3397
TMultiDimFit.cxx:3398
TMultiDimFit.cxx:3399
TMultiDimFit.cxx:3400
TMultiDimFit.cxx:3401
TMultiDimFit.cxx:3402
TMultiDimFit.cxx:3403
TMultiDimFit.cxx:3404
TMultiDimFit.cxx:3405
TMultiDimFit.cxx:3406
TMultiDimFit.cxx:3407
TMultiDimFit.cxx:3408
TMultiDimFit.cxx:3409
TMultiDimFit.cxx:3410
TMultiDimFit.cxx:3411
TMultiDimFit.cxx:3412
TMultiDimFit.cxx:3413
TMultiDimFit.cxx:3414
TMultiDimFit.cxx:3415
TMultiDimFit.cxx:3416
TMultiDimFit.cxx:3417
TMultiDimFit.cxx:3418
TMultiDimFit.cxx:3419
TMultiDimFit.cxx:3420
TMultiDimFit.cxx:3421
TMultiDimFit.cxx:3422
TMultiDimFit.cxx:3423
TMultiDimFit.cxx:3424
TMultiDimFit.cxx:3425
TMultiDimFit.cxx:3426
TMultiDimFit.cxx:3427
TMultiDimFit.cxx:3428
TMultiDimFit.cxx:3429
TMultiDimFit.cxx:3430
TMultiDimFit.cxx:3431
TMultiDimFit.cxx:3432
TMultiDimFit.cxx:3433
TMultiDimFit.cxx:3434
TMultiDimFit.cxx:3435
TMultiDimFit.cxx:3436
TMultiDimFit.cxx:3437
TMultiDimFit.cxx:3438
TMultiDimFit.cxx:3439
TMultiDimFit.cxx:3440
TMultiDimFit.cxx:3441
TMultiDimFit.cxx:3442
TMultiDimFit.cxx:3443
TMultiDimFit.cxx:3444
TMultiDimFit.cxx:3445
TMultiDimFit.cxx:3446
TMultiDimFit.cxx:3447
TMultiDimFit.cxx:3448
TMultiDimFit.cxx:3449
TMultiDimFit.cxx:3450
TMultiDimFit.cxx:3451
TMultiDimFit.cxx:3452
TMultiDimFit.cxx:3453
TMultiDimFit.cxx:3454
TMultiDimFit.cxx:3455
TMultiDimFit.cxx:3456
TMultiDimFit.cxx:3457
TMultiDimFit.cxx:3458
TMultiDimFit.cxx:3459
TMultiDimFit.cxx:3460
TMultiDimFit.cxx:3461
TMultiDimFit.cxx:3462
TMultiDimFit.cxx:3463
TMultiDimFit.cxx:3464
TMultiDimFit.cxx:3465
TMultiDimFit.cxx:3466
TMultiDimFit.cxx:3467
TMultiDimFit.cxx:3468
TMultiDimFit.cxx:3469
TMultiDimFit.cxx:3470
TMultiDimFit.cxx:3471
TMultiDimFit.cxx:3472
TMultiDimFit.cxx:3473
TMultiDimFit.cxx:3474
TMultiDimFit.cxx:3475
TMultiDimFit.cxx:3476
TMultiDimFit.cxx:3477
TMultiDimFit.cxx:3478
TMultiDimFit.cxx:3479
TMultiDimFit.cxx:3480
TMultiDimFit.cxx:3481
TMultiDimFit.cxx:3482
TMultiDimFit.cxx:3483
TMultiDimFit.cxx:3484
TMultiDimFit.cxx:3485
TMultiDimFit.cxx:3486
TMultiDimFit.cxx:3487
TMultiDimFit.cxx:3488
TMultiDimFit.cxx:3489
TMultiDimFit.cxx:3490
TMultiDimFit.cxx:3491
TMultiDimFit.cxx:3492
TMultiDimFit.cxx:3493
TMultiDimFit.cxx:3494
TMultiDimFit.cxx:3495
TMultiDimFit.cxx:3496
TMultiDimFit.cxx:3497
TMultiDimFit.cxx:3498
TMultiDimFit.cxx:3499
TMultiDimFit.cxx:3500
TMultiDimFit.cxx:3501
TMultiDimFit.cxx:3502
TMultiDimFit.cxx:3503
TMultiDimFit.cxx:3504
TMultiDimFit.cxx:3505
TMultiDimFit.cxx:3506
TMultiDimFit.cxx:3507
TMultiDimFit.cxx:3508
TMultiDimFit.cxx:3509
TMultiDimFit.cxx:3510
TMultiDimFit.cxx:3511
TMultiDimFit.cxx:3512
TMultiDimFit.cxx:3513
TMultiDimFit.cxx:3514
TMultiDimFit.cxx:3515
TMultiDimFit.cxx:3516
TMultiDimFit.cxx:3517
TMultiDimFit.cxx:3518
TMultiDimFit.cxx:3519
TMultiDimFit.cxx:3520
TMultiDimFit.cxx:3521
TMultiDimFit.cxx:3522
TMultiDimFit.cxx:3523
TMultiDimFit.cxx:3524
TMultiDimFit.cxx:3525
TMultiDimFit.cxx:3526
TMultiDimFit.cxx:3527
TMultiDimFit.cxx:3528
TMultiDimFit.cxx:3529
TMultiDimFit.cxx:3530
TMultiDimFit.cxx:3531
TMultiDimFit.cxx:3532
TMultiDimFit.cxx:3533
TMultiDimFit.cxx:3534
TMultiDimFit.cxx:3535
TMultiDimFit.cxx:3536
TMultiDimFit.cxx:3537
TMultiDimFit.cxx:3538
TMultiDimFit.cxx:3539
TMultiDimFit.cxx:3540
TMultiDimFit.cxx:3541
TMultiDimFit.cxx:3542
TMultiDimFit.cxx:3543
TMultiDimFit.cxx:3544
TMultiDimFit.cxx:3545
TMultiDimFit.cxx:3546
TMultiDimFit.cxx:3547
TMultiDimFit.cxx:3548
TMultiDimFit.cxx:3549
TMultiDimFit.cxx:3550
TMultiDimFit.cxx:3551
TMultiDimFit.cxx:3552
TMultiDimFit.cxx:3553
TMultiDimFit.cxx:3554
TMultiDimFit.cxx:3555
TMultiDimFit.cxx:3556
TMultiDimFit.cxx:3557
TMultiDimFit.cxx:3558
TMultiDimFit.cxx:3559
TMultiDimFit.cxx:3560
TMultiDimFit.cxx:3561
TMultiDimFit.cxx:3562
TMultiDimFit.cxx:3563
TMultiDimFit.cxx:3564
TMultiDimFit.cxx:3565
TMultiDimFit.cxx:3566
TMultiDimFit.cxx:3567
TMultiDimFit.cxx:3568
TMultiDimFit.cxx:3569
TMultiDimFit.cxx:3570
TMultiDimFit.cxx:3571
TMultiDimFit.cxx:3572
TMultiDimFit.cxx:3573
TMultiDimFit.cxx:3574
TMultiDimFit.cxx:3575
TMultiDimFit.cxx:3576
TMultiDimFit.cxx:3577
TMultiDimFit.cxx:3578
TMultiDimFit.cxx:3579
TMultiDimFit.cxx:3580
TMultiDimFit.cxx:3581
TMultiDimFit.cxx:3582
TMultiDimFit.cxx:3583
TMultiDimFit.cxx:3584
TMultiDimFit.cxx:3585
TMultiDimFit.cxx:3586
TMultiDimFit.cxx:3587
TMultiDimFit.cxx:3588
TMultiDimFit.cxx:3589
TMultiDimFit.cxx:3590
TMultiDimFit.cxx:3591
TMultiDimFit.cxx:3592
TMultiDimFit.cxx:3593
TMultiDimFit.cxx:3594
TMultiDimFit.cxx:3595
TMultiDimFit.cxx:3596
TMultiDimFit.cxx:3597
TMultiDimFit.cxx:3598
TMultiDimFit.cxx:3599
TMultiDimFit.cxx:3600
TMultiDimFit.cxx:3601
TMultiDimFit.cxx:3602
TMultiDimFit.cxx:3603
TMultiDimFit.cxx:3604
TMultiDimFit.cxx:3605
TMultiDimFit.cxx:3606
TMultiDimFit.cxx:3607
TMultiDimFit.cxx:3608
TMultiDimFit.cxx:3609
TMultiDimFit.cxx:3610
TMultiDimFit.cxx:3611
TMultiDimFit.cxx:3612
TMultiDimFit.cxx:3613
TMultiDimFit.cxx:3614
TMultiDimFit.cxx:3615
TMultiDimFit.cxx:3616
TMultiDimFit.cxx:3617
TMultiDimFit.cxx:3618
TMultiDimFit.cxx:3619
TMultiDimFit.cxx:3620
TMultiDimFit.cxx:3621
TMultiDimFit.cxx:3622
TMultiDimFit.cxx:3623
TMultiDimFit.cxx:3624
TMultiDimFit.cxx:3625
TMultiDimFit.cxx:3626
TMultiDimFit.cxx:3627
TMultiDimFit.cxx:3628
TMultiDimFit.cxx:3629
TMultiDimFit.cxx:3630
TMultiDimFit.cxx:3631
TMultiDimFit.cxx:3632
TMultiDimFit.cxx:3633
TMultiDimFit.cxx:3634
TMultiDimFit.cxx:3635
TMultiDimFit.cxx:3636
TMultiDimFit.cxx:3637
TMultiDimFit.cxx:3638
TMultiDimFit.cxx:3639
TMultiDimFit.cxx:3640
TMultiDimFit.cxx:3641
TMultiDimFit.cxx:3642
TMultiDimFit.cxx:3643
TMultiDimFit.cxx:3644
TMultiDimFit.cxx:3645
TMultiDimFit.cxx:3646
TMultiDimFit.cxx:3647
TMultiDimFit.cxx:3648
TMultiDimFit.cxx:3649
TMultiDimFit.cxx:3650
TMultiDimFit.cxx:3651
TMultiDimFit.cxx:3652
TMultiDimFit.cxx:3653
TMultiDimFit.cxx:3654
TMultiDimFit.cxx:3655
TMultiDimFit.cxx:3656
TMultiDimFit.cxx:3657
TMultiDimFit.cxx:3658
TMultiDimFit.cxx:3659
TMultiDimFit.cxx:3660
TMultiDimFit.cxx:3661
TMultiDimFit.cxx:3662
TMultiDimFit.cxx:3663
TMultiDimFit.cxx:3664
TMultiDimFit.cxx:3665
TMultiDimFit.cxx:3666
TMultiDimFit.cxx:3667
TMultiDimFit.cxx:3668
TMultiDimFit.cxx:3669
TMultiDimFit.cxx:3670
TMultiDimFit.cxx:3671
TMultiDimFit.cxx:3672
TMultiDimFit.cxx:3673
TMultiDimFit.cxx:3674
TMultiDimFit.cxx:3675
TMultiDimFit.cxx:3676
TMultiDimFit.cxx:3677
TMultiDimFit.cxx:3678
TMultiDimFit.cxx:3679
TMultiDimFit.cxx:3680
TMultiDimFit.cxx:3681
TMultiDimFit.cxx:3682
TMultiDimFit.cxx:3683
TMultiDimFit.cxx:3684
TMultiDimFit.cxx:3685
TMultiDimFit.cxx:3686
TMultiDimFit.cxx:3687
TMultiDimFit.cxx:3688
TMultiDimFit.cxx:3689
TMultiDimFit.cxx:3690
TMultiDimFit.cxx:3691
TMultiDimFit.cxx:3692
TMultiDimFit.cxx:3693
TMultiDimFit.cxx:3694
TMultiDimFit.cxx:3695
TMultiDimFit.cxx:3696
TMultiDimFit.cxx:3697
TMultiDimFit.cxx:3698
TMultiDimFit.cxx:3699
TMultiDimFit.cxx:3700
TMultiDimFit.cxx:3701
TMultiDimFit.cxx:3702
TMultiDimFit.cxx:3703
TMultiDimFit.cxx:3704
TMultiDimFit.cxx:3705
TMultiDimFit.cxx:3706
TMultiDimFit.cxx:3707
TMultiDimFit.cxx:3708
TMultiDimFit.cxx:3709
TMultiDimFit.cxx:3710
TMultiDimFit.cxx:3711
TMultiDimFit.cxx:3712
TMultiDimFit.cxx:3713
TMultiDimFit.cxx:3714
TMultiDimFit.cxx:3715
TMultiDimFit.cxx:3716
TMultiDimFit.cxx:3717
TMultiDimFit.cxx:3718
TMultiDimFit.cxx:3719
TMultiDimFit.cxx:3720
TMultiDimFit.cxx:3721
TMultiDimFit.cxx:3722
TMultiDimFit.cxx:3723
TMultiDimFit.cxx:3724
TMultiDimFit.cxx:3725
TMultiDimFit.cxx:3726
TMultiDimFit.cxx:3727
TMultiDimFit.cxx:3728
TMultiDimFit.cxx:3729
TMultiDimFit.cxx:3730
TMultiDimFit.cxx:3731
TMultiDimFit.cxx:3732
TMultiDimFit.cxx:3733
TMultiDimFit.cxx:3734
TMultiDimFit.cxx:3735
TMultiDimFit.cxx:3736
TMultiDimFit.cxx:3737
TMultiDimFit.cxx:3738
TMultiDimFit.cxx:3739
TMultiDimFit.cxx:3740
TMultiDimFit.cxx:3741
TMultiDimFit.cxx:3742
TMultiDimFit.cxx:3743
TMultiDimFit.cxx:3744
TMultiDimFit.cxx:3745
TMultiDimFit.cxx:3746
TMultiDimFit.cxx:3747
TMultiDimFit.cxx:3748
TMultiDimFit.cxx:3749
TMultiDimFit.cxx:3750
TMultiDimFit.cxx:3751
TMultiDimFit.cxx:3752
TMultiDimFit.cxx:3753
TMultiDimFit.cxx:3754
TMultiDimFit.cxx:3755
TMultiDimFit.cxx:3756
TMultiDimFit.cxx:3757
TMultiDimFit.cxx:3758
TMultiDimFit.cxx:3759
TMultiDimFit.cxx:3760
TMultiDimFit.cxx:3761
TMultiDimFit.cxx:3762
TMultiDimFit.cxx:3763
TMultiDimFit.cxx:3764
TMultiDimFit.cxx:3765
TMultiDimFit.cxx:3766
TMultiDimFit.cxx:3767
TMultiDimFit.cxx:3768
TMultiDimFit.cxx:3769
TMultiDimFit.cxx:3770
TMultiDimFit.cxx:3771
TMultiDimFit.cxx:3772
TMultiDimFit.cxx:3773
TMultiDimFit.cxx:3774
TMultiDimFit.cxx:3775
TMultiDimFit.cxx:3776
TMultiDimFit.cxx:3777
TMultiDimFit.cxx:3778
TMultiDimFit.cxx:3779
TMultiDimFit.cxx:3780
TMultiDimFit.cxx:3781
TMultiDimFit.cxx:3782
TMultiDimFit.cxx:3783
TMultiDimFit.cxx:3784
TMultiDimFit.cxx:3785
TMultiDimFit.cxx:3786
TMultiDimFit.cxx:3787
TMultiDimFit.cxx:3788
TMultiDimFit.cxx:3789
TMultiDimFit.cxx:3790
TMultiDimFit.cxx:3791
TMultiDimFit.cxx:3792
TMultiDimFit.cxx:3793
TMultiDimFit.cxx:3794
TMultiDimFit.cxx:3795
TMultiDimFit.cxx:3796
TMultiDimFit.cxx:3797
TMultiDimFit.cxx:3798
TMultiDimFit.cxx:3799
TMultiDimFit.cxx:3800
TMultiDimFit.cxx:3801
TMultiDimFit.cxx:3802
TMultiDimFit.cxx:3803
TMultiDimFit.cxx:3804
TMultiDimFit.cxx:3805
TMultiDimFit.cxx:3806
TMultiDimFit.cxx:3807
TMultiDimFit.cxx:3808
TMultiDimFit.cxx:3809
TMultiDimFit.cxx:3810
TMultiDimFit.cxx:3811
TMultiDimFit.cxx:3812
TMultiDimFit.cxx:3813
TMultiDimFit.cxx:3814
TMultiDimFit.cxx:3815
TMultiDimFit.cxx:3816
TMultiDimFit.cxx:3817
TMultiDimFit.cxx:3818
TMultiDimFit.cxx:3819