]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RALICE/AliBoost.h
Corrected Rotation Matrix and CVS log
[u/mrichter/AliRoot.git] / RALICE / AliBoost.h
1 #ifndef ALIBOOST_H
2 #define ALIBOOST_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ///////////////////////////////////////////////////////////////////////////
9 // Class AliBoost
10 // Perform various Lorentz transformations.
11 //
12 // Example :
13 // =========
14 //
15 // Float_t a[3]={0.1,0.2,0.3};
16 // Ali3Vector beta;
17 // beta.SetVector(a,"car");
18 //
19 // AliBoost b1;
20 // b1.SetBeta(beta);
21 // cout << " Boost b1 :" << endl;
22 // b1.Info();
23 //
24 // Float_t b[4]={14,1,2,3};
25 // Ali4Vector p;
26 // p.SetVector(b,"car");
27 // Ali4Vector pprim=b1.Boost(p);
28 // cout << " Boost b1 result p,pprim :" << endl;
29 // p.Info();
30 // pprim.Info();
31 //
32 // p=b1.Inverse(pprim);
33 // cout << " Inverse b1 result pprim,p :" << endl;
34 // pprim.Info();
35 // p.Info();
36 //
37 // Float_t c[4]={5,0,0,4};
38 // Ali4Vector q;
39 // q.SetVector(c,"car");
40 //
41 // AliBoost b2;
42 // b2.Set4Momentum(q);
43 // cout << " Lorbo b2 : " << endl;
44 // b2.Info("sph");
45 //
46 //--- NvE 14-may-1996 UU-SAP Utrecht
47 //--- Modified : NvE 01-apr-1999 UU-SAP Utrecht using Ali3Vector/Ali4Vector
48 ///////////////////////////////////////////////////////////////////////////
49  
50 #include <iostream.h>
51 #include <math.h>
52  
53 #include "TObject.h"
54
55 #include "Ali4Vector.h" 
56
57 class AliBoost : public TObject
58 {
59  public:
60   AliBoost();                             // Default constructor
61   ~AliBoost();                            // Default destructor
62   void SetBeta(Ali3Vector b);             // Set boost parameters by beta 3-vector
63   void SetGamma(Double_t g,Ali3Vector v); // Set boost parameters by gamma and direction 3-vector
64   void Set4Momentum(Ali4Vector& p);       // Set boost parameters by 4-momentum
65   Ali3Vector GetBetaVector();             // Provide the beta 3-vector
66   Double_t GetBeta();                     // Provide norm of beta 3-vector
67   Double_t GetGamma();                    // Provide gamma value
68   void Info(TString f="car");             // Print boost parameter info in coord. frame f
69   Ali4Vector Boost(Ali4Vector& v);        // Perform Lorentz boost on 4-vector v
70   Ali4Vector Inverse(Ali4Vector& v);      // Perform inverse Lorentz boost on 4-vector v
71  
72  protected:
73   Ali3Vector fBeta; // The beta 3-vector
74   Double_t fBeta2;  // beta**2
75   Double_t fGamma;  // The gamma factor
76  
77  ClassDef(AliBoost,1) // Class definition to enable ROOT I/O
78 };
79 #endif