From 0f848a227f52a9b4382c5a723da6e2882e0ce148 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Apr 2016 18:39:33 +0200 Subject: [PATCH 01/13] Convert from Mac end-of-line encoding and remove trailing whitespace --- math/smatrix/doc/SMatrixClass.html | 188 ++++++++++++++++++++++++++++- math/smatrix/doc/SVector.html | 72 ++++++++++- 2 files changed, 258 insertions(+), 2 deletions(-) diff --git a/math/smatrix/doc/SMatrixClass.html b/math/smatrix/doc/SMatrixClass.html index f9faacb306767..c36b56aa7a2ef 100644 --- a/math/smatrix/doc/SMatrixClass.html +++ b/math/smatrix/doc/SMatrixClass.html @@ -1 +1,187 @@ -// SMatrix example of usage /** \page SMatrixDoc SMatrix Class Properties The template ROOT::Math::SMatrix class has 4 template parameters which define, at compile time, its properties. These are:

Creating a matrix

The following constructors are available to create a matrix:

Here are some examples on how to create a matrix. We use typedef's in the following examples to avoid the full C++ names for the matrix classes. Notice that for a general matrix the representation has the default value, ROOT::Math::MatRepStd, and it is not needed to be specified. Furtheremore, for a general square matrix, the number of column may be as well omitted.

// typedef definitions used in the following declarations 
typedef ROOT::Math::SMatrix<double,3>                                       SMatrix33;      
typedef ROOT::Math::SMatrix<double,2>                                       SMatrix22;
typedef ROOT::Math::SMatrix<double,3,3,ROOT::Math::MatRepSym<double,3> >    SMatrixSym3;
typedef ROOT::Math::SVector>double,2>                                       SVector2; 
typedef ROOT::Math::SVector>double,3>                                       SVector3;
typedef ROOT::Math::SVector>double,6>                                       SVector6; 

SMatrix33   m0;                         // create a zero 3x3 matrix
// create an 3x3 identity matrix 
SMatrix33   i = ROOT::Math::SMatrixIdentity();      
double   a[9] = {1,2,3,4,5,6,7,8,9};    // input matrix data
SMatrix33   m(a,9);                     // create a matrix using the a[] data
// this will produce the 3x3 matrix
//    (  1    2    3 
//       4    5    6
//       7    8    9  )
Example to create a symmetric matrix from an std::vector:
std::vector<double> v(6);         
for (int i = 0; i<6; ++i) v[i] = double(i+1);
SMatrixSym3  s(v.begin(),v.end())                   
// this will produce the symmetric  matrix
//    (  1    2    4 
//       2    3    5
//       4    5    6  )

// create a a general matrix from a symmetric matrix. The opposite will not compile
SMatrix33    m2 = s;                   
Example to create a symmetric matrix from a ROOT::Math::SVector contining the lower/upper data block:
ROOT::Math::SVectorr<double, 6> v(1,2,3,4,5,6);
SMatrixSym3 s1(v);  // lower block (default)
// this will produce the symmetric  matrix
//    (  1    2    4 
//       2    3    5
//       4    5    6  )

SMatrixSym3 s2(v,false);  // upper block 
// this will produce the symmetric  matrix
//    (  1    2    3
//       2    4    5
//       3    5    6  )

Accessing and Setting Methods

The matrix elements can be set using the operator()(irow,icol), where irow and icol are the row and column indexes or by using the iterator interface. Notice that the indexes start from zero and not from one as in FORTRAN. All the matrix elements can be set also by using the ROOT::Math::SetElements function passing a generic iterator.
The elements can be accessed by these same methods and also by using the ROOT::Math::SMatrix::apply function. The apply(i) function has exactly the same behavior for general and symmetric matrices, in contrast to the iterator access methods which behave differently (it follows the data order).
SMatrix33   m; 
m(0,0)  = 1;                           // set the element in first row and first column     
*(m.begin()+1) = 2;                    // set the second element (0,1)
double d[9]={1,2,3,4,5,6,7,8,9};
m.SetElements(d,d+9);                  // set the d[] values in m

double x = m(2,1);                     // return the element in third row and first column
x = m.apply(7);                        // return the 8-th element (row=2,col=1) 
x = *(m.begin()+7);                    // return the 8-th element (row=2,col=1)
// symmetric matrices (note the difference in behavior between apply and the iterators)
x = *(m.begin()+4)                     // return the element (row=2,col=1). 
x = m.apply(7);                        // returns again the (row=2,col=1) element                                        
There are methods to place and/or retrieve ROOT::Math::SVector objects as rows or columns in (from) a matrix. In addition one can put (get) a sub-matrix as another ROOT::Math::SMatrix object in a matrix. If the size of the the sub-vector or sub-matrix are larger than the matrix size a static assert ( a compilation error) is produced. The non-const methods are:
 

SMatrix33            m;
SVector2       v2(1,2);
// place a vector of size 2 in the first row starting from element (0,1) : m(0,1) = v2[0]
m.Place_in_row(v2,0,1); 
// place the vector in the second column from (0,1) : m(0,1) = v2[0]                
m.Place in_col(v2,0,1);                
SMatrix22           m2;
// place the sub-matrix m2 in m starting from the element (1,1) : m(1,1) = m2(0,0)   
m.Place_at(m2,1,1);                    
SVector3     v3(1,2,3);
// set v3 as the diagonal elements of m  : m(i,i) = v3[i] for i=0,1,2
m.SetDiagonal(v3)                    
The const methods retrieving contents (getting slices of a matrix) are:
a = {1,2,3,4,5,6,7,8,9}; 
SMatrix33       m(a,a+9); 
SVector3 irow = m.Row(0);             // return as vector the first matrix row  
SVector3 jcol = m.Col(1);            // return as vector the second matrix column  
// return a slice of the first row from element (0,1) : r2[0] = m(0,1); r2[1] = m(0,2)
SVector2 r2   =  m.SubRow<SVector2> (0,1);    
// return a slice of the second column from element (0,1) : c2[0] = m(0,1); c2[1] = m(1,1);
SVector2 c2   =  m.SubCol<SVector2> (1,0);   
// return a sub-matrix 2x2 with the upper left corner at the values (1,1)
SMatrix22 subM = m.Sub<SMatrix22>   (1,1); 
// return the diagonal element in a SVector
SVector3  diag = m.Diagonal(); 
// return the upper(lower) block of the matrix m
SVector6 vub = m.UpperBlock();        //  vub = [ 1, 2, 3, 5, 6, 9 ]
SVector6 vlb = m.LowerBlock();        //  vlb = [ 1, 4, 5, 7, 8, 9 ] 

Linear Algebra Functions

Only limited linear algebra functionality is available for SMatrix. It is possible for squared matrices NxN, to find the inverse or to calculate the determinant. Different inversion algorithms are used if the matrix is smaller than 6x6 or if it is symmetric. In the case of a small matrix, a faster direct inversion is used. For a large (N > 6) symmetric matrix the Bunch-Kaufman diagonal pivoting method is used while for a large (N > 6) general matrix an LU factorization is performed using the same algorithm as in the CERNLIB routine dinv.
//  Invert a NxN matrix. The inverted matrix replace the existing one and returns if the result is successful
bool ret = m.Invert()  
// return the inverse matrix of m. If the inversion fails ifail is different than zero     
int ifail = 0;
mInv = m.Inverse(ifail);  
The determinant of a square matrix can be obtained as follows:
double det; 
// calculate the determinant modyfing the matrix content. Returns if the calculation was successful
bool ret = m.Det(det);    
// calculate the determinant using a temporary matrix but preserving the matrix content 
bool ret = n.Det2(det);

For additional Matrix functionality see the \ref MatVecFunctions page */ +// SMatrix example of usage + +/** + + + \page SMatrixDoc SMatrix Class Properties + + The template ROOT::Math::SMatrix class has 4 template parameters which define, at compile time, its properties. These are: + + + +

Creating a matrix

+The following constructors are available to create a matrix: + + +

+Here are some examples on how to create a matrix. We use typedef's in the following examples to avoid the full C++ names for the matrix classes. +Notice that for a general matrix the representation has the default value, ROOT::Math::MatRepStd, and it is not needed to be specified. Furtheremore, for a general square matrix, the number of column may be as well omitted. +

+ +
+// typedef definitions used in the following declarations
+typedef ROOT::Math::SMatrix<double,3>                                       SMatrix33;
+typedef ROOT::Math::SMatrix<double,2>                                       SMatrix22;
+typedef ROOT::Math::SMatrix<double,3,3,ROOT::Math::MatRepSym<double,3> >    SMatrixSym3;
+typedef ROOT::Math::SVector>double,2>                                       SVector2;
+typedef ROOT::Math::SVector>double,3>                                       SVector3;
+typedef ROOT::Math::SVector>double,6>                                       SVector6;
+
+SMatrix33   m0;                         // create a zero 3x3 matrix
+// create an 3x3 identity matrix 
+SMatrix33   i = ROOT::Math::SMatrixIdentity();
+double   a[9] = {1,2,3,4,5,6,7,8,9};    // input matrix data
+SMatrix33   m(a,9);                     // create a matrix using the a[] data
+// this will produce the 3x3 matrix
+//    (  1    2    3
+//       4    5    6
+//       7    8    9  )
+
+Example to create a symmetric matrix from an std::vector: +
+std::vector<double> v(6);
+for (int i = 0; i<6; ++i) v[i] = double(i+1);
+SMatrixSym3  s(v.begin(),v.end())
+// this will produce the symmetric  matrix
+//    (  1    2    4
+//       2    3    5
+//       4    5    6  )
+
+// create a a general matrix from a symmetric matrix. The opposite will not compile
+SMatrix33    m2 = s;
+
+Example to create a symmetric matrix from a ROOT::Math::SVector contining the lower/upper data block: +
+ROOT::Math::SVectorr<double, 6> v(1,2,3,4,5,6);
+SMatrixSym3 s1(v);  // lower block (default)
+// this will produce the symmetric  matrix
+//    (  1    2    4
+//       2    3    5
+//       4    5    6  )
+
+SMatrixSym3 s2(v,false);  // upper block
+// this will produce the symmetric  matrix
+//    (  1    2    3
+//       2    4    5
+//       3    5    6  )
+
+ +

Accessing and Setting Methods

+ +The matrix elements can be set using the operator()(irow,icol), where irow and icol are the row and column indexes or by using the iterator interface. Notice that the indexes start from zero and not from one as in FORTRAN. +All the matrix elements can be set also by using the ROOT::Math::SetElements function passing a generic iterator. +
+The elements can be accessed by these same methods and also by using the ROOT::Math::SMatrix::apply function. The apply(i) function has exactly the same behavior for general and symmetric matrices, in contrast to the iterator access methods which behave differently (it follows the data order). +
+SMatrix33   m;
+m(0,0)  = 1;                           // set the element in first row and first column
+*(m.begin()+1) = 2;                    // set the second element (0,1)
+double d[9]={1,2,3,4,5,6,7,8,9};
+m.SetElements(d,d+9);                  // set the d[] values in m
+
+double x = m(2,1);                     // return the element in third row and first column
+x = m.apply(7);                        // return the 8-th element (row=2,col=1) 
+x = *(m.begin()+7);                    // return the 8-th element (row=2,col=1)
+// symmetric matrices (note the difference in behavior between apply and the iterators)
+x = *(m.begin()+4)                     // return the element (row=2,col=1). 
+x = m.apply(7);                        // returns again the (row=2,col=1) element
+
+ +There are methods to place and/or retrieve ROOT::Math::SVector objects as rows or columns in (from) a matrix. In addition one can put (get) a sub-matrix as another ROOT::Math::SMatrix object in a matrix. +If the size of the the sub-vector or sub-matrix are larger than the matrix size a static assert ( a compilation error) is produced. +The non-const methods are: +
+
+SMatrix33            m;
+SVector2       v2(1,2);
+// place a vector of size 2 in the first row starting from element (0,1) : m(0,1) = v2[0]
+m.Place_in_row(v2,0,1);
+// place the vector in the second column from (0,1) : m(0,1) = v2[0]   
+m.Place in_col(v2,0,1);
+SMatrix22           m2;
+// place the sub-matrix m2 in m starting from the element (1,1) : m(1,1) = m2(0,0)  
+m.Place_at(m2,1,1);
+SVector3     v3(1,2,3);
+// set v3 as the diagonal elements of m  : m(i,i) = v3[i] for i=0,1,2
+m.SetDiagonal(v3)                    
+The const methods retrieving contents (getting slices of a matrix) are: +
+a = {1,2,3,4,5,6,7,8,9};
+SMatrix33       m(a,a+9);
+SVector3 irow = m.Row(0);             // return as vector the first matrix row  
+SVector3 jcol = m.Col(1);            // return as vector the second matrix column  
+// return a slice of the first row from element (0,1) : r2[0] = m(0,1); r2[1] = m(0,2)
+SVector2 r2   =  m.SubRow<SVector2> (0,1);
+// return a slice of the second column from element (0,1) : c2[0] = m(0,1); c2[1] = m(1,1);
+SVector2 c2   =  m.SubCol<SVector2> (1,0);
+// return a sub-matrix 2x2 with the upper left corner at the values (1,1)
+SMatrix22 subM = m.Sub<SMatrix22>   (1,1);
+// return the diagonal element in a SVector
+SVector3  diag = m.Diagonal();
+// return the upper(lower) block of the matrix m
+SVector6 vub = m.UpperBlock();        //  vub = [ 1, 2, 3, 5, 6, 9 ]
+SVector6 vlb = m.LowerBlock();        //  vlb = [ 1, 4, 5, 7, 8, 9 ] 
+
+ +

Linear Algebra Functions

+ +Only limited linear algebra functionality is available for SMatrix. It is possible for squared matrices NxN, to find the inverse or to calculate the determinant. Different inversion algorithms are used if the matrix is smaller than 6x6 or if it is symmetric. +In the case of a small matrix, a faster direct inversion is used. For a large (N > 6) symmetric matrix the Bunch-Kaufman diagonal pivoting method is used while for a large (N > 6) general matrix an LU factorization is performed using the same algorithm as in the CERNLIB routine dinv. +
+//  Invert a NxN matrix. The inverted matrix replace the existing one and returns if the result is successful
+bool ret = m.Invert()
+// return the inverse matrix of m. If the inversion fails ifail is different than zero
+int ifail = 0;
+mInv = m.Inverse(ifail);
+
+The determinant of a square matrix can be obtained as follows: +
+double det;
+// calculate the determinant modyfing the matrix content. Returns if the calculation was successful
+bool ret = m.Det(det);
+// calculate the determinant using a temporary matrix but preserving the matrix content 
+bool ret = n.Det2(det);
+
+
+ +For additional Matrix functionality see the \ref MatVecFunctions page + + +*/ diff --git a/math/smatrix/doc/SVector.html b/math/smatrix/doc/SVector.html index 251e8dad928d8..2b96e59cebd6e 100644 --- a/math/smatrix/doc/SVector.html +++ b/math/smatrix/doc/SVector.html @@ -1 +1,71 @@ -// SVector example of usage /** \page SVectorDoc SVector Class Properties The template ROOT::Math::SVector class has 2 template parameters which define, at compile time, its properties. These are:

Creating a Vector

The following constructors are available to create a vector:

Here are some examples on how to create a vector. In the following we assume that we are using the namespace ROOT::Math.

SVector>double,N>  v;                         // create a vector of size N, v[i]=0 
SVector>double,3>  v(1,2,3);                  // create a vector of size 3, v[0]=1,v[1]=2,v[2]=3 
double   a[9] = {1,2,3,4,5,6,7,8,9};          // input data
SVector>double,9>  v(a,9);                    // create a vector using the a[] data                 

Accessing and Setting Methods

The single vector elements can be set or retrieved using the operator[i] , operator(i) or the iterator interface. Notice that the index starts from zero and not from one as in FORTRAN. Also no check is performed on the passed index. Furthermore, all the matrix elements can be set also by using the ROOT::SVector::SetElements function passing a generic iterator. The elements can be accessed also by using the ROOT::Math::SVector::apply(i) function.
 
v[0]  = 1;                           // set the first element  
v(1)  = 2;                           // set the second element      
*(v.begin()+3) = 3;                  // set the third element 

// set vector elements from a std::vector::iterator
std::vector w(3);   
v.SetElements(w.begin(),w.end());

double x = m(i);                     // return the i-th element
x = m.apply(i);                      // return the i-th element 
x = *(m.begin()+i);                  // return the i-th element                                   
In addition there are methods to place a sub-vector in a vector. If the size of the the sub-vector is larger than the vector size a static assert ( a compilation error) is produced.
 
SVector>double,N>  v;   
SVector>double,M>  w;          // M <= N otherwise a compilation error is obtained later    
// place a vector of size M starting from element ioff,  v[ioff + i] = w[i]
v.Place_at(w,ioff); 
// return a sub-vector of size M starting from v[ioff]:  w[i] = v[ioff + i]
w = v.Sub < SVector>double,M> > (ioff);
For additional Vector functionality see the \ref MatVecFunctions page */ +// SVector example of usage + +/** + + \page SVectorDoc SVector Class Properties + + The template ROOT::Math::SVector class has 2 template parameters which define, at compile time, its properties. These are: + + + +

Creating a Vector

+The following constructors are available to create a vector: + + +

Here are some examples on how to create a vector. In the following we assume that we are using the namespace ROOT::Math. +

+
+SVector>double,N>  v;                         // create a vector of size N, v[i]=0 
+SVector>double,3>  v(1,2,3);                  // create a vector of size 3, v[0]=1,v[1]=2,v[2]=3 
+double   a[9] = {1,2,3,4,5,6,7,8,9};          // input data
+SVector>double,9>  v(a,9);                    // create a vector using the a[] data
+
+ +

Accessing and Setting Methods

