Hi Balint, You can use TGeoMatrix classes from /geom : void rotate() { Double_t master[3], local[3]; // rotation using Euler angles (see ftp://root.cern.ch/root/doc/chapter16.pdf) TGeoRotation m1("m1", 45, 0, 90); // rotation using GEANT3-like angles (e.g theta/phi angles of each axis of the rotated fram w.r.t. the original) TGeoRotation m2("m2", 90,90,90,180,0,0); // translation TGeoTranslation t1(10,20,30); // rotation + translation TGeoCombiTrans c1(t1,m1); // or directly TGeoRotation r; // creating an identity rotation r.RotateX(45); // RotateY/Z also work // Then rotate your points: MASTER = ROT * LOCAL r.LocalToMaster(local, master); // direct rotation r.MasterToLocal(master,local); // inverse rotation } Regards, Andrei Balint Radics wrote: > Hello, > > I would like to rotate set of points (x,y,z) in 3D. Which class should I > use to do that?I didn't find any rotational functions in the TMatrix class. > I found general transformational functions only in the TGeoMatrix classes > but that belongs to the detector geometry classes,don't they? > Or maybe I am wrong. > And do you have little example scripts for matrix transformation? > I mean general rotation or translation functions.Like: > > m = new TMatrix(3,1,elements); > m->Rotate(phi,theta); > > etc.... > > I am trying to MC-simulate ellipsoid showers of hadrons in a detector... > > Thanx in advance, > > radbal >
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET