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>;