CholeskyDecomp.h   CholeskyDecomp.h 
skipping to change at line 552 skipping to change at line 552
// element L(i,j) is at array position (i * (i+1)) / 2 + j // element L(i,j) is at array position (i * (i+1)) / 2 + j
// quirk: we may need to invert L later anyway, so we can // quirk: we may need to invert L later anyway, so we can
// invert elements on diagonale straight away (we only // invert elements on diagonale straight away (we only
// ever need their reciprocals!) // ever need their reciprocals!)
// cache starting address of rows of L for speed reasons // cache starting address of rows of L for speed reasons
F *base1 = &dst[0]; F *base1 = &dst[0];
for (unsigned i = 0; i < N; base1 += ++i) { for (unsigned i = 0; i < N; base1 += ++i) {
F tmpdiag = F(0); // for element on diagonale F tmpdiag = F(0.0); // for element on diagonale
// calculate off-diagonal elements // calculate off-diagonal elements
F *base2 = &dst[0]; F *base2 = &dst[0];
for (unsigned j = 0; j < i; base2 += ++j) { for (unsigned j = 0; j < i; base2 += ++j) {
F tmp = src(i, j); F tmp = src(i, j);
for (unsigned k = j; k--; ) for (unsigned k = j; k--; )
tmp -= base1[k] * base2[k]; tmp -= base1[k] * base2[k];
base1[j] = tmp *= base2[j]; base1[j] = tmp *= base2[j];
// keep track of contribution to element on diagonale // keep track of contribution to element on diagonale
tmpdiag += tmp * tmp; tmpdiag += tmp * tmp;
} }
// keep truncation error small // keep truncation error small
tmpdiag = src(i, i) - tmpdiag; tmpdiag = src(i, i) - tmpdiag;
// check if positive definite // check if positive definite
if (tmpdiag <= F(0)) return false; if (tmpdiag <= F(0.0)) return false;
else base1[i] = std::sqrt(F(1) / tmpdiag); else base1[i] = std::sqrt(F(1.0) / tmpdiag);
} }
return true; return true;
} }
}; };
/// struct to do a Cholesky decomposition /// struct to do a Cholesky decomposition
template<class F, unsigned N, class M> struct _decomposer template<class F, unsigned N, class M> struct _decomposer
{ {
/// method to do the decomposition /// method to do the decomposition
/** @returns if the decomposition was successful */ /** @returns if the decomposition was successful */
skipping to change at line 595 skipping to change at line 595
/// method to do the inversion /// method to do the inversion
void operator()(M& dst, const F* src, unsigned N) const void operator()(M& dst, const F* src, unsigned N) const
{ {
// make working copy // make working copy
F * l = new F[N * (N + 1) / 2]; F * l = new F[N * (N + 1) / 2];
std::copy(src, src + ((N * (N + 1)) / 2), l); std::copy(src, src + ((N * (N + 1)) / 2), l);
// ok, next step: invert off-diagonal part of matrix // ok, next step: invert off-diagonal part of matrix
F* base1 = &l[1]; F* base1 = &l[1];
for (unsigned i = 1; i < N; base1 += ++i) { for (unsigned i = 1; i < N; base1 += ++i) {
for (unsigned j = 0; j < i; ++j) { for (unsigned j = 0; j < i; ++j) {
F tmp = F(0); F tmp = F(0.0);
const F *base2 = &l[(i * (i - 1)) / 2]; const F *base2 = &l[(i * (i - 1)) / 2];
for (unsigned k = i; k-- > j; base2 -= k) for (unsigned k = i; k-- > j; base2 -= k)
tmp -= base1[k] * base2[j]; tmp -= base1[k] * base2[j];
base1[j] = tmp * base1[i]; base1[j] = tmp * base1[i];
} }
} }
// Li = L^(-1) formed, now calculate M^(-1) = Li^T Li // Li = L^(-1) formed, now calculate M^(-1) = Li^T Li
for (unsigned i = N; i--; ) { for (unsigned i = N; i--; ) {
for (unsigned j = i + 1; j--; ) { for (unsigned j = i + 1; j--; ) {
F tmp = F(0); F tmp = F(0.0);
base1 = &l[(N * (N - 1)) / 2]; base1 = &l[(N * (N - 1)) / 2];
for (unsigned k = N; k-- > i; base1 -= k) for (unsigned k = N; k-- > i; base1 -= k)
tmp += base1[i] * base1[j]; tmp += base1[i] * base1[j];
dst(i, j) = tmp; dst(i, j) = tmp;
} }
} }
delete [] l; delete [] l;
} }
}; };
skipping to change at line 634 skipping to change at line 634
/// struct to solve a linear system using its Cholesky decomposition (ge neralised dimensionality) /// struct to solve a linear system using its Cholesky decomposition (ge neralised dimensionality)
template<class F, class V> struct _solverGenDim template<class F, class V> struct _solverGenDim
{ {
/// method to solve the linear system /// method to solve the linear system
void operator()(V& rhs, const F* l, unsigned N) const void operator()(V& rhs, const F* l, unsigned N) const
{ {
// solve Ly = rhs // solve Ly = rhs
for (unsigned k = 0; k < N; ++k) { for (unsigned k = 0; k < N; ++k) {
const unsigned base = (k * (k + 1)) / 2; const unsigned base = (k * (k + 1)) / 2;
F sum = F(0); F sum = F(0.0);
for (unsigned i = k; i--; ) for (unsigned i = k; i--; )
sum += rhs[i] * l[base + i]; sum += rhs[i] * l[base + i];
// elements on diagonale are pre-inverted! // elements on diagonale are pre-inverted!
rhs[k] = (rhs[k] - sum) * l[base + k]; rhs[k] = (rhs[k] - sum) * l[base + k];
} }
// solve L^Tx = y // solve L^Tx = y
for (unsigned k = N; k--; ) { for (unsigned k = N; k--; ) {
F sum = F(0); F sum = F(0.0);
for (unsigned i = N; --i > k; ) for (unsigned i = N; --i > k; )
sum += rhs[i] * l[(i * (i + 1)) / 2 + k]; sum += rhs[i] * l[(i * (i + 1)) / 2 + k];
// elements on diagonale are pre-inverted! // elements on diagonale are pre-inverted!
rhs[k] = (rhs[k] - sum) * l[(k * (k + 1)) / 2 + k]; rhs[k] = (rhs[k] - sum) * l[(k * (k + 1)) / 2 + k];
} }
} }
}; };
/// struct to solve a linear system using its Cholesky decomposition /// struct to solve a linear system using its Cholesky decomposition
template<class F, unsigned N, class V> struct _solver template<class F, unsigned N, class V> struct _solver
skipping to change at line 665 skipping to change at line 665
void operator()(V& rhs, const F* l) const void operator()(V& rhs, const F* l) const
{ _solverGenDim<F, V>()(rhs, l, N); } { _solverGenDim<F, V>()(rhs, l, N); }
}; };
/// struct to do a Cholesky decomposition (specialized, N = 6) /// struct to do a Cholesky decomposition (specialized, N = 6)
template<class F, class M> struct _decomposer<F, 6, M> template<class F, class M> struct _decomposer<F, 6, M>
{ {
/// method to do the decomposition /// method to do the decomposition
bool operator()(F* dst, const M& src) const bool operator()(F* dst, const M& src) const
{ {
if (src(0,0) <= F(0)) return false; if (src(0,0) <= F(0.0)) return false;
dst[0] = std::sqrt(F(1) / src(0,0)); dst[0] = std::sqrt(F(1.0) / src(0,0));
dst[1] = src(1,0) * dst[0]; dst[1] = src(1,0) * dst[0];
dst[2] = src(1,1) - dst[1] * dst[1]; dst[2] = src(1,1) - dst[1] * dst[1];
if (dst[2] <= F(0)) return false; if (dst[2] <= F(0.0)) return false;
else dst[2] = std::sqrt(F(1) / dst[2]); else dst[2] = std::sqrt(F(1.0) / dst[2]);
dst[3] = src(2,0) * dst[0]; dst[3] = src(2,0) * dst[0];
dst[4] = (src(2,1) - dst[1] * dst[3]) * dst[2]; dst[4] = (src(2,1) - dst[1] * dst[3]) * dst[2];
dst[5] = src(2,2) - (dst[3] * dst[3] + dst[4] * dst[4]); dst[5] = src(2,2) - (dst[3] * dst[3] + dst[4] * dst[4]);
if (dst[5] <= F(0)) return false; if (dst[5] <= F(0.0)) return false;
else dst[5] = std::sqrt(F(1) / dst[5]); else dst[5] = std::sqrt(F(1.0) / dst[5]);
dst[6] = src(3,0) * dst[0]; dst[6] = src(3,0) * dst[0];
dst[7] = (src(3,1) - dst[1] * dst[6]) * dst[2]; dst[7] = (src(3,1) - dst[1] * dst[6]) * dst[2];
dst[8] = (src(3,2) - dst[3] * dst[6] - dst[4] * dst[7]) * dst[5]; dst[8] = (src(3,2) - dst[3] * dst[6] - dst[4] * dst[7]) * dst[5];
dst[9] = src(3,3) - (dst[6] * dst[6] + dst[7] * dst[7] + dst[8] * dst[8]); dst[9] = src(3,3) - (dst[6] * dst[6] + dst[7] * dst[7] + dst[8] * dst[8]);
if (dst[9] <= F(0)) return false; if (dst[9] <= F(0.0)) return false;
else dst[9] = std::sqrt(F(1) / dst[9]); else dst[9] = std::sqrt(F(1.0) / dst[9]);
dst[10] = src(4,0) * dst[0]; dst[10] = src(4,0) * dst[0];
dst[11] = (src(4,1) - dst[1] * dst[10]) * dst[2]; dst[11] = (src(4,1) - dst[1] * dst[10]) * dst[2];
dst[12] = (src(4,2) - dst[3] * dst[10] - dst[4] * dst[11]) * dst[5 ]; dst[12] = (src(4,2) - dst[3] * dst[10] - dst[4] * dst[11]) * dst[5 ];
dst[13] = (src(4,3) - dst[6] * dst[10] - dst[7] * dst[11] - dst[8] * dst[12]) * dst[9]; dst[13] = (src(4,3) - dst[6] * dst[10] - dst[7] * dst[11] - dst[8] * dst[12]) * dst[9];
dst[14] = src(4,4) - (dst[10]*dst[10]+dst[11]*dst[11]+dst[12]*dst[ 12]+dst[13]*dst[13]); dst[14] = src(4,4) - (dst[10]*dst[10]+dst[11]*dst[11]+dst[12]*dst[ 12]+dst[13]*dst[13]);
if (dst[14] <= F(0)) return false; if (dst[14] <= F(0.0)) return false;
else dst[14] = std::sqrt(F(1) / dst[14]); else dst[14] = std::sqrt(F(1.0) / dst[14]);
dst[15] = src(5,0) * dst[0]; dst[15] = src(5,0) * dst[0];
dst[16] = (src(5,1) - dst[1] * dst[15]) * dst[2]; dst[16] = (src(5,1) - dst[1] * dst[15]) * dst[2];
dst[17] = (src(5,2) - dst[3] * dst[15] - dst[4] * dst[16]) * dst[5 ]; dst[17] = (src(5,2) - dst[3] * dst[15] - dst[4] * dst[16]) * dst[5 ];
dst[18] = (src(5,3) - dst[6] * dst[15] - dst[7] * dst[16] - dst[8] * dst[17]) * dst[9]; dst[18] = (src(5,3) - dst[6] * dst[15] - dst[7] * dst[16] - dst[8] * dst[17]) * dst[9];
dst[19] = (src(5,4) - dst[10] * dst[15] - dst[11] * dst[16] - dst[ 12] * dst[17] - dst[13] * dst[18]) * dst[14]; dst[19] = (src(5,4) - dst[10] * dst[15] - dst[11] * dst[16] - dst[ 12] * dst[17] - dst[13] * dst[18]) * dst[14];
dst[20] = src(5,5) - (dst[15]*dst[15]+dst[16]*dst[16]+dst[17]*dst[ 17]+dst[18]*dst[18]+dst[19]*dst[19]); dst[20] = src(5,5) - (dst[15]*dst[15]+dst[16]*dst[16]+dst[17]*dst[ 17]+dst[18]*dst[18]+dst[19]*dst[19]);
if (dst[20] <= F(0)) return false; if (dst[20] <= F(0.0)) return false;
else dst[20] = std::sqrt(F(1) / dst[20]); else dst[20] = std::sqrt(F(1.0) / dst[20]);
return true; return true;
} }
}; };
/// struct to do a Cholesky decomposition (specialized, N = 5) /// struct to do a Cholesky decomposition (specialized, N = 5)
template<class F, class M> struct _decomposer<F, 5, M> template<class F, class M> struct _decomposer<F, 5, M>
{ {
/// method to do the decomposition /// method to do the decomposition
bool operator()(F* dst, const M& src) const bool operator()(F* dst, const M& src) const
{ {
if (src(0,0) <= F(0)) return false; if (src(0,0) <= F(0.0)) return false;
dst[0] = std::sqrt(F(1) / src(0,0)); dst[0] = std::sqrt(F(1.0) / src(0,0));
dst[1] = src(1,0) * dst[0]; dst[1] = src(1,0) * dst[0];
dst[2] = src(1,1) - dst[1] * dst[1]; dst[2] = src(1,1) - dst[1] * dst[1];
if (dst[2] <= F(0)) return false; if (dst[2] <= F(0.0)) return false;
else dst[2] = std::sqrt(F(1) / dst[2]); else dst[2] = std::sqrt(F(1.0) / dst[2]);
dst[3] = src(2,0) * dst[0]; dst[3] = src(2,0) * dst[0];
dst[4] = (src(2,1) - dst[1] * dst[3]) * dst[2]; dst[4] = (src(2,1) - dst[1] * dst[3]) * dst[2];
dst[5] = src(2,2) - (dst[3] * dst[3] + dst[4] * dst[4]); dst[5] = src(2,2) - (dst[3] * dst[3] + dst[4] * dst[4]);
if (dst[5] <= F(0)) return false; if (dst[5] <= F(0.0)) return false;
else dst[5] = std::sqrt(F(1) / dst[5]); else dst[5] = std::sqrt(F(1.0) / dst[5]);
dst[6] = src(3,0) * dst[0]; dst[6] = src(3,0) * dst[0];
dst[7] = (src(3,1) - dst[1] * dst[6]) * dst[2]; dst[7] = (src(3,1) - dst[1] * dst[6]) * dst[2];
dst[8] = (src(3,2) - dst[3] * dst[6] - dst[4] * dst[7]) * dst[5]; dst[8] = (src(3,2) - dst[3] * dst[6] - dst[4] * dst[7]) * dst[5];
dst[9] = src(3,3) - (dst[6] * dst[6] + dst[7] * dst[7] + dst[8] * dst[8]); dst[9] = src(3,3) - (dst[6] * dst[6] + dst[7] * dst[7] + dst[8] * dst[8]);
if (dst[9] <= F(0)) return false; if (dst[9] <= F(0.0)) return false;
else dst[9] = std::sqrt(F(1) / dst[9]); else dst[9] = std::sqrt(F(1.0) / dst[9]);
dst[10] = src(4,0) * dst[0]; dst[10] = src(4,0) * dst[0];
dst[11] = (src(4,1) - dst[1] * dst[10]) * dst[2]; dst[11] = (src(4,1) - dst[1] * dst[10]) * dst[2];
dst[12] = (src(4,2) - dst[3] * dst[10] - dst[4] * dst[11]) * dst[5 ]; dst[12] = (src(4,2) - dst[3] * dst[10] - dst[4] * dst[11]) * dst[5 ];
dst[13] = (src(4,3) - dst[6] * dst[10] - dst[7] * dst[11] - dst[8] * dst[12]) * dst[9]; dst[13] = (src(4,3) - dst[6] * dst[10] - dst[7] * dst[11] - dst[8] * dst[12]) * dst[9];
dst[14] = src(4,4) - (dst[10]*dst[10]+dst[11]*dst[11]+dst[12]*dst[ 12]+dst[13]*dst[13]); dst[14] = src(4,4) - (dst[10]*dst[10]+dst[11]*dst[11]+dst[12]*dst[ 12]+dst[13]*dst[13]);
if (dst[14] <= F(0)) return false; if (dst[14] <= F(0.0)) return false;
else dst[14] = std::sqrt(F(1) / dst[14]); else dst[14] = std::sqrt(F(1.0) / dst[14]);
return true; return true;
} }
}; };
/// struct to do a Cholesky decomposition (specialized, N = 4) /// struct to do a Cholesky decomposition (specialized, N = 4)
template<class F, class M> struct _decomposer<F, 4, M> template<class F, class M> struct _decomposer<F, 4, M>
{ {
/// method to do the decomposition /// method to do the decomposition
bool operator()(F* dst, const M& src) const bool operator()(F* dst, const M& src) const
{ {
if (src(0,0) <= F(0)) return false; if (src(0,0) <= F(0.0)) return false;
dst[0] = std::sqrt(F(1) / src(0,0)); dst[0] = std::sqrt(F(1.0) / src(0,0));
dst[1] = src(1,0) * dst[0]; dst[1] = src(1,0) * dst[0];
dst[2] = src(1,1) - dst[1] * dst[1]; dst[2] = src(1,1) - dst[1] * dst[1];
if (dst[2] <= F(0)) return false; if (dst[2] <= F(0.0)) return false;
else dst[2] = std::sqrt(F(1) / dst[2]); else dst[2] = std::sqrt(F(1.0) / dst[2]);
dst[3] = src(2,0) * dst[0]; dst[3] = src(2,0) * dst[0];
dst[4] = (src(2,1) - dst[1] * dst[3]) * dst[2]; dst[4] = (src(2,1) - dst[1] * dst[3]) * dst[2];
dst[5] = src(2,2) - (dst[3] * dst[3] + dst[4] * dst[4]); dst[5] = src(2,2) - (dst[3] * dst[3] + dst[4] * dst[4]);
if (dst[5] <= F(0)) return false; if (dst[5] <= F(0.0)) return false;
else dst[5] = std::sqrt(F(1) / dst[5]); else dst[5] = std::sqrt(F(1.0) / dst[5]);
dst[6] = src(3,0) * dst[0]; dst[6] = src(3,0) * dst[0];
dst[7] = (src(3,1) - dst[1] * dst[6]) * dst[2]; dst[7] = (src(3,1) - dst[1] * dst[6]) * dst[2];
dst[8] = (src(3,2) - dst[3] * dst[6] - dst[4] * dst[7]) * dst[5]; dst[8] = (src(3,2) - dst[3] * dst[6] - dst[4] * dst[7]) * dst[5];
dst[9] = src(3,3) - (dst[6] * dst[6] + dst[7] * dst[7] + dst[8] * dst[8]); dst[9] = src(3,3) - (dst[6] * dst[6] + dst[7] * dst[7] + dst[8] * dst[8]);
if (dst[9] <= F(0)) return false; if (dst[9] <= F(0.0)) return false;
else dst[9] = std::sqrt(F(1) / dst[9]); else dst[9] = std::sqrt(F(1.0) / dst[9]);
return true; return true;
} }
}; };
/// struct to do a Cholesky decomposition (specialized, N = 3) /// struct to do a Cholesky decomposition (specialized, N = 3)
template<class F, class M> struct _decomposer<F, 3, M> template<class F, class M> struct _decomposer<F, 3, M>
{ {
/// method to do the decomposition /// method to do the decomposition
bool operator()(F* dst, const M& src) const bool operator()(F* dst, const M& src) const
{ {
if (src(0,0) <= F(0)) return false; if (src(0,0) <= F(0.0)) return false;
dst[0] = std::sqrt(F(1) / src(0,0)); dst[0] = std::sqrt(F(1.0) / src(0,0));
dst[1] = src(1,0) * dst[0]; dst[1] = src(1,0) * dst[0];
dst[2] = src(1,1) - dst[1] * dst[1]; dst[2] = src(1,1) - dst[1] * dst[1];
if (dst[2] <= F(0)) return false; if (dst[2] <= F(0.0)) return false;
else dst[2] = std::sqrt(F(1) / dst[2]); else dst[2] = std::sqrt(F(1.0) / dst[2]);
dst[3] = src(2,0) * dst[0]; dst[3] = src(2,0) * dst[0];
dst[4] = (src(2,1) - dst[1] * dst[3]) * dst[2]; dst[4] = (src(2,1) - dst[1] * dst[3]) * dst[2];
dst[5] = src(2,2) - (dst[3] * dst[3] + dst[4] * dst[4]); dst[5] = src(2,2) - (dst[3] * dst[3] + dst[4] * dst[4]);
if (dst[5] <= F(0)) return false; if (dst[5] <= F(0.0)) return false;
else dst[5] = std::sqrt(F(1) / dst[5]); else dst[5] = std::sqrt(F(1.0) / dst[5]);
return true; return true;
} }
}; };
/// struct to do a Cholesky decomposition (specialized, N = 2) /// struct to do a Cholesky decomposition (specialized, N = 2)
template<class F, class M> struct _decomposer<F, 2, M> template<class F, class M> struct _decomposer<F, 2, M>
{ {
/// method to do the decomposition /// method to do the decomposition
bool operator()(F* dst, const M& src) const bool operator()(F* dst, const M& src) const
{ {
if (src(0,0) <= F(0)) return false; if (src(0,0) <= F(0.0)) return false;
dst[0] = std::sqrt(F(1) / src(0,0)); dst[0] = std::sqrt(F(1.0) / src(0,0));
dst[1] = src(1,0) * dst[0]; dst[1] = src(1,0) * dst[0];
dst[2] = src(1,1) - dst[1] * dst[1]; dst[2] = src(1,1) - dst[1] * dst[1];
if (dst[2] <= F(0)) return false; if (dst[2] <= F(0.0)) return false;
else dst[2] = std::sqrt(F(1) / dst[2]); else dst[2] = std::sqrt(F(1.0) / dst[2]);
return true; return true;
} }
}; };
/// struct to do a Cholesky decomposition (specialized, N = 1) /// struct to do a Cholesky decomposition (specialized, N = 1)
template<class F, class M> struct _decomposer<F, 1, M> template<class F, class M> struct _decomposer<F, 1, M>
{ {
/// method to do the decomposition /// method to do the decomposition
bool operator()(F* dst, const M& src) const bool operator()(F* dst, const M& src) const
{ {
if (src(0,0) <= F(0)) return false; if (src(0,0) <= F(0.0)) return false;
dst[0] = std::sqrt(F(1) / src(0,0)); dst[0] = std::sqrt(F(1.0) / src(0,0));
return true; return true;
} }
}; };
/// struct to do a Cholesky decomposition (specialized, N = 0) /// struct to do a Cholesky decomposition (specialized, N = 0)
template<class F, class M> struct _decomposer<F, 0, M> template<class F, class M> struct _decomposer<F, 0, M>
{ {
private: private:
_decomposer() { }; _decomposer() { };
bool operator()(F* dst, const M& src) const; bool operator()(F* dst, const M& src) const;
}; };
 End of changes. 27 change blocks. 
