Re: [ROOT] TMatrix

From: Andrei Gheata (Andrei.Gheata@cern.ch)
Date: Fri Sep 24 2004 - 10:07:19 MEST


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