57int compare( 
double v1, 
double v2, 
const char* 
name, 
double Scale = 1.0) {
 
   61   double eps = Scale* 2.22044604925031308e-16;
 
   63   double delta = 
v2 - 
v1;
 
   65   if (delta < 0 ) delta = - delta;
 
   66   if (
v1 == 0 || 
v2 == 0) {
 
   77      if ( delta/
d  > eps && delta > eps )
 
   84      int pr = std::cout.precision (18);
 
   91      std::cout << 
"\nDiscrepancy in " << 
name << 
"() : " << 
v1 << 
" != " << 
v2 << 
" discr = " << 
discr 
   92              << 
"   (Allowed discrepancy is " << eps  << 
")\n";
 
   93      std::cout.precision (
pr);
 
  100   std::cout << 
"\n************************************************************************\n " 
  102             << 
"\n************************************************************************\n";
 
  106   std::cout << 
"Test Cartesian-Polar :          " ;
 
  111   ok+= compare(
v1.X(), 
v2.X(), 
"x");
 
  112   ok+= compare(
v1.Y(), 
v2.Y(), 
"y");
 
  113   ok+= compare(
v1.Z(), 
v2.Z(), 
"z");
 
  114   ok+= compare(
v1.Phi(), 
v2.Phi(), 
"phi");
 
  115   ok+= compare(
v1.Theta(), 
v2.Theta(), 
"theta");
 
  116   ok+= compare(
v1.R(), 
v2.R(), 
"r");
 
  117   ok+= compare(
v1.Eta(), 
v2.Eta(), 
"eta");
 
  118   ok+= compare(
v1.Rho(), 
v2.Rho(), 
"rho");
 
  120   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  122   std::cout << 
"Test Cartesian-CylindricalEta : ";
 
  127   ok+= compare(
v1.X(), 
v3.X(), 
"x");
 
  128   ok+= compare(
v1.Y(), 
v3.Y(), 
"y");
 
  129   ok+= compare(
v1.Z(), 
v3.Z(), 
"z");
 
  130   ok+= compare(
v1.Phi(), 
v3.Phi(), 
"phi");
 
  131   ok+= compare(
v1.Theta(), 
v3.Theta(), 
"theta");
 
  132   ok+= compare(
v1.R(), 
v3.R(), 
"r");
 
  133   ok+= compare(
v1.Eta(), 
v3.Eta(), 
"eta");
 
  134   ok+= compare(
v1.Rho(), 
v3.Rho(), 
"rho");
 
  136   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  138   std::cout << 
"Test Cartesian-Cylindrical :    ";
 
  143   ok+= compare(
v1.X(), 
v4.X(), 
"x");
 
  144   ok+= compare(
v1.Y(), 
v4.Y(), 
"y");
 
  145   ok+= compare(
v1.Z(), 
v4.Z(), 
"z");
 
  146   ok+= compare(
v1.Phi(), 
v4.Phi(), 
"phi");
 
  147   ok+= compare(
v1.Theta(), 
v4.Theta(), 
"theta");
 
  148   ok+= compare(
v1.R(), 
v4.R(), 
"r");
 
  149   ok+= compare(
v1.Eta(), 
v4.Eta(), 
"eta");
 
  150   ok+= compare(
v1.Rho(), 
v4.Rho(), 
"rho");
 
  152   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  154   std::cout << 
"Test Operations :               " ;
 
  158   ok+= compare( 
Dot, 
v1.Mag2(),
"dot"  );
 
  160   ok+= compare( 
vcross.R(), 0,
"cross"  );
 
  164   ok+= compare( 
v1.R(), 
vscale2.R(), 
"scale");
 
  167   ok+= compare(
v2.Phi(),
vu.Phi(),
"unit Phi");
 
  168   ok+= compare(
v2.Theta(),
vu.Theta(),
"unit Theta");
 
  169   ok+= compare(1.0,
vu.R(),
"unit ");
 
  177   ok+= compare( 
q4.X(), 
q1.X(), 
"op X"  );
 
  178   ok+= compare( 
q4.Y(), 
q1.Y(), 
"op Y" );
 
  179   ok+= compare( 
q4.Z(), 
q1.Z(), 
"op Z" );
 
  186   ok+= compare( 
w1 == 
v1, 
static_cast<double>(
true), 
"== XYZ");
 
  187   ok+= compare( 
w2 == 
v2, 
static_cast<double>(
true), 
"== Polar");
 
  188   ok+= compare( 
w3 == 
v3, 
static_cast<double>(
true), 
"== RhoEtaPhi");
 
  189   ok+= compare( 
w4 == 
v4, 
static_cast<double>(
true), 
"== RhoZPhi");
 
  191   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  194   std::cout << 
"Test Setters :                  " ;
 
  198   ok+= compare( 
q2.X(), 
q1.X(), 
"setXYZ X"  );
 
  199   ok+= compare( 
q2.Y(), 
q1.Y(), 
"setXYZ Y" );
 
  200   ok+= compare( 
q2.Z(), 
q1.Z(), 
"setXYZ Z" );
 
  202   q2.SetCoordinates( 2.0*
q1.Rho(), 
q1.Eta(), 
q1.Phi() );
 
  204   ok+= compare( 
q2.X(), 
q1s.X(), 
"set X"  );
 
  205   ok+= compare( 
q2.Y(), 
q1s.Y(), 
"set Y" );
 
  206   ok+= compare( 
q2.Z(), 
q1s.Z(), 
"set Z" );
 
  208   if (ok == 0) std::cout << 
"\t\t OK " << std::endl;
 
  210   std::cout << 
"Test Linear Algebra conversion: " ;
 
  215   vxyz1.Coordinates().GetCoordinates(
vla1.GetMatrixArray() );
 
  228   if (ok == 0) std::cout << 
"\t\t OK " << std::endl;
 
  234   std::cout << 
"\n************************************************************************\n " 
  236             << 
"\n************************************************************************\n";
 
  240   std::cout << 
"Test Cartesian-Polar :          ";
 
  245   ok+= compare(
p1.x(), 
p2.X(), 
"x");
 
  246   ok+= compare(
p1.y(), 
p2.Y(), 
"y");
 
  247   ok+= compare(
p1.z(), 
p2.Z(), 
"z");
 
  248   ok+= compare(
p1.phi(), 
p2.Phi(), 
"phi");
 
  249   ok+= compare(
p1.theta(), 
p2.Theta(), 
"theta");
 
  250   ok+= compare(
p1.r(), 
p2.R(), 
"r");
 
  251   ok+= compare(
p1.eta(), 
p2.Eta(), 
"eta");
 
  252   ok+= compare(
p1.rho(), 
p2.Rho(), 
"rho");
 
  254   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  256   std::cout << 
"Test Polar-CylindricalEta :     ";
 
  261   ok+= compare(
p2.X(), 
p3.X(), 
"x");
 
  262   ok+= compare(
p2.Y(), 
p3.Y(), 
"y");
 
  263   ok+= compare(
p2.Z(), 
p3.Z(), 
"z",3);
 
  264   ok+= compare(
p2.Phi(), 
p3.Phi(), 
"phi");
 
  265   ok+= compare(
p2.Theta(), 
p3.Theta(), 
"theta");
 
  266   ok+= compare(
p2.R(), 
p3.R(), 
"r");
 
  267   ok+= compare(
p2.Eta(), 
p3.Eta(), 
"eta");
 
  268   ok+= compare(
p2.Rho(), 
p3.Rho(), 
"rho");
 
  270   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  272   std::cout << 
"Test operations :               ";
 
  277   ok+= compare( 
Dot, 0.0,
"dot", 10  );
 
  280   ok+= compare( 
vcross.R(), 
p1.R(),
"cross mag"  );
 
  281   ok+= compare( 
vcross.Dot(
vperp), 0.0,
"cross dir"  );
 
  285   ok+= compare( 
p1.R(), 
pscale2.R(), 
"scale");
 
  288   ok+= compare( 
p1 == 
pscale2, 
static_cast<double>(
true), 
"== Point");
 
  292   q1.SetCoordinates(
p1.Rho(),2.0, 
p1.Phi() );
 
  296   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  302   std::cout << 
"\n************************************************************************\n " 
  303             << 
" Lorentz Vector Tests" 
  304             << 
"\n************************************************************************\n";
 
  308   std::cout << 
"Test XYZT - PtEtaPhiE Vectors:  ";
 
  313   ok+= compare(
v1.Px(), 
v2.X(), 
"x");
 
  314   ok+= compare(
v1.Py(), 
v2.Y(), 
"y");
 
  315   ok+= compare(
v1.Pz(), 
v2.Z(), 
"z", 2);
 
  316   ok+= compare(
v1.E(), 
v2.T(), 
"e");
 
  317   ok+= compare(
v1.Phi(), 
v2.Phi(), 
"phi");
 
  318   ok+= compare(
v1.Theta(), 
v2.Theta(), 
"theta");
 
  319   ok+= compare(
v1.Pt(), 
v2.Pt(), 
"pt");
 
  320   ok+= compare(
v1.M(), 
v2.M(), 
"mass", 5);
 
  321   ok+= compare(
v1.Et(), 
v2.Et(), 
"et");
 
  322   ok+= compare(
v1.Mt(), 
v2.Mt(), 
"mt", 3);
 
  324   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  326   std::cout << 
"Test XYZT - PtEtaPhiM Vectors:  ";
 
  331   ok+= compare(
v1.Px(), 
v3.X(), 
"x");
 
  332   ok+= compare(
v1.Py(), 
v3.Y(), 
"y");
 
  333   ok+= compare(
v1.Pz(), 
v3.Z(), 
"z", 2);
 
  334   ok+= compare(
v1.E(), 
v3.T(), 
"e");
 
  335   ok+= compare(
v1.Phi(), 
v3.Phi(), 
"phi");
 
  336   ok+= compare(
v1.Theta(), 
v3.Theta(), 
"theta");
 
  337   ok+= compare(
v1.Pt(), 
v3.Pt(), 
"pt");
 
  338   ok+= compare(
v1.M(), 
v3.M(), 
"mass", 5);
 
  339   ok+= compare(
v1.Et(), 
v3.Et(), 
"et");
 
  340   ok+= compare(
v1.Mt(), 
v3.Mt(), 
"mt", 3);
 
  342   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  344   std::cout << 
"Test PtEtaPhiE - PxPyPzM Vect.: ";
 
  349   ok+= compare(
v4.Px(), 
v3.X(), 
"x");
 
  350   ok+= compare(
v4.Py(), 
v3.Y(), 
"y");
 
  351   ok+= compare(
v4.Pz(), 
v3.Z(), 
"z",2);
 
  352   ok+= compare(
v4.E(), 
v3.T(), 
"e");
 
  353   ok+= compare(
v4.Phi(), 
v3.Phi(), 
"phi");
 
  354   ok+= compare(
v4.Theta(), 
v3.Theta(), 
"theta");
 
  355   ok+= compare(
v4.Pt(), 
v3.Pt(), 
"pt");
 
  356   ok+= compare(
v4.M(), 
v3.M(), 
"mass",5);
 
  357   ok+= compare(
v4.Et(), 
v3.Et(), 
"et");
 
  358   ok+= compare(
v4.Mt(), 
v3.Mt(), 
"mt",3);
 
  360   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  362   std::cout << 
"Test operations :               ";
 
  366   ok+= compare( 
Dot, 
v1.M2(),
"dot" , 10 );
 
  370   ok+= compare( 
v1.M(), 
vscale2.M(), 
"scale");
 
  378   ok+= compare( 
q4.x(), 
q1.X(), 
"op X"  );
 
  379   ok+= compare( 
q4.y(), 
q1.Y(), 
"op Y" );
 
  380   ok+= compare( 
q4.z(), 
q1.Z(), 
"op Z" );
 
  381   ok+= compare( 
q4.t(), 
q1.E(), 
"op E" );
 
  388   ok+= compare( 
w1 == 
v1, 
static_cast<double>(
true), 
"== PxPyPzE");
 
  389   ok+= compare( 
w2 == 
v2, 
static_cast<double>(
true), 
"== PtEtaPhiE");
 
  390   ok+= compare( 
w3 == 
v3, 
static_cast<double>(
true), 
"== PtEtaPhiM");
 
  391   ok+= compare( 
w4 == 
v4, 
static_cast<double>(
true), 
"== PxPyPzM");
 
  398   ok += compare( 
b.R(), beta, 
"beta" );
 
  399   ok += compare( gamma, 1./sqrt( 1 - beta*beta ), 
"gamma");
 
  401   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  404   std::cout << 
"Test Setters :                  " ;
 
  406   q2.SetXYZT(
q1.Px(), 
q1.Py(), 
q1.Pz(), 
q1.E() );
 
  408   ok+= compare( 
q2.X(), 
q1.X(), 
"setXYZT X"  );
 
  409   ok+= compare( 
q2.Y(), 
q1.Y(), 
"setXYZT Y" );
 
  410   ok+= compare( 
q2.Z(), 
q1.Z(), 
"setXYZT Z" ,2);
 
  411   ok+= compare( 
q2.T(), 
q1.E(), 
"setXYZT E" );
 
  413   q2.SetCoordinates( 2.0*
q1.Rho(), 
q1.Eta(), 
q1.Phi(), 2.0*
q1.E() );
 
  415   ok+= compare( 
q2.X(), 
q1s.X(), 
"set X"  );
 
  416   ok+= compare( 
q2.Y(), 
q1s.Y(), 
"set Y" );
 
  417   ok+= compare( 
q2.Z(), 
q1s.Z(), 
"set Z" ,2);
 
  418   ok+= compare( 
q2.T(), 
q1s.T(),  
"set E" );
 
  420   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  426   std::cout << 
"\n************************************************************************\n " 
  427             << 
" Utility Function Tests" 
  428             << 
"\n************************************************************************\n";
 
  430   std::cout << 
"Test Vector utility functions : ";
 
  438   ok += compare( VectorUtil::DeltaPhi(
v1,
v2), 1.0, 
"deltaPhi Vec");
 
  443   ok += compare( VectorUtil::DeltaR(
v1,
v2), sqrt(2.0), 
"DeltaR Vec");
 
  446   ok += compare( VectorUtil::CosTheta(
v1,
vperp), 0.0, 
"costheta Vec");
 
  449   if (ok == 0) std::cout << 
"\t\t OK " << std::endl;
 
  452   std::cout << 
"Test Point utility functions :  ";
 
  460   ok += compare( VectorUtil::DeltaPhi(
p1,
p2), 1.0, 
"deltaPhi Point");
 
  464   ok += compare( VectorUtil::DeltaR(
p1,
p2), sqrt(2.0), 
"DeltaR Point");
 
  467   ok += compare( VectorUtil::CosTheta(
p1,
pperp), 0.0, 
"costheta Point");
 
  470   if (ok == 0) std::cout << 
"\t\t OK " << std::endl;
 
  472   std::cout << 
"LorentzVector utility funct.:   ";
 
  479   ok += compare( VectorUtil::DeltaPhi(
q1,
q2), 1.0, 
"deltaPhi LVec");
 
  480   ok += compare( VectorUtil::DeltaR(
q1,
q2), sqrt(2.0), 
"DeltaR LVec");
 
  483   ok += compare( VectorUtil::InvariantMass(
q1,
q2), 
qsum.M(), 
"InvMass");
 
  485   if (ok == 0) std::cout << 
"\t\t OK " << std::endl;
 
  491   std::cout << 
"\n************************************************************************\n " 
  492             << 
" Rotation and Transformation Tests" 
  493             << 
"\n************************************************************************\n";
 
  495   std::cout << 
"Test Vector Rotations :         ";
 
  515   ok+= compare(
v1.X(), 
v2.X(), 
"x",2);
 
  516   ok+= compare(
v1.Y(), 
v2.Y(), 
"y",2);
 
  517   ok+= compare(
v1.Z(), 
v2.Z(), 
"z",2);
 
  519   ok+= compare(
v1.X(), 
v3.X(), 
"x",2);
 
  520   ok+= compare(
v1.Y(), 
v3.Y(), 
"y",2);
 
  521   ok+= compare(
v1.Z(), 
v3.Z(), 
"z",2);
 
  523   ok+= compare(
v1.X(), 
v4.X(), 
"x",5);
 
  524   ok+= compare(
v1.Y(), 
v4.Y(), 
"y",5);
 
  525   ok+= compare(
v1.Z(), 
v4.Z(), 
"z",5);
 
  527   ok+= compare(
v1.X(), v5.X(), 
"x",2);
 
  528   ok+= compare(
v1.Y(), v5.Y(), 
"y",2);
 
  529   ok+= compare(
v1.Z(), v5.Z(), 
"z",2);
 
  541   v6.SetCoordinates( 
q2.GetMatrixArray() );
 
  543   ok+= compare(
v1.X(), 
v6.X(), 
"x");
 
  544   ok+= compare(
v1.Y(), 
v6.Y(), 
"y");
 
  545   ok+= compare(
v1.Z(), 
v6.Z(), 
"z");
 
  547   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  548   else  std::cout << std::endl;
 
  550   std::cout << 
"Test Axial Rotations :          ";
 
  596   ok+= compare(
vinv1.X(), 
v.X(), 
"x",2);
 
  597   ok+= compare(
vinv1.Y(), 
v.Y(), 
"y");
 
  598   ok+= compare(
vinv1.Z(), 
v.Z(), 
"z");
 
  600   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  601   else  std::cout << std::endl;
 
  604   std::cout << 
"Test Rotations by a PI angle :  ";
 
  607   double b[4] = { 6,8,10,3.14159265358979323 };
 
  611   ok+= compare(
arPi.Axis().X(), 
a1.Axis().X(),
"x");
 
  612   ok+= compare(
arPi.Axis().Y(), 
a1.Axis().Y(),
"y");
 
  613   ok+= compare(
arPi.Axis().Z(), 
a1.Axis().Z(),
"z");
 
  614   ok+= compare(
arPi.Angle(), 
a1.Angle(),
"angle");
 
  618   ok+= compare(
ePi.Phi(), 
e1.Phi(),
"phi");
 
  619   ok+= compare(
ePi.Theta(), 
e1.Theta(),
"theta");
 
  620   ok+= compare(
ePi.Psi(), 
e1.Psi(),
"ps1");
 
  622   if (ok == 0) std::cout << 
"\t\t OK " << std::endl;
 
  623   else  std::cout << std::endl;
 
  625   std::cout << 
"Test Inversions :               ";
 
  637   ok+= compare(
p.X(), 
v.X(), 
"x",10);
 
  638   ok+= compare(
p.Y(), 
v.Y(), 
"y",10);
 
  639   ok+= compare(
p.Z(), 
v.Z(), 
"z",10);
 
  644   ok+= compare(
p.X(), 
v.X(), 
"x",10);
 
  645   ok+= compare(
p.Y(), 
v.Y(), 
"y",10);
 
  646   ok+= compare(
p.Z(), 
v.Z(), 
"z",10);
 
  650   ok+= compare(
p.X(), 
v.X(), 
"x",1
E9);
 
  651   ok+= compare(
p.Y(), 
v.Y(), 
"y",1
E9);
 
  652   ok+= compare(
p.Z(), 
v.Z(), 
"z",1
E9);
 
  656   ok+= compare(
p.X(), 
v.X(), 
"x",10);
 
  657   ok+= compare(
p.Y(), 
v.Y(), 
"y",10);
 
  658   ok+= compare(
p.Z(), 
v.Z(), 
"z",10);
 
  666   ok+= compare(
p.X(), 
v.X(), 
"x",10);
 
  667   ok+= compare(
p.Y(), 
v.Y(), 
"y",10);
 
  668   ok+= compare(
p.Z(), 
v.Z(), 
"z",10);
 
  670   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  671   else  std::cout << std::endl;
 
  674   std::cout << 
"Test rectify :                  ";
 
  683   ok+= compare(
v.R(), 
vrr.R(), 
"R",1.E9);
 
  685   if (ok == 0) std::cout << 
"\t\t OK " << std::endl;
 
  686   else  std::cout << std::endl;
 
  688   std::cout << 
"Test Transform3D :              ";
 
  698   ok+= compare(
pd.X(), 
vd.X(), 
"x");
 
  699   ok+= compare(
pd.Y(), 
vd.Y(), 
"y");
 
  700   ok+= compare(
pd.Z(), 
vd.Z(), 
"z");
 
  704   t.GetComponents(
tdata);
 
  713   ok+= compare(
pd.X(), 
qt(0), 
"x");
 
  714   ok+= compare(
pd.Y(), 
qt(1), 
"y");
 
  715   ok+= compare(
pd.Z(), 
qt(2), 
"z");
 
  723   ok+= compare(
p.X(), 
v.X(), 
"x",10);
 
  724   ok+= compare(
p.Y(), 
v.Y(), 
"y",10);
 
  725   ok+= compare(
p.Z(), 
v.Z(), 
"z",10);
 
  732   ok+= compare(
p.X(), 
v.X(), 
"x",10);
 
  733   ok+= compare(
p.Y(), 
v.Y(), 
"y",10);
 
  734   ok+= compare(
p.Z(), 
v.Z(), 
"z",10);
 
  742   ok+= compare( 
tc == 
tb*
ta, 
static_cast<double>(
true), 
"== Rot*Tra");
 
  743   ok+= compare( 
td == 
ta*
tb, 
static_cast<double>(
true), 
"== Rot*Tra");
 
  746   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  747   else  std::cout << std::endl;
 
  749   std::cout << 
"Test Plane3D :                  ";
 
  761   ok+= compare(
n.Dot(
p2-
p1), 0.0, 
"n.v12",10);
 
  762   ok+= compare(
n.Dot(
p3-
p1), 0.0, 
"n.v13",10);
 
  763   ok+= compare(
n.Dot(
p3-
p2), 0.0, 
"n.v23",10);
 
  776   ok+= compare(
n1.X(), 
n2.X(), 
"a",10);
 
  777   ok+= compare(
n1.Y(), 
n2.Y(), 
"b",10);
 
  778   ok+= compare(
n1.Z(), 
n2.Z(), 
"c",10);
 
  779   ok+= compare(
plane1.HesseDistance(), 
plane2.HesseDistance(), 
"d",10);
 
  782   ok += compare(
plane1.Distance(
pt1), 0.0, 
"distance",10);
 
  784   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  785   else  std::cout << std::endl;
 
  787   std::cout << 
"Test LorentzRotation :          ";
 
  809   ok+= compare(
lv1== 
lv2,
true,
"V0==V2");
 
  810   ok+= compare(
lv1== 
lv2,
true,
"V1==V2");
 
  821   ok+= compare(
lv1.X(), 
qlr(0), 
"x");
 
  822   ok+= compare(
lv1.Y(), 
qlr(1), 
"y");
 
  823   ok+= compare(
lv1.Z(), 
qlr(2), 
"z");
 
  824   ok+= compare(
lv1.E(), 
qlr(3), 
"t");
 
  829   ok+= compare(
lv0.X(), 
lv.X(), 
"x");
 
  830   ok+= compare(
lv0.Y(), 
lv.Y(), 
"y");
 
  831   ok+= compare(
lv0.Z(), 
lv.Z(), 
"z");
 
  832   ok+= compare(
lv0.E(), 
lv.E(), 
"t");
 
  834   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  835   else  std::cout << std::endl;
 
  838   std::cout << 
"Test Boost :                    ";
 
  850   ok+= compare(
lvb.X(), 
lvb2.X(), 
"x");
 
  851   ok+= compare(
lvb.Y(), 
lvb2.Y(), 
"y");
 
  852   ok+= compare(
lvb.Z(), 
lvb2.Z(), 
"z");
 
  853   ok+= compare(
lvb.E(), 
lvb2.E(), 
"t");
 
  854   ok+= compare(
lvb.M(), 
lv.M(), 
"m",50); 
 
  859   ok+= compare(
lv0.X(), 
lv.X(), 
"x",5);
 
  860   ok+= compare(
lv0.Y(), 
lv.Y(), 
"y",5);
 
  861   ok+= compare(
lv0.Z(), 
lv.Z(), 
"z",3);
 
  862   ok+= compare(
lv0.E(), 
lv.E(), 
"t",3);
 
  869   ok+= compare(
lvr.X(), 0.0, 
"x",10);
 
  870   ok+= compare(
lvr.Y(), 0.0, 
"y",10);
 
  871   ok+= compare(
lvr.Z(), 0.0, 
"z",10);
 
  872   ok+= compare(
lvr.M(), 
lv.M(), 
"m",10);
 
  874   if (ok == 0) std::cout << 
"\t OK " << std::endl;
 
  875   else  std::cout << std::endl;
 
  888   std::cout << 
"\n\nNumber of tests " << 
ntest << 
" failed = " << 
nfail << std::endl;
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Double_t Dot(const TGLVector3 &v1, const TGLVector3 &v2)
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
 
Lorentz boost class with the (4D) transformation represented internally by a 4x4 orthosymplectic matr...
 
EulerAngles class describing rotation as three angles (Euler Angles).
 
Class describing a geometrical plane in 3 dimensions.
 
Lorentz transformation class with the (4D) transformation represented by a 4x4 orthosymplectic matrix...
 
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
 
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
 
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
 
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
 
Rotation class with the (3D) rotation represented by angles describing first a rotation of an angle p...
 
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
 
double beta(double x, double y)
Calculates the beta function.
 
constexpr Double_t PiOver2()