16 namespace Experimental {
 
   28 template<
typename TT> 
void REveVectorT<TT>::Dump()
 const 
   30    printf(
"(%f, %f, %f)\n", fX, fY, fZ);
 
   36 template<
typename TT> 
void REveVectorT<TT>::Set(
const TVector3& v)
 
   38    fX = v.x(); fY = v.y(); fZ = v.z();
 
   44 template<
typename TT> TT REveVectorT<TT>::Eta()
 const 
   46    TT cosTheta = CosTheta();
 
   47    if (cosTheta*cosTheta < 1) 
return -0.5* TMath::Log( (1.0-cosTheta)/(1.0+cosTheta) );
 
   48    Warning(
"Eta",
"transverse momentum = 0, returning +/- 1e10");
 
   49    return (fZ >= 0) ? 1e10 : -1e10;
 
   56 template<
typename TT> TT REveVectorT<TT>::Normalize(TT length)
 
   62       fX *= length; fY *= length; fZ *= length;
 
   70 template<
typename TT> REveVectorT<TT> REveVectorT<TT>::Orthogonal()
 const 
   72    Float_t xx = fX < 0 ? -fX : fX;
 
   73    Float_t yy = fY < 0 ? -fY : fY;
 
   74    Float_t zz = fZ < 0 ? -fZ : fZ;
 
   76       return xx < zz ? REveVectorT<TT>(0,fZ,-fY) : REveVectorT<TT>(fY,-fX,0);
 
   78       return yy < zz ? REveVectorT<TT>(-fZ,0,fX) : REveVectorT<TT>(fY,-fX,0);
 
   86 template<
typename TT> 
void REveVectorT<TT>::OrthoNormBase(REveVectorT<TT>& a, REveVectorT<TT>& b)
 const 
   88    REveVectorT<TT> v(*
this);
 
   96 template class REveVectorT<Float_t>;
 
   97 template class REveVectorT<Double_t>;
 
  109 template<
typename TT> 
void REveVector4T<TT>::Dump()
 const 
  111    printf(
"(%f, %f, %f; %f)\n", TP::fX, TP::fY, TP::fZ, fT);
 
  114 template class REveVector4T<Float_t>;
 
  115 template class REveVector4T<Double_t>;
 
  128 template<
typename TT> 
void REveVector2T<TT>::Normalize(TT length)
 
  141 template<
typename TT> 
void REveVector2T<TT>::Dump()
 const 
  143    printf(
"(%f, %f)\n", fX, fY);
 
  146 template class REveVector2T<Float_t>;
 
  147 template class REveVector2T<Double_t>;