ROOTPWA
lorentz.h
Go to the documentation of this file.
1 #ifndef __LORENTZ_H_
2 #define __LORENTZ_H_
3 
4 
5 #include <cmath>
6 #include <matrix.h>
7 
8 
9 class threeVec;
10 class fourVec;
11 
12 
13 class rotation : public matrix<double> {
14 
15 public:
16 
18  : matrix<double>(3, 3)
19  { }
20  rotation(double, double, double);
21  ~rotation() { }
22 
23  rotation set(double, double, double);
24  rotation set(const threeVec&);
25 
26  friend threeVec operator *= (threeVec&, const rotation&);
27  // friend particle operator *= (particle&, const rotation&);
28 
29 };
30 
31 
32 class lorentzTransform : public matrix<double> {
33 
34  friend class fourVec;
35 
36 private:
37 
38  double _beta;
39  double _gamma;
40 
41 public:
42 
44  : matrix<double>(4, 4),
45  _beta(0.),
46  _gamma(1.)
47  { }
49  : matrix<double>(m),
50  _beta(0.),
51  _gamma(1.)
52  { }
53  lorentzTransform(double, double, double);
55  lorentzTransform(const fourVec&);
56  lorentzTransform(const rotation&);
58 
59  lorentzTransform set(double, double, double); // rotation
60  lorentzTransform set(const threeVec& beta); // boost
61  lorentzTransform set(const fourVec&); //boost to rest frame
62  lorentzTransform set(const rotation&);
63 
64  double beta() { return _beta;}
65 
66  // lorentzTransform operator *= (const lorentzTransform&);
68 
69 };
70 
71 
72 #endif