+ +The single vector elements can be set or retrieved using the operator[i] , operator(i) or the iterator interface. Notice that the index starts from zero and not from one as in FORTRAN. Also no check is performed on the passed index. Furthermore, all the matrix elements can be set also by using the ROOT::SVector::SetElements function passing a generic iterator. +The elements can be accessed also by using the ROOT::Math::SVector::apply(i) function. + + +
+v[0]  = 1;                           // set the first element 
+v(1)  = 2;                           // set the second element 
+*(v.begin()+3) = 3;                  // set the third element
+
+// set vector elements from a std::vector::iterator
+std::vector w(3);
+v.SetElements(w.begin(),w.end());
+
+double x = m(i);                     // return the i-th element
+x = m.apply(i);                      // return the i-th element 
+x = *(m.begin()+i);                  // return the i-th element 
+
+ +In addition there are methods to place a sub-vector in a vector. +If the size of the the sub-vector is larger than the vector size a static assert ( a compilation error) is produced. + +
+SVector>double,N>  v;
+SVector>double,M>  w;          // M <= N otherwise a compilation error is obtained later 
+// place a vector of size M starting from element ioff,  v[ioff + i] = w[i]
+v.Place_at(w,ioff);
+// return a sub-vector of size M starting from v[ioff]:  w[i] = v[ioff + i]
+w = v.Sub < SVector>double,M> > (ioff);
+
+ + +For additional Vector functionality see the \ref MatVecFunctions page + +*/ From 87e6b1cc8f948917dc55e221b3bde254e9bc4e81 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Apr 2016 18:39:43 +0200 Subject: [PATCH 02/13] Fix tildes --- documentation/users-guide/MathLibraries.md | 4 ++-- geom/geom/src/TGeoNode.cxx | 4 ++-- tutorials/math/permute.C | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/documentation/users-guide/MathLibraries.md b/documentation/users-guide/MathLibraries.md index a61954512921a..b68d9d60a49ea 100644 --- a/documentation/users-guide/MathLibraries.md +++ b/documentation/users-guide/MathLibraries.md @@ -189,7 +189,7 @@ Although there are some functions that are not in the standard C math library (l int i; i = TMath::LocMin(10, &v[0]); std::cout << v[i] << std::endl; - ``` +``` Another example of these functions can be found in $ROOTSYS/tutorials/permute.C. @@ -233,7 +233,7 @@ and a modern C++-like interface that receives two iterators to it. // old-style mean = TMath::Mean(n, &v[0], &w[0]); - ``` +``` ### Special and Statistical Functions. diff --git a/geom/geom/src/TGeoNode.cxx b/geom/geom/src/TGeoNode.cxx index 16968a658ae75..dbda436ac046c 100644 --- a/geom/geom/src/TGeoNode.cxx +++ b/geom/geom/src/TGeoNode.cxx @@ -47,13 +47,13 @@ geometry can be saved as a starting state for later use. nodes inside the same container or extrude this container. Non-overlapping nodes can be created with: -~~~ {.cpp] +~~~ {.cpp} TGeoVolume::AddNode(TGeoVolume *daughter, Int_t copy_No, TGeoMatrix *matr); ~~~ The creation of overlapping nodes can be done with a similar prototype: -~~~ {.cpp] +~~~ {.cpp} TGeoVolume::AddNodeOverlap(same arguments); ~~~ diff --git a/tutorials/math/permute.C b/tutorials/math/permute.C index b01239d560826..0b92c54f86490 100644 --- a/tutorials/math/permute.C +++ b/tutorials/math/permute.C @@ -6,7 +6,7 @@ /// ~~~ {.cpp} /// root > .x permute.C /// root > .x permute.C+ with ACLIC -///~~~ +/// ~~~ /// /// \macro_output /// \macro_code From 3e26556429c91d4153aa9d2419abae025eb0a1ca Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Apr 2016 18:39:49 +0200 Subject: [PATCH 03/13] Improvements to the doxygen filter Properly handle macros in comments that uses /// at the beginning of the line, i.e. /// Begin_Macro /// { /// (macro code) /// } /// End_Macro The old version only handled this properly if the macro was an external file. Don't trigger the filter if Begin_Macro and End_Macro appear on the same line. These are comments explaining how the markup works, not markup. Support NamespaceImp in addition to ClassImp. This makes the images for e.g. TMath - which is a namespace and not a class - have proper names. --- documentation/doxygen/filter.cxx | 37 +++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/documentation/doxygen/filter.cxx b/documentation/doxygen/filter.cxx index 5d5859b36239c..572b546beb630 100644 --- a/documentation/doxygen/filter.cxx +++ b/documentation/doxygen/filter.cxx @@ -161,13 +161,15 @@ void FilterClass() // Source file. if (gSource) { + size_t spos = 0; while (fgets(gLine,255,f)) { gLineString = gLine; - if (gLineString.find("End_Macro") != string::npos) { + if (gInMacro && gLineString.find("End_Macro") != string::npos) { ReplaceAll(gLineString,"End_Macro",""); gImageSource = false; gInMacro = 0; + spos = 0; if (m) { fclose(m); m = 0; @@ -180,6 +182,7 @@ void FilterClass() } if (gInMacro) { + if (spos) gLineString = gLineString.substr(spos); if (gInMacro == 1) { if (EndsWith(gLineString,".C\n") || (gLineString.find(".C(") != string::npos)) { ExecuteMacro(); @@ -211,14 +214,27 @@ void FilterClass() } } - if (gLineString.find("Begin_Macro") != string::npos) { + if (gLineString.find("Begin_Macro") != string::npos && + gLineString.find("End_Macro") == string::npos) { + if (BeginsWith(gLineString, "///")) { + spos = gLineString.find_first_not_of(' ', 3); + } if (gLineString.find("source") != string::npos) gImageSource = true; gImageID++; gInMacro++; gLineString = "\n"; } - printf("%s",gLineString.c_str()); + size_t l = gLineString.length(); + size_t b = 0; + do { + size_t e = gLineString.find('\n', b); + if (e != string::npos) e++; + if (spos) printf("%-*s%s", spos, "///", + gLineString.substr(b, e - b).c_str()); + else printf("%s", gLineString.substr(b, e - b).c_str()); + b = e; + } while (b < l); } fclose(f); return; @@ -337,7 +353,8 @@ void GetClassName() if (gSource) { while (fgets(gLine,255,f)) { gLineString = gLine; - if (gLineString.find("ClassImp") != string::npos) { + if (gLineString.find("ClassImp") != string::npos || + gLineString.find("NamespaceImp") != string::npos) { i1 = gLineString.find("(")+1; i2 = gLineString.find(")")-1; gClassName = gLineString.substr(i1,i2-i1+1); @@ -369,12 +386,8 @@ void ExecuteMacro() gMacroName = gLineString.substr(i1,i2-i1+1); // Build the ROOT command to be executed. - bool ts = false; - if (BeginsWith(gLineString,"///")) ts = true; - if (ts) ReplaceAll(gLineString,"///", ""); - if (ts) ReplaceAll(gLineString," ", ""); gLineString.insert(0, StringFormat("root -l -b -q \"makeimage.C(\\\"")); - int l = gLineString.length(); + size_t l = gLineString.length(); gLineString.replace(l-1,1,StringFormat("\\\",\\\"%s\\\",\\\"%s\\\",true,false)\"", gImageName.c_str(), gOutDir.c_str())); // Execute the macro @@ -382,11 +395,9 @@ void ExecuteMacro() // Inline the directives to show the picture and/or the code if (gImageSource) { - if (ts) gLineString = StringFormat("/// \\include %s\n/// \\image html pict1_%s\n", gMacroName.c_str(), gImageName.c_str()); - else gLineString = StringFormat("\\include %s\n\\image html pict1_%s\n", gMacroName.c_str(), gImageName.c_str()); + gLineString = StringFormat("\\include %s\n\\image html pict1_%s\n", gMacroName.c_str(), gImageName.c_str()); } else { - if (ts) gLineString = StringFormat("\n/// \\image html pict1_%s\n", gImageName.c_str()); - else gLineString = StringFormat("\n\\image html pict1_%s\n", gImageName.c_str()); + gLineString = StringFormat("\n\\image html pict1_%s\n", gImageName.c_str()); } } From 077a4d991873d89b842da9e6fa583f3aca8c3b90 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Apr 2016 18:39:56 +0200 Subject: [PATCH 04/13] Doxygen should ignore ClassDef and friends This fixes most of the warnings of the following types: - warning: Found ';' while parsing initializer list - warning: Illegal member name found - warning: no matching file member found for ClassImp() - warning: documented symbol 'X' was not declared or defined --- documentation/doxygen/Doxyfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/doxygen/Doxyfile b/documentation/doxygen/Doxyfile index 0cadb1505faa8..40f6091aa5167 100644 --- a/documentation/doxygen/Doxyfile +++ b/documentation/doxygen/Doxyfile @@ -2056,7 +2056,7 @@ ENABLE_PREPROCESSING = YES # The default value is: NO. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -MACRO_EXPANSION = NO +MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then # the macro expansion is limited to the macros specified with the PREDEFINED and @@ -2064,7 +2064,7 @@ MACRO_EXPANSION = NO # The default value is: NO. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -EXPAND_ONLY_PREDEF = NO +EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES the includes files in the # INCLUDE_PATH will be searched if a #include is found. @@ -2096,7 +2096,7 @@ INCLUDE_FILE_PATTERNS = # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = +PREDEFINED = ClassDef(x,y)=// ClassImp(x)=// ClassImpQ(x)=// templateClassImp(x)=// NamespaceImp(x)=// # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The From fddb74faadfc72e7bca84d00593af7c4bfc524b9 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Apr 2016 18:40:01 +0200 Subject: [PATCH 05/13] Properly align macros so the filter works The filter could be made smarter to parse unaligned macros, but since there were only two of them I found it easier to fix those. --- hist/hist/src/TEfficiency.cxx | 4 ++-- hist/hist/src/TH1.cxx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hist/hist/src/TEfficiency.cxx b/hist/hist/src/TEfficiency.cxx index 59daaecbba33a..42f150c0d4168 100644 --- a/hist/hist/src/TEfficiency.cxx +++ b/hist/hist/src/TEfficiency.cxx @@ -329,7 +329,7 @@ parameters. The resulting priors for different combinations of these shape parameters are shown in the plot below. Begin_Macro(source) - { +{ //canvas only needed for the documentation TCanvas* c1 = new TCanvas("c1","",600,400); c1->SetFillStyle(1001); @@ -363,7 +363,7 @@ Begin_Macro(source) //only for this documentation return c1; - } +} End_Macro diff --git a/hist/hist/src/TH1.cxx b/hist/hist/src/TH1.cxx index 7f43786835245..84910f8a8848c 100644 --- a/hist/hist/src/TH1.cxx +++ b/hist/hist/src/TH1.cxx @@ -1781,9 +1781,9 @@ bool TH1::CheckConsistency(const TH1* h1, const TH1* h2) /// of comparison of the unweighted histogram with 217 events (minimal expected /// frequency equal to one) and the weighted histogram with 500 events (minimal /// expected frequency equal to 25) -///Begin_Macro +/// Begin_Macro /// ../../../tutorials/math/chi2test.C(17) -///End_Macro +/// End_Macro /// Fig 2. An example of comparison of the unweighted histogram with 217 events /// and the weighted histogram with 500 events: /// 1. unweighted histogram; From dd5562ad8b79d5ffb9246e3708625013a2138204 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Apr 2016 18:40:07 +0200 Subject: [PATCH 06/13] Convert some Begin_Latex/End_Latex markup to Doxygen formulas --- graf2d/graf/src/TLatex.cxx | 21 +- hist/hist/src/TF1.cxx | 6 +- hist/hist/src/TGraphAsymmErrors.cxx | 27 ++- hist/hist/src/THnSparse.cxx | 3 +- math/mathcore/inc/Math/GaussIntegrator.h | 71 +++--- math/mathcore/inc/Math/RichardsonDerivator.h | 51 +++-- math/mathmore/src/KelvinFunctions.cxx | 215 +++++++++--------- roofit/roostats/inc/RooStats/HybridResult.h | 2 +- roofit/roostats/inc/RooStats/HypoTestResult.h | 27 +-- roofit/roostats/src/HybridResult.cxx | 41 ++-- roofit/roostats/src/HypoTestResult.cxx | 16 +- 11 files changed, 245 insertions(+), 235 deletions(-) diff --git a/graf2d/graf/src/TLatex.cxx b/graf2d/graf/src/TLatex.cxx index 93a0c766b30cf..84c7cc57f41c3 100644 --- a/graf2d/graf/src/TLatex.cxx +++ b/graf2d/graf/src/TLatex.cxx @@ -185,14 +185,19 @@ End_Macro ## Accents Several kind of accents are available: - #hat = Begin_Latex #hat{a} End_Latex - #check = Begin_Latex #check{a} End_Latex - #acute = Begin_Latex #acute{a} End_Latex - #grave = Begin_Latex #grave{a} End_Latex - #dot = Begin_Latex #dot{a} End_Latex - #ddot = Begin_Latex #ddot{a} End_Latex - #tilde = Begin_Latex #tilde{a} End_Latex - +Begin_Macro(source) +{ + TCanvas *cl = new TCanvas("cl","cl",10,10,700,350); + TLatex Tl; Tl.SetTextFont(43); Tl.SetTextSize(20); + Tl.DrawText(.1, .8, "#hat{a} :"); Tl.DrawLatex(.5, .8, "#hat{a}"); + Tl.DrawText(.1, .7, "#check{a} :"); Tl.DrawLatex(.5, .7, "#check{a}"); + Tl.DrawText(.1, .6, "#acure{a} :"); Tl.DrawLatex(.5, .6, "#acute{a}"); + Tl.DrawText(.1, .5, "#grave{a} :"); Tl.DrawLatex(.5, .5, "#grave{a}"); + Tl.DrawText(.1, .4, "#dot{a} :"); Tl.DrawLatex(.5, .4, "#dot{a}"); + Tl.DrawText(.1, .3, "#ddot{a} :"); Tl.DrawLatex(.5, .3, "#ddot{a}"); + Tl.DrawText(.1, .2, "#tilde{a} :"); Tl.DrawLatex(.5, .2, "#tilde{a}"); +} +End_Macro The special sign: `#slash` draws a slash on top of the text between brackets: diff --git a/hist/hist/src/TF1.cxx b/hist/hist/src/TF1.cxx index 6d15ab895c022..0dc562a8267c5 100644 --- a/hist/hist/src/TF1.cxx +++ b/hist/hist/src/TF1.cxx @@ -949,9 +949,9 @@ Double_t TF1::Derivative2(Double_t x, Double_t *params, Double_t eps) const /// Getting the error via TF1::DerivativeError: /// (total error = roundoff error + interpolation error) /// the estimate of the roundoff error is taken as follows: -///Begin_Latex -/// err = k#sqrt{f(x)^{2} + x^{2}deriv^{2}}#sqrt{#sum ai^{2}}, -///End_Latex +/// \f[ +/// err = k\sqrt{f(x)^{2} + x^{2}deriv^{2}}\sqrt{\sum ai^{2}}, +/// \f] /// where k is the double precision, ai are coefficients used in /// central difference formulas /// interpolation error is decreased by making the step size h smaller. diff --git a/hist/hist/src/TGraphAsymmErrors.cxx b/hist/hist/src/TGraphAsymmErrors.cxx index 2504ddf34f5df..581ba11eb833d 100644 --- a/hist/hist/src/TGraphAsymmErrors.cxx +++ b/hist/hist/src/TGraphAsymmErrors.cxx @@ -510,27 +510,33 @@ void TGraphAsymmErrors::BayesDivide(const TH1* pass, const TH1* total, Option_t /// /// If the histograms are not filled with unit weights, the number of effective /// entries is used to normalise the bin contents which might lead to wrong results. -/// Begin_Latex effective entries = #frac{(#sum w_{i})^{2}}{#sum w_{i}^{2}}End_Latex -/// +/// \f[ +/// \text{effective entries} = \frac{(\sum w_{i})^{2}}{\sum w_{i}^{2}} +/// \f] /// The points are assigned a x value at the center of each histogram bin. -/// The y values are Begin_Latex eff = #frac{pass}{total} End_Latex for all options except for the +/// The y values are \f$\text{eff} = \frac{\text{pass}}{\text{total}}\f$ +/// for all options except for the /// bayesian methods where the result depends on the chosen option. /// -/// If the denominator becomes 0 or pass > total, the corresponding bin is +/// If the denominator becomes 0 or pass > total, the corresponding bin is /// skipped. /// /// 2) calculating ratios of two Poisson means (option 'pois'): /// -------------------------------------------------------------- /// /// The two histograms are interpreted as independent Poisson processes and the ratio -/// Begin_Latex #tau = #frac{n_{1}}{n_{2}} = #frac{#varepsilon}{1 - #varepsilon} with #varepsilon = #frac{n_{1}}{n_{1} + n_{2}} End_Latex -/// The histogram 'pass' is interpreted as n_{1} and the total histogram -/// is used for n_{2} +/// \f[ +/// \tau = \frac{n_{1}}{n_{2}} = \frac{\varepsilon}{1 - \varepsilon} +/// \f] +/// with \f$\varepsilon = \frac{n_{1}}{n_{1} + n_{2}}\f$. +/// The histogram 'pass' is interpreted as \f$n_{1}\f$ and the total histogram +/// is used for \f$n_{2}\f$. /// /// The (asymmetric) uncertainties of the Poisson ratio are linked to the uncertainties /// of efficiency by a parameter transformation: -/// Begin_Latex #Delta #tau_{low/up} = #frac{1}{(1 - #varepsilon)^{2}} #Delta #varepsilon_{low/up} End_Latex -/// +/// \f[ +/// \Delta \tau_{low/up} = \frac{1}{(1 - \varepsilon)^{2}} \Delta \varepsilon_{low/up} +/// \f] /// The x errors span each histogram bin (lowedge ... lowedge+width) /// The y errors depend on the chosen statistic methode which can be determined /// by the options given below. For a detailed description of the used statistic @@ -563,8 +569,7 @@ void TGraphAsymmErrors::BayesDivide(const TH1* pass, const TH1* total, Option_t /// oscillation on the actual coverage probability a couple of approximations and /// methodes has been developped. For a detailed discussion, please have a look at /// this statistical paper: -/// http://www-stat.wharton.upenn.edu/~tcai/paper/Binomial-StatSci.pdf +/// http://www-stat.wharton.upenn.edu/~tcai/paper/Binomial-StatSci.pdf void TGraphAsymmErrors::Divide(const TH1* pass, const TH1* total, Option_t *opt) { diff --git a/hist/hist/src/THnSparse.cxx b/hist/hist/src/THnSparse.cxx index d6b9e6349e32f..e2352ece1ab6b 100644 --- a/hist/hist/src/THnSparse.cxx +++ b/hist/hist/src/THnSparse.cxx @@ -765,8 +765,7 @@ Double_t THnSparse::GetBinContent(Long64_t idx, Int_t* coord /* = 0 */) const //////////////////////////////////////////////////////////////////////////////// /// Get square of the error of bin addressed by linidx as -/// BEGIN_LATEX #sum weight^{2} -/// END_LATEX +/// \f$\sum weight^{2}\f$ /// If errors are not enabled (via Sumw2() or CalculateErrors()) /// return contents. diff --git a/math/mathcore/inc/Math/GaussIntegrator.h b/math/mathcore/inc/Math/GaussIntegrator.h index 5c5189b5f7be9..0c21556b1790f 100644 --- a/math/mathcore/inc/Math/GaussIntegrator.h +++ b/math/mathcore/inc/Math/GaussIntegrator.h @@ -92,31 +92,28 @@ class GaussIntegrator: public VirtualIntegratorOneDim { Method: For any interval [a,b] we define g8(a,b) and g16(a,b) to be the 8-point and 16-point Gaussian quadrature approximations to - Begin_Latex - I = #int^{b}_{a} f(x)dx - End_Latex + \f[ + I = \int^{b}_{a} f(x)dx + \f] and define - Begin_Latex - r(a,b) = #frac{#||{g_{16}(a,b)-g_{8}(a,b)}}{1+#||{g_{16}(a,b)}} - End_Latex + \f[ + r(a,b) = \frac{\left|g_{16}(a,b)-g_{8}(a,b)\right|}{1+\left|g_{16}(a,b)\right|} + \f] Then, - Begin_Latex - G = #sum_{i=1}^{k}g_{16}(x_{i-1},x_{i}) - End_Latex - where, starting with x0 = A and finishing with xk = B, - the subdivision points xi(i=1,2,...) are given by - Begin_Latex - x_{i} = x_{i-1} + #lambda(B-x_{i-1}) - End_Latex - Begin_Latex - #lambda - End_Latex - is equal to the first member of the - sequence 1,1/2,1/4,... for which r(xi-1, xi) < EPS. + \f[ + G = \sum_{i=1}^{k}g_{16}(x_{i-1},x_{i}) + \f] + where, starting with \f$x_{0} = A\f$ and finishing with \f$x_{k} = B\f$, + the subdivision points \f$x_{i}(i=1,2,...)\f$ are given by + \f[ + x_{i} = x_{i-1} + \lambda(B-x_{i-1}) + \f] + \f$\lambda\f$ is equal to the first member of the + sequence 1,1/2,1/4,... for which \f$r(x_{i-1}, x_{i}) < EPS\f$. If, at any stage in the process of subdivision, the ratio - Begin_Latex - q = #||{#frac{x_{i}-x_{i-1}}{B-A}} - End_Latex + \f[ + q = \left|\frac{x_{i}-x_{i-1}}{B-A}\right| + \f] is so small that 1+0.005q is indistinguishable from 1 to machine accuracy, an error exit occurs with the function value set equal to zero. @@ -131,13 +128,13 @@ class GaussIntegrator: public VirtualIntegratorOneDim { |I|>1, and a bound on the absolute error in the case |I|<1. More precisely, if k is the number of sub-intervals contributing to the approximation (see Method), and if - Begin_Latex - I_{abs} = #int^{B}_{A} #||{f(x)}dx - End_Latex + \f[ + I_{abs} = \int^{B}_{A} \left|f(x)\right|dx + \f] then the relation - Begin_Latex - #frac{#||{G-I}}{I_{abs}+k} < EPS - End_Latex + \f[ + \frac{\left|G-I\right|}{I_{abs}+k} < EPS + \f] will nearly always be true, provided the routine terminates without printing an error message. For functions f having no singularities in the closed interval [A,B] the accuracy will usually be much higher than @@ -156,9 +153,9 @@ class GaussIntegrator: public VirtualIntegratorOneDim { /** Returns Integral of function on an infinite interval. This function computes, to an attempted specified accuracy, the value of the integral: - Begin_Latex - I = #int^{#infinity}_{-#infinity} f(x)dx - End_Latex + \f[ + I = \int^{\infty}_{-\infty} f(x)dx + \f] Usage: In any arithmetic expression, this function has the approximate value of the integral I. @@ -169,9 +166,9 @@ class GaussIntegrator: public VirtualIntegratorOneDim { /** Returns Integral of function on an upper semi-infinite interval. This function computes, to an attempted specified accuracy, the value of the integral: - Begin_Latex - I = #int^{#infinity}_{A} f(x)dx - End_Latex + \f[ + I = \int^{\infty}_{A} f(x)dx + \f] Usage: In any arithmetic expression, this function has the approximate value of the integral I. @@ -183,9 +180,9 @@ class GaussIntegrator: public VirtualIntegratorOneDim { /** Returns Integral of function on a lower semi-infinite interval. This function computes, to an attempted specified accuracy, the value of the integral: - Begin_Latex - I = #int^{B}_{#infinity} f(x)dx - End_Latex + \f[ + I = \int^{B}_{-\infty} f(x)dx + \f] Usage: In any arithmetic expression, this function has the approximate value of the integral I. diff --git a/math/mathcore/inc/Math/RichardsonDerivator.h b/math/mathcore/inc/Math/RichardsonDerivator.h index abf5c8e301d5f..6e18d70cc59c4 100644 --- a/math/mathcore/inc/Math/RichardsonDerivator.h +++ b/math/mathcore/inc/Math/RichardsonDerivator.h @@ -88,10 +88,13 @@ class RichardsonDerivator { computed by Richardson's extrapolation method (use 2 derivative estimates to compute a third, more accurate estimation) first, derivatives with steps h and h/2 are computed by central difference formulas - Begin_Latex - D(h) = #frac{f(x+h) - f(x-h)}{2h} - End_Latex - the final estimate Begin_Latex D = #frac{4D(h/2) - D(h)}{3} End_Latex + \f[ + D(h) = \frac{f(x+h) - f(x-h)}{2h} + \f] + the final estimate + \f[ + D = \frac{4D(h/2) - D(h)}{3} + \f] "Numerical Methods for Scientists and Engineers", H.M.Antia, 2nd edition" the argument eps may be specified to control the step size (precision). @@ -103,9 +106,9 @@ class RichardsonDerivator { Getting the error via TF1::DerivativeError: (total error = roundoff error + interpolation error) the estimate of the roundoff error is taken as follows: - Begin_Latex - err = k#sqrt{f(x)^{2} + x^{2}deriv^{2}}#sqrt{#sum ai^{2}}, - End_Latex + \f[ + err = k\sqrt{f(x)^{2} + x^{2}deriv^{2}}\sqrt{\sum ai^{2}}, + \f] where k is the double precision, ai are coefficients used in central difference formulas interpolation error is decreased by making the step size h smaller. @@ -141,10 +144,13 @@ class RichardsonDerivator { computed by Richardson's extrapolation method (use 2 derivative estimates to compute a third, more accurate estimation) first, derivatives with steps h and h/2 are computed by central difference formulas - Begin_Latex - D(h) = #frac{f(x+h) - 2f(x) + f(x-h)}{h^{2}} - End_Latex - the final estimate Begin_Latex D = #frac{4D(h/2) - D(h)}{3} End_Latex + \f[ + D(h) = \frac{f(x+h) - 2f(x) + f(x-h)}{h^{2}} + \f] + the final estimate + \f[ + D = \frac{4D(h/2) - D(h)}{3} + \f] "Numerical Methods for Scientists and Engineers", H.M.Antia, 2nd edition" the argument eps may be specified to control the step size (precision). @@ -156,9 +162,9 @@ class RichardsonDerivator { Getting the error via TF1::DerivativeError: (total error = roundoff error + interpolation error) the estimate of the roundoff error is taken as follows: - Begin_Latex - err = k#sqrt{f(x)^{2} + x^{2}deriv^{2}}#sqrt{#sum ai^{2}}, - End_Latex + \f[ + err = k\sqrt{f(x)^{2} + x^{2}deriv^{2}}\sqrt{\sum ai^{2}}, + \f] where k is the double precision, ai are coefficients used in central difference formulas interpolation error is decreased by making the step size h smaller. @@ -177,10 +183,13 @@ class RichardsonDerivator { computed by Richardson's extrapolation method (use 2 derivative estimates to compute a third, more accurate estimation) first, derivatives with steps h and h/2 are computed by central difference formulas - Begin_Latex - D(h) = #frac{f(x+2h) - 2f(x+h) + 2f(x-h) - f(x-2h)}{2h^{3}} - End_Latex - the final estimate Begin_Latex D = #frac{4D(h/2) - D(h)}{3} End_Latex + \f[ + D(h) = \frac{f(x+2h) - 2f(x+h) + 2f(x-h) - f(x-2h)}{2h^{3}} + \f] + the final estimate + \f[ + D = \frac{4D(h/2) - D(h)}{3} + \f] "Numerical Methods for Scientists and Engineers", H.M.Antia, 2nd edition" the argument eps may be specified to control the step size (precision). @@ -192,9 +201,9 @@ class RichardsonDerivator { Getting the error via TF1::DerivativeError: (total error = roundoff error + interpolation error) the estimate of the roundoff error is taken as follows: - Begin_Latex - err = k#sqrt{f(x)^{2} + x^{2}deriv^{2}}#sqrt{#sum ai^{2}}, - End_Latex + \f[ + err = k\sqrt{f(x)^{2} + x^{2}deriv^{2}}\sqrt{\sum ai^{2}}, + \f] where k is the double precision, ai are coefficients used in central difference formulas interpolation error is decreased by making the step size h smaller. diff --git a/math/mathmore/src/KelvinFunctions.cxx b/math/mathmore/src/KelvinFunctions.cxx index b18381045625e..5a11c44820925 100644 --- a/math/mathmore/src/KelvinFunctions.cxx +++ b/math/mathmore/src/KelvinFunctions.cxx @@ -34,35 +34,33 @@ double kPi = 3.14159265358979323846; double kEulerGamma = 0.577215664901532860606512090082402431042; -/* Begin_Html -

KelvinFunctions

+/** +\class KelvinFunctions -

This class calculates the Kelvin functions Ber(x), Bei(x), Ker(x), Kei(x), and their first derivatives. -

- -End_Html */ +*/ //////////////////////////////////////////////////////////////////////////////// -/// Begin_Latex -/// Ber(x) = Ber_{0}(x) = Re#left[J_{0}#left(x e^{3#pii/4}#right)#right] -/// End_Latex -/// where x is real, and Begin_Latex J_{0}(z) End_Latex is the zeroth-order Bessel +/// \f[ +/// Ber(x) = Ber_{0}(x) = Re\left[J_{0}\left(x e^{3\pi i/4}\right)\right] +/// \f] +/// where x is real, and \f$J_{0}(z)\f$ is the zeroth-order Bessel /// function of the first kind. /// /// If x < fgMin (=20), Ber(x) is computed according to its polynomial /// approximation -/// Begin_Latex -/// Ber(x) = 1 + #sum_{n #geq 1}#frac{(-1)^{n}(x/2)^{4n}}{[(2n)!]^{2}} -/// End_Latex +/// \f[ +/// Ber(x) = 1 + \sum_{n \geq 1}\frac{(-1)^{n}(x/2)^{4n}}{[(2n)!]^{2}} +/// \f] /// For x > fgMin, Ber(x) is computed according to its asymptotic /// expansion: -/// Begin_Latex -/// Ber(x) = #frac{e^{x/#sqrt{2}}}{#sqrt{2#pix}} [F1(x) cos#alpha + G1(x) sin#alpha] - #frac{1}{#pi}Kei(x) -/// End_Latex -/// where Begin_Latex #alpha = #frac{x}{#sqrt{2}} - #frac{#pi}{8} End_Latex. -/// See also F1(x) and G1(x). +/// \f[ +/// Ber(x) = \frac{e^{x/\sqrt{2}}}{\sqrt{2\pi x}} [F1(x) cos\alpha + G1(x) sin\alpha] - \frac{1}{\pi}Kei(x) +/// \f] +/// where \f$\alpha = \frac{x}{\sqrt{2}} - \frac{\pi}{8}\f$. +/// +/// See also F1() and G1(). /// /// Begin_Macro /// { @@ -102,24 +100,25 @@ double KelvinFunctions::Ber(double x) } //////////////////////////////////////////////////////////////////////////////// -/// Begin_Latex -/// Bei(x) = Bei_{0}(x) = Im#left[J_{0}#left(x e^{3#pii/4}#right)#right] -/// End_Latex -/// where x is real, and Begin_Latex J_{0}(z) End_Latex is the zeroth-order Bessel +/// \f[ +/// Bei(x) = Bei_{0}(x) = Im\left[J_{0}\left(x e^{3\pi i/4}\right)\right] +/// \f] +/// where x is real, and \f$J_{0}(z)\f$ is the zeroth-order Bessel /// function of the first kind. /// /// If x < fgMin (=20), Bei(x) is computed according to its polynomial /// approximation -/// Begin_Latex -/// Bei(x) = #sum_{n #geq 0}#frac{(-1)^{n}(x/2)^{4n+2}}{[(2n+1)!]^{2}} -/// End_Latex +/// \f[ +/// Bei(x) = \sum_{n \geq 0}\frac{(-1)^{n}(x/2)^{4n+2}}{[(2n+1)!]^{2}} +/// \f] /// For x > fgMin, Bei(x) is computed according to its asymptotic /// expansion: -/// Begin_Latex -/// Bei(x) = #frac{e^{x/#sqrt{2}}}{#sqrt{2#pix}} [F1(x) sin#alpha + G1(x) cos#alpha] - #frac{1}{#pi}Ker(x) -/// End_Latex -/// where Begin_Latex #alpha = #frac{x}{#sqrt{2}} - #frac{#pi}{8} End_Latex -/// See also F1(x) and G1(x). +/// \f[ +/// Bei(x) = \frac{e^{x/\sqrt{2}}}{\sqrt{2\pi x}} [F1(x) sin\alpha + G1(x) cos\alpha] - \frac{1}{\pi}Ker(x) +/// \f] +/// where \f$\alpha = \frac{x}{\sqrt{2}} - \frac{\pi}{8}\f$. +/// +/// See also F1() and G1(). /// /// Begin_Macro /// { @@ -161,29 +160,30 @@ double KelvinFunctions::Bei(double x) //////////////////////////////////////////////////////////////////////////////// -/// Begin_Latex -/// Ker(x) = Ker_{0}(x) = Re#left[K_{0}#left(x e^{3#pii/4}#right)#right] -/// End_Latex -/// where x is real, and Begin_Latex K_{0}(z) End_Latex is the zeroth-order modified +/// \f[ +/// Ker(x) = Ker_{0}(x) = Re\left[K_{0}\left(x e^{3\pi i/4}\right)\right] +/// \f] +/// where x is real, and \f$K_{0}(z)\f$ is the zeroth-order modified /// Bessel function of the second kind. /// /// If x < fgMin (=20), Ker(x) is computed according to its polynomial /// approximation -/// Begin_Latex -/// Ker(x) = -#left(ln #frac{|x|}{2} + #gamma#right) Ber(x) + #left(#frac{#pi}{4} - #delta#right) Bei(x) + #sum_{n #geq 0} #frac{(-1)^{n}}{[(2n)!]^{2}} H_{2n} #left(#frac{x}{2}#right)^{4n} -/// End_Latex -/// where Begin_Latex #gamma = 0.577215664... End_Latex is the Euler-Mascheroni constant, -/// Begin_Latex #delta = #pi End_Latex for x < 0 and is otherwise zero, and -/// Begin_Latex -/// H_{n} = #sum_{k = 1}^{n} #frac{1}{k} -/// End_Latex +/// \f[ +/// Ker(x) = -\left(ln \frac{|x|}{2} + \gamma\right) Ber(x) + \left(\frac{\pi}{4} - \delta\right) Bei(x) + \sum_{n \geq 0} \frac{(-1)^{n}}{[(2n)!]^{2}} H_{2n} \left(\frac{x}{2}\right)^{4n} +/// \f] +/// where \f$\gamma = 0.577215664...\f$ is the Euler-Mascheroni constant, +/// \f$\delta = \pi\f$ for x < 0 and is otherwise zero, and +/// \f[ +/// H_{n} = \sum_{k = 1}^{n} \frac{1}{k} +/// \f] /// For x > fgMin, Ker(x) is computed according to its asymptotic /// expansion: -/// Begin_Latex -/// Ker(x) = #sqrt{#frac{#pi}{2x}} e^{-x/#sqrt{2}} [F2(x) cos#beta + G2(x) sin#beta] -/// End_Latex -/// where Begin_Latex #beta = #frac{x}{#sqrt{2}} + #frac{#pi}{8} End_Latex -/// See also F2(x) and G2(x). +/// \f[ +/// Ker(x) = \sqrt{\frac{\pi}{2x}} e^{-x/\sqrt{2}} [F2(x) cos\beta + G2(x) sin\beta] +/// \f] +/// where \f$\beta = \frac{x}{\sqrt{2}} + \frac{\pi}{8}\f$. +/// +/// See also F2() and G2(). /// /// Begin_Macro /// { @@ -227,29 +227,30 @@ double KelvinFunctions::Ker(double x) //////////////////////////////////////////////////////////////////////////////// -/// Begin_Latex -/// Kei(x) = Kei_{0}(x) = Im#left[K_{0}#left(x e^{3#pii/4}#right)#right] -/// End_Latex -/// where x is real, and Begin_Latex K_{0}(z) End_Latex is the zeroth-order modified +/// \f[ +/// Kei(x) = Kei_{0}(x) = Im\left[K_{0}\left(x e^{3\pi i/4}\right)\right] +/// \f] +/// where x is real, and \f$K_{0}(z)\f$ is the zeroth-order modified /// Bessel function of the second kind. /// /// If x < fgMin (=20), Kei(x) is computed according to its polynomial /// approximation -/// Begin_Latex -/// Kei(x) = -#left(ln #frac{x}{2} + #gamma#right) Bei(x) - #left(#frac{#pi}{4} - #delta#right) Ber(x) + #sum_{n #geq 0} #frac{(-1)^{n}}{[(2n)!]^{2}} H_{2n} #left(#frac{x}{2}#right)^{4n+2} -/// End_Latex -/// where Begin_Latex #gamma = 0.577215664... End_Latex is the Euler-Mascheroni constant, -/// Begin_Latex #delta = #pi End_Latex for x < 0 and is otherwise zero, and -/// Begin_Latex -/// H_{n} = #sum_{k = 1}^{n} #frac{1}{k} -/// End_Latex +/// \f[ +/// Kei(x) = -\left(ln \frac{x}{2} + \gamma\right) Bei(x) - \left(\frac{\pi}{4} - \delta\right) Ber(x) + \sum_{n \geq 0} \frac{(-1)^{n}}{[(2n)!]^{2}} H_{2n} \left(\frac{x}{2}\right)^{4n+2} +/// \f] +/// where \f$\gamma = 0.577215664...\f$ is the Euler-Mascheroni constant, +/// \f$\delta = \pi\f$ for x < 0 and is otherwise zero, and +/// \f[ +/// H_{n} = \sum_{k = 1}^{n} \frac{1}{k} +/// \f] /// For x > fgMin, Kei(x) is computed according to its asymptotic /// expansion: -/// Begin_Latex -/// Kei(x) = - #sqrt{#frac{#pi}{2x}} e^{-x/#sqrt{2}} [F2(x) sin#beta + G2(x) cos#beta] -/// End_Latex -/// where Begin_Latex #beta = #frac{x}{#sqrt{2}} + #frac{#pi}{8} End_Latex -/// See also F2(x) and G2(x). +/// \f[ +/// Kei(x) = - \sqrt{\frac{\pi}{2x}} e^{-x/\sqrt{2}} [F2(x) sin\beta + G2(x) cos\beta] +/// \f] +/// where \f$\beta = \frac{x}{\sqrt{2}} + \frac{\pi}{8}\f$. +/// +/// See also F2() and G2(). /// /// Begin_Macro /// { @@ -298,10 +299,10 @@ double KelvinFunctions::Kei(double x) /// If x < fgMin (=20), DBer(x) is computed according to the derivative of /// the polynomial approximation of Ber(x). Otherwise it is computed /// according to its asymptotic expansion -/// Begin_Latex -/// #frac{d}{dx} Ber(x) = M cos#left(#theta - #frac{#pi}{4}#right) -/// End_Latex -/// See also M(x) and Theta(x). +/// \f[ +/// \frac{d}{dx} Ber(x) = M cos\left(\theta - \frac{\pi}{4}\right) +/// \f] +/// See also M() and Theta(). /// /// Begin_Macro /// { @@ -343,10 +344,10 @@ double KelvinFunctions::DBer(double x) /// If x < fgMin (=20), DBei(x) is computed according to the derivative of /// the polynomial approximation of Bei(x). Otherwise it is computed /// according to its asymptotic expansion -/// Begin_Latex -/// #frac{d}{dx} Bei(x) = M sin#left(#theta - #frac{#pi}{4}#right) -/// End_Latex -/// See also M(x) and Theta(x). +/// \f[ +/// \frac{d}{dx} Bei(x) = M sin\left(\theta - \frac{\pi}{4}\right) +/// \f] +/// See also M() and Theta(). /// /// Begin_Macro /// { @@ -388,10 +389,10 @@ double KelvinFunctions::DBei(double x) /// If x < fgMin (=20), DKer(x) is computed according to the derivative of /// the polynomial approximation of Ker(x). Otherwise it is computed /// according to its asymptotic expansion -/// Begin_Latex -/// #frac{d}{dx} Ker(x) = N cos#left(#phi - #frac{#pi}{4}#right) -/// End_Latex -/// See also N(x) and Phi(x). +/// \f[ +/// \frac{d}{dx} Ker(x) = N cos\left(\phi - \frac{\pi}{4}\right) +/// \f] +/// See also N() and Phi(). /// /// Begin_Macro /// { @@ -436,10 +437,10 @@ double KelvinFunctions::DKer(double x) /// If x < fgMin (=20), DKei(x) is computed according to the derivative of /// the polynomial approximation of Kei(x). Otherwise it is computed /// according to its asymptotic expansion -/// Begin_Latex -/// #frac{d}{dx} Kei(x) = N sin#left(#phi - #frac{#pi}{4}#right) -/// End_Latex -/// See also N(x) and Phi(x). +/// \f[ +/// \frac{d}{dx} Kei(x) = N sin\left(\phi - \frac{\pi}{4}\right) +/// \f] +/// See also N() and Phi(). /// /// Begin_Macro /// { @@ -481,9 +482,9 @@ double KelvinFunctions::DKei(double x) //////////////////////////////////////////////////////////////////////////////// /// Utility function appearing in the calculations of the Kelvin /// functions Bei(x) and Ber(x) (and their derivatives). F1(x) is given by -/// Begin_Latex -/// F1(x) = 1 + #sum_{n #geq 1} #frac{#prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} cos#left(#frac{n#pi}{4}#right) -/// End_Latex +/// \f[ +/// F1(x) = 1 + \sum_{n \geq 1} \frac{\prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} cos\left(\frac{n\pi}{4}\right) +/// \f] double KelvinFunctions::F1(double x) { @@ -510,9 +511,9 @@ double KelvinFunctions::F1(double x) //////////////////////////////////////////////////////////////////////////////// /// Utility function appearing in the calculations of the Kelvin /// functions Kei(x) and Ker(x) (and their derivatives). F2(x) is given by -/// Begin_Latex -/// F2(x) = 1 + #sum_{n #geq 1} (-1)^{n} #frac{#prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} cos#left(#frac{n#pi}{4}#right) -/// End_Latex +/// \f[ +/// F2(x) = 1 + \sum_{n \geq 1} (-1)^{n} \frac{\prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} cos\left(\frac{n\pi}{4}\right) +/// \f] double KelvinFunctions::F2(double x) { @@ -541,9 +542,9 @@ double KelvinFunctions::F2(double x) //////////////////////////////////////////////////////////////////////////////// /// Utility function appearing in the calculations of the Kelvin /// functions Bei(x) and Ber(x) (and their derivatives). G1(x) is given by -/// Begin_Latex -/// G1(x) = #sum_{n #geq 1} #frac{#prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} sin#left(#frac{n#pi}{4}#right) -/// End_Latex +/// \f[ +/// G1(x) = \sum_{n \geq 1} \frac{\prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} sin\left(\frac{n\pi}{4}\right) +/// \f] double KelvinFunctions::G1(double x) { @@ -568,9 +569,9 @@ double KelvinFunctions::G1(double x) //////////////////////////////////////////////////////////////////////////////// /// Utility function appearing in the calculations of the Kelvin /// functions Kei(x) and Ker(x) (and their derivatives). G2(x) is given by -/// Begin_Latex -/// G2(x) = #sum_{n #geq 1} (-1)^{n} #frac{#prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} sin#left(#frac{n#pi}{4}#right) -/// End_Latex +/// \f[ +/// G2(x) = \sum_{n \geq 1} (-1)^{n} \frac{\prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} sin\left(\frac{n\pi}{4}\right) +/// \f] double KelvinFunctions::G2(double x) { @@ -597,9 +598,9 @@ double KelvinFunctions::G2(double x) //////////////////////////////////////////////////////////////////////////////// /// Utility function appearing in the asymptotic expansions of DBer(x) and /// DBei(x). M(x) is given by -/// Begin_Latex -/// M(x) = #frac{e^{x/#sqrt{2}}}{#sqrt{2#pix}}#left(1 + #frac{1}{8#sqrt{2} x} + #frac{1}{256 x^{2}} - #frac{399}{6144#sqrt{2} x^{3}} + O#left(#frac{1}{x^{4}}#right)#right) -/// End_Latex +/// \f[ +/// M(x) = \frac{e^{x/\sqrt{2}}}{\sqrt{2\pi x}}\left(1 + \frac{1}{8\sqrt{2} x} + \frac{1}{256 x^{2}} - \frac{399}{6144\sqrt{2} x^{3}} + O\left(\frac{1}{x^{4}}\right)\right) +/// \f] double KelvinFunctions::M(double x) { @@ -612,10 +613,10 @@ double KelvinFunctions::M(double x) //////////////////////////////////////////////////////////////////////////////// /// Utility function appearing in the asymptotic expansions of DBer(x) and -/// DBei(x). Begin_Latex #theta(x) #End_Latex is given by -/// Begin_Latex -/// #theta(x) = #frac{x}{#sqrt{2}} - #frac{#pi}{8} - #frac{1}{8#sqrt{2} x} - #frac{1}{16 x^{2}} - #frac{25}{384#sqrt{2} x^{3}} + O#left(#frac{1}{x^{5}}#right) -/// End_Latex +/// DBei(x). \f$\theta(x)\f$ is given by +/// \f[ +/// \theta(x) = \frac{x}{\sqrt{2}} - \frac{\pi}{8} - \frac{1}{8\sqrt{2} x} - \frac{1}{16 x^{2}} - \frac{25}{384\sqrt{2} x^{3}} + O\left(\frac{1}{x^{5}}\right) +/// \f] double KelvinFunctions::Theta(double x) { @@ -628,10 +629,10 @@ double KelvinFunctions::Theta(double x) //////////////////////////////////////////////////////////////////////////////// /// Utility function appearing in the asymptotic expansions of DKer(x) and -/// DKei(x). (x) is given by -/// Begin_Latex -/// N(x) = #sqrt{#frac{#pi}{2x}} e^{-x/#sqrt{2}} #left(1 - #frac{1}{8#sqrt{2} x} + #frac{1}{256 x^{2}} + #frac{399}{6144#sqrt{2} x^{3}} + O#left(#frac{1}{x^{4}}#right)#right) -/// End_Latex +/// DKei(x). N(x) is given by +/// \f[ +/// N(x) = \sqrt{\frac{\pi}{2x}} e^{-x/\sqrt{2}} \left(1 - \frac{1}{8\sqrt{2} x} + \frac{1}{256 x^{2}} + \frac{399}{6144\sqrt{2} x^{3}} + O\left(\frac{1}{x^{4}}\right)\right) +/// \f] double KelvinFunctions::N(double x) { @@ -644,10 +645,10 @@ double KelvinFunctions::N(double x) //////////////////////////////////////////////////////////////////////////////// /// Utility function appearing in the asymptotic expansions of DKer(x) and -/// DKei(x). Begin_Latex #phi(x) #End_Latex is given by -/// Begin_Latex -/// #phi(x) = - #frac{x}{#sqrt{2}} - #frac{#pi}{8} + #frac{1}{8#sqrt{2} x} - #frac{1}{16 x^{2}} + #frac{25}{384#sqrt{2} x^{3}} + O#left(#frac{1}{x^{5}}#right) -/// End_Latex +/// DKei(x). \f$\phi(x)\f$ is given by +/// \f[ +/// \phi(x) = - \frac{x}{\sqrt{2}} - \frac{\pi}{8} + \frac{1}{8\sqrt{2} x} - \frac{1}{16 x^{2}} + \frac{25}{384\sqrt{2} x^{3}} + O\left(\frac{1}{x^{5}}\right) +/// \f] double KelvinFunctions::Phi(double x) { diff --git a/roofit/roostats/inc/RooStats/HybridResult.h b/roofit/roostats/inc/RooStats/HybridResult.h index a60472d10dbd8..20e8032996e81 100644 --- a/roofit/roostats/inc/RooStats/HybridResult.h +++ b/roofit/roostats/inc/RooStats/HybridResult.h @@ -85,7 +85,7 @@ namespace RooStats { /// The error on the "confidence level" of the alternative hypothesis Double_t CLsplusbError() const; - /// The error on the ratio CLs+b/CLb + /// The error on the ratio \f$CL_{s+b}/CL_{b}\f$ Double_t CLsError() const; private: diff --git a/roofit/roostats/inc/RooStats/HypoTestResult.h b/roofit/roostats/inc/RooStats/HypoTestResult.h index ea001899e6e97..b84383a00d167 100644 --- a/roofit/roostats/inc/RooStats/HypoTestResult.h +++ b/roofit/roostats/inc/RooStats/HypoTestResult.h @@ -37,11 +37,12 @@ namespace RooStats { Any tool inheriting from HypoTestCalculator can return a HypoTestResult. As such, it stores a p-value for the null-hypothesis (eg. background-only) and an alternate hypothesis (eg. signal+background). - The p-values can also be transformed into confidence levels (CLb, CLsplusb) in a trivial way. - The ratio of the CLsplusb to CLb is often called CLs, and is considered useful, though it is - not a probability. - Finally, the p-value of the null can be transformed into a number of equivalent Gaussian sigma using the - Significance method. + The p-values can also be transformed into confidence levels + (\f$CL_{b}\f$, \f$CL_{s+b}\f$) in a trivial way. + The ratio of the \f$CL_{s+b}\f$ to \f$CL_{b}\f$ is often called + \f$CL_{s}\f$, and is considered useful, though it is not a probability. + Finally, the p-value of the null can be transformed into a number of + equivalent Gaussian sigma using the Significance method. The p-value of the null for a given test statistic is rigorously defined and this is the starting point for the following conventions. @@ -52,17 +53,17 @@ The p-value for the null and alternate are on the **same side** of the observed value of the test statistic. This is the more standard convention and avoids confusion when doing inverted tests. -For exclusion, we also want the formula -CLs = CLs+b / CLb to hold which therefore defines our conventions -for CLs+b and CLb. CLs was specifically invented for exclusion +For exclusion, we also want the formula \f$CL_{s} = CL_{s+b} / CL_{b}\f$ +to hold which therefore defines our conventions for \f$CL_{s+b}\f$ and +\f$CL_{b}\f$. \f$CL_{s}\f$ was specifically invented for exclusion and therefore all quantities need be related through the assignments -as they are for exclusion: **CLs+b = p_{s+b}; CLb = p_b**. This +as they are for exclusion: \f$CL_{s+b} = p_{s+b}\f$; \f$CL_{b} = p_{b}\f$. This is derived by considering the scenarios of a powerful and not powerful -inverted test, where for the not so powerful test, CLs must be +inverted test, where for the not so powerful test, \f$CL_{s}\f$ must be close to one. For results of Hypothesis tests, -CLs has no similar direct interpretation as for exclusion and can +\f$CL_{s}\f$ has no similar direct interpretation as for exclusion and can be larger than one. */ @@ -101,7 +102,7 @@ be larger than one. /// Convert AlternatePValue into a "confidence level" virtual Double_t CLsplusb() const { return !fBackgroundIsAlt ? AlternatePValue() : NullPValue(); } - /// CLs is simply CLs+b/CLb (not a method, but a quantity) + /// \f$CL_{s}\f$ is simply \f$CL_{s+b}/CL_{b}\f$ (not a method, but a quantity) virtual Double_t CLs() const { double thisCLb = CLb(); if (thisCLb == 0) { @@ -144,7 +145,7 @@ be larger than one. /// The error on the "confidence level" of the alternative hypothesis Double_t CLsplusbError() const; - /// The error on the ratio CLs+b/CLb + /// The error on the ratio \f$CL_{s+b}/CL_{b}\f$ Double_t CLsError() const; /// The error on the Null p-value diff --git a/roofit/roostats/src/HybridResult.cxx b/roofit/roostats/src/HybridResult.cxx index 5980825e5e940..51a367a44dc6e 100644 --- a/roofit/roostats/src/HybridResult.cxx +++ b/roofit/roostats/src/HybridResult.cxx @@ -100,11 +100,9 @@ void HybridResult::SetDataTestStatistics(double testStat_data_val) } /////////////////////////////////////////////////////////////////////////// - +/// Returns \f$1 - CL_{b}\f$ : the B p-value double HybridResult::NullPValue() const { - // return 1-CL_b : the B p-value - if (fComputationsNulDoneFlag==false) { int nToys = fTestStat_b.size(); if (nToys==0) { @@ -131,11 +129,9 @@ double HybridResult::NullPValue() const } /////////////////////////////////////////////////////////////////////////// - +/// Returns \f$CL_{s+b}\f$ : the S+B p-value double HybridResult::AlternatePValue() const { - // return CL_s+b : the S+B p-value - if (fComputationsAltDoneFlag==false) { int nToys = fTestStat_b.size(); if (nToys==0) { @@ -162,40 +158,37 @@ double HybridResult::AlternatePValue() const } /////////////////////////////////////////////////////////////////////////// - +/// Returns an estimate of the error on \f$CL_{b}\f$ assuming a binomial +/// error on \f$CL_{b}\f$: +/// \f[ +/// \sigma_{CL_{b}} = \sqrt{CL_{b} \left( 1 - CL_{b} \right) / n_{toys}} +/// \f] Double_t HybridResult::CLbError() const { - // Returns an estimate of the error on CLb assuming a binomial error on - // CLb: - // BEGIN_LATEX - // #sigma_{CL_{b}} &=& #sqrt{CL_{b} #left( 1 - CL_{b} #right) / n_{toys}} - // END_LATEX unsigned const int n = fTestStat_b.size(); return TMath::Sqrt(CLb() * (1. - CLb()) / n); } /////////////////////////////////////////////////////////////////////////// - +/// Returns an estimate of the error on \f$CL_{s+b}\f$ assuming a binomial +/// error on \f$CL_{s+b}\f$: +/// \f[ +/// \sigma_{CL_{s+b}} = \sqrt{CL_{s+b} \left( 1 - CL_{s+b} \right) / n_{toys}} +/// \f] Double_t HybridResult::CLsplusbError() const { - // Returns an estimate of the error on CLsplusb assuming a binomial - // error on CLsplusb: - // BEGIN_LATEX - // #sigma_{CL_{s+b}} &=& #sqrt{CL_{s+b} #left( 1 - CL_{s+b} #right) / n_{toys}} - // END_LATEX unsigned const int n = fTestStat_sb.size(); return TMath::Sqrt(CLsplusb() * (1. - CLsplusb()) / n); } /////////////////////////////////////////////////////////////////////////// - +/// Returns an estimate of the error on \f$CL_{s}\f$ through combination +/// of the errors on \f$CL_{b}\f$ and \f$CL_{s+b}\f$: +/// \f[ +/// \sigma_{CL_s} = CL_s \sqrt{\left( \frac{\sigma_{CL_{s+b}}}{CL_{s+b}} \right)^2 + \left( \frac{\sigma_{CL_{b}}}{CL_{b}} \right)^2} +/// \f] Double_t HybridResult::CLsError() const { - // Returns an estimate of the error on CLs through combination of the - // errors on CLb and CLsplusb: - // BEGIN_LATEX - // #sigma_{CL_s} &=& CL_s #sqrt{#left( #frac{#sigma_{CL_{s+b}}}{CL_{s+b}} #right)^2 + #left( #frac{#sigma_{CL_{b}}}{CL_{b}} #right)^2} - // END_LATEX unsigned const int n_b = fTestStat_b.size(); unsigned const int n_sb = fTestStat_sb.size(); diff --git a/roofit/roostats/src/HypoTestResult.cxx b/roofit/roostats/src/HypoTestResult.cxx index 430ef2bc5f0de..ec6b129652e40 100644 --- a/roofit/roostats/src/HypoTestResult.cxx +++ b/roofit/roostats/src/HypoTestResult.cxx @@ -230,8 +230,8 @@ Double_t HypoTestResult::NullPValueError() const { } //////////////////////////////////////////////////////////////////////////////// -/// compute CLb error -/// Clb = 1 - NullPValue() +/// compute \f$CL_{b}\f$ error +/// \f$CL_{b}\f$ = 1 - NullPValue() /// must use opposite condition that routine above Double_t HypoTestResult::CLbError() const { @@ -252,12 +252,12 @@ Double_t HypoTestResult::SignificanceError() const { } //////////////////////////////////////////////////////////////////////////////// -/// Returns an estimate of the error on CLs through combination of the -/// errors on CLb and CLsplusb: -/// BEGIN_LATEX -/// #sigma_{CL_s} = CL_s -/// #sqrt{#left( #frac{#sigma_{CL_{s+b}}}{CL_{s+b}} #right)^2 + #left( #frac{#sigma_{CL_{b}}}{CL_{b}} #right)^2} -/// END_LATEX +/// Returns an estimate of the error on \f$CL_{s}\f$ through combination of the +/// errors on \f$CL_{b}\f$ and \f$CL_{s+b}\f$: +/// \f[ +/// \sigma_{CL_s} = CL_s +/// \sqrt{\left( \frac{\sigma_{CL_{s+b}}}{CL_{s+b}} \right)^2 + \left( \frac{\sigma_{CL_{b}}}{CL_{b}} \right)^2} +/// \f] Double_t HypoTestResult::CLsError() const { if(!fAltDistr || !fNullDistr) return 0.0; From cfb13581a12c2de92456e0e7b2261a1b005aa707 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Apr 2016 18:40:13 +0200 Subject: [PATCH 07/13] Remove some Begin_Html/End_Html tags This is not an attempt to convert the documentation to doxygen format. It is rather an attempt to address leftovers from a partial (automated?) convertion that left some of the Begin_Html/End_Html tags behind. Tags that now show up verbatim in the generated doxygen documentation. Most of these files still requires proper doxygen conversion. --- gui/gui/src/TGTextEntry.cxx | 12 --- hist/hist/src/TMultiDimFit.cxx | 32 +++--- math/foam/src/TFoam.cxx | 100 +++++++----------- montecarlo/eg/src/TDatabasePDG.cxx | 15 +-- .../inc/RooStats/IntervalCalculator.h | 2 +- 5 files changed, 61 insertions(+), 100 deletions(-) diff --git a/gui/gui/src/TGTextEntry.cxx b/gui/gui/src/TGTextEntry.cxx index be691202528b1..eea56787a0db7 100644 --- a/gui/gui/src/TGTextEntry.cxx +++ b/gui/gui/src/TGTextEntry.cxx @@ -42,7 +42,6 @@ // // This enum type describes the ways in which TGTextEntry can display // its contents. The currently defined values are: -//Begin_Html /*
  • kNormal - display characters as they are entered. This is the default. @@ -50,14 +49,12 @@
  • kPassword - display asterisks instead of the characters actually entered.
*/ -//End_Html // See also SetEchoMode(), GetEchoMode(). // // enum TGTextEntry::EInsertMode // // This enum type describes the way how typed characters are // inserted in the text entry. This mode is switched by "Insert" key. -//Begin_Html /*
  • kInsert - typed character are inserted (cursor has shape of short line). @@ -65,13 +62,11 @@ (cursor has the shape of filled rectangle).
*/ -//End_Html // // enum TGWidget::ETextJustification // // This enum type (defined in TGWidget.h) describes the text alignment modes. // These modes are valid untill text fits the frame width -//Begin_Html /*
  • kTextLeft - left-side text alignment @@ -79,12 +74,10 @@
  • kTextCenterX - center text alignment
*/ -//End_Html // // // The key press event handler converts a key press to some line editor action. // Here are the default key bindings: -//Begin_Html /*
  • Left Arrow @@ -153,7 +146,6 @@
All other keys with valid ASCII codes insert themselves into the line. */ -//End_Html // //////////////////////////////////////////////////////////////////////////////// @@ -658,13 +650,11 @@ void TGTextEntry::SetMaxLength(Int_t maxlen) //////////////////////////////////////////////////////////////////////////////// /// The echo modes available are: -///Begin_Html ///
    ///
  • kNormal - display characters as they are entered. This is the default. ///
  • kNoEcho - do not display anything. ///
  • kPassword - display asterisks instead of the characters actually entered. ///
-///End_Html /// It is always possible to cut and paste any marked text; only the widget's own /// display is affected. /// See also GetEchoMode(), GetDisplayText(). @@ -1154,7 +1144,6 @@ void TGTextEntry::DoRedraw() //////////////////////////////////////////////////////////////////////////////// /// The key press event handler converts a key press to some line editor /// action. Here are the default key bindings: -///Begin_Html ///
    ///
  • Left Arrow /// Move the cursor one character leftwards. @@ -1220,7 +1209,6 @@ void TGTextEntry::DoRedraw() ///
  • Control-Y /// Paste the clipboard text into line edit. ///
-///End_Html /// All other keys with valid ASCII codes insert themselves into the line. Bool_t TGTextEntry::HandleKey(Event_t* event) diff --git a/hist/hist/src/TMultiDimFit.cxx b/hist/hist/src/TMultiDimFit.cxx index 1b8d390bd8632..eb8205aef5446 100644 --- a/hist/hist/src/TMultiDimFit.cxx +++ b/hist/hist/src/TMultiDimFit.cxx @@ -603,7 +603,7 @@ TMultiDimFit::~TMultiDimFit() /// Please note, that if no error is given Poisson statistics is /// assumed and the square error is set to the value of dependent /// quantity. See also the -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::AddRow(const Double_t *x, Double_t D, Double_t E) { @@ -682,7 +682,7 @@ void TMultiDimFit::AddRow(const Double_t *x, Double_t D, Double_t E) /// Please note, that if no error is given Poisson statistics is /// assumed and the square error is set to the value of dependent /// quantity. See also the -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::AddTestRow(const Double_t *x, Double_t D, Double_t E) { @@ -986,7 +986,7 @@ Double_t TMultiDimFit::EvalFactor(Int_t p, Double_t x) const /// None so far /// /// For detailed description of what this entails, please refer to the -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::FindParameterization(Option_t *) { @@ -1005,7 +1005,7 @@ void TMultiDimFit::FindParameterization(Option_t *) /// M use Minuit to improve coefficients /// /// Also, refer to -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::Fit(Option_t *option) { @@ -1097,7 +1097,7 @@ TMultiDimFit* TMultiDimFit::Instance() /// PRIVATE METHOD: /// Create list of candidate functions for the parameterisation. See /// also -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::MakeCandidates() { @@ -1354,7 +1354,7 @@ void TMultiDimFit::MakeCoefficientErrors() /// 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_Htmlclass descriptionEnd_Html +/// class description /// /// First we invert the lower triangle matrix fOrthCurvatureMatrix /// and store the inverted matrix in the upper triangle. @@ -1496,7 +1496,7 @@ void TMultiDimFit::MakeCorrelation() /// Make Gram-Schmidt orthogonalisation. The class description gives /// a thorough account of this algorithm, as well as /// references. Please refer to the -/// Begin_Htmlclass descriptionEnd_Html +/// class description Double_t TMultiDimFit::MakeGramSchmidt(Int_t function) { @@ -1589,7 +1589,7 @@ Double_t TMultiDimFit::MakeGramSchmidt(Int_t function) /// R4 Residuals computed on test sample /// /// For a description of these quantities, refer to -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::MakeHistograms(Option_t *option) { @@ -1800,7 +1800,7 @@ void TMultiDimFit::MakeNormalized() /// PRIVATE METHOD: /// Find the parameterization over the training sample. A full account /// of the algorithm is given in the -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::MakeParameterization() { @@ -2365,7 +2365,7 @@ Bool_t TMultiDimFit::Select(const Int_t *) /// be fitted, and the new candidate function to be included in the /// fit. By default it is 0, which automatically chooses another /// selection criteria. See also -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::SetMaxAngle(Double_t ang) { @@ -2381,7 +2381,7 @@ void TMultiDimFit::SetMaxAngle(Double_t ang) /// Set the min angle (in degrees) between a new candidate function /// and the subspace spanned by the previously accepted /// functions. See also -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::SetMinAngle(Double_t ang) { @@ -2401,7 +2401,7 @@ void TMultiDimFit::SetMinAngle(Double_t ang) /// 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 /// second the variable. More information is given in the -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::SetPowers(const Int_t* powers, Int_t terms) { @@ -2421,7 +2421,7 @@ void TMultiDimFit::SetPowers(const Int_t* powers, Int_t terms) /// 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_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::SetPowerLimit(Double_t limit) { @@ -2431,7 +2431,7 @@ void TMultiDimFit::SetPowerLimit(Double_t limit) //////////////////////////////////////////////////////////////////////////////// /// Set the maximum power to be considered in the fit for each /// variable. See also -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::SetMaxPowers(const Int_t* powers) { @@ -2446,7 +2446,7 @@ void TMultiDimFit::SetMaxPowers(const Int_t* powers) /// Set the acceptable relative error for when sum of square /// residuals is considered minimized. For a full account, refer to /// the -/// Begin_Htmlclass descriptionEnd_Html +/// class description void TMultiDimFit::SetMinRelativeError(Double_t error) { @@ -2458,7 +2458,7 @@ void TMultiDimFit::SetMinRelativeError(Double_t error) /// PRIVATE METHOD: /// Test whether the currently considered function contributes to the /// fit. See also -/// Begin_Htmlclass descriptionEnd_Html +/// class description Bool_t TMultiDimFit::TestFunction(Double_t squareResidual, Double_t dResidur) diff --git a/math/foam/src/TFoam.cxx b/math/foam/src/TFoam.cxx index fb1b3e05d361d..13f1c06855456 100644 --- a/math/foam/src/TFoam.cxx +++ b/math/foam/src/TFoam.cxx @@ -25,20 +25,15 @@ // Monte Carlo event generator (integrator) FOAM. // It creates hyper-rectangular "foam of cells", which is more dense around its peaks. // See the following 2-dim. example of the map of 1000 cells for doubly peaked distribution: -//BEGIN_HTML - -END_HTML +// +// +// // FOAM is now fully integrated with the ROOT package. // The important bonus of the ROOT use is persistency of the FOAM objects! // // For more sophisticated problems full version of FOAM may be more appropriate: -//BEGIN_HTML - See full version of FOAM -END_HTML +// See [full version of FOAM](http://jadach.home.cern.ch/jadach/Foam/Index.html) +// // Simple example of the use of FOAM: // ================================== // Int_t kanwa(){ @@ -81,11 +76,9 @@ // return 0.5*Dist; // }// Camel2 // Two-dim. histogram of the MC points generated with the above program looks as follows: -//BEGIN_HTML - -END_HTML +// +// +// // Canonical nine steering parameters of FOAM // =========================================== //------------------------------------------------------------------------------ @@ -266,10 +259,10 @@ TFoam::TFoam(const Char_t* Name) : //////////////////////////////////////////////////////////////////////////////// /// Default destructor -/// std::cout<<" DESTRUCTOR entered "< +/// +/// This method invokes several other methods: +/// ========================================== +/// InitCells initializes memory storage for cells and begins exploration process +/// from the root cell. The empty cells are allocated/filled using CellFill. +/// The procedure Grow which loops over cells, picks up the cell with the biggest +/// ``driver integral'', see Comp. Phys. Commun. 152 152 (2003) 55 for explanations, +/// with the help of PeekMax procedure. The chosen cell is split using Divide. +/// Subsequently, the procedure Explore called by the Divide +/// (and by InitCells for the root cell) does the most important +/// job in the FOAM object build-up: it performs a small MC run for each +/// newly allocated daughter cell. +/// Explore calculates how profitable the future split of the cell will be +/// and defines the optimal cell division geometry with the help of Carver or Varedu +/// procedures, for maximum weight or variance optimization respectively. +/// All essential results of the exploration are written into +/// the explored cell object. At the very end of the foam build-up, +/// Finally, MakeActiveList is invoked to create a list of pointers to +/// all active cells, for the purpose of the quick access during the MC generation. +/// The procedure Explore employs MakeAlpha to generate random coordinates +/// inside a given cell with the uniform distribution. +/// The above sequence of the procedure calls is depicted in the following figure: +/// +// void TFoam::Initialize(TRandom *PseRan, TFoamIntegrand *fun ) { -/* --> - -END_HTML -// -// This method invokes several other methods: -// ========================================== -// InitCells initializes memory storage for cells and begins exploration process -// from the root cell. The empty cells are allocated/filled using CellFill. -// The procedure Grow which loops over cells, picks up the cell with the biggest -// ``driver integral'', see Comp. Phys. Commun. 152 152 (2003) 55 for explanations, -// with the help of PeekMax procedure. The chosen cell is split using Divide. -// Subsequently, the procedure Explore called by the Divide -// (and by InitCells for the root cell) does the most important -// job in the FOAM object build-up: it performs a small MC run for each -// newly allocated daughter cell. -// Explore calculates how profitable the future split of the cell will be -// and defines the optimal cell division geometry with the help of Carver or Varedu -// procedures, for maximum weight or variance optimization respectively. -// All essential results of the exploration are written into -// the explored cell object. At the very end of the foam build-up, -// Finally, MakeActiveList is invoked to create a list of pointers to -// all active cells, for the purpose of the quick access during the MC generation. -// The procedure Explore employs MakeAlpha to generate random coordinates -// inside a given cell with the uniform distribution. -// The above sequence of the procedure calls is depicted in the following figure: -//BEGIN_HTML - -END_HTML - SetPseRan(PseRan); SetRho(fun); Initialize(); @@ -1363,15 +1349,11 @@ void TFoam::Finalize(Double_t& IntNorm, Double_t& Errel) /// It defines which variables are excluded in the process of the cell division. /// For example 'FoamX->SetInhiDiv(1, 1);' inhibits division of y-variable. /// The resulting map of cells in 2-dim. case will look as follows: -///BEGIN_HTML - -END_HTML - if(fDim==0) Error("TFoam","SetInhiDiv: fDim=0 \n"); if(fInhiDiv == 0) { fInhiDiv = new Int_t[ fDim ]; @@ -1391,15 +1373,11 @@ void TFoam::SetInhiDiv(Int_t iDim, Int_t InhiDiv) /// xDiv[0]=0.30; xDiv[1]=0.40; xDiv[2]=0.65; /// FoamX->SetXdivPRD(0,3,xDiv); /// results in the following 2-dim. pattern of the cells: -///BEGIN_HTML - -END_HTML - Int_t i; if(fDim<=0) Error("SetXdivPRD", "fDim=0 \n"); diff --git a/montecarlo/eg/src/TDatabasePDG.cxx b/montecarlo/eg/src/TDatabasePDG.cxx index 17c1059317e27..dd8dfe8791481 100644 --- a/montecarlo/eg/src/TDatabasePDG.cxx +++ b/montecarlo/eg/src/TDatabasePDG.cxx @@ -238,19 +238,14 @@ void TDatabasePDG::Print(Option_t *option) const /// PDG convention already) /// Source: BaBar User Guide, Neil I. Geddes, /// -///Begin_Html +/// See Conversion table +/// with some fixes by PB, marked with (PB) below. Checked against +/// PDG listings from 2000. +/// +/// Paul Balm, Nov 19, 2001 Int_t TDatabasePDG::ConvertGeant3ToPdg(Int_t Geant3number) const { - /* - see Conversion table - */ - //End_Html - // with some fixes by PB, marked with (PB) below. Checked against - // PDG listings from 2000. - // - // Paul Balm, Nov 19, 2001 - switch(Geant3number) { case 1 : return 22; // photon diff --git a/roofit/roostats/inc/RooStats/IntervalCalculator.h b/roofit/roostats/inc/RooStats/IntervalCalculator.h index 61d545a3dddb4..0e00a3fbdf4e1 100644 --- a/roofit/roostats/inc/RooStats/IntervalCalculator.h +++ b/roofit/roostats/inc/RooStats/IntervalCalculator.h @@ -50,7 +50,7 @@ After configuring the calculator, one only needs to ask GetInterval, which will The concrete implementations of this interface should deal with the details of how the nuisance parameters are dealt with (eg. integration vs. profiling) and which test-statistic is used (perhaps this should be added to the interface). -The motivation for this interface is that we hope to be able to specify the problem in a common way for several concrete calculators.END_HTML +The motivation for this interface is that we hope to be able to specify the problem in a common way for several concrete calculators. */ From 9e1cea8b9f48001f6e149053fe0db0d543375660 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Sun, 10 Apr 2016 18:40:19 +0200 Subject: [PATCH 08/13] Replace broken links with working ones --- documentation/users-guide/PhysicsVectors.md | 2 +- hist/hist/src/TVirtualFitter.cxx | 6 +++--- man/man1/g2root.1 | 2 +- man/man1/g2rootold.1 | 12 ++++++------ math/doc/v520/index.html | 2 +- math/mathcore/inc/Math/PdfFuncMathCore.h | 2 +- math/mathcore/inc/Math/ProbFuncMathCore.h | 6 +++--- math/mathcore/inc/Math/QuantFuncMathCore.h | 2 +- math/mathcore/inc/Math/SpecFuncMathCore.h | 4 ++-- math/mathmore/inc/Math/SpecFuncMathMore.h | 4 ++-- math/mathmore/inc/Math/Vavilov.h | 4 ++-- math/mathmore/inc/Math/VavilovAccurate.h | 2 +- math/mathmore/inc/Math/VavilovFast.h | 2 +- math/mathmore/src/SpecFuncMathMore.cxx | 4 ++-- math/minuit/doc/index.txt | 2 +- math/minuit2/doc/Minuit2.html | 2 +- math/minuit2/doc/Minuit2.md | 2 +- math/minuit2/doc/index.txt | 2 +- math/physics/doc/index.md | 2 +- math/smatrix/doc/SMatrixClass.html | 2 +- math/smatrix/doc/SMatrixClass.md | 2 +- misc/table/src/TPolyLineShape.cxx | 4 ++-- misc/table/src/TVolume.cxx | 9 +++++---- 23 files changed, 41 insertions(+), 40 deletions(-) diff --git a/documentation/users-guide/PhysicsVectors.md b/documentation/users-guide/PhysicsVectors.md index d3b4bae8a226e..0d5187346a1ed 100644 --- a/documentation/users-guide/PhysicsVectors.md +++ b/documentation/users-guide/PhysicsVectors.md @@ -5,7 +5,7 @@ The physics vector classes describe vectors in three and four dimensions and their rotation algorithms. The classes were ported to root from CLHEP see: - + ## The Physics Vector Classes diff --git a/hist/hist/src/TVirtualFitter.cxx b/hist/hist/src/TVirtualFitter.cxx index 3885cefe751cf..e914951894c8d 100644 --- a/hist/hist/src/TVirtualFitter.cxx +++ b/hist/hist/src/TVirtualFitter.cxx @@ -331,7 +331,7 @@ void TVirtualFitter::SetFCN(void *fcn) //////////////////////////////////////////////////////////////////////////////// /// static: Set the maximum number of function calls for the minimization algorithm /// For example for MIGRAD this is the maxcalls value passed as first argument -/// (see http://wwwasdoc.web.cern.ch/wwwasdoc/minuit/node18.html ) +/// (see https://cern-tex.web.cern.ch/cern-tex/minuit/node18.html ) void TVirtualFitter::SetMaxIterations(Int_t niter) { @@ -341,7 +341,7 @@ void TVirtualFitter::SetMaxIterations(Int_t niter) //////////////////////////////////////////////////////////////////////////////// /// static: Set the Error Definition (default=1) /// For Minuit this is the value passed with the "SET ERR" command -/// (see http://wwwasdoc.web.cern.ch/wwwasdoc/minuit/node18.html) +/// (see https://cern-tex.web.cern.ch/cern-tex/minuit/node18.html) void TVirtualFitter::SetErrorDef(Double_t errdef) { @@ -356,7 +356,7 @@ void TVirtualFitter::SetErrorDef(Double_t errdef) //////////////////////////////////////////////////////////////////////////////// /// static: Set the tolerance used in the minimization algorithm /// For example for MIGRAD this is tolerance value passed as second argument -/// (see http://wwwasdoc.web.cern.ch/wwwasdoc/minuit/node18.html ) +/// (see https://cern-tex.web.cern.ch/cern-tex/minuit/node18.html ) void TVirtualFitter::SetPrecision(Double_t prec) { diff --git a/man/man1/g2root.1 b/man/man1/g2root.1 index 16c81999b5196..ac1d85e7f00ae 100644 --- a/man/man1/g2root.1 +++ b/man/man1/g2root.1 @@ -13,7 +13,7 @@ g2root \- convert GEANT geometry files to ROOT files You can convert a .B GEANT (see -.I http://wwwinfo.cern.ch/asd/geant/index.html +.I http://geant.cern.ch/ fore more on .BR GEANT ) geometry to diff --git a/man/man1/g2rootold.1 b/man/man1/g2rootold.1 index a8cf1fbd550f6..614e2d836191c 100644 --- a/man/man1/g2rootold.1 +++ b/man/man1/g2rootold.1 @@ -5,15 +5,15 @@ .\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection .\" other parms are allowed: see man(7), man(1) .SH NAME -g2rootold \- convert GEANT geomtry files to ROOT files +g2rootold \- convert GEANT geometry files to ROOT files .SH SYNOPSIS -.B g2rootoldd +.B g2rootold .I [-f map_name] geant_name macro_name .SH "DESCRIPTION" You can convert a .B GEANT (see -.I http://wwwinfo.cern.ch/asd/geant/index.html +.I http://geant.cern.ch/ fore more on .BR GEANT ) geometry to @@ -103,9 +103,9 @@ and .I JDIGI. .SH "SEE ALSO" .RS -.IR root (1), -.IR g2root (1), -.IR h2root(1), +.IR root(1) , +.IR g2root(1) , +.IR h2root(1) , .RE and .RS diff --git a/math/doc/v520/index.html b/math/doc/v520/index.html index 3a5043cd2bbaf..e64ae1df4b0dc 100644 --- a/math/doc/v520/index.html +++ b/math/doc/v520/index.html @@ -74,7 +74,7 @@

MathCore Numerical Algorithms

  • GaussIntegrator and GaussLegendreIntegrator for numerical integration of one-dimensional functions. The first class uses Gaussian 8 and 16 point quadrature approximation, it provides the translation of the CERNLIB algorithm - DGAUSS by Sigfried Kolbig, and it is used by the TF1::Integral method. The second one uses the Gauss Legendre quadrature formula. It is used by the TF1::IntegralFast method. + DGAUSS by Sigfried Kolbig, and it is used by the TF1::Integral method. The second one uses the Gauss Legendre quadrature formula. It is used by the TF1::IntegralFast method. These classes implement both the same virtual interface as the adaptive integration methods provided by the MathMore library. They can all be created and used easily via the common class ROOT::Math::IntegratorOneDim providing the interfaces for numerical integration. New template methods have been also included in the common Integration class in order to be able to integrate automatically any C++ callable object.
  • diff --git a/math/mathcore/inc/Math/PdfFuncMathCore.h b/math/mathcore/inc/Math/PdfFuncMathCore.h index 29326a24424bf..d4f8110da1365 100644 --- a/math/mathcore/inc/Math/PdfFuncMathCore.h +++ b/math/mathcore/inc/Math/PdfFuncMathCore.h @@ -301,7 +301,7 @@ namespace Math { Computer Phys. Comm. 31 (1984) 97-111 [Erratum-ibid. 178 (2008) 972]. The same algorithms as in - + CERNLIB (DENLAN) is used @param x The argument \f$x\f$ diff --git a/math/mathcore/inc/Math/ProbFuncMathCore.h b/math/mathcore/inc/Math/ProbFuncMathCore.h index 2ce4c5a17c228..a9c1a531314e7 100644 --- a/math/mathcore/inc/Math/ProbFuncMathCore.h +++ b/math/mathcore/inc/Math/ProbFuncMathCore.h @@ -381,7 +381,7 @@ namespace Math { Computer Phys. Comm. 31 (1984) 97-111 [Erratum-ibid. 178 (2008) 972]. The same algorithms as in - + CERNLIB (DISLAN) is used. @param x The argument \f$x\f$ @@ -756,7 +756,7 @@ namespace Math { Computer Phys. Comm. 31 (1984) 97-111 [Erratum-ibid. 178 (2008) 972]. The same algorithms as in - + CERNLIB (XM1LAN) is used @param x The argument \f$x\f$ @@ -783,7 +783,7 @@ namespace Math { Computer Phys. Comm. 31 (1984) 97-111 [Erratum-ibid. 178 (2008) 972]. The same algorithms as in - + CERNLIB (XM1LAN) is used @param x The argument \f$x\f$ diff --git a/math/mathcore/inc/Math/QuantFuncMathCore.h b/math/mathcore/inc/Math/QuantFuncMathCore.h index b532cba416e5b..692393b0a43ce 100644 --- a/math/mathcore/inc/Math/QuantFuncMathCore.h +++ b/math/mathcore/inc/Math/QuantFuncMathCore.h @@ -528,7 +528,7 @@ namespace Math { Computer Phys. Comm. 31 (1984) 97-111 [Erratum-ibid. 178 (2008) 972]. The same algorithms as in - + CERNLIB (RANLAN) is used. @param z The argument \f$z\f$ diff --git a/math/mathcore/inc/Math/SpecFuncMathCore.h b/math/mathcore/inc/Math/SpecFuncMathCore.h index 418da1ed56c0b..612534437501f 100644 --- a/math/mathcore/inc/Math/SpecFuncMathCore.h +++ b/math/mathcore/inc/Math/SpecFuncMathCore.h @@ -193,7 +193,7 @@ namespace Math { For detailed description see Mathworld. The implementation used is that of - + CERNLIB, based on Y.L. Luke, The special functions and their approximations, v.II, (Academic Press, New York l969) 325-326. @@ -219,7 +219,7 @@ namespace Math { For detailed description see Mathworld. The implementation used is that of - + CERNLIB, based on Y.L. Luke, The special functions and their approximations, v.II, (Academic Press, New York l969) 325-326. diff --git a/math/mathmore/inc/Math/SpecFuncMathMore.h b/math/mathmore/inc/Math/SpecFuncMathMore.h index 4ae823a8e036c..6cc22d6ef6e09 100644 --- a/math/mathmore/inc/Math/SpecFuncMathMore.h +++ b/math/mathmore/inc/Math/SpecFuncMathMore.h @@ -193,7 +193,7 @@ namespace Math { ( GSL, Planetmath and - + CERNLIB) use the + sign in front of n in the denominator. In order to be C++ compliant, the present library uses the former convention. The implementation used is that of @@ -408,7 +408,7 @@ namespace Math { ( GSL, Planetmath and - + CERNLIB) use the + sign in front of n in the denominator. In order to be C++ compliant, the present library uses the former convention. The implementation used is that of diff --git a/math/mathmore/inc/Math/Vavilov.h b/math/mathmore/inc/Math/Vavilov.h index 3937f498cab99..4cf508ba79100 100644 --- a/math/mathmore/inc/Math/Vavilov.h +++ b/math/mathmore/inc/Math/Vavilov.h @@ -92,14 +92,14 @@ namespace Math { A. Rotondi and P. Montagna, Fast calculation of Vavilov distribution, Nucl. Instr. and Meth. B47 (1990) 215-224, which has been implemented in - + CERNLIB (G115). - VavilovAccurate uses the algorithm by B. Schorr, Programs for the Landau and the Vavilov distributions and the corresponding random numbers, Computer Phys. Comm. 7 (1974) 215-224, which has been implemented in - + CERNLIB (G116). Both subclasses store coefficients needed to calculate \f$p(\lambda; \kappa, \beta^2)\f$ diff --git a/math/mathmore/inc/Math/VavilovAccurate.h b/math/mathmore/inc/Math/VavilovAccurate.h index ac13f71a58ba9..242123cde831c 100644 --- a/math/mathmore/inc/Math/VavilovAccurate.h +++ b/math/mathmore/inc/Math/VavilovAccurate.h @@ -81,7 +81,7 @@ namespace Math { B. Schorr, Programs for the Landau and the Vavilov distributions and the corresponding random numbers, Computer Phys. Comm. 7 (1974) 215-224, which has been implemented in - + CERNLIB (G116). The class stores coefficients needed to calculate \f$p(\lambda; \kappa, \beta^2)\f$ diff --git a/math/mathmore/inc/Math/VavilovFast.h b/math/mathmore/inc/Math/VavilovFast.h index df87d2e19cae5..f65b7e449a610 100644 --- a/math/mathmore/inc/Math/VavilovFast.h +++ b/math/mathmore/inc/Math/VavilovFast.h @@ -90,7 +90,7 @@ namespace Math { A. Rotondi and P. Montagna, Fast calculation of Vavilov distribution, Nucl. Instr. and Meth. B47 (1990) 215-224, which has been implemented in - + CERNLIB (G115). The class stores coefficients needed to calculate \f$p(\lambda; \kappa, \beta^2)\f$ diff --git a/math/mathmore/src/SpecFuncMathMore.cxx b/math/mathmore/src/SpecFuncMathMore.cxx index b0fa46f3f6284..2f7052d588637 100644 --- a/math/mathmore/src/SpecFuncMathMore.cxx +++ b/math/mathmore/src/SpecFuncMathMore.cxx @@ -103,7 +103,7 @@ the former is adopted by http://planetmath.org/encyclopedia/EllipticIntegralsAndJacobiEllipticFunctions.html - CERNLIB - http://wwwasdoc.web.cern.ch/wwwasdoc/shortwrupsdir/c346/top.html + https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/c346/top.html while the latter is used by @@ -239,7 +239,7 @@ the former is adopted by http://planetmath.org/encyclopedia/EllipticIntegralsAndJacobiEllipticFunctions.html - CERNLIB - http://wwwasdoc.web.cern.ch/wwwasdoc/shortwrupsdir/c346/top.html + https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/c346/top.html while the latter is used by diff --git a/math/minuit/doc/index.txt b/math/minuit/doc/index.txt index b128bc9b5b23e..08534001bbffa 100644 --- a/math/minuit/doc/index.txt +++ b/math/minuit/doc/index.txt @@ -5,7 +5,7 @@ BEGIN_HTML
  • The main TMinuit class is documented in class TMinuit.
  • The Chapter about Fitting Histogram in the Users Guide
  • -
  • The MINUIT documentation in CERNLIB +
  • The MINUIT documentation in CERNLIB
  • How to Fit Histograms
  • diff --git a/math/minuit2/doc/Minuit2.html b/math/minuit2/doc/Minuit2.html index 9ced290ab918d..aadc2168d2c0a 100644 --- a/math/minuit2/doc/Minuit2.html +++ b/math/minuit2/doc/Minuit2.html @@ -32,7 +32,7 @@

    References

      -
    1. F. James, Fortran MINUIT Reference Manual (html); +
    2. F. James, Fortran MINUIT Reference Manual (html);
    3. F. James and M. Winkler, C++ MINUIT User's Guide (html and pdf);
    4. F. James, Minuit Tutorial on Function Minimization (pdf); diff --git a/math/minuit2/doc/Minuit2.md b/math/minuit2/doc/Minuit2.md index 699355230bea8..5350489e9f82e 100644 --- a/math/minuit2/doc/Minuit2.md +++ b/math/minuit2/doc/Minuit2.md @@ -14,7 +14,7 @@ The [Minuit2 User Guide](https://root.cern.ch/root/htmldoc/guides/minuit2/Minuit ## References -1. F. James, _Fortran MINUIT Reference Manual_ ([html](http://wwwasdoc.web.cern.ch/wwwasdoc/minuit/minmain.html)); +1. F. James, _Fortran MINUIT Reference Manual_ ([html](https://cern-tex.web.cern.ch/cern-tex/minuit/minmain.html)); 2. F. James and M. Winkler, _C++ MINUIT User's Guide_ ([html](https://root.cern.ch/root/htmldoc/guides/minuit2/Minuit2.html) and [pdf](https://root.cern.ch/root/htmldoc/guides/minuit2/Minuit2.pdf)); 3. F. James, _Minuit Tutorial on Function Minimization_ ([pdf](http://seal.cern.ch/documents/minuit/mntutorial.pdf)); 4. F. James, _The Interpretation of Errors in Minuit_ ([pdf](http://seal.cern.ch/documents/minuit/mnerror.pdf)); diff --git a/math/minuit2/doc/index.txt b/math/minuit2/doc/index.txt index e02a41224b94a..1bf600bdf626a 100644 --- a/math/minuit2/doc/index.txt +++ b/math/minuit2/doc/index.txt @@ -13,7 +13,7 @@ ROOT::Math::Minimizer from html);
    5. +F. James, Fortran MINUIT Reference Manual (html);
    6. F. James and M. Winkler, C++ MINUIT User's Guide (pdf);
    7. diff --git a/math/physics/doc/index.md b/math/physics/doc/index.md index 8ab736cda48a4..fe648ed3c8109 100644 --- a/math/physics/doc/index.md +++ b/math/physics/doc/index.md @@ -17,4 +17,4 @@ Several documents describing these classes are listed below: It is a combination of CLHEPs Vector package written by Leif Lonnblad, Andreas Nilsson and Evgueni Tcherniaev and a ROOT package written by Pasha Murat. -for CLHEP see: http://wwwinfo.cern.ch/asd/lhc++/clhep/ \ No newline at end of file +for CLHEP see: http://www.cern.ch/clhep/ diff --git a/math/smatrix/doc/SMatrixClass.html b/math/smatrix/doc/SMatrixClass.html index c36b56aa7a2ef..b1a8b978450cf 100644 --- a/math/smatrix/doc/SMatrixClass.html +++ b/math/smatrix/doc/SMatrixClass.html @@ -163,7 +163,7 @@

      Accessing and Setting Methods

      Linear Algebra Functions

      Only limited linear algebra functionality is available for SMatrix. It is possible for squared matrices NxN, to find the inverse or to calculate the determinant. Different inversion algorithms are used if the matrix is smaller than 6x6 or if it is symmetric. -In the case of a small matrix, a faster direct inversion is used. For a large (N > 6) symmetric matrix the Bunch-Kaufman diagonal pivoting method is used while for a large (N > 6) general matrix an LU factorization is performed using the same algorithm as in the CERNLIB routine dinv. +In the case of a small matrix, a faster direct inversion is used. For a large (N > 6) symmetric matrix the Bunch-Kaufman diagonal pivoting method is used while for a large (N > 6) general matrix an LU factorization is performed using the same algorithm as in the CERNLIB routine dinv.
       //  Invert a NxN matrix. The inverted matrix replace the existing one and returns if the result is successful
       bool ret = m.Invert()
      diff --git a/math/smatrix/doc/SMatrixClass.md b/math/smatrix/doc/SMatrixClass.md
      index be43d4a27a54a..15b252477ee11 100644
      --- a/math/smatrix/doc/SMatrixClass.md
      +++ b/math/smatrix/doc/SMatrixClass.md
      @@ -132,7 +132,7 @@ SVector6 vlb = m.**LowerBlock**();       _//  vlb = [ 1, 4, 5, 7, 8, 9 ]_
       
       ### Linear Algebra Functions
       
      -Only limited linear algebra functionality is available for SMatrix. It is possible for squared matrices NxN, to find the inverse or to calculate the determinant. Different inversion algorithms are used if the matrix is smaller than 6x6 or if it is symmetric. In the case of a small matrix, a faster direct inversion is used. For a large (N > 6) symmetric matrix the Bunch-Kaufman diagonal pivoting method is used while for a large (N > 6) general matrix an LU factorization is performed using the same algorithm as in the CERNLIB routine [dinv](http://wwwasdoc.web.cern.ch/wwwasdoc/shortwrupsdir/f010/top.html).
      +Only limited linear algebra functionality is available for SMatrix. It is possible for squared matrices NxN, to find the inverse or to calculate the determinant. Different inversion algorithms are used if the matrix is smaller than 6x6 or if it is symmetric. In the case of a small matrix, a faster direct inversion is used. For a large (N > 6) symmetric matrix the Bunch-Kaufman diagonal pivoting method is used while for a large (N > 6) general matrix an LU factorization is performed using the same algorithm as in the CERNLIB routine [dinv](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f010/top.html).
       
       
      _//  Invert a NxN matrix. The inverted matrix replace the existing one and returns if the result is successful_
       bool ret = m.**Invert**()  
      diff --git a/misc/table/src/TPolyLineShape.cxx b/misc/table/src/TPolyLineShape.cxx
      index 971ef5843770a..1a218b0205893 100644
      --- a/misc/table/src/TPolyLineShape.cxx
      +++ b/misc/table/src/TPolyLineShape.cxx
      @@ -47,8 +47,8 @@
       //           V               v      v                     v      v                  //
       //      TPolyLineShape     TBRIK  TTUBE                 TPCON  TTRD1                //
       //       |        ^                                                                 //
      -//       |        |       begin_html R  O  O  T        S  H  A  P  E  Send_html                          //
      -//       V        |       (see begin_html GEANT 3.21 shapesend_html as well)                           //
      +//       |        |       R  O  O  T        S  H  A  P  E  S                          //
      +//       V        |       (see GEANT 3.21 shapes as well)                           //
       // St_PolyLine3D  |                                                                 //
       //                |                                                                 //
       //           TPoints3DABC                                                           //
      diff --git a/misc/table/src/TVolume.cxx b/misc/table/src/TVolume.cxx
      index a709e778193cc..ff788b8b143fb 100644
      --- a/misc/table/src/TVolume.cxx
      +++ b/misc/table/src/TVolume.cxx
      @@ -142,7 +142,7 @@ TVolume::TVolume(const char *name, const char *title, TShape *shape, Option_t *o
       ///                            10 - this unvisible, but sons are visible
       ///                            01 - this visible but sons
       ///                            11 - neither this nor its sons are visible
      -/// Maps the value of the visibility flag to begin_html GEANT 3.21 "volume attributes"end_html
      +/// Maps the value of the visibility flag to GEANT 3.21 "volume attributes"
       
       Int_t TVolume::MapStNode2GEANTVis(ENodeSEEN  vis)
       {
      @@ -150,11 +150,12 @@ Int_t TVolume::MapStNode2GEANTVis(ENodeSEEN  vis)
          return mapVis[vis];
       }
       
      -//______________________________________________________________________________
      -//ENodeSEEN TVolume::MapGEANT2StNodeVis(Int_t vis)
      +////////////////////////////////////////////////////////////////////////////////
      +/// ENodeSEEN TVolume::MapGEANT2StNodeVis(Int_t vis)
      +/// Maps the value of GEANT 3.21 "volume attributes" to the visibility flag
      +
       Int_t TVolume::MapGEANT2StNodeVis(Int_t vis)
       {
      -// Maps the value of begin_html GEANT 3.21 "volume attributes"end_html to the visibility flag
          const Int_t mapVis[4] = {1, -2, 0, -1 };
          Int_t i;
       //  for (i =0; i<3;i++) if (mapVis[i] == vis) return (ENodeSEEN)i;
      
      From ad8c51035e509d2bdaefe5d94aab135c51821cfa Mon Sep 17 00:00:00 2001
      From: Mattias Ellert 
      Date: Sun, 10 Apr 2016 18:40:26 +0200
      Subject: [PATCH 09/13] Remove duplicated half comment
      
      ---
       math/physics/inc/TVector2.h | 3 ++-
       1 file changed, 2 insertions(+), 1 deletion(-)
      
      diff --git a/math/physics/inc/TVector2.h b/math/physics/inc/TVector2.h
      index 8c612bd9c0eb4..920d3eb98cfa6 100644
      --- a/math/physics/inc/TVector2.h
      +++ b/math/physics/inc/TVector2.h
      @@ -96,7 +96,8 @@ class TVector2 : public TObject {
          TVector2 Rotate (Double_t phi) const;
       
                                               // returns phi angle in the interval [0,2*PI)
      -   static Double_t Phi_0_2pi(Double_t x);                                                                               // returns phi angle in the interval
      +   static Double_t Phi_0_2pi(Double_t x);
      +
                                               // returns phi angle in the interval [-PI,PI)
          static Double_t Phi_mpi_pi(Double_t x);
       
      
      From 0a10f67cf0adb006f3098d307ecfb8a0e97eaf45 Mon Sep 17 00:00:00 2001
      From: Mattias Ellert 
      Date: Sun, 10 Apr 2016 18:40:33 +0200
      Subject: [PATCH 10/13] Remove comments about "To see the output of this macro"
      
      ---
       tutorials/fit/fit1.C       | 1 -
       tutorials/fit/fitslicesy.C | 1 -
       tutorials/fit/multifit.C   | 1 -
       tutorials/geom/shapes.C    | 1 -
       tutorials/ruby/hsum.rb     | 1 -
       5 files changed, 5 deletions(-)
      
      diff --git a/tutorials/fit/fit1.C b/tutorials/fit/fit1.C
      index 5453b167e28ad..8ae7000a039fa 100644
      --- a/tutorials/fit/fit1.C
      +++ b/tutorials/fit/fit1.C
      @@ -13,7 +13,6 @@
       
       void fit1() {
          //Simple fitting example (1-d histogram with an interpreted function)
      -   //To see the output of this macro, click begin_html here. end_html
          //Author: Rene Brun
       
          TCanvas *c1 = new TCanvas("c1_fit1","The Fit Canvas",200,10,700,500);
      diff --git a/tutorials/fit/fitslicesy.C b/tutorials/fit/fitslicesy.C
      index 3d154c00f401a..3a8f90d82c9a8 100644
      --- a/tutorials/fit/fitslicesy.C
      +++ b/tutorials/fit/fitslicesy.C
      @@ -1,7 +1,6 @@
       void fitslicesy() {
       //
       // Illustrates how to use the TH1::FitSlicesY function
      -// To see the output of this macro, click begin_html here end_html
       //    It uses the TH2F histogram generated in macro hsimple.C
       //    It invokes FitSlicesY and draw the fitted "mean" and "sigma"
       //    in 2 sepate pads.
      diff --git a/tutorials/fit/multifit.C b/tutorials/fit/multifit.C
      index ab4eb005ca331..aee51bb0c1ad8 100644
      --- a/tutorials/fit/multifit.C
      +++ b/tutorials/fit/multifit.C
      @@ -3,7 +3,6 @@
       
       void multifit() {
       //  Fitting multiple functions to different ranges of a 1-D histogram
      -// To see the output of this macro, click begin_html here end_html
       //      Example showing how to fit in a sub-range of an histogram
       //  An histogram is created and filled with the bin contents and errors
       //  defined in the table below.
      diff --git a/tutorials/geom/shapes.C b/tutorials/geom/shapes.C
      index 57aba51722f6b..3b60a480ad6ad 100644
      --- a/tutorials/geom/shapes.C
      +++ b/tutorials/geom/shapes.C
      @@ -3,7 +3,6 @@
       
       void shapes() {
       //The old geometry shapes (see script geodemo.C)
      -//To see the output of this macro, click begin_html here end_html
       //Author: Rene Brun
       
          TCanvas *c1 = new TCanvas("glc1","Geometry Shapes",200,10,700,500);
      diff --git a/tutorials/ruby/hsum.rb b/tutorials/ruby/hsum.rb
      index 26baf1b74b6c3..a346aba566d22 100644
      --- a/tutorials/ruby/hsum.rb
      +++ b/tutorials/ruby/hsum.rb
      @@ -4,7 +4,6 @@
       # (20/01/2004)  --elathan  
       #
       # original header:
      -# To see the output of this macro, click begin_html here end_html
       # Simple example illustrating how to use the C++ interpreter	
       # to fill histograms in a loop and show the graphics results
       
      
      From adb4945abce5f1f8af741925a74dafb391a83109 Mon Sep 17 00:00:00 2001
      From: Mattias Ellert 
      Date: Sun, 10 Apr 2016 18:40:38 +0200
      Subject: [PATCH 11/13] Write macros for some missing images in TMath doc.
      
      ---
       math/mathcore/src/TMath.cxx | 201 +++++++++++++++++++++++++-----------
       1 file changed, 138 insertions(+), 63 deletions(-)
      
      diff --git a/math/mathcore/src/TMath.cxx b/math/mathcore/src/TMath.cxx
      index d7682a05a8bee..d2055c294ead5 100644
      --- a/math/mathcore/src/TMath.cxx
      +++ b/math/mathcore/src/TMath.cxx
      @@ -359,9 +359,9 @@ Double_t TMath::Gamma(Double_t z)
       /// Handbook of Mathematical Functions by Abramowitz and Stegun, formula 6.5.1 on page 260 .
       /// Its normalization is such that TMath::Gamma(a,+infinity) = 1 .
       ///
      -///  Begin_Latex
      -///  P(a, x) = #frac{1}{#Gamma(a) } #int_{0}^{x} t^{a-1} e^{-t} dt
      -///   End_Latex
      +///  \f[
      +///  P(a, x) = \frac{1}{\Gamma(a)} \int_{0}^{x} t^{a-1} e^{-t} dt
      +///  \f]
       ///
       ///
       ///--- Nve 14-nov-1998 UU-SAP Utrecht
      @@ -559,15 +559,16 @@ Double_t TMath::Normalize(Double_t v[3])
       /// see TMath::PoissonI to get a non-smooth function.
       /// Note that for large values of par, it is better to call
       ///     TMath::Gaus(x,par,sqrt(par),kTRUE)
      -///Begin_Html
      +/// Begin_Macro
      +/// {
      +///   TCanvas *c1 = new TCanvas("c1", "c1", 700, 500);
      +///   TF1 *poisson = new TF1("poisson", "TMath::Poisson(x, 5)", 0, 15);
      +///   poisson->Draw("L");
      +/// }
      +/// End_Macro
       
       Double_t TMath::Poisson(Double_t x, Double_t par)
       {
      -/*
      -
      -*/
      -//End_Html
      -
          if (x<0)
             return 0;
          else if (x == 0.0)
      @@ -587,15 +588,17 @@ Double_t TMath::Poisson(Double_t x, Double_t par)
       /// compute the Poisson distribution function for (x,par)
       /// This is a non-smooth function.
       /// This function is equivalent to ROOT::Math::poisson_pdf
      -///Begin_Html
      +/// Begin_Macro
      +/// {
      +///   TCanvas *c1 = new TCanvas("c1", "c1", 700, 500);
      +///   TF1 *poissoni = new TF1("poissoni", "TMath::PoissonI(x, 5)", 0, 15);
      +///   poissoni->SetNpx(1000);
      +///   poissoni->Draw("L");
      +/// }
      +/// End_Macro
       
       Double_t TMath::PoissonI(Double_t x, Double_t par)
       {
      -/*
      -
      -*/
      -//End_Html
      -
          Int_t ix = Int_t(x);
          return Poisson(ix,par);
       }
      @@ -630,36 +633,33 @@ Double_t TMath::Prob(Double_t chi2,Int_t ndf)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Calculates the Kolmogorov distribution function,
      -///Begin_Html
      +/// \f[
      +/// P(z) = 2 \sum_{j=1}^{\infty} (-1)^{j-1} e^{-2 j^2 z^2}
      +/// \f]
      +/// which gives the probability that Kolmogorov's test statistic will exceed
      +/// the value z assuming the null hypothesis. This gives a very powerful
      +/// test for comparing two one-dimensional distributions.
      +/// see, for example, Eadie et al, "statistocal Methods in Experimental
      +/// Physics', pp 269-270).
      +///
      +/// This function returns the confidence level for the null hypothesis, where:
      +///   z = dn*sqrt(n), and
      +///   dn  is the maximum deviation between a hypothetical distribution
      +///       function and an experimental distribution with
      +///   n   events
      +///
      +/// NOTE: To compare two experimental distributions with m and n events,
      +///       use z = sqrt(m*n/(m+n))*dn
      +///
      +/// Accuracy: The function is far too accurate for any imaginable application.
      +///           Probabilities less than 10^-15 are returned as zero.
      +///           However, remember that the formula is only valid for "large" n.
      +/// Theta function inversion formula is used for z <= 1
      +///
      +/// This function was translated by Rene Brun from PROBKL in CERNLIB.
       
       Double_t TMath::KolmogorovProb(Double_t z)
       {
      -   /*
      -   
      -   */
      -   //End_Html
      -   // which gives the probability that Kolmogorov's test statistic will exceed
      -   // the value z assuming the null hypothesis. This gives a very powerful
      -   // test for comparing two one-dimensional distributions.
      -   // see, for example, Eadie et al, "statistocal Methods in Experimental
      -   // Physics', pp 269-270).
      -   //
      -   // This function returns the confidence level for the null hypothesis, where:
      -   //   z = dn*sqrt(n), and
      -   //   dn  is the maximum deviation between a hypothetical distribution
      -   //       function and an experimental distribution with
      -   //   n    events
      -   //
      -   // NOTE: To compare two experimental distributions with m and n events,
      -   //       use z = sqrt(m*n/(m+n))*dn
      -   //
      -   // Accuracy: The function is far too accurate for any imaginable application.
      -   //           Probabilities less than 10^-15 are returned as zero.
      -   //           However, remember that the formula is only valid for "large" n.
      -   // Theta function inversion formula is used for z <= 1
      -   //
      -   // This function was translated by Rene Brun from PROBKL in CERNLIB.
      -
          Double_t fj[4] = {-2,-8,-18,-32}, r[4];
          const Double_t w = 2.50662827;
          // c1 - -pi**2/8, c2 = 9*c1, c3 = 25*c1
      @@ -2254,15 +2254,40 @@ Double_t TMath::FDistI(Double_t F, Double_t N, Double_t M)
       /// The definition can be found in "Engineering Statistics Handbook" on site
       /// http://www.itl.nist.gov/div898/handbook/eda/section3/eda366b.htm
       /// use now implementation in ROOT::Math::gamma_pdf
      -///Begin_Html
      +/// Begin_Macro
      +/// {
      +///   TCanvas *c1 = new TCanvas("c1", "c1", 700, 500);
      +///
      +///   c1->SetLogy();
      +///   c1->SetGridx();
      +///   c1->SetGridy();
      +///
      +///   TF1 *gdist = new TF1("gdist", "TMath::GammaDist(x, [0], [1], [2])", 0, 10);
      +///
      +///   gdist->SetParameters(0.5, 0., 1.);
      +///   gdist->SetLineColor(2);
      +///   TF1 *gdist1 = gdist->DrawCopy("L");
      +///   gdist->SetParameters(1.0, 0., 1.);
      +///   gdist->SetLineColor(3);
      +///   TF1 *gdist2 = gdist->DrawCopy("LSAME");
      +///   gdist->SetParameters(2.0, 0., 1.);
      +///   gdist->SetLineColor(4);
      +///   TF1 *gdist3 = gdist->DrawCopy("LSAME");
      +///   gdist->SetParameters(5.0, 0., 1.);
      +///   gdist->SetLineColor(6);
      +///   TF1 *gdist4 = gdist->DrawCopy("LSAME");
      +///
      +///   legend = new TLegend(0.15, 0.15, 0.5, 0.35);
      +///   legend->AddEntry(gdist1, "gamma = 0.5, mu = 0, beta = 1", "L");
      +///   legend->AddEntry(gdist2, "gamma = 1.0, mu = 0, beta = 1", "L");
      +///   legend->AddEntry(gdist3, "gamma = 2.0, mu = 0, beta = 1", "L");
      +///   legend->AddEntry(gdist4, "gamma = 5.0, mu = 0, beta = 1", "L");
      +///   legend->Draw();
      +/// }
      +/// End_Macro
       
       Double_t TMath::GammaDist(Double_t x, Double_t gamma, Double_t mu, Double_t beta)
       {
      -   /*
      -   
      -   */
      -   //End_Html
      -
          if ((xSetLogy();
      +///   c1->SetGridx();
      +///   c1->SetGridy();
      +///
      +///   TF1 *logn = new TF1("logn", "TMath::LogNormal(x, [0], [1], [2])", 0, 5);
      +///   logn->SetMinimum(1e-3);
      +///
      +///   logn->SetParameters(0.5, 0., 1.);
      +///   logn->SetLineColor(2);
      +///   TF1 *logn1 = logn->DrawCopy("L");
      +///   logn->SetParameters(1.0, 0., 1.);
      +///   logn->SetLineColor(3);
      +///   TF1 *logn2 = logn->DrawCopy("LSAME");
      +///   logn->SetParameters(2.0, 0., 1.);
      +///   logn->SetLineColor(4);
      +///   TF1 *logn3 = logn->DrawCopy("LSAME");
      +///   logn->SetParameters(5.0, 0., 1.);
      +///   logn->SetLineColor(6);
      +///   TF1 *logn4 = logn->DrawCopy("LSAME");
      +///
      +///   legend = new TLegend(0.15, 0.15, 0.5, 0.35);
      +///   legend->AddEntry(logn1, "sigma = 0.5, theta = 0, m = 1", "L");
      +///   legend->AddEntry(logn2, "sigma = 1.0, theta = 0, m = 1", "L");
      +///   legend->AddEntry(logn3, "sigma = 2.0, theta = 0, m = 1", "L");
      +///   legend->AddEntry(logn4, "sigma = 5.0, theta = 0, m = 1", "L");
      +///   legend->Draw();
      +/// }
      +/// End_Macro
       
       Double_t TMath::LogNormal(Double_t x, Double_t sigma, Double_t theta, Double_t m)
       {
      -   /*
      -   
      -   */
      -   //End_Html
      -
          if ((xSetGridx();
      +///   c1->SetGridy();
      +///
      +///   TF1 *vavilov = new TF1("vavilov", "TMath::Vavilov(x, [0], [1])", -3, 11);
      +///
      +///   vavilov->SetParameters(0.5, 0.);
      +///   vavilov->SetLineColor(2);
      +///   TF1 *vavilov1 = vavilov->DrawCopy("L");
      +///   vavilov->SetParameters(0.3, 0.);
      +///   vavilov->SetLineColor(3);
      +///   TF1 *vavilov2 = vavilov->DrawCopy("LSAME");
      +///   vavilov->SetParameters(0.2, 0.);
      +///   vavilov->SetLineColor(4);
      +///   TF1 *vavilov3 = vavilov->DrawCopy("LSAME");
      +///   vavilov->SetParameters(0.1, 0.);
      +///   vavilov->SetLineColor(6);
      +///   TF1 *vavilov4 = vavilov->DrawCopy("LSAME");
      +///
      +///   legend = new TLegend(0.5, 0.65, 0.85, 0.85);
      +///   legend->AddEntry(vavilov1, "kappa = 0.5, beta2 = 0", "L");
      +///   legend->AddEntry(vavilov2, "kappa = 0.3, beta2 = 0", "L");
      +///   legend->AddEntry(vavilov3, "kappa = 0.2, beta2 = 0", "L");
      +///   legend->AddEntry(vavilov4, "kappa = 0.1, beta2 = 0", "L");
      +///   legend->Draw();
      +/// }
      +/// End_Macro
       
       Double_t TMath::Vavilov(Double_t x, Double_t kappa, Double_t beta2)
       {
      -/*
      -
      -*/
      -//End_Html
      -
          Double_t *ac = new Double_t[14];
          Double_t *hc = new Double_t[9];
       
      
      From 8fb51fd44c0223989f8ad11052a0df858732b7dc Mon Sep 17 00:00:00 2001
      From: Mattias Ellert 
      Date: Sun, 10 Apr 2016 18:40:44 +0200
      Subject: [PATCH 12/13] Documentation TCernlib
      
      Replace broken links with working ones
      Remove Begin_Html/End_html tags
      ---
       misc/table/inc/TCernLib.h   |   7 +-
       misc/table/src/TCernLib.cxx | 725 ++++++++++++++++--------------------
       2 files changed, 327 insertions(+), 405 deletions(-)
      
      diff --git a/misc/table/inc/TCernLib.h b/misc/table/inc/TCernLib.h
      index f4a4370ebd944..a5bce11485690 100644
      --- a/misc/table/inc/TCernLib.h
      +++ b/misc/table/inc/TCernLib.h
      @@ -15,7 +15,7 @@
       #include "Rtypes.h"
       #include 
       
      -// http://wwwinfo.cern.ch/asdoc/shortwrupsdir/f110/top.html
      +// https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f110/top.html
       
       ///////////////////////////////////////////////////////////////////////////////////////
       //                                                                                   //
      @@ -25,8 +25,9 @@
       // its negative, or a multiple of it, transpose a given matrix, build up a unit      //
       // matrix, multiply a matrix by a diagonal (from left or from right) and may         //
       // add the result to another matrix, add to square matrix the multiple of a diagonal //
      -// matrix, compute the products tex2html_wrap_inline191 (tex2html_wrap_inline193 denotes the transpose of row-wise without gaps end_html without gaps.                     //
      +// matrix, compute the products X=ABA' (A' denotes the transpose of A) and X=A'BA.   //
      +// It is assumed that matrices are row-wise without gaps, contrary to the     //
      +// Fortran convention.                                                               //
       //                                                                                   //
       ///////////////////////////////////////////////////////////////////////////////////////
       
      diff --git a/misc/table/src/TCernLib.cxx b/misc/table/src/TCernLib.cxx
      index efda6df1d7fd1..54342640b9668 100644
      --- a/misc/table/src/TCernLib.cxx
      +++ b/misc/table/src/TCernLib.cxx
      @@ -11,8 +11,8 @@
       
       ////////////////////////////////////////////////////////////////////////////////
       // The set of methods to work with the plain matrix / vector
      -// "derived" from  http://wwwinfo.cern.ch/asdoc/shortwrupsdir/f110/top.html
      -// "derived" from  http://wwwinfo.cern.ch/asdoc/shortwrupsdir/f112/top.html
      +// "derived" from  https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f110/top.html
      +// "derived" from  https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html
       //
       // Revision 1.7  2006/05/21 18:05:26  brun
       // Fix more coding conventions violations
      @@ -33,7 +33,7 @@
       //
       // Revision 1.3  2003/04/03 17:39:39  fine
       // Make merge with ROOT 3.05.03 and add TR package
      -//122
      +//
       // Revision 1.2  2003/02/04 23:35:20  fine
       // Clean up
       //
      @@ -154,27 +154,24 @@ double *TCL::mxmad_0_(int n_, const double *a, const double *b, double *c, int i
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Matrix Multiplication
      +///
       /// CERN PROGLIB# F110    MXMLRT          .VERSION KERNFOR  2.00  720707
       /// ORIG. 01/01/64 RKB
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F110
      - END_HTML
      -
      +// --      ENTRY MXMLRT
      +// --                C = A(I,J) X B(J,J) X A*(J,I)
      +// --                A* TANDS FOR A-TRANSPOSED
      +//             mxmlrt (A,B,C,NI,NJ)     IS EQUIVALENT TO
      +//             CALL MXMPY (A,B,X,NI,NJ,NJ)
      +//             CALL MXMPY1 (X,A,C,NI,NJ,NI)
       
      -// --      ENTRY MXMLRT */
      -// --                C = A(I,J) X B(J,J) X A*(J,I) */
      -// --                A* TANDS FOR A-TRANSPOSED */
      -//             mxmlrt (A,B,C,NI,NJ)     IS EQUIVALENT TO */
      -//             CALL MXMPY (A,B,X,NI,NJ,NJ) */
      -//             CALL MXMPY1 (X,A,C,NI,NJ,NI) */
      -
      -/*        OR   CALL MXMPY1 (B,A,Y,NJ,NJ,NI) */
      -/*             CALL MXMPY (A,Y,C,NI,NJ,NI) */
      +//        OR   CALL MXMPY1 (B,A,Y,NJ,NJ,NI)
      +//             CALL MXMPY (A,Y,C,NI,NJ,NI)
       
       
       // --                C = A*(I,J) X B(J,J) X A(J,I)
      @@ -191,6 +188,12 @@ float *TCL::mxmlrt_0_(int n__, const float *a, const float *b, float *c, int ni,
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Matrix Multiplication (double precision)
      +///
      +/// CERN PROGLIB# F110    MXMLRT          .VERSION KERNFOR  2.00  720707
      +/// ORIG. 01/01/64 RKB
      +///
      +/// See original documentation of CERNLIB package
      +/// [F110](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f110/top.html)
       
       double *TCL::mxmlrt_0_(int n__, const double *a, const double *b, double *c, int ni,int nj)
       {
      @@ -215,36 +218,31 @@ double *TCL::mxmlrt_0_(int n__, const double *a, const double *b, double *c, int
           for (int l = 1; l <= i; ++l,ia += j,++ib) b[ib] = a[ia]; }
       
       ////////////////////////////////////////////////////////////////////////////////
      +/// Matrix Transposition
       ///
      -///  Matrix Transposition
       /// CERN PROGLIB# F110    MXTRP           .VERSION KERNFOR  1.0   650809
       /// ORIG. 01/01/64 RKB
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F110
      - END_HTML
      -
          TCL_MXTRP(a, b, i, j)
          return b;
       } /* mxtrp */
       
       ////////////////////////////////////////////////////////////////////////////////
      -///  Matrix Transposition (double precision)
      +/// Matrix Transposition (double precision)
      +///
       /// CERN PROGLIB# F110    MXTRP           .VERSION KERNFOR  1.0   650809
       /// ORIG. 01/01/64 RKB
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F110
      - END_HTML
      -
          TCL_MXTRP(a, b, i, j)
          return b;
       
      @@ -283,38 +281,35 @@ double *TCL::mxtrp(const double *a, double *b, int i, int j)
       
       
       ////////////////////////////////////////////////////////////////////////////////
      -///
       /// Symmetric Multiplication of Rectangular Matrices
      +///
       /// CERN PROGLIB# F112    TRAAT           .VERSION KERNFOR  4.15  861204
      -/// ORIG. 18/12/74 WH */
      +/// ORIG. 18/12/74 WH
      +///
       /// traat.F -- translated by f2c (version 19970219).
       ///
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRAAT(a, s, m, n)
          return s;
       } /* traat_ */
       
       ////////////////////////////////////////////////////////////////////////////////
      -///  Symmetric Multiplication of Rectangular Matrices
      +/// Symmetric Multiplication of Rectangular Matrices
      +///
       /// CERN PROGLIB# F112    TRAAT           .VERSION KERNFOR  4.15  861204
      -/// ORIG. 18/12/74 WH */
      +/// ORIG. 18/12/74 WH
      +///
       /// traat.F -- translated by f2c (version 19970219).
       ///
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRAAT(a, s, m, n)
          return s;
       } /* traat_ */
      @@ -346,34 +341,34 @@ double *TCL::traat(const double *a, double *s, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Triangular - Rectangular Multiplication
      +///
       /// CERN PROGLIB# F112    TRAL            .VERSION KERNFOR  4.15  861204
       /// ORIG. 18/12/74 WH
      +///
       /// tral.F -- translated by f2c (version 19970219).
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRAL(a, u, b, m,  n)
          return b;
       } /* tral_ */
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Triangular - Rectangular Multiplication
      +///
      +/// CERN PROGLIB# F112    TRAL            .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
       /// tral.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRAL            .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRAL(a, u, b, m,  n)
          return b;
       } /* tral_ */
      @@ -405,34 +400,34 @@ double *TCL::tral(const double *a, const double *u, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Triangular - Rectangular Multiplication
      +///
       /// CERN PROGLIB# F112    TRALT           .VERSION KERNFOR  4.15  861204
       /// ORIG. 18/12/74 WH
      +///
       /// tralt.F -- translated by f2c (version 19970219).
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRALT(a, u, b, m, n)
          return b;
       } /* tralt_ */
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Triangular - Rectangular Multiplication
      +///
       /// CERN PROGLIB# F112    TRALT           .VERSION KERNFOR  4.15  861204
       /// ORIG. 18/12/74 WH
      +///
       /// tralt.F -- translated by f2c (version 19970219).
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRALT(a, u, b, m, n)
          return b;
       } /* tralt_ */
      @@ -470,34 +465,34 @@ double *TCL::tralt(const double *a, const double *u, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Symmetric - Rectangular Multiplication
      -/// CERN PROGLIB# F112    TRAS            .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      +///
      +/// CERN PROGLIB# F112    TRAS            .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
       /// tras.F -- translated by f2c (version 19970219).
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRAS(a, s, b, m, n)
          return b;
       } /* tras_ */
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Symmetric - Rectangular Multiplication
      -/// CERN PROGLIB# F112    TRAS            .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      +///
      +/// CERN PROGLIB# F112    TRAS            .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
       /// tras.F -- translated by f2c (version 19970219).
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRAS(a, s, b, m, n)
          return b;
       } /* tras_ */
      @@ -543,51 +538,51 @@ double *TCL::tras(const double *a, const double *s, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Transformation of Symmetric Matrix
      -/// CERN PROGLIB# F112    TRASAT          .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      +///
      +/// CERN PROGLIB# F112    TRASAT          .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
       /// trasat.F -- translated by f2c (version 19970219).
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRASAT(a, s, r__, m, n)
          return r__;
       } /* trasat_ */
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Transformation of Symmetric Matrix
      -/// CERN PROGLIB# F112    TRASAT          .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      +///
      +/// CERN PROGLIB# F112    TRASAT          .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
       /// trasat.F -- translated by f2c (version 19970219).
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRASAT(a, s, r__, m, n)
          return r__;
       } /* trasat_ */
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Transformation of Symmetric Matrix
      -/// CERN PROGLIB# F112    TRASAT          .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      +///
      +/// CERN PROGLIB# F112    TRASAT          .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
       /// trasat.F -- translated by f2c (version 19970219).
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          TCL_TRASAT(a, s, r__, m, n)
          return r__;
       } /* trasat_ */
      @@ -596,17 +591,15 @@ float *TCL::trasat(const double *a, const float *s, float *r__, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trata.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRATA           .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Local variables */
          int i__, j, ia, mn, ir, iat;
          double sum;
      @@ -636,22 +629,21 @@ float *TCL::trata(const float *a, float *r__, int m, int n)
          return r__;
       } /* trata_ */
       
      -//____________________________________________________________
      -// trats.F -- translated by f2c (version 19970219).
      +////////////////////////////////////////////////////////////////////////////////
      +/// trats.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRATS           .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
      +
       float *TCL::trats(const float *a, const float *s, float *b, int m, int n)
       {
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          /* Local variables */
          int inds, i__, j, k, ia, ib, is;
          double sum;
       
      -   /* CERN PROGLIB# F112    TRATS           .VERSION KERNFOR  4.15  861204 */
      -   /* ORIG. 18/12/74 WH */
      -
          /* Parameter adjuTments */
          --b;    --s;    --a;
       
      @@ -684,25 +676,22 @@ float *TCL::trats(const float *a, const float *s, float *b, int m, int n)
          return b;
       } /* trats_ */
       
      -//____________________________________________________________
      -// tratsa.F -- translated by f2c (version 19970219).
      -/* Subroutine */float *TCL::tratsa(const float *a, const float *s, float *r__, int m, int n)
      -{
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      +////////////////////////////////////////////////////////////////////////////////
      +/// tratsa.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRATSA          .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
       
      +float *TCL::tratsa(const float *a, const float *s, float *r__, int m, int n)
      +{
          /* Local variables */
          int imax, i__, j, k;
          int ia, ir, is, iaa, ind;
          double sum;
       
      -   /* CERN PROGLIB# F112    TRATSA          .VERSION KERNFOR  4.15  861204 */
      -   /* ORIG. 18/12/74 WH */
      -
      -
          /* Parameter adjuTments */
          --r__;    --s;    --a;
       
      @@ -743,26 +732,23 @@ float *TCL::trats(const float *a, const float *s, float *b, int m, int n)
          return r__;
       } /* tratsa_ */
       
      -//____________________________________________________________
      -// trchlu.F -- translated by f2c (version 19970219).
      +////////////////////////////////////////////////////////////////////////////////
      +/// trchlu.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRCHLU          .VERSION KERNFOR  4.16  870601
      +/// ORIG. 18/12/74 W.HART
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
      +
       float *TCL::trchlu(const float *a, float *b, int n)
       {
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          /* Local variables */
          int ipiv, kpiv, i__, j;
          double r__, dc;
          int id, kd;
          double sum;
       
      -
      -   /* CERN PROGLIB# F112    TRCHLU          .VERSION KERNFOR  4.16  870601 */
      -   /* ORIG. 18/12/74 W.HART */
      -
      -
          /* Parameter adjuTments */
          --b;    --a;
       
      @@ -806,15 +792,17 @@ float *TCL::trchlu(const float *a, float *b, int n)
          return b;
       } /* trchlu_ */
       
      -//____________________________________________________________
      -// trchul.F -- translated by f2c (version 19970219).
      -/* Subroutine */float *TCL::trchul(const float *a, float *b, int n)
      +////////////////////////////////////////////////////////////////////////////////
      +/// trchul.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRCHUL          .VERSION KERNFOR  4.16  870601
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
      +
      +float *TCL::trchul(const float *a, float *b, int n)
       {
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          /* Local variables */
          int ipiv, kpiv, i__;
          double r__;
      @@ -823,11 +811,6 @@ float *TCL::trchlu(const float *a, float *b, int n)
          int id, kd;
          double sum;
       
      -
      -   /* CERN PROGLIB# F112    TRCHUL          .VERSION KERNFOR  4.16  870601 */
      -   /* ORIG. 18/12/74 WH */
      -
      -
          /* Parameter adjuTments */
          --b;    --a;
       
      @@ -875,17 +858,15 @@ float *TCL::trchlu(const float *a, float *b, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trinv.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRINV           .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          int lhor, ipiv, lver, j;
          double sum = 0;
          double r__ = 0;
      @@ -934,22 +915,20 @@ float *TCL::trchlu(const float *a, float *b, int n)
          return s;
       } /* trinv_ */
       
      -//____________________________________________________________
      -// trla.F -- translated by f2c (version 19970219).
      -/* Subroutine */float *TCL::trla(const float *u, const float *a, float *b, int m, int n)
      +////////////////////////////////////////////////////////////////////////////////
      +/// trla.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRLA            .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
      +
      +float *TCL::trla(const float *u, const float *a, float *b, int m, int n)
       {
          int ipiv, ia, ib, iu;
          double sum;
       
      -   /* CERN PROGLIB# F112    TRLA            .VERSION KERNFOR  4.15  861204 */
      -   /* ORIG. 18/12/74 WH */
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
      -
          /* Parameter adjuTments */
          --b;    --a;    --u;
       
      @@ -981,22 +960,19 @@ float *TCL::trchlu(const float *a, float *b, int n)
       } /* trla_ */
       
       ////////////////////////////////////////////////////////////////////////////////
      +/// trlta.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRLTA           .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
       
      -/* trlta.F -- translated by f2c (version 19970219).
      -// Subroutine */float *TCL::trlta(const float *u, const float *a, float *b, int m, int n)
      +float *TCL::trlta(const float *u, const float *a, float *b, int m, int n)
       {
          int ipiv, mxpn, i__, nTep, ia, ib, iu, mx;
          double sum;
       
      -   /* CERN PROGLIB# F112    TRLTA           .VERSION KERNFOR  4.15  861204 */
      -   /* ORIG. 18/12/74 WH */
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
      -
          /* Parameter adjuTments */
          --b;    --a;    --u;
       
      @@ -1036,16 +1012,15 @@ float *TCL::trchlu(const float *a, float *b, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trpck.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRPCK           .VERSION KERNFOR  2.08  741218 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          int i__, ia, ind, ipiv;
       
          /* Parameter adjuTments */
      @@ -1072,17 +1047,15 @@ float *TCL::trpck(const float *s, float *u, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trqsq.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRQSQ           .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          int indq, inds, imax, i__, j, k, l;
          int iq, ir, is, iqq;
          double sum;
      @@ -1140,16 +1113,15 @@ float *TCL::trqsq(const float *q, const float *s, float *r__, int m)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trsa.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRSA            .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          /* Local variables */
          int inds, i__, j, k, ia, ib, is;
          double sum;
      @@ -1190,17 +1162,15 @@ float *TCL::trsa(const float *s, const float *a, float *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trsinv.F -- translated by f2c (version 19970219).
      +///
       /// CERN PROGLIB# F112    TRSINV          .VERSION KERNFOR  2.08  741218
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Function Body */
          trchlu(g, gi, n);
          trinv(gi, gi, n);
      @@ -1209,17 +1179,15 @@ float *TCL::trsa(const float *s, const float *a, float *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trsmlu.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRSMLU          .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Local variables */
          int lhor, lver, i__, k, l, ind;
          double sum;
      @@ -1246,17 +1214,15 @@ float *TCL::trsa(const float *s, const float *a, float *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trsmul.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRSMUL          .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Local variables */
          int lhor, lver, lpiv, i__, j, k, ind;
          double sum;
      @@ -1284,18 +1250,15 @@ float *TCL::trsa(const float *s, const float *a, float *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trupck.F -- translated by f2c (version 19970219).
      +///
       /// CERN PROGLIB# F112    TRUPCK          .VERSION KERNFOR  2.08  741218
       /// ORIG. 18/12/74 WH
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
      -
          int i__, im, is, iu, iv, ih, m2;
       
          /* Parameter adjuTments */
      @@ -1336,25 +1299,20 @@ float *TCL::trupck(const float *u, float *s, int m)
       } /* trupck_ */
       
       ////////////////////////////////////////////////////////////////////////////////
      +/// trsat.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRSAT           .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
       
      -/* trsat.F -- translated by f2c (version 19970219).
      -// Subroutine */ float *TCL::trsat(const float *s, const float *a, float *b, int m, int n)
      +float *TCL::trsat(const float *s, const float *a, float *b, int m, int n)
       {
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Local variables */
          int inds, i__, j, k, ia, ib, is;
          double sum;
       
      -
      -   /* CERN PROGLIB# F112    TRSAT           .VERSION KERNFOR  4.15  861204 */
      -   /* ORIG. 18/12/74 WH */
      -
      -
          /* Parameter adjuTments */
          --b;    --a;    --s;
       
      @@ -1391,25 +1349,21 @@ float *TCL::trupck(const float *u, float *s, int m)
       
       // ------  double
       
      -//____________________________________________________________
      -// trata.F -- translated by f2c (version 19970219).
      +////////////////////////////////////////////////////////////////////////////////
      +/// trata.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRATA           .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
      +
       double *TCL::trata(const double *a, double *r__, int m, int n)
       {
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Local variables */
          int i__, j, ia, mn, ir, iat;
          double sum;
       
      -
      -   /* CERN PROGLIB# F112    TRATA           .VERSION KERNFOR  4.15  861204 */
      -   /* ORIG. 18/12/74 WH */
      -
      -
          /* Parameter adjuTments */
          --r__;    --a;
       
      @@ -1437,23 +1391,21 @@ double *TCL::trata(const double *a, double *r__, int m, int n)
          return 0;
       } /* trata_ */
       
      -//____________________________________________________________
      -// trats.F -- translated by f2c (version 19970219).
      +////////////////////////////////////////////////////////////////////////////////
      +/// trats.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRATS           .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
      +
       double *TCL::trats(const double *a, const double *s, double *b, int m, int n)
       {
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          /* Local variables */
          int inds, i__, j, k, ia, ib, is;
          double sum;
       
      -
      -   /* CERN PROGLIB# F112    TRATS           .VERSION KERNFOR  4.15  861204 */
      -   /* ORIG. 18/12/74 WH */
      -
          /* Parameter adjuTments */
          --b;    --s;    --a;
       
      @@ -1487,24 +1439,22 @@ double *TCL::trats(const double *a, const double *s, double *b, int m, int n)
          return 0;
       } /* trats_ */
       
      -//____________________________________________________________
      -// tratsa.F -- translated by f2c (version 19970219).
      -/* Subroutine */double *TCL::tratsa(const double *a, const double *s, double *r__, int m, int n)
      +////////////////////////////////////////////////////////////////////////////////
      +/// tratsa.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRATSA          .VERSION KERNFOR  4.15  861204
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
      +
      +double *TCL::tratsa(const double *a, const double *s, double *r__, int m, int n)
       {
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          /* Local variables */
          int imax, i__, j, k;
          int ia, ir, is, iaa, ind;
          double sum;
       
      -   /* CERN PROGLIB# F112    TRATSA          .VERSION KERNFOR  4.15  861204 */
      -   /* ORIG. 18/12/74 WH */
      -
      -
          /* Parameter adjuTments */
          --r__;    --s;    --a;
       
      @@ -1547,25 +1497,21 @@ double *TCL::trats(const double *a, const double *s, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trchlu.F -- translated by f2c (version 19970219).
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          /* Local variables */
          int ipiv, kpiv, i__, j;
          double r__, dc;
          int id, kd;
          double sum;
       
      -
      -   /* CERN PROGLIB# F112    TRCHLU          .VERSION KERNFOR  4.16  870601 */
      -   /* ORIG. 18/12/74 W.HART */
      -
      -
          /* Parameter adjuTments */
          --b;    --a;
       
      @@ -1609,15 +1555,17 @@ double *TCL::trchlu(const double *a, double *b, int n)
          return 0;
       } /* trchlu_ */
       
      -//____________________________________________________________
      -// trchul.F -- translated by f2c (version 19970219).
      +////////////////////////////////////////////////////////////////////////////////
      +/// trchul.F -- translated by f2c (version 19970219).
      +///
      +/// CERN PROGLIB# F112    TRCHUL          .VERSION KERNFOR  4.16  870601
      +/// ORIG. 18/12/74 WH
      +///
      +/// See original documentation of CERNLIB package
      +/// [F112](https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/f112/top.html)
      +
       double *TCL::trchul(const double *a, double *b, int n)
       {
      - //BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          /* Local variables */
          int ipiv, kpiv, i__;
          double r__;
      @@ -1626,11 +1574,6 @@ double *TCL::trchul(const double *a, double *b, int n)
          int id, kd;
          double sum;
       
      -
      -   /* CERN PROGLIB# F112    TRCHUL          .VERSION KERNFOR  4.16  870601 */
      -   /* ORIG. 18/12/74 WH */
      -
      -
          /* Parameter adjuTments */
          --b;    --a;
       
      @@ -1677,17 +1620,15 @@ double *TCL::trchul(const double *a, double *b, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trinv.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRINV           .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
       ///
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          int lhor, ipiv, lver,  j;
          double r__;
          int mx, ndTep, ind;
      @@ -1735,19 +1676,16 @@ double *TCL::trinv(const double *t, double *s, int n)
       } /* trinv_ */
       
       ////////////////////////////////////////////////////////////////////////////////
      -///
       /// trla.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRLA            .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
       ///
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          int ipiv, ia, ib, iu;
          double sum;
       
      @@ -1782,17 +1720,15 @@ double *TCL::trinv(const double *t, double *s, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trlta.F -- translated by f2c (version 19970219).
      +///
       /// CERN PROGLIB# F112    TRLTA           .VERSION KERNFOR  4.15  861204
       /// ORIG. 18/12/74 WH
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          int ipiv, mxpn, i__, nTep, ia, ib, iu, mx;
          double sum;
       
      @@ -1834,16 +1770,15 @@ double *TCL::trlta(const double *u, const double *a, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trpck.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRPCK           .VERSION KERNFOR  2.08  741218 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          int i__, ia, ind, ipiv;
       
          /* Parameter adjuTments */
      @@ -1869,17 +1804,15 @@ double *TCL::trlta(const double *u, const double *a, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trqsq.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRQSQ           .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          int indq, inds, imax, i__, j, k, l;
          int iq, ir, is, iqq;
          double sum;
      @@ -1936,16 +1869,15 @@ double *TCL::trqsq(const double *q, const double *s, double *r__, int m)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trsa.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRSA            .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
          /* Local variables */
          int inds, i__, j, k, ia, ib, is;
          double sum;
      @@ -1985,17 +1917,15 @@ double *TCL::trsa(const double *s, const double *a, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trsinv.F -- translated by f2c (version 19970219).
      +///
       /// CERN PROGLIB# F112    TRSINV          .VERSION KERNFOR  2.08  741218
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Function Body */
          trchlu(g, gi, n);
          trinv(gi, gi, n);
      @@ -2006,17 +1936,15 @@ double *TCL::trsa(const double *s, const double *a, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trsmlu.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRSMLU          .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Local variables */
          int lhor, lver, i__, k, l, ind;
          double sum;
      @@ -2043,17 +1971,15 @@ double *TCL::trsa(const double *s, const double *a, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trsmul.F -- translated by f2c (version 19970219).
      -/// CERN PROGLIB# F112    TRSMUL          .VERSION KERNFOR  4.15  861204 */
      -/// ORIG. 18/12/74 WH */
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Local variables */
          int lhor, lver, lpiv, i__, j, k, ind;
          double sum;
      @@ -2081,18 +2007,15 @@ double *TCL::trsa(const double *s, const double *a, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trupck.F -- translated by f2c (version 19970219).
      +///
       /// CERN PROGLIB# F112    TRUPCK          .VERSION KERNFOR  2.08  741218
       /// ORIG. 18/12/74 WH
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
      -
          int i__, im, is, iu, iv, ih, m2;
       
          /* Parameter adjuTments */
      @@ -2133,17 +2056,15 @@ double *TCL::trsa(const double *s, const double *a, double *b, int m, int n)
       
       ////////////////////////////////////////////////////////////////////////////////
       /// trsat.F -- translated by f2c (version 19970219)
      +///
       /// CERN PROGLIB# F112    TRSAT           .VERSION KERNFOR  4.15  861204
       /// ORIG. 18/12/74 WH
      -///BEGIN_HTML 
      -  see original documentation of CERNLIB package F112
      - END_HTML
      -
          /* Local variables */
          int inds, i__, j, k, ia, ib, is;
          double sum;
      
      From aa08ba44669fd70d4cf5e9129e3c1d5480f6815d Mon Sep 17 00:00:00 2001
      From: Mattias Ellert 
      Date: Sun, 10 Apr 2016 18:40:50 +0200
      Subject: [PATCH 13/13] Address a few doxygen warnings.
      
      ---
       core/base/v7/inc/ROOT/RArrayView.h            |  2 +-
       core/base/v7/inc/ROOT/RTupleApply.h           |  2 +-
       core/base/v7/inc/ROOT/TDirectory.h            |  2 +-
       core/base/v7/inc/ROOT/TDirectoryEntry.h       |  2 +-
       core/base/v7/inc/ROOT/TDrawable.h             |  2 +-
       core/base/v7/inc/ROOT/TLogger.h               |  2 +-
       core/base/v7/inc/ROOT/impl_tuple_apply.h      |  2 +-
       core/base/v7/inc/ROOT/rhysd_array_view.h      |  2 +-
       core/cont/inc/TCollectionProxyInfo.h          | 16 ++++++------
       graf2d/gpad/v7/inc/ROOT/TCanvas.h             |  2 +-
       graf3d/gl/src/TGLPolyMarker.cxx               |  2 +-
       graf3d/gl/src/TGLSelectRecord.cxx             |  2 +-
       graf3d/gl/src/TGLVoxelPainter.cxx             |  2 +-
       hist/hist/src/TH1.cxx                         | 15 +++++++----
       hist/hist/src/TH2.cxx                         | 15 +++++++----
       hist/hist/src/TH3.cxx                         | 15 +++++++----
       hist/hist/v7/src/THistDrawable.cxx            |  2 +-
       hist/histpainter/v7/src/THistPainter.cxx      |  2 +-
       html/src/TDocOutput.cxx                       |  2 +-
       io/dcache/inc/TDCacheFile.h                   |  2 +-
       io/io/inc/TCollectionProxyFactory.h           |  2 +-
       io/io/src/TMakeProject.cxx                    |  4 +--
       io/io/src/TStreamerInfo.cxx                   |  2 +-
       math/doc/Math.md                              |  4 +--
       math/mathcore/inc/Math/Random.h               |  4 +--
       math/mathcore/inc/Math/SpecFuncMathCore.h     |  2 +-
       math/mathcore/src/TKDTree.cxx                 |  3 ++-
       math/mathcore/v7/inc/ROOT/TFit.h              |  2 +-
       math/mathmore/inc/Math/GSLMCIntegrator.h      |  3 ---
       math/mathmore/inc/Math/VavilovAccuratePdf.h   |  2 +-
       math/mathmore/src/SpecFuncMathMore.cxx        | 26 ++++++++++---------
       math/unuran/doc/Unuran.md                     |  2 +-
       net/glite/inc/TGLiteResult.h                  |  2 +-
       net/glite/src/TGLiteResult.cxx                |  2 +-
       net/http/src/THttpCallArg.cxx                 |  4 +--
       net/net/src/TWebFile.cxx                      |  2 +-
       roofit/roofitcore/src/BidirMMapPipe.h         |  4 +--
       roofit/roofitcore/src/RooAbsCollection.cxx    |  2 +-
       roofit/roofitcore/src/RooAbsData.cxx          |  2 +-
       roofit/roofitcore/src/RooAbsReal.cxx          |  2 +-
       roofit/roofitcore/src/RooRealVar.cxx          |  2 +-
       roofit/roostats/inc/RooStats/MCMCInterval.h   |  2 +-
       roofit/roostats/inc/RooStats/PdfProposal.h    |  4 +--
       .../RatioOfProfiledLikelihoodsTestStat.h      | 12 ++++-----
       tree/treeplayer/src/TBranchProxy.cxx          |  2 +-
       45 files changed, 102 insertions(+), 89 deletions(-)
      
      diff --git a/core/base/v7/inc/ROOT/RArrayView.h b/core/base/v7/inc/ROOT/RArrayView.h
      index b57da84c50fd8..ea54ca132ff6b 100644
      --- a/core/base/v7/inc/ROOT/RArrayView.h
      +++ b/core/base/v7/inc/ROOT/RArrayView.h
      @@ -1,4 +1,4 @@
      -/// \file RArrayView.h
      +/// \file ROOT/RArrayView.h
       /// \ingroup Base StdExt ROOT7
       /// \author Axel Naumann 
       /// \date 2015-09-06
      diff --git a/core/base/v7/inc/ROOT/RTupleApply.h b/core/base/v7/inc/ROOT/RTupleApply.h
      index 204c0f8ce1d0a..20a331942cfbb 100644
      --- a/core/base/v7/inc/ROOT/RTupleApply.h
      +++ b/core/base/v7/inc/ROOT/RTupleApply.h
      @@ -1,4 +1,4 @@
      -/// \file RArrayView.h
      +/// \file ROOT/RTupleApply.h
       /// \ingroup Base StdExt ROOT7
       /// \author Axel Naumann 
       /// \date 2015-09-06
      diff --git a/core/base/v7/inc/ROOT/TDirectory.h b/core/base/v7/inc/ROOT/TDirectory.h
      index b948434c07d9e..fdfced653c217 100644
      --- a/core/base/v7/inc/ROOT/TDirectory.h
      +++ b/core/base/v7/inc/ROOT/TDirectory.h
      @@ -1,4 +1,4 @@
      -/// \file TDirectory.h
      +/// \file ROOT/TDirectory.h
       /// \ingroup Base ROOT7
       /// \author Axel Naumann 
       /// \date 2015-07-31
      diff --git a/core/base/v7/inc/ROOT/TDirectoryEntry.h b/core/base/v7/inc/ROOT/TDirectoryEntry.h
      index b01b89f0a6cb3..c8704d8eded91 100644
      --- a/core/base/v7/inc/ROOT/TDirectoryEntry.h
      +++ b/core/base/v7/inc/ROOT/TDirectoryEntry.h
      @@ -1,4 +1,4 @@
      -/// \file TDirectoryEntry.h
      +/// \file ROOT/TDirectoryEntry.h
       /// \ingroup Base ROOT7
       /// \author Axel Naumann 
       /// \date 2015-07-31
      diff --git a/core/base/v7/inc/ROOT/TDrawable.h b/core/base/v7/inc/ROOT/TDrawable.h
      index 9a08491824cc4..d27cd61c86247 100644
      --- a/core/base/v7/inc/ROOT/TDrawable.h
      +++ b/core/base/v7/inc/ROOT/TDrawable.h
      @@ -1,4 +1,4 @@
      -/// \file TDirectory.h
      +/// \file ROOT/TDrawable.h
       /// \ingroup Base ROOT7
       /// \author Axel Naumann 
       /// \date 2015-08-07
      diff --git a/core/base/v7/inc/ROOT/TLogger.h b/core/base/v7/inc/ROOT/TLogger.h
      index 2bcbef1572b60..50ff1ad380ad2 100644
      --- a/core/base/v7/inc/ROOT/TLogger.h
      +++ b/core/base/v7/inc/ROOT/TLogger.h
      @@ -1,4 +1,4 @@
      -/// \file TDirectory.h
      +/// \file ROOT/TLogger.h
       /// \ingroup Base ROOT7
       /// \author Axel Naumann 
       /// \date 2015-03-29
      diff --git a/core/base/v7/inc/ROOT/impl_tuple_apply.h b/core/base/v7/inc/ROOT/impl_tuple_apply.h
      index 8092ea8d4baaa..8d89c8abfbff5 100644
      --- a/core/base/v7/inc/ROOT/impl_tuple_apply.h
      +++ b/core/base/v7/inc/ROOT/impl_tuple_apply.h
      @@ -1,4 +1,4 @@
      -/// \file impl_tuple_apply.h
      +/// \file ROOT/impl_tuple_apply.h
       /// \ingroup Base StdExt ROOT7
       /// \author Axel Naumann 
       /// \date 2015-07-09
      diff --git a/core/base/v7/inc/ROOT/rhysd_array_view.h b/core/base/v7/inc/ROOT/rhysd_array_view.h
      index 399812e22b753..6b5ae4fc70081 100644
      --- a/core/base/v7/inc/ROOT/rhysd_array_view.h
      +++ b/core/base/v7/inc/ROOT/rhysd_array_view.h
      @@ -1,4 +1,4 @@
      -/// \file rhysd_array_view.h
      +/// \file ROOT/rhysd_array_view.h
       /// \ingroup Base StdExt ROOT7
       /// \author Axel Naumann 
       /// \date 2015-09-06
      diff --git a/core/cont/inc/TCollectionProxyInfo.h b/core/cont/inc/TCollectionProxyInfo.h
      index a580c04f85307..394263226e007 100644
      --- a/core/cont/inc/TCollectionProxyInfo.h
      +++ b/core/cont/inc/TCollectionProxyInfo.h
      @@ -57,7 +57,7 @@ namespace Detail {
             // Same value as TVirtualCollectionProxy.
             static const UInt_t fgIteratorArenaSize = 16; // greater than sizeof(void*) + sizeof(UInt_t)
       
      -   /** @class template TCollectionProxyInfo::IteratorValue
      +   /** @class ROOT::Detail::TCollectionProxyInfo::IteratorValue
           *
           * Small helper to encapsulate whether to return the value
           * pointed to by the iterator or its address.
      @@ -76,7 +76,7 @@ namespace Detail {
                }
             };
       
      -   /** @class template TCollectionProxyInfo::Iterators
      +   /** @class ROOT::Detail::TCollectionProxyInfo::Iterators
           *
           * Small helper to implement the function to create,access and destroy
           * iterators.
      @@ -204,7 +204,7 @@ namespace Detail {
                }
             };
       
      -  /** @class TCollectionProxyInfo::Environ TCollectionProxyInfo.h TCollectionProxyInfo.h
      +  /** @class ROOT::Detail::TCollectionProxyInfo::Environ
           *
           * Small helper to save proxy environment in the event of
           * recursive calls.
      @@ -276,7 +276,7 @@ namespace Detail {
             static size_t GetContainerSize(const std::forward_list& c) {return std::distance(c.begin(),c.end());}
          };
       
      -   /** @class TCollectionProxyInfo::Type TCollectionProxyInfo.h TCollectionProxyInfo.h
      +   /** @class ROOT::Detail::TCollectionProxyInfo::Type
           *
           * Small helper to encapsulate basic data accesses for
           * all STL continers.
      @@ -356,7 +356,7 @@ namespace Detail {
       
          };
       
      -   /** @class TCollectionProxyInfo::Map TCollectionProxyInfo.h TCollectionProxyInfo.h
      +   /** @class ROOT::Detail::TCollectionProxyInfo::Pushback
           *
           * Small helper to encapsulate all necessary data accesses for
           * containers like vector, list, deque
      @@ -389,7 +389,7 @@ namespace Detail {
             }
          };
       
      -   /** @class TCollectionProxyInfo::Pushfront TCollectionProxyInfo.h TCollectionProxyInfo.h
      +   /** @class ROOT::Detail::TCollectionProxyInfo::Pushfront
           *
           * Small helper to encapsulate all necessary data accesses for
           * containers like forward_list
      @@ -425,7 +425,7 @@ namespace Detail {
             }
          };
       
      -   /** @class TCollectionProxyInfo::Map TCollectionProxyInfo.h TCollectionProxyInfo.h
      +   /** @class ROOT::Detail::TCollectionProxyInfo::Insert
           *
           * Small helper to encapsulate all necessary data accesses for
           * containers like set, multiset etc.
      @@ -457,7 +457,7 @@ namespace Detail {
             }
          };
       
      -   /** @class TCollectionProxyInfo::Map TCollectionProxyInfo.h TCollectionProxyInfo.h
      +   /** @class ROOT::Detail::TCollectionProxyInfo::MapInsert
           *
           * Small helper to encapsulate all necessary data accesses for
           * containers like set, multiset etc.
      diff --git a/graf2d/gpad/v7/inc/ROOT/TCanvas.h b/graf2d/gpad/v7/inc/ROOT/TCanvas.h
      index a257f380c155b..16558f9e390ad 100644
      --- a/graf2d/gpad/v7/inc/ROOT/TCanvas.h
      +++ b/graf2d/gpad/v7/inc/ROOT/TCanvas.h
      @@ -1,4 +1,4 @@
      -/// \file TCanvas.h
      +/// \file ROOT/TCanvas.h
       /// \ingroup Gpad ROOT7
       /// \author Axel Naumann 
       /// \date 2015-07-08
      diff --git a/graf3d/gl/src/TGLPolyMarker.cxx b/graf3d/gl/src/TGLPolyMarker.cxx
      index fe0aa80161601..d6291f2129cf9 100644
      --- a/graf3d/gl/src/TGLPolyMarker.cxx
      +++ b/graf3d/gl/src/TGLPolyMarker.cxx
      @@ -26,7 +26,7 @@
       #include "TClass.h"
       #include "TError.h"
       
      -/** \class
      +/** \class TGLPolyMarker
       \ingroup opengl
       To draw a 3D polymarker in a GL window.
       */
      diff --git a/graf3d/gl/src/TGLSelectRecord.cxx b/graf3d/gl/src/TGLSelectRecord.cxx
      index bf91bbcb5cd62..faea9283bb93e 100644
      --- a/graf3d/gl/src/TGLSelectRecord.cxx
      +++ b/graf3d/gl/src/TGLSelectRecord.cxx
      @@ -14,7 +14,7 @@
       
       #include 
       
      -/** \class
      +/** \class TGLSelectRecordBase
       \ingroup opengl TGLSelectRecordBase
       Base class for select records.
       Supports initialization from a raw GL record (UInt_t*) and
      diff --git a/graf3d/gl/src/TGLVoxelPainter.cxx b/graf3d/gl/src/TGLVoxelPainter.cxx
      index ba85eb7e88bea..c2bf29c93e298 100644
      --- a/graf3d/gl/src/TGLVoxelPainter.cxx
      +++ b/graf3d/gl/src/TGLVoxelPainter.cxx
      @@ -15,7 +15,7 @@
       #include "TGLPlotCamera.h"
       #include "TGLIncludes.h"
       
      -/** \class
      +/** \class TGLVoxelPainter
       \ingroup opengl
       Paint TH3 histograms as "voxels" - colored boxes, transparent if transfer function was specified.
       */
      diff --git a/hist/hist/src/TH1.cxx b/hist/hist/src/TH1.cxx
      index 84910f8a8848c..c8935bf3ca814 100644
      --- a/hist/hist/src/TH1.cxx
      +++ b/hist/hist/src/TH1.cxx
      @@ -49,11 +49,16 @@
       
       /** \addtogroup Hist
       @{
      -\class TH1C \brief tomato 1-D histogram with a byte per channel (see TH1 documentation)
      -\class TH1S \brief tomato 1-D histogram with a short per channel (see TH1 documentation)
      -\class TH1I \brief tomato 1-D histogram with a int per channel (see TH1 documentation)}
      -\class TH1F \brief tomato 1-D histogram with a float per channel (see TH1 documentation)}
      -\class TH1D \brief tomato 1-D histogram with a double per channel (see TH1 documentation)}
      +\class TH1C
      +\brief 1-D histogram with a byte per channel (see TH1 documentation)
      +\class TH1S
      +\brief 1-D histogram with a short per channel (see TH1 documentation)
      +\class TH1I
      +\brief 1-D histogram with an int per channel (see TH1 documentation)}
      +\class TH1F
      +\brief 1-D histogram with a float per channel (see TH1 documentation)}
      +\class TH1D
      +\brief 1-D histogram with a double per channel (see TH1 documentation)}
       @}
       */
       
      diff --git a/hist/hist/src/TH2.cxx b/hist/hist/src/TH2.cxx
      index 4872ae154bf11..bd1567a57782a 100644
      --- a/hist/hist/src/TH2.cxx
      +++ b/hist/hist/src/TH2.cxx
      @@ -30,11 +30,16 @@ ClassImp(TH2)
       
       /** \addtogroup Hist
       @{
      -\class TH2C \brief tomato 2-D histogram with a bype per channel (see TH1 documentation)
      -\class TH2S \brief tomato 2-D histogram with a short per channel (see TH1 documentation)
      -\class TH2I \brief tomato 2-D histogram with a int per channel (see TH1 documentation)}
      -\class TH2F \brief tomato 2-D histogram with a float per channel (see TH1 documentation)}
      -\class TH2D \brief tomato 2-D histogram with a double per channel (see TH1 documentation)}
      +\class TH2C
      +\brief 2-D histogram with a byte per channel (see TH1 documentation)
      +\class TH2S
      +\brief 2-D histogram with a short per channel (see TH1 documentation)
      +\class TH2I
      +\brief 2-D histogram with an int per channel (see TH1 documentation)}
      +\class TH2F
      +\brief 2-D histogram with a float per channel (see TH1 documentation)}
      +\class TH2D
      +\brief 2-D histogram with a double per channel (see TH1 documentation)}
       @}
       */
       
      diff --git a/hist/hist/src/TH3.cxx b/hist/hist/src/TH3.cxx
      index 1ba4b398b8838..fcc72c1388a8d 100644
      --- a/hist/hist/src/TH3.cxx
      +++ b/hist/hist/src/TH3.cxx
      @@ -28,11 +28,16 @@ ClassImp(TH3)
       
       /** \addtogroup Hist
       @{
      -\class TH3C \brief tomato 3-D histogram with a bype per channel (see TH1 documentation)
      -\class TH3S \brief tomato 3-D histogram with a short per channel (see TH1 documentation)
      -\class TH3I \brief tomato 3-D histogram with a int per channel (see TH1 documentation)}
      -\class TH3F \brief tomato 3-D histogram with a float per channel (see TH1 documentation)}
      -\class TH3D \brief tomato 3-D histogram with a double per channel (see TH1 documentation)}
      +\class TH3C
      +\brief 3-D histogram with a byte per channel (see TH1 documentation)
      +\class TH3S
      +\brief 3-D histogram with a short per channel (see TH1 documentation)
      +\class TH3I
      +\brief 3-D histogram with an int per channel (see TH1 documentation)}
      +\class TH3F
      +\brief 3-D histogram with a float per channel (see TH1 documentation)}
      +\class TH3D
      +\brief 3-D histogram with a double per channel (see TH1 documentation)}
       @} 
       */
       
      diff --git a/hist/hist/v7/src/THistDrawable.cxx b/hist/hist/v7/src/THistDrawable.cxx
      index e10aa39e36cf6..8f27d4cd6b7eb 100644
      --- a/hist/hist/v7/src/THistDrawable.cxx
      +++ b/hist/hist/v7/src/THistDrawable.cxx
      @@ -1,4 +1,4 @@
      -/// \file ROOT/THistDrawable.cxx
      +/// \file THistDrawable.cxx
       /// \ingroup Hist ROOT7
       /// \author Axel Naumann 
       /// \date 2015-09-11
      diff --git a/hist/histpainter/v7/src/THistPainter.cxx b/hist/histpainter/v7/src/THistPainter.cxx
      index 7aa644e1c8125..5595bb75831b9 100644
      --- a/hist/histpainter/v7/src/THistPainter.cxx
      +++ b/hist/histpainter/v7/src/THistPainter.cxx
      @@ -1,4 +1,4 @@
      -/// \file ROOT/THistPainter.cxx
      +/// \file THistPainter.cxx
       /// \ingroup HistPainter ROOT7
       /// \author Axel Naumann 
       /// \date 2015-07-09
      diff --git a/html/src/TDocOutput.cxx b/html/src/TDocOutput.cxx
      index 6b6a69ea71870..2d5735995d50d 100644
      --- a/html/src/TDocOutput.cxx
      +++ b/html/src/TDocOutput.cxx
      @@ -2463,7 +2463,7 @@ void TDocOutput::WriteLocation(std::ostream& out, TModuleDocInfo* module, const
       
       ////////////////////////////////////////////////////////////////////////////////
       /// Write the first part of the links shown ontop of each doc page;
      -/// one 
      has to be closed by caller so additional items can still +/// one \ has to be closed by caller so additional items can still /// be added. void TDocOutput::WriteTopLinks(std::ostream& out, TModuleDocInfo* module, const char* classname, diff --git a/io/dcache/inc/TDCacheFile.h b/io/dcache/inc/TDCacheFile.h index 1958a07163c80..bc331af8f2dce 100644 --- a/io/dcache/inc/TDCacheFile.h +++ b/io/dcache/inc/TDCacheFile.h @@ -63,7 +63,7 @@ class TDCacheFile : public TFile { const char *location = 0); static Bool_t CheckFile(const char *path, const char *location = 0); - /// Note: This must be kept in sync with values #defined in dcap.h + /// Note: This must be kept in sync with values \#defined in dcap.h enum EOnErrorAction { kOnErrorRetry = 1, kOnErrorFail = 0, diff --git a/io/io/inc/TCollectionProxyFactory.h b/io/io/inc/TCollectionProxyFactory.h index 88c2094f38ab5..6e670bc358556 100644 --- a/io/io/inc/TCollectionProxyFactory.h +++ b/io/io/inc/TCollectionProxyFactory.h @@ -160,7 +160,7 @@ class TCollectionStreamer { }; /** - \class TCollectionClassStreamer TCollectionProxy.h + \class TCollectionClassStreamer TCollectionProxyFactory.h \ingroup IO Class streamer object to implement TClassStreamer functionality diff --git a/io/io/src/TMakeProject.cxx b/io/io/src/TMakeProject.cxx index fc1f29449180d..c5d4e7cc031bf 100644 --- a/io/io/src/TMakeProject.cxx +++ b/io/io/src/TMakeProject.cxx @@ -445,7 +445,7 @@ UInt_t TMakeProject::GenerateForwardDeclaration(FILE *fp, const char *clname, ch } //////////////////////////////////////////////////////////////////////////////// -/// Add to the header file, the #include needed for the argument of +/// Add to the header file, the \#include needed for the argument of /// this template. UInt_t TMakeProject::GenerateIncludeForTemplate(FILE *fp, const char *clname, char *inclist, Bool_t forward, const TList *extrainfos) @@ -598,7 +598,7 @@ UInt_t TMakeProject::GenerateIncludeForTemplate(FILE *fp, const char *clname, ch //////////////////////////////////////////////////////////////////////////////// /// Add to the header file anything that need to appear after the class -/// declaration (this includes some #pragma link). +/// declaration (this includes some \#pragma link). void TMakeProject::GeneratePostDeclaration(FILE *fp, const TVirtualStreamerInfo *info, char *inclist) { diff --git a/io/io/src/TStreamerInfo.cxx b/io/io/src/TStreamerInfo.cxx index 9cee677b000a5..79a55dce4629c 100644 --- a/io/io/src/TStreamerInfo.cxx +++ b/io/io/src/TStreamerInfo.cxx @@ -3743,7 +3743,7 @@ void TStreamerInfo::GenerateDeclaration(FILE *fp, FILE *sfp, const TList *subCla } //////////////////////////////////////////////////////////////////////////////// -/// Add to the header file, the #include need for this class. +/// Add to the header file, the \#include need for this class. UInt_t TStreamerInfo::GenerateIncludes(FILE *fp, char *inclist, const TList *extrainfos) { diff --git a/math/doc/Math.md b/math/doc/Math.md index e1f400106256b..8ec5a69f43638 100644 --- a/math/doc/Math.md +++ b/math/doc/Math.md @@ -4,7 +4,7 @@ \brief The %ROOT Mathematical Libraries. -See the \subpage MathPage "Mathematical Libraries" description page. +See the \ref MathPage "Mathematical Libraries" description page. \page MathPage The ROOT Mathematical Libraries @@ -39,7 +39,7 @@ The %ROOT Mathematical libraries consist of the following components: - **Physics Vectors**: Classes for describing vectors in 2, 3 and 4 dimensions (relativistic vectors) and their rotation and transformation algorithms. Two package exist in %ROOT: - Physics: library with the TVector3 and TLorentzVector classes. - - GenVector: new library providing generic class templates for modeling the vectors. See the \subpage "GenVector" page. + - GenVector: new library providing generic class templates for modeling the vectors. See the \ref Vector "GenVector" page. - \ref Unuran "UNURAN": Package with universal algorithms for generating non-uniform pseudo-random numbers, from a large classes of continuous or discrete distributions in one or multi-dimensions. diff --git a/math/mathcore/inc/Math/Random.h b/math/mathcore/inc/Math/Random.h index 9a0642fe4b1a6..d2af469d2217f 100644 --- a/math/mathcore/inc/Math/Random.h +++ b/math/mathcore/inc/Math/Random.h @@ -18,9 +18,7 @@ #define ROOT_Math_Random /** -@defgroup Random - - Interface class for Random number generation +@defgroup Random Interface class for Random number generation */ #include "Math/RandomFunctions.h" diff --git a/math/mathcore/inc/Math/SpecFuncMathCore.h b/math/mathcore/inc/Math/SpecFuncMathCore.h index 612534437501f..5556a744e24aa 100644 --- a/math/mathcore/inc/Math/SpecFuncMathCore.h +++ b/math/mathcore/inc/Math/SpecFuncMathCore.h @@ -209,7 +209,7 @@ namespace Math { /** - Calculates the real part of the cosine integral \Re(Ci). + Calculates the real part of the cosine integral Re(Ci). For x<0, the imaginary part is \pi i and has to be added by the user, for x>0 the imaginary part of Ci(x) is 0. diff --git a/math/mathcore/src/TKDTree.cxx b/math/mathcore/src/TKDTree.cxx index 90cbdb8f91a43..7c3da30ccf540 100644 --- a/math/mathcore/src/TKDTree.cxx +++ b/math/mathcore/src/TKDTree.cxx @@ -21,7 +21,8 @@ templateClassImp(TKDTree) /** -\class TKDTree class implementing a kd-tree +\class TKDTree +\brief Class implementing a kd-tree diff --git a/math/mathcore/v7/inc/ROOT/TFit.h b/math/mathcore/v7/inc/ROOT/TFit.h index 69346843b1021..a5705f9990e70 100644 --- a/math/mathcore/v7/inc/ROOT/TFit.h +++ b/math/mathcore/v7/inc/ROOT/TFit.h @@ -1,4 +1,4 @@ -/// \file TFit.h +/// \file ROOT/TFit.h /// \ingroup MathCore ROOT7 /// \author Axel Naumann /// \date 2015-09-06 diff --git a/math/mathmore/inc/Math/GSLMCIntegrator.h b/math/mathmore/inc/Math/GSLMCIntegrator.h index 6c2c115651bd4..dbb07180a65ef 100644 --- a/math/mathmore/inc/Math/GSLMCIntegrator.h +++ b/math/mathmore/inc/Math/GSLMCIntegrator.h @@ -83,9 +83,6 @@ namespace Math { It implements also the interface ROOT::Math::VirtualIntegratorMultiDim so it can be instantiate using the plugin manager (plugin name is "GSLMCIntegrator") - - @ingroup MCIntegration - */ diff --git a/math/mathmore/inc/Math/VavilovAccuratePdf.h b/math/mathmore/inc/Math/VavilovAccuratePdf.h index ff5afef389c56..2d33a04ca75ce 100644 --- a/math/mathmore/inc/Math/VavilovAccuratePdf.h +++ b/math/mathmore/inc/Math/VavilovAccuratePdf.h @@ -51,7 +51,7 @@ namespace Math { and \f[\psi(s) = s \ln \kappa + (s+\beta^2 \kappa) \cdot \left ( \int \limits_{0}^{1} \frac{1 - e^{\frac{-st}{\kappa}}}{t} \, dt- \gamma \right ) - - \kappa \, e^{\frac{-s}{\kappa}}\f$. + - \kappa \, e^{\frac{-s}{\kappa}}\f]. \f$ \gamma = 0.5772156649\dots\f$ is Euler's constant. The parameters are: diff --git a/math/mathmore/src/SpecFuncMathMore.cxx b/math/mathmore/src/SpecFuncMathMore.cxx index 2f7052d588637..9125dc45fe6da 100644 --- a/math/mathmore/src/SpecFuncMathMore.cxx +++ b/math/mathmore/src/SpecFuncMathMore.cxx @@ -84,16 +84,17 @@ double comp_ellint_2(double k) { // [5.2.1.6] (complete) elliptic integral of the third kind // (26.x.17.2) /** +Complete elliptic integral of the third kind. There are two different definitions used for the elliptic integral of the third kind: - -P(\phi,k,n) = \int_0^\phi dt 1/((1 + nu \sin^2(t))\sqrt(1 - k^2 \sin^2(t))) - +\f[ +P(\phi,k,n) = \int_0^\phi \frac{dt}{(1 + n \sin^2{t})\sqrt{1 - k^2 \sin^2{t}}} +\f] and - -P(\phi,k,n) = \int_0^\phi dt 1/((1 - nu \sin^2(t))\sqrt(1 - k^2 \sin^2(t))) - +\f[ +P(\phi,k,n) = \int_0^\phi \frac{dt}{(1 - n \sin^2{t})\sqrt{1 - k^2 \sin^2{t}}} +\f] the former is adopted by - GSL @@ -220,16 +221,17 @@ double ellint_2(double k, double phi) { // phi in radians // (26.x.17.1) /** +Incomplete elliptic integral of the third kind. There are two different definitions used for the elliptic integral of the third kind: - -P(\phi,k,n) = \int_0^\phi dt 1/((1 + nu \sin^2(t))\sqrt(1 - k^2 \sin^2(t))) - +\f[ +P(\phi,k,n) = \int_0^\phi \frac{dt}{(1 + n \sin^2{t})\sqrt{1 - k^2 \sin^2{t}}} +\f] and - -P(\phi,k,n) = \int_0^\phi dt 1/((1 - nu \sin^2(t))\sqrt(1 - k^2 \sin^2(t))) - +\f[ +P(\phi,k,n) = \int_0^\phi \frac{dt}{(1 - n \sin^2{t})\sqrt{1 - k^2 \sin^2{t}}} +\f] the former is adopted by - GSL diff --git a/math/unuran/doc/Unuran.md b/math/unuran/doc/Unuran.md index 13e8aef8f2814..63ecb906a5d46 100644 --- a/math/unuran/doc/Unuran.md +++ b/math/unuran/doc/Unuran.md @@ -38,7 +38,7 @@ It can then be used in two distinct ways: - The user can optionally provide the - cdf (cumulative distribution function) via the **TUnuranContDist::SetCdf** function, - the mode via **TUnuranContDist::SetMode**, - - the domain via **TUnuranContDist::SetDomain** for generating numbers in a restricted region, + - the domain via **TUnuranContDist::SetDomain** for generating numbers in a restricted region, - the area below the pdf via **TUnuranContDist::SetPdfArea**. Some of this information is required depending on the chosen UNURAN generation method. diff --git a/net/glite/inc/TGLiteResult.h b/net/glite/inc/TGLiteResult.h index 1a7dead9f1eb5..0422a4c8fd27c 100644 --- a/net/glite/inc/TGLiteResult.h +++ b/net/glite/inc/TGLiteResult.h @@ -10,7 +10,7 @@ *************************************************************************/ /************************************************************************/ -/*! \file TGLiteresult.h +/*! \file TGLiteResult.h *//* version number: $LastChangedRevision: 1678 $ diff --git a/net/glite/src/TGLiteResult.cxx b/net/glite/src/TGLiteResult.cxx index aa7b8efcb4b3b..0f30c0871b1f9 100644 --- a/net/glite/src/TGLiteResult.cxx +++ b/net/glite/src/TGLiteResult.cxx @@ -10,7 +10,7 @@ *************************************************************************/ /************************************************************************/ -/*! \file TGLiteresult.cxx +/*! \file TGLiteResult.cxx */ /* version number: $LastChangedRevision: 1678 $ diff --git a/net/http/src/THttpCallArg.cxx b/net/http/src/THttpCallArg.cxx index 1dcf6189a15d9..367c26ba3705a 100644 --- a/net/http/src/THttpCallArg.cxx +++ b/net/http/src/THttpCallArg.cxx @@ -59,8 +59,8 @@ THttpCallArg::~THttpCallArg() //////////////////////////////////////////////////////////////////////////////// /// method used to get or set http header in the string buffer /// Header has following format: -/// field1 : value1\r\n -/// field2 : value2\r\n +/// field1 : value1\\r\\n +/// field2 : value2\\r\\n /// Such format corresponds to header format in HTTP requests TString THttpCallArg::AccessHeader(TString& buf, const char* name, const char* value, Bool_t doing_set) diff --git a/net/net/src/TWebFile.cxx b/net/net/src/TWebFile.cxx index c376d2b346d55..74d9b278c5815 100644 --- a/net/net/src/TWebFile.cxx +++ b/net/net/src/TWebFile.cxx @@ -1195,7 +1195,7 @@ Int_t TWebFile::GetHunk(TSocket *s, char *hunk, Int_t maxsize) //////////////////////////////////////////////////////////////////////////////// /// Determine whether [START, PEEKED + PEEKLEN) contains an HTTP new -/// line [\r]\n. If so, return the pointer to the position after the line, +/// line [\\r]\\n. If so, return the pointer to the position after the line, /// otherwise return 0. This is used as callback to GetHunk(). The data /// between START and PEEKED has been read and cannot be "unread"; the /// data after PEEKED has only been peeked. diff --git a/roofit/roofitcore/src/BidirMMapPipe.h b/roofit/roofitcore/src/BidirMMapPipe.h index 8a99fb7d383b9..ba04dc0ece978 100644 --- a/roofit/roofitcore/src/BidirMMapPipe.h +++ b/roofit/roofitcore/src/BidirMMapPipe.h @@ -813,7 +813,7 @@ class BidirMMapPipe { /** @brief I/O manipulator support * - * @param f manipulator + * @param manip manipulator * @returns pipe with manipulator applied * * example: @@ -826,7 +826,7 @@ class BidirMMapPipe { /** @brief I/O manipulator support * - * @param f manipulator + * @param manip manipulator * @returns pipe with manipulator applied * * example: diff --git a/roofit/roofitcore/src/RooAbsCollection.cxx b/roofit/roofitcore/src/RooAbsCollection.cxx index 32a865b29cfcb..d5008e024d3b0 100644 --- a/roofit/roofitcore/src/RooAbsCollection.cxx +++ b/roofit/roofitcore/src/RooAbsCollection.cxx @@ -1002,7 +1002,7 @@ void RooAbsCollection::dump() const /// FixedPrecision(int n) -- Controls precision, set fixed number of digits /// AutoPrecision(int n) -- Controls precision. Number of shown digits is calculated from error /// + n specified additional digits (1 is sensible default) -/// VerbatimName(Bool_t flag) -- Put variable name in a \verb+ + clause. +/// VerbatimName(Bool_t flag) -- Put variable name in a \\verb+ + clause. /// /// Example use: list.printLatex(Columns(2), Format("NEU",AutoPrecision(1),VerbatimName()) ) ; diff --git a/roofit/roofitcore/src/RooAbsData.cxx b/roofit/roofitcore/src/RooAbsData.cxx index 94f37ebc25738..1459eab34c539 100644 --- a/roofit/roofitcore/src/RooAbsData.cxx +++ b/roofit/roofitcore/src/RooAbsData.cxx @@ -1151,7 +1151,7 @@ RooRealVar* RooAbsData::rmsVar(RooRealVar &var, const char* cutSpec, const char* /// "A" shows asymmetric error, "U" shows unit, "H" hides the value /// - `FixedPrecision(int n)` Controls precision, set fixed number of digits /// - `AutoPrecision(int n)` Controls precision. Number of shown digits is calculated from error + n specified additional digits (1 is sensible default) -/// - `VerbatimName(Bool_t flag)` Put variable name in a \verb+ + clause. +/// - `VerbatimName(Bool_t flag)` Put variable name in a \\verb+ + clause. RooPlot* RooAbsData::statOn(RooPlot* frame, const RooCmdArg& arg1, const RooCmdArg& arg2, const RooCmdArg& arg3, const RooCmdArg& arg4, const RooCmdArg& arg5, diff --git a/roofit/roofitcore/src/RooAbsReal.cxx b/roofit/roofitcore/src/RooAbsReal.cxx index 6c144be3cdc80..0f564bd8981f4 100644 --- a/roofit/roofitcore/src/RooAbsReal.cxx +++ b/roofit/roofitcore/src/RooAbsReal.cxx @@ -21,7 +21,7 @@ RooAbsReal is the common abstract base class for objects that represent a real value and implements functionality common to all real-valued objects such as the ability to plot them, to construct integrals of them, the - ability to advertise (partial) analytical integrals etc.. + ability to advertise (partial) analytical integrals etc. Implementation of RooAbsReal may be derived, thus no interface is provided to modify the contents. diff --git a/roofit/roofitcore/src/RooRealVar.cxx b/roofit/roofitcore/src/RooRealVar.cxx index 40514cb2b7de3..4c883ffeb41ec 100644 --- a/roofit/roofitcore/src/RooRealVar.cxx +++ b/roofit/roofitcore/src/RooRealVar.cxx @@ -841,7 +841,7 @@ TString* RooRealVar::format(const RooCmdArg& formatArg) const /// L = TLatex mode /// X = Latex mode /// Y = Latex table mode ( '=' replaced by '&' ) -/// V = Make name \verbatim in Latex mode +/// V = Make name \\verbatim in Latex mode /// P = use error to control shown precision /// F = force fixed precision /// diff --git a/roofit/roostats/inc/RooStats/MCMCInterval.h b/roofit/roostats/inc/RooStats/MCMCInterval.h index 3e6f9b029b76f..4c4df24a515de 100644 --- a/roofit/roostats/inc/RooStats/MCMCInterval.h +++ b/roofit/roostats/inc/RooStats/MCMCInterval.h @@ -55,7 +55,7 @@ namespace RooStats { confidence level is reached within an acceptable neighborhood as defined by SetEpsilon(). More specifically: we calculate the following for different cutoff values C until we reach the target confidence level: \f$\int_{ F >= C } F - d{normset} \$. + d{normset} \f$. Important note: this is not the default method because of a bug in constructing the RooNDKeysPdf from a weighted data set. Configure to use this method by calling SetUseKeys(true), and the data set will be interpreted without weights. diff --git a/roofit/roostats/inc/RooStats/PdfProposal.h b/roofit/roostats/inc/RooStats/PdfProposal.h index b21ceed0b407f..46f750c07494a 100644 --- a/roofit/roostats/inc/RooStats/PdfProposal.h +++ b/roofit/roostats/inc/RooStats/PdfProposal.h @@ -53,7 +53,7 @@ given PDF. To make Propose(xPrime, x) dependent on x, configure with PdfProposal::AddMapping(varToUpdate, valueToUse). For example, suppose we have: -````{.cpp} +~~~{.cpp} // our parameter RooRealVar p("p", "p", 5, 0, 10); @@ -74,7 +74,7 @@ pdfProposal.AddMapping(meanP, p); // each call of Propose(xPrime, x), meanP in // number of proposals. If you don't call this function, the default cache size // is 1, which can be slow. pdfProposal.SetCacheSize(desiredCacheSize); -```` +~~~ PdfProposal currently uses a fixed cache size. Adaptive caching methods are in the works for future versions. diff --git a/roofit/roostats/inc/RooStats/RatioOfProfiledLikelihoodsTestStat.h b/roofit/roostats/inc/RooStats/RatioOfProfiledLikelihoodsTestStat.h index 66d619ece4092..a621d3e2bda12 100644 --- a/roofit/roostats/inc/RooStats/RatioOfProfiledLikelihoodsTestStat.h +++ b/roofit/roostats/inc/RooStats/RatioOfProfiledLikelihoodsTestStat.h @@ -40,8 +40,8 @@ TestStatistic that returns the ratio of profiled likelihoods. By default the calculation is: \f[ - \log{ \frac{ \lambda( \mu_{alt} , {conditional \: MLE \: for \: alt \: nuisance}) } - { \lambda(\mu_{null} , {conditional \: MLE \: for \: null \: nuisance}) } } + \log{ \frac{ \lambda(\mu_{alt} , {conditional \: MLE \: for \: alt \: nuisance}) } + { \lambda(\mu_{null} , {conditional \: MLE \: for \: null \: nuisance}) } } \f] where \f$ \lambda \f$ is the profile likeihood ratio, so the @@ -50,11 +50,11 @@ MLE for the null and alternate are subtracted off. If ``SetSubtractMLE(false)`` then it calculates: \f[ + \log{ \frac{ L(\mu_{alt} , {conditional \: MLE \: for \: alt \: nuisance}) } + { L(\mu_{null} , {conditional \: MLE \: for \: null \: nuisance}) } } +\f] - \log{ \frac{ L( \mu_alt , {conditional \: MLE \: for \: alt \: nuisance} ) } - { L(\mu_null , {conditional \: MLE \: for \: null \: nuisance}) } } - -where \f$ L\$ is the Likelihood function. +where \f$ L \f$ is the Likelihood function. The values of the parameters of interest for the alternative hypothesis are taken at the time of the construction. diff --git a/tree/treeplayer/src/TBranchProxy.cxx b/tree/treeplayer/src/TBranchProxy.cxx index 119bc1270c3c5..2cf79de995858 100644 --- a/tree/treeplayer/src/TBranchProxy.cxx +++ b/tree/treeplayer/src/TBranchProxy.cxx @@ -9,7 +9,7 @@ * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ -/** \class Detail::TBranchProxy +/** \class ROOT::Detail::TBranchProxy Base class for all the proxy object. It includes the imeplemtation of the autoloading of branches as well as all the generic setup routine. */