49 lines changed or deleted 49 lines changed or added


 Dinv.h   Dinv.h 
skipping to change at line 76 skipping to change at line 76
public: public:
/// matrix inversion for a generic square matrix using LU factorization /// matrix inversion for a generic square matrix using LU factorization
/// (code originally from CERNLIB and then ported in C++ for CLHEP) /// (code originally from CERNLIB and then ported in C++ for CLHEP)
/// implementation is in file Math/MatrixInversion.icc /// implementation is in file Math/MatrixInversion.icc
template <class MatrixRep> template <class MatrixRep>
static bool Dinv(MatrixRep& rhs) { static bool Dinv(MatrixRep& rhs) {
/* Initialized data */ /* Initialized data */
unsigned int work[n+1] = {0}; unsigned int work[n+1] = {0};
static typename MatrixRep::value_type det(0); static typename MatrixRep::value_type det(0.0);
if (DfactMatrix(rhs,det,work) != 0) { if (DfactMatrix(rhs,det,work) != 0) {
std::cerr << "Dfact_matrix failed!!" << std::endl; std::cerr << "Dfact_matrix failed!!" << std::endl;
return false; return false;
} }
int ifail = DfinvMatrix(rhs,work); int ifail = DfinvMatrix(rhs,work);
if (ifail == 0) return true; if (ifail == 0) return true;
return false; return false;
} // Dinv } // Dinv
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 Functor.h   Functor.h 
skipping to change at line 623 skipping to change at line 623
/** /**
Destructor (no operations) Destructor (no operations)
*/ */
virtual ~GradFunctor () {} virtual ~GradFunctor () {}
/** /**
Copy constructor for functor based on ROOT::Math::IMultiGradFunction Copy constructor for functor based on ROOT::Math::IMultiGradFunction
*/ */
GradFunctor(const GradFunctor & rhs) : GradFunctor(const GradFunctor & rhs) :
ImplBase() ImplBase(),
IGradientFunctionMultiDim()
{ {
if (rhs.fImpl.get() != 0) if (rhs.fImpl.get() != 0)
fImpl = std::auto_ptr<Impl>( rhs.fImpl->Copy() ); fImpl = std::auto_ptr<Impl>( rhs.fImpl->Copy() );
} }
/** /**
Assignment operator Assignment operator
*/ */
GradFunctor & operator = (const GradFunctor & rhs) { GradFunctor & operator = (const GradFunctor & rhs) {
GradFunctor copy(rhs); GradFunctor copy(rhs);
skipping to change at line 737 skipping to change at line 738
/** /**
Destructor (no operations) Destructor (no operations)
*/ */
virtual ~GradFunctor1D () {} virtual ~GradFunctor1D () {}
/** /**
Copy constructor for Functor based on ROOT::Math::IGradFunction Copy constructor for Functor based on ROOT::Math::IGradFunction
*/ */
GradFunctor1D(const GradFunctor1D & rhs) : GradFunctor1D(const GradFunctor1D & rhs) :
// strange that this is required eventhough Impl is an abstract class // strange that this is required eventhough Impl is an abstract class
ImplBase() ImplBase(),
IGradientFunctionOneDim()
{ {
if (rhs.fImpl.get() != 0) if (rhs.fImpl.get() != 0)
fImpl = std::auto_ptr<Impl>( rhs.fImpl->Copy() ); fImpl = std::auto_ptr<Impl>( rhs.fImpl->Copy() );
} }
/** /**
Assignment operator Assignment operator
*/ */
GradFunctor1D & operator = (const GradFunctor1D & rhs) { GradFunctor1D & operator = (const GradFunctor1D & rhs) {
GradFunctor1D copy(rhs); GradFunctor1D copy(rhs);
 End of changes. 2 change blocks. 
2 lines changed or deleted 4 lines changed or added


 MatrixInversion.icc   MatrixInversion.icc 
// @(#)root/smatrix:$Id$ // @(#)root/smatrix:$Id$
// Authors: CLHEP authors, L. Moneta 2006 // Authors: CLHEP authors, L. Moneta 2006
#ifndef ROOT_Math_MatrixInversion_icc #ifndef ROOT_Math_MatrixInversion_icc
#define ROOT_Math_MatrixInversion_icc #define ROOT_Math_MatrixInversion_icc
#include "Math/SVector.h" #include "Math/SVector.h"
#include "Math/Math.h"
#include <limits> #include <limits>
// inversion algorithms for matrices // inversion algorithms for matrices
// taken from CLHEP (L. Moneta May 2006) // taken from CLHEP (L. Moneta May 2006)
namespace ROOT { namespace ROOT {
namespace Math { namespace Math {
/** General Inversion for a symmetric matrix /** General Inversion for a symmetric matrix
skipping to change at line 32 skipping to change at line 33
/Charles F. van Loan, "Matrix Computations" (the second edition /Charles F. van Loan, "Matrix Computations" (the second edition
has a bug.) and implemented in "lapack" has a bug.) and implemented in "lapack"
Mario Stanke, 09/97 Mario Stanke, 09/97
*/ */
template <unsigned int idim, unsigned int N> template <unsigned int idim, unsigned int N>
template<class T> template<class T>
void Inverter<idim,N>::InvertBunchKaufman(MatRepSym<T,idim> & rhs, int &ifa il) { void Inverter<idim,N>::InvertBunchKaufman(MatRepSym<T,idim> & rhs, int &ifa il) {
typedef T value_type;
//typedef double value_type; // for making inversions in double's
int i, j, k, s; int i, j, k, s;
int pivrow; int pivrow;
const int nrow = MatRepSym<T,idim>::kRows; const int nrow = MatRepSym<T,idim>::kRows;
// Establish the two working-space arrays needed: x and piv are // Establish the two working-space arrays needed: x and piv are
// used as pointers to arrays of doubles and ints respectively, each // used as pointers to arrays of doubles and ints respectively, each
// of length nrow. We do not want to reallocate each time through // of length nrow. We do not want to reallocate each time through
// unless the size needs to grow. We do not want to leak memory, even // unless the size needs to grow. We do not want to leak memory, even
// by having a new without a delete that is only done once. // by having a new without a delete that is only done once.
skipping to change at line 58 skipping to change at line 62
// Note - resize shuld do nothing if the size is already larger than nr ow, // Note - resize shuld do nothing if the size is already larger than nr ow,
// but on VC++ there are indications that it does so we check. // but on VC++ there are indications that it does so we check.
// Note - the data elements in a vector are guaranteed to be contiguous, // Note - the data elements in a vector are guaranteed to be contiguous,
// so x[i] and piv[i] are optimally fast. // so x[i] and piv[i] are optimally fast.
mIter x = xvec.begin(); mIter x = xvec.begin();
// x[i] is used as helper storage, needs to have at least size nrow. // x[i] is used as helper storage, needs to have at least size nrow.
pivIter piv = pivv.begin(); pivIter piv = pivv.begin();
// piv[i] is used to store details of exchanges // piv[i] is used to store details of exchanges
double temp1, temp2; value_type temp1, temp2;
mIter ip, mjj, iq; mIter ip, mjj, iq;
double lambda, sigma; value_type lambda, sigma;
const double alpha = .6404; // = (1+sqrt(17))/8 const value_type alpha = .6404; // = (1+sqrt(17))/8
// LM (04/2009) remove this useless check (it is not in LAPACK) which fa ils inversion of // LM (04/2009) remove this useless check (it is not in LAPACK) which fa ils inversion of
// a matrix with values < epsilon in the diagonal // a matrix with values < epsilon in the diagonal
// //
//const double epsilon = 32*std::numeric_limits<T>::epsilon(); //const double epsilon = 32*std::numeric_limits<T>::epsilon();
// whenever a sum of two doubles is below or equal to epsilon // whenever a sum of two doubles is below or equal to epsilon
// it is set to zero. // it is set to zero.
// this constant could be set to zero but then the algorithm // this constant could be set to zero but then the algorithm
// doesn't neccessarily detect that a matrix is singular // doesn't neccessarily detect that a matrix is singular
for (i = 0; i < nrow; i++) for (i = 0; i < nrow; i++)
skipping to change at line 437 skipping to change at line 441
template <unsigned int idim, unsigned int n> template <unsigned int idim, unsigned int n>
template<class T> template<class T>
int Inverter<idim,n>::DfactMatrix(MatRepStd<T,idim,n> & rhs, T &det, unsign ed int *ir) { int Inverter<idim,n>::DfactMatrix(MatRepStd<T,idim,n> & rhs, T &det, unsign ed int *ir) {
if (idim != n) return -1; if (idim != n) return -1;
int ifail, jfail; int ifail, jfail;
typedef T* mIter; typedef T* mIter;
double tf; typedef T value_type;
double g1 = 1.0e-19, g2 = 1.0e19; //typedef double value_type; // for making inversions in double's
value_type tf;
value_type g1 = 1.0e-19, g2 = 1.0e19;
double p, q, t; value_type p, q, t;
double s11, s12; value_type s11, s12;
// LM (04.09) : remove useless check on epsilon and set it to zero // LM (04.09) : remove useless check on epsilon and set it to zero
const double epsilon = 0.0; const value_type epsilon = 0.0;
//double epsilon = 8*std::numeric_limits<T>::epsilon(); //double epsilon = 8*std::numeric_limits<T>::epsilon();
// could be set to zero (like it was before) // could be set to zero (like it was before)
// but then the algorithm often doesn't detect // but then the algorithm often doesn't detect
// that a matrix is singular // that a matrix is singular
int normal = 0, imposs = -1; int normal = 0, imposs = -1;
int jrange = 0, jover = 1, junder = -1; int jrange = 0, jover = 1, junder = -1;
ifail = normal; ifail = normal;
jfail = jrange; jfail = jrange;
int nxch = 0; int nxch = 0;
skipping to change at line 557 skipping to change at line 564
taken from CLHEP : L. Moneta May 2006 taken from CLHEP : L. Moneta May 2006
*/ */
template <unsigned int idim, unsigned int n> template <unsigned int idim, unsigned int n>
template<class T> template<class T>
int Inverter<idim,n>::DfinvMatrix(MatRepStd<T,idim,n> & rhs,unsigned int * ir) { int Inverter<idim,n>::DfinvMatrix(MatRepStd<T,idim,n> & rhs,unsigned int * ir) {
typedef T* mIter; typedef T* mIter;
typedef T value_type;
//typedef double value_type; // for making inversions in double's
if (idim != n) return -1; if (idim != n) return -1;
double s31, s32; value_type s31, s32;
double s33, s34; value_type s33, s34;
mIter m11 = rhs.Array(); mIter m11 = rhs.Array();
mIter m12 = m11 + 1; mIter m12 = m11 + 1;
mIter m21 = m11 + n; mIter m21 = m11 + n;
mIter m22 = m12 + n; mIter m22 = m12 + n;
*m21 = -(*m22) * (*m11) * (*m21); *m21 = -(*m22) * (*m11) * (*m21);
*m12 = -(*m12); *m12 = -(*m12);
if (n>2) { if (n>2) {
mIter mi = rhs.Array() + 2 * n; mIter mi = rhs.Array() + 2 * n;
mIter mii= rhs.Array() + 2 * n + 2; mIter mii= rhs.Array() + 2 * n + 2;
 End of changes. 9 change blocks. 
10 lines changed or deleted 20 lines changed or added


 RConfigOptions.h   RConfigOptions.h 
#ifndef ROOT_RConfigOptions #ifndef ROOT_RConfigOptions
#define ROOT_RConfigOptions #define ROOT_RConfigOptions
#define R__CONFIGUREOPTIONS "QTDIR=/afs/cern.ch/sw/lcg/external/qt/4.8.4/ i686-slc5-gcc43-opt PYTHONDIR=/afs/cern.ch/sw/lcg/external/Python/2.7.3/i68 6-slc5-gcc43-opt linux --fail-on-missing --enable-builtin-pcre --enable-cin tex --enable-explicitlink --enable-gdml --enable-genvector --enable-krb5 -- enable-mathmore --enable-minuit2 --enable-mysql --enable-oracle --enable-py thon --enable-qt --enable-qtgsi --enable-reflex --enable-roofit --enable-ta ble --enable-unuran --with-castor-incdir=/afs/cern.ch/sw/lcg/external/casto r/2.1.13-6/i686-slc5-gcc43-opt/usr/include/shift --with-castor-libdir=/afs/ cern.ch/sw/lcg/external/castor/2.1.13-6/i686-slc5-gcc43-opt/usr/lib --with- cern-libdir=/afs/cern.ch/sw/lcg/external/cernlib//i686-slc5-gcc43-opt/lib - -with-dcap-libdir=/afs/cern.ch/sw/lcg/external/dcache_client/2.47.5-0/i686- slc5-gcc43-opt/dcap/lib --with-dcap-incdir=/afs/cern.ch/sw/lcg/external/dca che_client/2.47.5-0/i686-slc5-gcc43-opt/dcap/include --with-fftw3-incdir=/a fs/cern.ch/sw/lcg/external/fftw3/3.1.2/i686-slc5-gcc43-opt/include --with-f ftw3-libdir=/afs/cern.ch/sw/lcg/external/fftw3/3.1.2/i686-slc5-gcc43-opt/li b --with-gccxml=/afs/cern.ch/sw/lcg/external/gccxml/0.9.0_20120309p2/i686-s lc5-gcc43-opt/bin --with-gfal-libdir=/afs/cern.ch/sw/lcg/external/Grid/gfal /1.13.0-0/i686-slc5-gcc43-opt/lib --with-gfal-incdir=/afs/cern.ch/sw/lcg/ex ternal/Grid/gfal/1.13.0-0/i686-slc5-gcc43-opt/include --with-gsl-incdir=/af s/cern.ch/sw/lcg/external/GSL/1.10/i686-slc5-gcc43-opt/include --with-gsl-l ibdir=/afs/cern.ch/sw/lcg/external/GSL/1.10/i686-slc5-gcc43-opt/lib --with- mysql-incdir=/afs/cern.ch/sw/lcg/external/mysql/5.5.14/i686-slc5-gcc43-opt/ include --with-mysql-libdir=/afs/cern.ch/sw/lcg/external/mysql/5.5.14/i686- slc5-gcc43-opt/lib --with-oracle-incdir=/afs/cern.ch/sw/lcg/external/oracle /11.2.0.3.0/i686-slc5-gcc43-opt/include --with-oracle-libdir=/afs/cern.ch/s w/lcg/external/oracle/11.2.0.3.0/i686-slc5-gcc43-opt/lib --with-rfio-incdir =/afs/cern.ch/sw/lcg/external/castor/2.1.13-6/i686-slc5-gcc43-opt/usr/inclu de/shift --with-rfio-libdir=/afs/cern.ch/sw/lcg/external/castor/2.1.13-6/i6 86-slc5-gcc43-opt/usr/lib --with-pythia6-libdir=/afs/cern.ch/sw/lcg/externa l/MCGenerators/pythia6/426.2/i686-slc5-gcc43-opt/lib --with-pythia8-incdir= /afs/cern.ch/sw/lcg/external/MCGenerators/pythia8/160/i686-slc5-gcc43-opt/i nclude --with-pythia8-libdir=/afs/cern.ch/sw/lcg/external/MCGenerators/pyth ia8/160/i686-slc5-gcc43-opt/lib --with-gviz-incdir=/afs/cern.ch/sw/lcg/exte rnal/graphviz/2.28.0/i686-slc5-gcc43-opt/include/graphviz --with-gviz-libdi r=/afs/cern.ch/sw/lcg/external/graphviz/2.28.0/i686-slc5-gcc43-opt/lib --wi th-xrootd=/afs/cern.ch/sw/lcg/external/xrootd/3.2.7/i686-slc5-gcc43-opt --w ith-srm-ifce-incdir=/afs/cern.ch/sw/lcg/external/Grid/srm-ifce/1.13.0-0/i68 6-slc5-gcc43-opt/include" #define R__CONFIGUREOPTIONS "QTDIR=/afs/cern.ch/sw/lcg/external/qt/4.8.4/ i686-slc5-gcc43-opt PYTHONDIR=/afs/cern.ch/sw/lcg/external/Python/2.7.3/i68 6-slc5-gcc43-opt linux --fail-on-missing --enable-builtin-pcre --enable-cin tex --enable-explicitlink --enable-gdml --enable-genvector --enable-krb5 -- enable-mathmore --enable-minuit2 --enable-mysql --enable-oracle --enable-py thon --enable-qt --enable-qtgsi --enable-reflex --enable-roofit --enable-ta ble --enable-unuran --with-castor-incdir=/afs/cern.ch/sw/lcg/external/casto r/2.1.13-6/i686-slc5-gcc43-opt/usr/include/shift --with-castor-libdir=/afs/ cern.ch/sw/lcg/external/castor/2.1.13-6/i686-slc5-gcc43-opt/usr/lib --with- cern-libdir=/afs/cern.ch/sw/lcg/external/cernlib//i686-slc5-gcc43-opt/lib - -with-dcap-libdir=/afs/cern.ch/sw/lcg/external/dcache_client/2.47.5-0/i686- slc5-gcc43-opt/dcap/lib --with-dcap-incdir=/afs/cern.ch/sw/lcg/external/dca che_client/2.47.5-0/i686-slc5-gcc43-opt/dcap/include --with-fftw3-incdir=/a fs/cern.ch/sw/lcg/external/fftw3/3.1.2/i686-slc5-gcc43-opt/include --with-f ftw3-libdir=/afs/cern.ch/sw/lcg/external/fftw3/3.1.2/i686-slc5-gcc43-opt/li b --with-gccxml=/afs/cern.ch/sw/lcg/external/gccxml/0.9.0_20120309p2/i686-s lc5-gcc43-opt/bin --with-gfal-libdir=/afs/cern.ch/sw/lcg/external/Grid/gfal /1.13.0-0/i686-slc5-gcc43-opt/lib --with-gfal-incdir=/afs/cern.ch/sw/lcg/ex ternal/Grid/gfal/1.13.0-0/i686-slc5-gcc43-opt/include --with-gsl-incdir=/af s/cern.ch/sw/lcg/external/GSL/1.10/i686-slc5-gcc43-opt/include --with-gsl-l ibdir=/afs/cern.ch/sw/lcg/external/GSL/1.10/i686-slc5-gcc43-opt/lib --with- mysql-incdir=/afs/cern.ch/sw/lcg/external/mysql/5.5.14/i686-slc5-gcc43-opt/ include --with-mysql-libdir=/afs/cern.ch/sw/lcg/external/mysql/5.5.14/i686- slc5-gcc43-opt/lib --with-oracle-incdir=/afs/cern.ch/sw/lcg/external/oracle /11.2.0.3.0/i686-slc5-gcc43-opt/include --with-oracle-libdir=/afs/cern.ch/s w/lcg/external/oracle/11.2.0.3.0/i686-slc5-gcc43-opt/lib --with-rfio-incdir =/afs/cern.ch/sw/lcg/external/castor/2.1.13-6/i686-slc5-gcc43-opt/usr/inclu de/shift --with-rfio-libdir=/afs/cern.ch/sw/lcg/external/castor/2.1.13-6/i6 86-slc5-gcc43-opt/usr/lib --with-pythia6-libdir=/afs/cern.ch/sw/lcg/externa l/MCGenerators/pythia6/426.2/i686-slc5-gcc43-opt/lib --with-pythia8-incdir= /afs/cern.ch/sw/lcg/external/MCGenerators/pythia8/160/i686-slc5-gcc43-opt/i nclude --with-pythia8-libdir=/afs/cern.ch/sw/lcg/external/MCGenerators/pyth ia8/160/i686-slc5-gcc43-opt/lib --with-gviz-incdir=/afs/cern.ch/sw/lcg/exte rnal/graphviz/2.28.0/i686-slc5-gcc43-opt/include/graphviz --with-gviz-libdi r=/afs/cern.ch/sw/lcg/external/graphviz/2.28.0/i686-slc5-gcc43-opt/lib --wi th-xrootd=/afs/cern.ch/sw/lcg/external/xrootd/3.2.7/i686-slc5-gcc43-opt --w ith-srm-ifce-incdir=/afs/cern.ch/sw/lcg/external/Grid/srm-ifce/1.13.0-0/i68 6-slc5-gcc43-opt/include"
#define R__CONFIGUREFEATURES "asimage astiff builtin_afterimage builtin_ft gl builtin_glew builtin_pcre builtin_lzma castor cintex dcache explicitlink fftw3 gdml genvector gfal krb5 ldap mathmore memstat minuit2 mysql opengl oracle python qt qtgsi reflex roofit rfio shadowpw shared sqlite ssl table tmva unuran x11 xft xml xrootd thread" #define R__CONFIGUREFEATURES "asimage astiff builtin_afterimage builtin_ft gl builtin_glew builtin_pcre builtin_lzma castor cintex dcache explicitlink fftw3 gdml genvector gfal krb5 ldap mathmore memstat minuit2 mysql opengl oracle python qt qtgsi reflex roofit rfio shadowpw shared sqlite ssl table tmva unuran vdt x11 xft xml xrootd thread"
#endif #endif
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 RConfigure.h   RConfigure.h 
skipping to change at line 27 skipping to change at line 27
#define TTFFONTDIR "$(ROOTSYS)/fonts" #define TTFFONTDIR "$(ROOTSYS)/fonts"
#define CINTINCDIR "$(ROOTSYS)/cint" #define CINTINCDIR "$(ROOTSYS)/cint"
#endif #endif
#define R__HAS_SETRESUID /**/ #define R__HAS_SETRESUID /**/
#define R__HAS_MATHMORE /**/ #define R__HAS_MATHMORE /**/
#define R__HAS_PTHREAD /**/ #define R__HAS_PTHREAD /**/
#define R__HAS_XFT /**/ #define R__HAS_XFT /**/
#undef R__HAS_CLING /**/ #undef R__HAS_CLING /**/
#undef R__HAS_COCOA /**/ #undef R__HAS_COCOA /**/
#undef R__HAS_VC /**/
#undef R__USE_CXX11 /**/ #undef R__USE_CXX11 /**/
#undef R__USE_LIBCXX /**/ #undef R__USE_LIBCXX /**/
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 RVersion.h   RVersion.h 
skipping to change at line 17 skipping to change at line 17
* These macros can be used in the following way: * These macros can be used in the following way:
* *
* #if ROOT_VERSION_CODE >= ROOT_VERSION(2,23,4) * #if ROOT_VERSION_CODE >= ROOT_VERSION(2,23,4)
* #include <newheader.h> * #include <newheader.h>
* #else * #else
* #include <oldheader.h> * #include <oldheader.h>
* #endif * #endif
* *
*/ */
#define ROOT_RELEASE "5.34/17" #define ROOT_RELEASE "5.34/18"
#define ROOT_RELEASE_DATE "Feb 24 2014" #define ROOT_RELEASE_DATE "Mar 14 2014"
#define ROOT_RELEASE_TIME "08:54:05" #define ROOT_RELEASE_TIME "16:14:01"
#define ROOT_SVN_REVISION 49361 #define ROOT_SVN_REVISION 49361
#define ROOT_GIT_COMMIT "v5-34-15-60-gba875ed" #define ROOT_GIT_COMMIT "v5-34-17-156-g60f5d99"
#define ROOT_GIT_BRANCH "heads/v5-34-00-patches" #define ROOT_GIT_BRANCH "heads/v5-34-00-patches"
#define ROOT_VERSION_CODE 336401 #define ROOT_VERSION_CODE 336402
#define ROOT_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) #define ROOT_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#endif #endif
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 TCanvas.h   TCanvas.h 
skipping to change at line 247 skipping to change at line 247
//Still need this. //Still need this.
Bool_t UseGL() const { return fUseGL; } Bool_t UseGL() const { return fUseGL; }
void SetSupportGL(Bool_t support) {fUseGL = support;} void SetSupportGL(Bool_t support) {fUseGL = support;}
//Name is GetPainter, not GetPadPainter //Name is GetPainter, not GetPadPainter
//to avoid name hiding and confusion. //to avoid name hiding and confusion.
//GetPadPainter and GetPainter are non-virtual (no need, in fact). //GetPadPainter and GetPainter are non-virtual (no need, in fact).
TVirtualPadPainter *GetCanvasPainter(); TVirtualPadPainter *GetCanvasPainter();
static TCanvas *MakeDefCanvas(); static TCanvas *MakeDefCanvas();
static Bool_t SupportAlpha();
ClassDef(TCanvas,7) //Graphics canvas ClassDef(TCanvas,7) //Graphics canvas
}; };
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 TCreatePrimitives.h   TCreatePrimitives.h 
skipping to change at line 29 skipping to change at line 29
// // // //
// The functions in this static class are called by TPad::ExecuteEvent // // The functions in this static class are called by TPad::ExecuteEvent //
// to create new primitives in gPad from the TPad toolbar. // // to create new primitives in gPad from the TPad toolbar. //
// // // //
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
#ifndef ROOT_Rtypes #ifndef ROOT_Rtypes
#include "Rtypes.h" #include "Rtypes.h"
#endif #endif
#include "TLatex.h"
#include "TCurlyArc.h"
#include "TArrow.h"
#include "TArc.h"
#include "TPavesText.h"
#include "TPaveLabel.h"
#include "TDiamond.h"
#include "TGraph.h"
class TCreatePrimitives { class TCreatePrimitives {
private:
static TLine *fgLine;
static TLatex *fgText;
static TCurlyLine *fgCLine;
static TArrow *fgArrow;
static TCurlyArc *fgCArc;
static TArc *fgArc;
static TEllipse *fgEllipse;
static TPave *fgPave;
static TPaveText *fgPaveText;
static TPavesText *fgPavesText;
static TDiamond *fgDiamond;
static TPaveLabel *fgPaveLabel;
static TGraph *fgPolyLine;
static TBox *fgPadBBox;
public: public:
TCreatePrimitives(); TCreatePrimitives();
virtual ~TCreatePrimitives(); virtual ~TCreatePrimitives();
static void Ellipse(Int_t event, Int_t px, Int_t py,Int_t mode); static void Ellipse(Int_t event, Int_t px, Int_t py,Int_t mode);
static void Line(Int_t event, Int_t px, Int_t py, Int_t mode); static void Line(Int_t event, Int_t px, Int_t py, Int_t mode);
static void Pad(Int_t event, Int_t px, Int_t py, Int_t); static void Pad(Int_t event, Int_t px, Int_t py, Int_t);
static void Pave(Int_t event, Int_t px, Int_t py, Int_t mode); static void Pave(Int_t event, Int_t px, Int_t py, Int_t mode);
static void PolyLine(Int_t event, Int_t px, Int_t py, Int_t mode); static void PolyLine(Int_t event, Int_t px, Int_t py, Int_t mode);
static void Text(Int_t event, Int_t px, Int_t py, Int_t mode); static void Text(Int_t event, Int_t px, Int_t py, Int_t mode);
 End of changes. 2 change blocks. 
0 lines changed or deleted 26 lines changed or added


 TCurlyLine.h   TCurlyLine.h 
skipping to change at line 42 skipping to change at line 42
Double_t fWaveLength; // wavelength of sinusoid in percent of pad he ight Double_t fWaveLength; // wavelength of sinusoid in percent of pad he ight
Double_t fAmplitude; // amplitude of sinusoid in percent of pad hei ght Double_t fAmplitude; // amplitude of sinusoid in percent of pad hei ght
Int_t fNsteps; // used internally (controls precision) Int_t fNsteps; // used internally (controls precision)
Bool_t fIsCurly; // true: Gluon, false: Gamma Bool_t fIsCurly; // true: Gluon, false: Gamma
static Double_t fgDefaultWaveLength; //default wavelength static Double_t fgDefaultWaveLength; //default wavelength
static Double_t fgDefaultAmplitude; //default amplitude static Double_t fgDefaultAmplitude; //default amplitude
static Bool_t fgDefaultIsCurly; //default curly type static Bool_t fgDefaultIsCurly; //default curly type
public: public:
// TCurlyLine status bits
enum {
kTooShort = BIT(11)
};
TCurlyLine(); TCurlyLine();
TCurlyLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2, TCurlyLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2,
Double_t wl = .02, Double_t wl = .02,
Double_t amp = .01); Double_t amp = .01);
virtual ~TCurlyLine(){;} virtual ~TCurlyLine(){;}
virtual void Build(); virtual void Build();
Int_t DistancetoPrimitive(Int_t px, Int_t py); Int_t DistancetoPrimitive(Int_t px, Int_t py);
void ExecuteEvent(Int_t event, Int_t px, Int_t py); void ExecuteEvent(Int_t event, Int_t px, Int_t py);
Bool_t GetCurly() const {return fIsCurly;} Bool_t GetCurly() const {return fIsCurly;}
Double_t GetWaveLength() const{return fWaveLength;} Double_t GetWaveLength() const{return fWaveLength;}
 End of changes. 1 change blocks. 
4 lines changed or deleted 0 lines changed or added


 TDataSetManagerAliEn.h   TDataSetManagerAliEn.h 
skipping to change at line 105 skipping to change at line 105
}; };
class TDataSetManagerAliEn : public TDataSetManager { class TDataSetManagerAliEn : public TDataSetManager {
protected: protected:
TPMERegexp *fUrlRe; TPMERegexp *fUrlRe;
TString fUrlTpl; TString fUrlTpl;
TDataSetManagerFile *fCache; TDataSetManagerFile *fCache;
Long_t fCacheExpire_s; Long_t fCacheExpire_s;
Bool_t fReadFromSE;
const TUrl *kfNoopRedirUrl;
const TUrl *kfNoopUnknownUrl;
const TUrl *kfNoopNoneUrl;
static std::vector<Int_t> *ExpandRunSpec(TString &runSpec); static std::vector<Int_t> *ExpandRunSpec(TString &runSpec);
static Bool_t ParseCustomFindUri(TString &uri, TString &basePath, static Bool_t ParseCustomFindUri(TString &uri, TString &basePath,
TString &fileName, TString &anchor, TString &treeName, TString &fileName, TString &anchor, TString &treeName,
TString &regexp); TString &regexp);
static Bool_t ParseOfficialDataUri(TString &uri, Bool_t sim, static Bool_t ParseOfficialDataUri(TString &uri, Bool_t sim,
TString &period, Int_t &year, std::vector<Int_t> *&runList, TString &period, Int_t &year, std::vector<Int_t> *&runList,
Bool_t &esd, Int_t &aodNum, TString &pass); Bool_t &esd, Int_t &aodNum, TString &pass);
static TUrl *AliEnWhereIs(TUrl *alienUrl, TString &closeSE,
Bool_t onlyFromCloseSE);
virtual void Init(TString cacheDir, TString urlTpl, virtual void Init(TString cacheDir, TString urlTpl,
ULong_t cacheExpire_s); ULong_t cacheExpire_s);
virtual TList *GetFindCommandsFromUri(TString &uri, EDataMode &dataMo de, Bool_t &forceUpdate); virtual TList *GetFindCommandsFromUri(TString &uri, EDataMode &dataMo de, Bool_t &forceUpdate);
public: public:
TDataSetManagerAliEn() : TDataSetManager(0, 0, 0) {} TDataSetManagerAliEn() : TDataSetManager(0, 0, 0) {}
TDataSetManagerAliEn(const char *cacheDir, const char *urlTpl, TDataSetManagerAliEn(const char *cacheDir, const char *urlTpl,
ULong_t cacheExpire_s); ULong_t cacheExpire_s);
 End of changes. 2 change blocks. 
0 lines changed or deleted 8 lines changed or added


 TGLFontManager.h   TGLFontManager.h 
skipping to change at line 44 skipping to change at line 44
enum ETextAlignV_e { kBottom, kTop, kCenterV }; enum ETextAlignV_e { kBottom, kTop, kCenterV };
private: private:
TGLFont& operator=(const TGLFont& o); // Not implemented. TGLFont& operator=(const TGLFont& o); // Not implemented.
FTFont *fFont; // FTGL font. FTFont *fFont; // FTGL font.
TGLFontManager *fManager; // Font manager. TGLFontManager *fManager; // Font manager.
Float_t fDepth; // depth of extruded fonts, enforced at render time. Float_t fDepth; // depth of extruded fonts, enforced at render time.
template<class Char>
void RenderHelper(const Char *txt, Double_t x, Double_t y, Double_t angl
e, Double_t /*mgn*/) const;
protected: protected:
Int_t fSize; // free-type face size Int_t fSize; // free-type face size
Int_t fFile; // free-type file name Int_t fFile; // free-type file name
EMode fMode; // free-type FTGL class id EMode fMode; // free-type FTGL class id
mutable Int_t fTrashCount; mutable Int_t fTrashCount;
public: public:
TGLFont(); TGLFont();
TGLFont(Int_t size, Int_t font, EMode mode, FTFont *f=0, TGLFontManager *mng=0); TGLFont(Int_t size, Int_t font, EMode mode, FTFont *f=0, TGLFontManager *mng=0);
TGLFont(const TGLFont& o); // Not implemented. TGLFont(const TGLFont& o); // Not implemented.
skipping to change at line 84 skipping to change at line 87
// FTGL wrapper functions // FTGL wrapper functions
Float_t GetAscent() const; Float_t GetAscent() const;
Float_t GetDescent() const; Float_t GetDescent() const;
Float_t GetLineHeight() const; Float_t GetLineHeight() const;
void MeasureBaseLineParams(Float_t& ascent, Float_t& descent, Float_t & line_height, void MeasureBaseLineParams(Float_t& ascent, Float_t& descent, Float_t & line_height,
const char* txt="Xj") const; const char* txt="Xj") const;
void BBox(const char* txt, void BBox(const char* txt,
Float_t& llx, Float_t& lly, Float_t& llz, Float_t& llx, Float_t& lly, Float_t& llz,
Float_t& urx, Float_t& ury, Float_t& urz) const; Float_t& urx, Float_t& ury, Float_t& urz) const;
void BBox(const wchar_t* txt,
Float_t& llx, Float_t& lly, Float_t& llz,
Float_t& urx, Float_t& ury, Float_t& urz) const;
void Render(const char* txt, Double_t x, Double_t y, Double_t angle, Do uble_t mgn) const; void Render(const char* txt, Double_t x, Double_t y, Double_t angle, Do uble_t mgn) const;
void Render(const wchar_t* txt, Double_t x, Double_t y, Double_t angle, Double_t mgn) const;
void Render(const TString &txt) const; void Render(const TString &txt) const;
void Render(const TString &txt, Float_t x, Float_t y, Float_t z, ETextA lignH_e alignH, ETextAlignV_e alignV) const; void Render(const TString &txt, Float_t x, Float_t y, Float_t z, ETextA lignH_e alignH, ETextAlignV_e alignV) const;
// helper gl draw functions // helper gl draw functions
virtual void PreRender(Bool_t autoLight=kTRUE, Bool_t lightOn=kFALSE) co nst; virtual void PreRender(Bool_t autoLight=kTRUE, Bool_t lightOn=kFALSE) co nst;
virtual void PostRender() const; virtual void PostRender() const;
Bool_t operator< (const TGLFont& o) const Bool_t operator< (const TGLFont& o) const
{ {
if (fSize == o.fSize) if (fSize == o.fSize)
skipping to change at line 133 skipping to change at line 140
typedef std::map<TGLFont, Int_t>::iterator FontMap_i; typedef std::map<TGLFont, Int_t>::iterator FontMap_i;
typedef std::list<const TGLFont*> FontList_t; typedef std::list<const TGLFont*> FontList_t;
typedef std::list<const TGLFont*>::iterator FontList_i; typedef std::list<const TGLFont*>::iterator FontList_i;
typedef std::list<const TGLFont*>::const_iterator FontList_ci; typedef std::list<const TGLFont*>::const_iterator FontList_ci;
FontMap_t fFontMap; // map of created fonts FontMap_t fFontMap; // map of created fonts
FontList_t fFontTrash; // fonts to purge FontList_t fFontTrash; // fonts to purge
static TObjArray fgFontFileArray; // map font-id to ttf-font-fi le static TObjArray fgFontFileArray; // map font-id to ttf-font-fi le
// Default fonts - for gl/eve, "extended" - for gl-pad
static Int_t fgExtendedFontStart;
static FontSizeVec_t fgFontSizeArray; // map of valid font-size static FontSizeVec_t fgFontSizeArray; // map of valid font-size
static Bool_t fgStaticInitDone; // global initialization flag static Bool_t fgStaticInitDone; // global initialization flag
static void InitStatics(); static void InitStatics();
public: public:
TGLFontManager() : fFontMap(), fFontTrash() {} TGLFontManager() : fFontMap(), fFontTrash() {}
virtual ~TGLFontManager(); virtual ~TGLFontManager();
void RegisterFont(Int_t size, Int_t file, TGLFont::EMode mode, TGLFont & out); void RegisterFont(Int_t size, Int_t file, TGLFont::EMode mode, TGLFont & out);
void RegisterFont(Int_t size, const char* name, TGLFont::EMode mode, T GLFont& out); void RegisterFont(Int_t size, const char* name, TGLFont::EMode mode, T GLFont& out);
void ReleaseFont(TGLFont& font); void ReleaseFont(TGLFont& font);
static TObjArray* GetFontFileArray(); static TObjArray* GetFontFileArray();
static FontSizeVec_t* GetFontSizeArray(); static FontSizeVec_t* GetFontSizeArray();
static Int_t GetExtendedFontStartIndex();
static Int_t GetFontSize(Int_t ds); static Int_t GetFontSize(Int_t ds);
static Int_t GetFontSize(Int_t ds, Int_t min, Int_t max); static Int_t GetFontSize(Int_t ds, Int_t min, Int_t max);
static const char* GetFontNameFromId(Int_t); static const char* GetFontNameFromId(Int_t);
void ClearFontTrash(); void ClearFontTrash();
ClassDef(TGLFontManager, 0); // A FreeType GL font manager. ClassDef(TGLFontManager, 0); // A FreeType GL font manager.
}; };
#endif #endif
 End of changes. 5 change blocks. 
0 lines changed or deleted 12 lines changed or added


 TGLPadPainter.h   TGLPadPainter.h 
skipping to change at line 52 skipping to change at line 52
TGLFontManager fFM; TGLFontManager fFM;
TGLFont fF; TGLFont fF;
Int_t fVp[4]; Int_t fVp[4];
std::vector<TPoint> fPoly; std::vector<TPoint> fPoly;
Bool_t fIsHollowArea; Bool_t fIsHollowArea;
Bool_t fLocked; Bool_t fLocked;
template<class Char_t>
void DrawTextHelper(Double_t x, Double_t y, const Char_t *text, ETextMod
e mode);
public: public:
TGLPadPainter(); TGLPadPainter();
//Final overriders for TVirtualPadPainter pure virtual functions. //Final overriders for TVirtualPadPainter pure virtual functions.
//1. Part, which simply delegates to TVirtualX. //1. Part, which simply delegates to TVirtualX.
//Line attributes. //Line attributes.
Color_t GetLineColor() const; Color_t GetLineColor() const;
Style_t GetLineStyle() const; Style_t GetLineStyle() const;
Width_t GetLineWidth() const; Width_t GetLineWidth() const;
skipping to change at line 95 skipping to change at line 98
void SetTextSize(Float_t tsize); void SetTextSize(Float_t tsize);
void SetTextSizePixels(Int_t npixels); void SetTextSizePixels(Int_t npixels);
//2. "Off-screen management" part. //2. "Off-screen management" part.
Int_t CreateDrawable(UInt_t w, UInt_t h); Int_t CreateDrawable(UInt_t w, UInt_t h);
void ClearDrawable(); void ClearDrawable();
void CopyDrawable(Int_t id, Int_t px, Int_t py); void CopyDrawable(Int_t id, Int_t px, Int_t py);
void DestroyDrawable(); void DestroyDrawable();
void SelectDrawable(Int_t device); void SelectDrawable(Int_t device);
//TASImage support.
void DrawPixels(const unsigned char *pixelData, UInt_t width, UInt_t
height,
Int_t dstX, Int_t dstY, Bool_t enableBlending);
void InitPainter(); void InitPainter();
void InvalidateCS(); void InvalidateCS();
void LockPainter(); void LockPainter();
void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2); void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2);
void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2) ; void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2) ;
void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBo xMode mode); void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBo xMode mode);
//TPad needs double and float versions. //TPad needs double and float versions.
void DrawFillArea(Int_t n, const Double_t *x, const Double_t *y); void DrawFillArea(Int_t n, const Double_t *x, const Double_t *y);
skipping to change at line 117 skipping to change at line 124
//TPad needs both double and float versions of DrawPolyLine. //TPad needs both double and float versions of DrawPolyLine.
void DrawPolyLine(Int_t n, const Double_t *x, const Double_t *y); void DrawPolyLine(Int_t n, const Double_t *x, const Double_t *y);
void DrawPolyLine(Int_t n, const Float_t *x, const Float_t *y); void DrawPolyLine(Int_t n, const Float_t *x, const Float_t *y);
void DrawPolyLineNDC(Int_t n, const Double_t *u, const Double_t *v); void DrawPolyLineNDC(Int_t n, const Double_t *u, const Double_t *v);
//TPad needs both versions. //TPad needs both versions.
void DrawPolyMarker(Int_t n, const Double_t *x, const Double_t *y); void DrawPolyMarker(Int_t n, const Double_t *x, const Double_t *y);
void DrawPolyMarker(Int_t n, const Float_t *x, const Float_t *y); void DrawPolyMarker(Int_t n, const Float_t *x, const Float_t *y);
void DrawText(Double_t x, Double_t y, const char *text, ETextMode mo de); void DrawText(Double_t x, Double_t y, const char *text, ETextMode mo de);
void DrawText(Double_t, Double_t, const wchar_t *, ETextMode){} void DrawText(Double_t, Double_t, const wchar_t *, ETextMode);
void DrawTextNDC(Double_t x, Double_t y, const char *text, ETextMode mode); void DrawTextNDC(Double_t x, Double_t y, const char *text, ETextMode mode);
void DrawTextNDC(Double_t, Double_t, const wchar_t *, ETextMode){} void DrawTextNDC(Double_t, Double_t, const wchar_t *, ETextMode);
//jpg, png, gif and bmp output. //jpg, png, gif and bmp output.
void SaveImage(TVirtualPad *pad, const char *fileName, Int_t type) c onst; void SaveImage(TVirtualPad *pad, const char *fileName, Int_t type) c onst;
private: private:
//Attention! GL_PROJECTION will become //Attention! GL_PROJECTION will become
//the current matrix after these calls. //the current matrix after these calls.
void SaveProjectionMatrix()const; void SaveProjectionMatrix()const;
void RestoreProjectionMatrix()const; void RestoreProjectionMatrix()const;
 End of changes. 4 change blocks. 
2 lines changed or deleted 11 lines changed or added


 TGLPadUtils.h   TGLPadUtils.h 
skipping to change at line 207 skipping to change at line 207
OffScreenDevice(UInt_t w, UInt_t h, UInt_t x, UInt_t y, Bool_t top); OffScreenDevice(UInt_t w, UInt_t h, UInt_t x, UInt_t y, Bool_t top);
private: private:
UInt_t fW; UInt_t fW;
UInt_t fH; UInt_t fH;
UInt_t fX; UInt_t fX;
UInt_t fY; UInt_t fY;
Bool_t fTop; Bool_t fTop;
}; };
void ExtractRGB(Color_t colorIndex, Float_t * rgb); void ExtractRGBA(Color_t colorIndex, Float_t * rgba);
class GLLimits { class GLLimits {
public: public:
GLLimits(); GLLimits();
Double_t GetMaxLineWidth()const; Double_t GetMaxLineWidth()const;
Double_t GetMaxPointSize()const; Double_t GetMaxPointSize()const;
private: private:
mutable Double_t fMaxLineWidth; mutable Double_t fMaxLineWidth;
mutable Double_t fMaxPointSize; mutable Double_t fMaxPointSize;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 TH2Poly.h   TH2Poly.h 
skipping to change at line 122 skipping to change at line 122
Bool_t GetNewBinAdded() const{return fNewBinAdded;} Bool_t GetNewBinAdded() const{return fNewBinAdded;}
Int_t GetNumberOfBins() const{return fNcells;} Int_t GetNumberOfBins() const{return fNcells;}
void Honeycomb(Double_t xstart, Double_t ystart, Double_t a, Int _t k, Int_t s); // Bins the histogram using a honeycomb structure void Honeycomb(Double_t xstart, Double_t ystart, Double_t a, Int _t k, Int_t s); // Bins the histogram using a honeycomb structure
Double_t Integral(Option_t* option = "") const; Double_t Integral(Option_t* option = "") const;
Double_t Integral(Int_t, Int_t, const Option_t*) const{return 0;} //MayNotUse Double_t Integral(Int_t, Int_t, const Option_t*) const{return 0;} //MayNotUse
Double_t Integral(Int_t, Int_t, Int_t, Int_t, const Option_t*) const {return 0;} //MayNotUse Double_t Integral(Int_t, Int_t, Int_t, Int_t, const Option_t*) const {return 0;} //MayNotUse
Double_t Integral(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, const Op tion_t*) const{return 0;} //MayNotUse Double_t Integral(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, const Op tion_t*) const{return 0;} //MayNotUse
Long64_t Merge(TCollection *); Long64_t Merge(TCollection *);
void Reset(Option_t *option); void Reset(Option_t *option);
void SavePrimitive(ostream& out, Option_t* option = ""); void SavePrimitive(ostream& out, Option_t* option = "");
virtual void Scale(Double_t c1 = 1, Option_t* option = "");
void SetBinContent(Int_t bin, Double_t content); void SetBinContent(Int_t bin, Double_t content);
void SetBinContent(Int_t, Int_t, Double_t){return;} // MayNotUse void SetBinContent(Int_t, Int_t, Double_t){return;} // MayNotUse
void SetBinContent(Int_t, Int_t, Int_t, Double_t){return;} // MayNotUse void SetBinContent(Int_t, Int_t, Int_t, Double_t){return;} // MayNotUse
void SetBinContentChanged(Bool_t flag){fBinContentChanged = flag ;} void SetBinContentChanged(Bool_t flag){fBinContentChanged = flag ;}
void SetFloat(Bool_t flag = true); void SetFloat(Bool_t flag = true);
void SetNewBinAdded(Bool_t flag){fNewBinAdded = flag;} void SetNewBinAdded(Bool_t flag){fNewBinAdded = flag;}
protected: protected:
TList *fBins; //List of bins. TList *fBins; //List of bins.
Double_t fOverflow[9]; //Overflow bins Double_t fOverflow[9]; //Overflow bins
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 TLorentzVector.h   TLorentzVector.h 
skipping to change at line 44 skipping to change at line 44
class TLorentzVector : public TObject { class TLorentzVector : public TObject {
private: private:
TVector3 fP; // 3 vector component TVector3 fP; // 3 vector component
Double_t fE; // time or energy of (x,y,z,t) or (px,py,pz,e) Double_t fE; // time or energy of (x,y,z,t) or (px,py,pz,e)
public: public:
typedef Double_t Scalar; // to be able to use it with the ROOT::Math::
VectorUtil functions
enum { kX=0, kY=1, kZ=2, kT=3, kNUM_COORDINATES=4, kSIZE=kNUM_COORDINATE S }; enum { kX=0, kY=1, kZ=2, kT=3, kNUM_COORDINATES=4, kSIZE=kNUM_COORDINATE S };
// Safe indexing of the coordinates when using with matrices, arrays, et c. // Safe indexing of the coordinates when using with matrices, arrays, et c.
TLorentzVector(Double_t x = 0.0, Double_t y = 0.0, TLorentzVector();
Double_t z = 0.0, Double_t t = 0.0);
TLorentzVector(Double_t x, Double_t y, Double_t z, Double_t t);
// Constructor giving the components x, y, z, t. // Constructor giving the components x, y, z, t.
TLorentzVector(const Double_t * carray); TLorentzVector(const Double_t * carray);
TLorentzVector(const Float_t * carray); TLorentzVector(const Float_t * carray);
// Constructor from an array, not checked! // Constructor from an array, not checked!
TLorentzVector(const TVector3 & vector3, Double_t t); TLorentzVector(const TVector3 & vector3, Double_t t);
// Constructor giving a 3-Vector and a time component. // Constructor giving a 3-Vector and a time component.
TLorentzVector(const TLorentzVector & lorentzvector); TLorentzVector(const TLorentzVector & lorentzvector);
 End of changes. 2 change blocks. 
2 lines changed or deleted 6 lines changed or added


 TMultiGraph.h   TMultiGraph.h 
skipping to change at line 76 skipping to change at line 76
virtual void InitGaus(Double_t xmin, Double_t xmax); virtual void InitGaus(Double_t xmin, Double_t xmax);
virtual Int_t IsInside(Double_t x, Double_t y) const; virtual Int_t IsInside(Double_t x, Double_t y) const;
TH1F *GetHistogram() const; TH1F *GetHistogram() const;
TF1 *GetFunction(const char *name) const; TF1 *GetFunction(const char *name) const;
TList *GetListOfGraphs() const { return fGraphs; } TList *GetListOfGraphs() const { return fGraphs; }
TList *GetListOfFunctions(); // non const method (create lis t if empty) TList *GetListOfFunctions(); // non const method (create lis t if empty)
const TList *GetListOfFunctions() const { return fFunctions; } const TList *GetListOfFunctions() const { return fFunctions; }
TAxis *GetXaxis() const; TAxis *GetXaxis() const;
TAxis *GetYaxis() const; TAxis *GetYaxis() const;
virtual void Paint(Option_t *chopt=""); virtual void Paint(Option_t *chopt="");
void PaintPads(Option_t *chopt="");
void PaintPolyLine3D(Option_t *chopt=""); void PaintPolyLine3D(Option_t *chopt="");
virtual void Print(Option_t *chopt="") const; virtual void Print(Option_t *chopt="") const;
virtual void RecursiveRemove(TObject *obj); virtual void RecursiveRemove(TObject *obj);
virtual void SavePrimitive(ostream &out, Option_t *option = ""); virtual void SavePrimitive(ostream &out, Option_t *option = "");
virtual void SetMaximum(Double_t maximum=-1111); virtual void SetMaximum(Double_t maximum=-1111);
virtual void SetMinimum(Double_t minimum=-1111); virtual void SetMinimum(Double_t minimum=-1111);
ClassDef(TMultiGraph,2) //A collection of TGraph objects ClassDef(TMultiGraph,2) //A collection of TGraph objects
}; };
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 TPadPainter.h   TPadPainter.h 
skipping to change at line 70 skipping to change at line 70
void SetTextFont(Font_t tfont); void SetTextFont(Font_t tfont);
void SetTextSize(Float_t tsize); void SetTextSize(Float_t tsize);
void SetTextSizePixels(Int_t npixels); void SetTextSizePixels(Int_t npixels);
//2. "Off-screen management" part. //2. "Off-screen management" part.
Int_t CreateDrawable(UInt_t w, UInt_t h); Int_t CreateDrawable(UInt_t w, UInt_t h);
void ClearDrawable(); void ClearDrawable();
void CopyDrawable(Int_t id, Int_t px, Int_t py); void CopyDrawable(Int_t id, Int_t px, Int_t py);
void DestroyDrawable(); void DestroyDrawable();
void SelectDrawable(Int_t device); void SelectDrawable(Int_t device);
//TASImage support (noop for a non-gl pad).
void DrawPixels(const unsigned char *pixelData, UInt_t width, UInt_t
height,
Int_t dstX, Int_t dstY, Bool_t enableBlending);
void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2); void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2);
void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2) ; void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2) ;
void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBo xMode mode); void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBo xMode mode);
//TPad needs double and float versions. //TPad needs double and float versions.
void DrawFillArea(Int_t n, const Double_t *x, const Double_t *y); void DrawFillArea(Int_t n, const Double_t *x, const Double_t *y);
void DrawFillArea(Int_t n, const Float_t *x, const Float_t *y); void DrawFillArea(Int_t n, const Float_t *x, const Float_t *y);
//TPad needs both double and float versions of DrawPolyLine. //TPad needs both double and float versions of DrawPolyLine.
void DrawPolyLine(Int_t n, const Double_t *x, const Double_t *y); void DrawPolyLine(Int_t n, const Double_t *x, const Double_t *y);
 End of changes. 1 change blocks. 
0 lines changed or deleted 5 lines changed or added


 TParallelCoordEditor.h   TParallelCoordEditor.h 
skipping to change at line 40 skipping to change at line 40
class TGedPatternSelect; class TGedPatternSelect;
class TParallelCoordEditor : public TGedFrame { class TParallelCoordEditor : public TGedFrame {
protected: protected:
TGCompositeFrame *fVarTab; TGCompositeFrame *fVarTab;
TParallelCoord *fParallel; TParallelCoord *fParallel;
TGColorSelect *fGlobalLineColor; TGColorSelect *fGlobalLineColor;
TGLineWidthComboBox *fGlobalLineWidth; TGLineWidthComboBox *fGlobalLineWidth;
TGHSlider *fDotsSpacing; TGHSlider *fDotsSpacing;
TGNumberEntryField *fDotsSpacingField; TGNumberEntryField *fDotsSpacingField;
TGHSlider *fAlpha;
TGNumberEntryField *fAlphaField;
TGButtonGroup *fLineTypeBgroup; TGButtonGroup *fLineTypeBgroup;
TGRadioButton *fLineTypePoly; TGRadioButton *fLineTypePoly;
TGRadioButton *fLineTypeCurves; TGRadioButton *fLineTypeCurves;
TGCheckButton *fHideAllRanges; TGCheckButton *fHideAllRanges;
TGComboBox *fSelectionSelect; TGComboBox *fSelectionSelect;
TGColorSelect *fSelectLineColor; TGColorSelect *fSelectLineColor;
TGLineWidthComboBox *fSelectLineWidth; TGLineWidthComboBox *fSelectLineWidth;
TGCheckButton *fActivateSelection; TGCheckButton *fActivateSelection;
TGCheckButton *fShowRanges; TGCheckButton *fShowRanges;
TGTextButton *fDeleteSelection; TGTextButton *fDeleteSelection;
skipping to change at line 94 skipping to change at line 96
virtual void DoActivateSelection(Bool_t); virtual void DoActivateSelection(Bool_t);
virtual void DoAddSelection(); virtual void DoAddSelection();
virtual void DoAddVariable(); virtual void DoAddVariable();
virtual void DoApplySelect(); virtual void DoApplySelect();
virtual void DoDelayDrawing(Bool_t); virtual void DoDelayDrawing(Bool_t);
virtual void DoDeleteSelection(); virtual void DoDeleteSelection();
virtual void DoDeleteVar(); virtual void DoDeleteVar();
virtual void DoDotsSpacing(); virtual void DoDotsSpacing();
virtual void DoDotsSpacingField(); virtual void DoDotsSpacingField();
virtual void DoAlpha();
virtual void DoAlphaField();
virtual void DoFirstEntry(); virtual void DoFirstEntry();
virtual void DoGlobalLineColor(Pixel_t); virtual void DoGlobalLineColor(Pixel_t);
virtual void DoGlobalLineWidth(Int_t); virtual void DoGlobalLineWidth(Int_t);
virtual void DoHideAllRanges(Bool_t); virtual void DoHideAllRanges(Bool_t);
virtual void DoHistShowBoxes(Bool_t); virtual void DoHistShowBoxes(Bool_t);
virtual void DoHistWidth(); virtual void DoHistWidth();
virtual void DoHistBinning(); virtual void DoHistBinning();
virtual void DoHistColorSelect(Pixel_t); virtual void DoHistColorSelect(Pixel_t);
virtual void DoHistPatternSelect(Style_t); virtual void DoHistPatternSelect(Style_t);
virtual void DoEntriesToDraw(); virtual void DoEntriesToDraw();
virtual void DoLineType(); virtual void DoLineType();
virtual void DoLiveDotsSpacing(Int_t a); virtual void DoLiveDotsSpacing(Int_t a);
virtual void DoLiveAlpha(Int_t a);
virtual void DoLiveEntriesToDraw(); virtual void DoLiveEntriesToDraw();
virtual void DoLiveWeightCut(Int_t n); virtual void DoLiveWeightCut(Int_t n);
virtual void DoNentries(); virtual void DoNentries();
virtual void DoPaintEntries(Bool_t); virtual void DoPaintEntries(Bool_t);
virtual void DoSelectionSelect(const char* title); virtual void DoSelectionSelect(const char* title);
virtual void DoSelectLineColor(Pixel_t); virtual void DoSelectLineColor(Pixel_t);
virtual void DoSelectLineWidth(Int_t); virtual void DoSelectLineWidth(Int_t);
virtual void DoShowRanges(Bool_t s); virtual void DoShowRanges(Bool_t s);
virtual void DoUnApply(); virtual void DoUnApply();
virtual void DoVariableSelect(const char* var); virtual void DoVariableSelect(const char* var);
 End of changes. 3 change blocks. 
0 lines changed or deleted 5 lines changed or added


 TPave.h   TPave.h 
skipping to change at line 90 skipping to change at line 90
virtual void SavePrimitive(ostream &out, Option_t *option = ""); virtual void SavePrimitive(ostream &out, Option_t *option = "");
virtual void SetBorderSize(Int_t bordersize=4) {fBorderSize = bordersiz e;} // *MENU* virtual void SetBorderSize(Int_t bordersize=4) {fBorderSize = bordersiz e;} // *MENU*
virtual void SetCornerRadius(Double_t rad = 0.2) {fCornerRadius = rad;} // *MENU* virtual void SetCornerRadius(Double_t rad = 0.2) {fCornerRadius = rad;} // *MENU*
virtual void SetName(const char *name="") {fName = name;} // *MENU* virtual void SetName(const char *name="") {fName = name;} // *MENU*
virtual void SetOption(Option_t *option="br") {fOption = option;} virtual void SetOption(Option_t *option="br") {fOption = option;}
virtual void SetShadowColor(Int_t color) {fShadowColor=color;} // *MENU * virtual void SetShadowColor(Int_t color) {fShadowColor=color;} // *MENU *
virtual void SetX1NDC(Double_t x1) {fX1NDC=x1;} virtual void SetX1NDC(Double_t x1) {fX1NDC=x1;}
virtual void SetX2NDC(Double_t x2) {fX2NDC=x2;} virtual void SetX2NDC(Double_t x2) {fX2NDC=x2;}
virtual void SetY1NDC(Double_t y1) {fY1NDC=y1;} virtual void SetY1NDC(Double_t y1) {fY1NDC=y1;}
virtual void SetY2NDC(Double_t y2) {fY2NDC=y2;} virtual void SetY2NDC(Double_t y2) {fY2NDC=y2;}
virtual void SetX1(Double_t x1);
virtual void SetX2(Double_t x2);
virtual void SetY1(Double_t y1);
virtual void SetY2(Double_t y2);
ClassDef(TPave,3) //Pave. A box with shadowing ClassDef(TPave,3) //Pave. A box with shadowing
}; };
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 4 lines changed or added


 TProofLite.h   TProofLite.h 
skipping to change at line 37 skipping to change at line 37
class TDSet; class TDSet;
class TList; class TList;
class TQueryResultManager; class TQueryResultManager;
class TDataSetManager; class TDataSetManager;
class TProofLockPath; class TProofLockPath;
class TProofMgr; class TProofMgr;
class TProofQueryResult; class TProofQueryResult;
class TServerSocket; class TServerSocket;
class TSelector; class TSelector;
class TPMERegexp;
class TProofLite : public TProof { class TProofLite : public TProof {
friend class TProofPlayerLite; friend class TProofPlayerLite;
private: private:
Int_t fNWorkers; // Number of workers Int_t fNWorkers; // Number of workers
TString fSandbox; // PROOF sandbox root dir TString fSandbox; // PROOF sandbox root dir
TString fCacheDir; // Directory containing cache of user files TString fCacheDir; // Directory containing cache of user files
TString fQueryDir; // Directory containing query results and status TString fQueryDir; // Directory containing query results and status
skipping to change at line 60 skipping to change at line 61
Bool_t fForkStartup; // Startup N-1 workers forking the first worker Bool_t fForkStartup; // Startup N-1 workers forking the first worker
TString fVarExp; // Internal variable to pass drawing options TString fVarExp; // Internal variable to pass drawing options
TString fSelection; // Internal variable to pass drawing options TString fSelection; // Internal variable to pass drawing options
TProofLockPath *fCacheLock; // Cache dir locker TProofLockPath *fCacheLock; // Cache dir locker
TProofLockPath *fQueryLock; // Query dir locker TProofLockPath *fQueryLock; // Query dir locker
TQueryResultManager *fQMgr; // Query-result manager TQueryResultManager *fQMgr; // Query-result manager
TDataSetManager *fDataSetManager; // Dataset manager TDataSetManager *fDataSetManager; // Dataset manager
TDataSetManagerFile *fDataSetStgRepo; // Dataset manager for staging req
uests
TPMERegexp *fReInvalid; // Regular expression matching invalid dataset
URIs
static Int_t fgWrksMax; // Max number of workers static Int_t fgWrksMax; // Max number of workers
TProofLite(const TProofLite &); // not implemented TProofLite(const TProofLite &); // not implemented
void operator=(const TProofLite &); // idem void operator=(const TProofLite &); // idem
Int_t CleanupSandbox(); Int_t CleanupSandbox();
Int_t CreateSandbox(); Int_t CreateSandbox();
void FindUniqueSlaves(); void FindUniqueSlaves();
void NotifyStartUp(const char *action, Int_t done, Int_t tot); void NotifyStartUp(const char *action, Int_t done, Int_t tot);
Int_t SetProofServEnv(const char *ord); Int_t SetProofServEnv(const char *ord);
Int_t InitDataSetManager(); Int_t InitDataSetManager();
void ResolveKeywords(TString &s, const char *logfile); void ResolveKeywords(TString &s, const char *ord, const char *logfile);
void SendInputDataFile(); void SendInputDataFile();
void ShowDataDir(const char *dirname); void ShowDataDir(const char *dirname);
protected: protected:
TProofLite() : TProof() { } // For derived classes to use TProofLite() : TProof() { } // For derived classes to use
Int_t CreateSymLinks(TList *files); Int_t CreateSymLinks(TList *files);
Int_t Init(const char *masterurl, const char *conffile, Int_t Init(const char *masterurl, const char *conffile,
const char *confdir, Int_t loglevel, const char *confdir, Int_t loglevel,
skipping to change at line 148 skipping to change at line 152
TList *GetListOfQueries(Option_t *opt = ""); TList *GetListOfQueries(Option_t *opt = "");
Int_t Remove(const char *ref, Bool_t all); Int_t Remove(const char *ref, Bool_t all);
// Dataset handling // Dataset handling
Bool_t RegisterDataSet(const char *dsName, TFileCollection *ds, const char *opt = ""); Bool_t RegisterDataSet(const char *dsName, TFileCollection *ds, const char *opt = "");
Bool_t ExistsDataSet(const char *uri); Bool_t ExistsDataSet(const char *uri);
TMap *GetDataSets(const char *uri = "", const char * = 0); TMap *GetDataSets(const char *uri = "", const char * = 0);
void ShowDataSets(const char *uri = "", const char * = 0); void ShowDataSets(const char *uri = "", const char * = 0);
TFileCollection *GetDataSet(const char *uri, const char * = 0); TFileCollection *GetDataSet(const char *uri, const char * = 0);
Int_t RemoveDataSet(const char *uri, const char * = 0); Int_t RemoveDataSet(const char *uri, const char * = 0);
Bool_t RequestStagingDataSet(const char *dataset);
Bool_t CancelStagingDataSet(const char *dataset);
TFileCollection *GetStagingStatusDataSet(const char *dataset);
Int_t VerifyDataSet(const char *uri, const char * = 0); Int_t VerifyDataSet(const char *uri, const char * = 0);
Int_t SetDataSetTreeName( const char *dataset, const char *treename); Int_t SetDataSetTreeName( const char *dataset, const char *treename);
void ShowDataSetCache(const char *dataset = 0); void ShowDataSetCache(const char *dataset = 0);
void ClearDataSetCache(const char *dataset = 0); void ClearDataSetCache(const char *dataset = 0);
// Browsing // Browsing
TTree *GetTreeHeader(TDSet *tdset); TTree *GetTreeHeader(TDSet *tdset);
static Int_t GetNumberOfWorkers(const char *url = 0); static Int_t GetNumberOfWorkers(const char *url = 0);
 End of changes. 4 change blocks. 
1 lines changed or deleted 10 lines changed or added


 TStreamerInfo.h   TStreamerInfo.h 
skipping to change at line 182 skipping to change at line 182
// kAnyPnoVT: Class* not derived from TObject with NO comment field //->Cla ss and Class has NO virtual table // kAnyPnoVT: Class* not derived from TObject with NO comment field //->Cla ss and Class has NO virtual table
// kSTLp : Pointer to STL container. // kSTLp : Pointer to STL container.
// kTString : TString, special case // kTString : TString, special case
// kTObject : TObject, special case // kTObject : TObject, special case
// kTNamed : TNamed , special case // kTNamed : TNamed , special case
TStreamerInfo(); TStreamerInfo();
TStreamerInfo(TClass *cl); TStreamerInfo(TClass *cl);
virtual ~TStreamerInfo(); virtual ~TStreamerInfo();
void Build(); void Build();
void BuildCheck(); void BuildCheck(TFile *file = 0);
void BuildEmulated(TFile *file); void BuildEmulated(TFile *file);
void BuildOld(); void BuildOld();
virtual Bool_t BuildFor( const TClass *cl ); virtual Bool_t BuildFor( const TClass *cl );
void CallShowMembers(void* obj, TMemberInspector &insp) c onst; void CallShowMembers(void* obj, TMemberInspector &insp) c onst;
void Clear(Option_t *); void Clear(Option_t *);
TObject *Clone(const char *newname = "") const; TObject *Clone(const char *newname = "") const;
Bool_t CompareContent(TClass *cl,TVirtualStreamerInfo *info , Bool_t warn, Bool_t complete); Bool_t CompareContent(TClass *cl,TVirtualStreamerInfo *info , Bool_t warn, Bool_t complete);
void Compile(); void Compile();
void ComputeSize(); void ComputeSize();
void ForceWriteInfo(TFile *file, Bool_t force=kFALSE); void ForceWriteInfo(TFile *file, Bool_t force=kFALSE);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 TTreeDrawArgsParser.h   TTreeDrawArgsParser.h 
skipping to change at line 46 skipping to change at line 46
kUNKNOWN, kUNKNOWN,
kEVENTLIST, kEVENTLIST,
kENTRYLIST, kENTRYLIST,
kPROFILE, kPROFILE,
kPROFILE2D, kPROFILE2D,
kGRAPH, kGRAPH,
kPOLYMARKER3D, kPOLYMARKER3D,
kHISTOGRAM1D, kHISTOGRAM1D,
kHISTOGRAM2D, kHISTOGRAM2D,
kLISTOFGRAPHS, kLISTOFGRAPHS,
kLISTOFPOLYMARKERS3D kLISTOFPOLYMARKERS3D,
kHISTOGRAM3D
}; };
static Int_t fgMaxDimension; // = 4 static Int_t fgMaxDimension; // = 4
static Int_t fgMaxParameters; // = 9 static Int_t fgMaxParameters; // = 9
protected: protected:
TString fExp; // complete variable expression TString fExp; // complete variable expression
TString fSelection; // selection expression TString fSelection; // selection expression
TString fOption; // draw options TString fOption; // draw options
 End of changes. 1 change blocks. 
1 lines changed or deleted 2 lines changed or added


 TVector2.h   TVector2.h 
skipping to change at line 30 skipping to change at line 30
//------------------------------------------------------------------------- ----- //------------------------------------------------------------------------- -----
protected: protected:
Double_t fX; // components of the vector Double_t fX; // components of the vector
Double_t fY; Double_t fY;
//------------------------------------------------------------------------- ----- //------------------------------------------------------------------------- -----
// function members // function members
//------------------------------------------------------------------------- ----- //------------------------------------------------------------------------- -----
public: public:
typedef Double_t Scalar; // to be able to use it with the ROOT::Math::
VectorUtil functions
TVector2 (); TVector2 ();
TVector2 (Double_t *s); TVector2 (Double_t *s);
TVector2 (Double_t x0, Double_t y0); TVector2 (Double_t x0, Double_t y0);
virtual ~TVector2(); virtual ~TVector2();
// ****** unary operators // ****** unary operators
TVector2& operator = (TVector2 const & v); TVector2& operator = (TVector2 const & v);
TVector2& operator += (TVector2 const & v); TVector2& operator += (TVector2 const & v);
TVector2& operator -= (TVector2 const & v); TVector2& operator -= (TVector2 const & v);
Double_t operator *= (TVector2 const & v); Double_t operator *= (TVector2 const & v);
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 TVector3.h   TVector3.h 
skipping to change at line 30 skipping to change at line 30
#ifndef ROOT_TMatrix #ifndef ROOT_TMatrix
#include "TMatrix.h" #include "TMatrix.h"
#endif #endif
class TRotation; class TRotation;
class TVector3 : public TObject { class TVector3 : public TObject {
public: public:
TVector3(Double_t x = 0.0, Double_t y = 0.0, Double_t z = 0.0); typedef Double_t Scalar; // to be able to use it with the ROOT::Math::
VectorUtil functions
TVector3();
TVector3(Double_t x, Double_t y, Double_t z);
// The constructor. // The constructor.
TVector3(const Double_t *); TVector3(const Double_t *);
TVector3(const Float_t *); TVector3(const Float_t *);
// Constructors from an array // Constructors from an array
TVector3(const TVector3 &); TVector3(const TVector3 &);
// The copy constructor. // The copy constructor.
virtual ~TVector3(); virtual ~TVector3();
 End of changes. 1 change blocks. 
1 lines changed or deleted 6 lines changed or added


 TVirtualPad.h   TVirtualPad.h 
skipping to change at line 56 skipping to change at line 56
class TObject; class TObject;
class TObjLink; class TObjLink;
class TView; class TView;
class TCanvas; class TCanvas;
class TCanvasImp; class TCanvasImp;
class TH1F; class TH1F;
class TFrame; class TFrame;
class TLegend; class TLegend;
class TBox; class TBox;
class TVirtualViewer3D; class TVirtualViewer3D;
class TVirtualPadPainter;
class TVirtualPad : public TObject, public TAttLine, public TAttFill, class TVirtualPad : public TObject, public TAttLine, public TAttFill,
public TAttPad, public TQObject { public TAttPad, public TQObject {
protected: protected:
Bool_t fResizing; //!true when resizing the pad Bool_t fResizing; //!true when resizing the pad
virtual void *GetSender() { return this; } //used to set gTQSender virtual void *GetSender() { return this; } //used to set gTQSender
public: public:
skipping to change at line 252 skipping to change at line 253
virtual TObject *CreateToolTip(const TBox *b, const char *text, Long_t d elayms) = 0; virtual TObject *CreateToolTip(const TBox *b, const char *text, Long_t d elayms) = 0;
virtual void DeleteToolTip(TObject *tip) = 0; virtual void DeleteToolTip(TObject *tip) = 0;
virtual void ResetToolTip(TObject *tip) = 0; virtual void ResetToolTip(TObject *tip) = 0;
virtual void CloseToolTip(TObject *tip) = 0; virtual void CloseToolTip(TObject *tip) = 0;
virtual TVirtualViewer3D *GetViewer3D(Option_t * type = "") = 0; virtual TVirtualViewer3D *GetViewer3D(Option_t * type = "") = 0;
virtual Bool_t HasViewer3D() const = 0; virtual Bool_t HasViewer3D() const = 0;
virtual void ReleaseViewer3D(Option_t * type = "") = 0; virtual void ReleaseViewer3D(Option_t * type = "") = 0;
virtual Int_t GetGLDevice() = 0; virtual Int_t GetGLDevice() = 0;
virtual void SetCopyGLDevice(Bool_t copy) = 0; virtual void SetCopyGLDevice(Bool_t copy) = 0;
virtual TVirtualPadPainter *GetPainter() = 0;
virtual Bool_t PadInSelectionMode() const; virtual Bool_t PadInSelectionMode() const;
virtual Bool_t PadInHighlightMode() const; virtual Bool_t PadInHighlightMode() const;
virtual void PushTopLevelSelectable(TObject *top); virtual void PushTopLevelSelectable(TObject *top);
virtual void PushSelectableObject(TObject *obj); virtual void PushSelectableObject(TObject *obj);
virtual void PopTopLevelSelectable(); virtual void PopTopLevelSelectable();
static TVirtualPad *&Pad(); static TVirtualPad *&Pad();
 End of changes. 2 change blocks. 
2 lines changed or deleted 4 lines changed or added


 TVirtualPadPainter.h   TVirtualPadPainter.h 
skipping to change at line 65 skipping to change at line 65
virtual void SetTextSize(Float_t tsize=1) = 0; virtual void SetTextSize(Float_t tsize=1) = 0;
virtual void SetTextSizePixels(Int_t npixels) = 0; virtual void SetTextSizePixels(Int_t npixels) = 0;
//This part is an interface to X11 pixmap management and to save sub-pad s off-screens for OpenGL. //This part is an interface to X11 pixmap management and to save sub-pad s off-screens for OpenGL.
//Currently, must be implemented only for X11/GDI //Currently, must be implemented only for X11/GDI
virtual Int_t CreateDrawable(UInt_t w, UInt_t h) = 0;//gVirtualX->Ope nPixmap virtual Int_t CreateDrawable(UInt_t w, UInt_t h) = 0;//gVirtualX->Ope nPixmap
virtual void ClearDrawable() = 0;//gVirtualX->Clear() virtual void ClearDrawable() = 0;//gVirtualX->Clear()
virtual void CopyDrawable(Int_t device, Int_t px, Int_t py) = 0; virtual void CopyDrawable(Int_t device, Int_t px, Int_t py) = 0;
virtual void DestroyDrawable() = 0;//gVirtualX->CloseWindow virtual void DestroyDrawable() = 0;//gVirtualX->CloseWindow
virtual void SelectDrawable(Int_t device) = 0;//gVirtualX->SelectWin dow virtual void SelectDrawable(Int_t device) = 0;//gVirtualX->SelectWin dow
//TASImage support.
virtual void DrawPixels(const unsigned char *pixelData, UInt_t width
, UInt_t height,
Int_t dstX, Int_t dstY, Bool_t alphaBlending
) = 0;
// //
//These functions are not required by X11/GDI. //These functions are not required by X11/GDI.
virtual void InitPainter(); virtual void InitPainter();
virtual void InvalidateCS(); virtual void InvalidateCS();
virtual void LockPainter(); virtual void LockPainter();
//Now, drawing primitives. //Now, drawing primitives.
virtual void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_ t y2) = 0; virtual void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_ t y2) = 0;
virtual void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Doub le_t v2) = 0; virtual void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Doub le_t v2) = 0;
 End of changes. 1 change blocks. 
0 lines changed or deleted 6 lines changed or added


 TVirtualStreamerInfo.h   TVirtualStreamerInfo.h 
skipping to change at line 109 skipping to change at line 109
// kAnyPnoVT: Class* not derived from TObject with NO comment field //->Cla ss and Class has NO virtual table // kAnyPnoVT: Class* not derived from TObject with NO comment field //->Cla ss and Class has NO virtual table
// kSTLp : Pointer to STL container. // kSTLp : Pointer to STL container.
// kTString : TString, special case // kTString : TString, special case
// kTObject : TObject, special case // kTObject : TObject, special case
// kTNamed : TNamed , special case // kTNamed : TNamed , special case
TVirtualStreamerInfo(); TVirtualStreamerInfo();
TVirtualStreamerInfo(TClass * /*cl*/); TVirtualStreamerInfo(TClass * /*cl*/);
virtual ~TVirtualStreamerInfo(); virtual ~TVirtualStreamerInfo();
virtual void Build() = 0; virtual void Build() = 0;
virtual void BuildCheck() = 0; virtual void BuildCheck(TFile *file = 0) = 0;
virtual void BuildEmulated(TFile *file) = 0; virtual void BuildEmulated(TFile *file) = 0;
virtual void BuildOld() = 0; virtual void BuildOld() = 0;
virtual Bool_t BuildFor( const TClass *cl ) = 0; virtual Bool_t BuildFor( const TClass *cl ) = 0;
virtual void CallShowMembers(void* obj, TMemberInspector &insp) c onst = 0; virtual void CallShowMembers(void* obj, TMemberInspector &insp) c onst = 0;
virtual void Clear(Option_t *) = 0; virtual void Clear(Option_t *) = 0;
virtual Bool_t CompareContent(TClass *cl,TVirtualStreamerInfo *info , Bool_t warn, Bool_t complete) = 0; virtual Bool_t CompareContent(TClass *cl,TVirtualStreamerInfo *info , Bool_t warn, Bool_t complete) = 0;
virtual void Compile() = 0; virtual void Compile() = 0;
virtual void ForceWriteInfo(TFile *file, Bool_t force=kFALSE) = 0 ; virtual void ForceWriteInfo(TFile *file, Bool_t force=kFALSE) = 0 ;
virtual Int_t GenerateHeaderFile(const char *dirname, const TList *subClasses = 0, const TList *extrainfos = 0) = 0; virtual Int_t GenerateHeaderFile(const char *dirname, const TList *subClasses = 0, const TList *extrainfos = 0) = 0;
virtual TClass *GetActualClass(const void *obj) const = 0; virtual TClass *GetActualClass(const void *obj) const = 0;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/