Message: Re: Direction of rotation  clockwise or counterclockwise  Not Logged In (login) 
I add few comments to make the things more explicit.
> > > > But then Michel Maire points me to examples/extended/geometry/transforms. > Readme of the example does not explain enough the underlying motivations for the this exercise. Let me try to do it here.
1  There are 2 constructors to place volumes :  G4PVPlacement ( G4Transform3D( rotmA, transl), ...  G4PVPlacement ( rotmB, transl, ... rotmA and rotmB must be mutually inverse. The question is : what is exactly the definition of rotmA (and therefore rotmB). This is what the first two methods try to explicit : rotmA is what I call direct matrix. It is the usual definition of the matrix of a linear operator in a given frame, or the matrix of passage from a frame to another (mother > daughter). Indeed it is the same matrix. rotmB is its inverse.
2 Operators AxialRotation. The function rotateY (or Z) build a direct matrix, e.g. rotmA Its inverse can be calculated as : rotmA_inv (theta) = rotmA(theta) (Lie group ....) Therefore : inv [ rotateZ(phi) * rotateY(theta) ] = rotateY(theta) * rotateZ(phi)
This is what we wanted to illustrate in PlaceWithAxialRotations(). The first object is placed with rotmA, the second object with rotmB
3 Unfortunatly, constructor of rotation matrix with Euler angles choose the opposite convention : the constructor G4RotationMatrix(phi, theta, psi) build a rotmB matrix (inconsistency in clhep or deliberate choice ?) but I guess Euler angles constructor is not frequently used..
4 my personal choices :  use explicit definition of rotation matrix whenever possible.  use operators AxialRotation only if you are sure of what you are doing  avoid Euler angles, unless you are archi sure of what you do ...
Hope this can help. Michel
I attach the geometry of example transforms Attachment: http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/04/04/08.2955156rotm.jpg

to: 