I was looking at the Euler angle convention used in ROOT:
The so-called “x-convention,” illustrated above, is the most common definition. In this convention, the rotation given by Euler angles (phi,theta,psi), where
the first rotation is by an angle phi about the z-axis using D,
the second rotation is by an angle theta in [0,pi] about the former x-axis (now x’) using C, and
the third rotation is by an angle psi about the former z-axis (now z’) using B.
Based on that, I expected a rotation by (phi = 0.1, 0, 0) and (0, 0, psi = 0.1) to be identical to just a rotation about z.
root  ROOT::Math::XYZVector x(1,0,0); root  ROOT::Math::EulerAngles r1(0.1,0,0); root  ROOT::Math::EulerAngles r2(0,0,0.1); root  ROOT::Math::RotationZ rz(0.1); root  std::cout << rz * x << std::endl; (0.995004,0.0998334,0) root  std::cout << r1 * x << std::endl; (0.995004,-0.0998334,0) root  std::cout << r2 * x << std::endl; (0.995004,-0.0998334,0)
I expected three times the first output. Did I misinterpret the definition?
ROOT Version: 6.28/00; 6.28/04
Platform: Linux; macOS