ROOTPWA
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
pwa2000
libpp
Vec.h
Go to the documentation of this file.
1
#ifndef __VEC_H_
2
#define __VEC_H_
3
4
5
#include <iostream>
6
#include <fstream>
7
#include <cmath>
8
#include <cassert>
9
10
11
class
threeVec
{
12
13
private
:
14
15
double
_x
,
_y
,
_z
;
16
17
void
_init
(
double
,
double
,
double
);
18
19
public
:
20
21
threeVec
();
22
threeVec
(
double
,
double
,
double
);
23
threeVec
(
const
threeVec
&);
24
~threeVec
();
25
26
threeVec
operator +
(
const
threeVec
&)
const
;
27
threeVec
operator -
(
const
threeVec
&)
const
;
28
threeVec
operator -
()
const
;
29
double
operator *
(
const
threeVec
&)
const
;
30
threeVec
operator /
(
const
threeVec
&)
const
;
31
friend
threeVec
operator *
(
double
,
const
threeVec
&);
32
friend
threeVec
operator *
(
const
threeVec
&,
double
);
33
threeVec
&
operator =
(
const
threeVec
&);
34
threeVec
&
operator +=
(
const
threeVec
&);
35
threeVec
&
operator -=
(
const
threeVec
&);
36
threeVec
&
operator *=
(
double
);
37
38
const
threeVec
&
print
(std::ostream& = std::cout)
const
;
39
threeVec
&
scan
(std::istream& is = std::cin);
40
41
threeVec
write
(std::ostream&)
const
;
42
threeVec
read
(std::istream&);
43
44
double
&
operator []
(
const
int
i
);
45
const
double
&
operator []
(
const
int
i
)
const
;
46
double
&
el
(
const
int
i
) {
return
operator[]
(i); }
47
const
double
&
el
(
const
int
i
)
const
{
return
operator[]
(i); }
48
threeVec
set
(double, double, double);
49
50
int
operator ==
(
const
threeVec
&)
const
;
51
int
operator !=
(
const
threeVec
&)
const
;
52
int
operator <
(
const
threeVec
&)
const
;
53
int
operator >
(
const
threeVec
&)
const
;
54
int
operator >=
(
const
threeVec
&)
const
;
55
int
operator <=
(
const
threeVec
&)
const
;
56
57
double
x
()
const
;
58
double
y
()
const
;
59
double
z
()
const
;
60
61
double
r
()
const
;
62
double
theta
()
const
;
63
double
cosTheta
()
const
;
64
double
phi
()
const
;
65
66
double
len
()
const
;
67
double
lenSq
()
const
;
68
69
threeVec
&
x
(
double
x
);
70
threeVec
&
y
(
double
y
);
71
threeVec
&
z
(
double
z
);
72
73
threeVec
&
cartesian
(
double
x
,
double
y
,
double
z
);
74
threeVec
&
polar
(
double
r
,
double
theta
,
double
phi
);
75
76
double
operator~
()
const
;
77
78
};
79
80
81
std::ostream&
operator <<
(std::ostream& os,
const
threeVec
& V);
82
std::istream&
operator >>
(std::istream& is,
threeVec
& V);
83
84
85
class
fourVec
{
86
87
private
:
88
89
double
_t
;
90
threeVec
_V
;
91
92
void
_init
(
double
,
threeVec
);
93
94
public
:
95
96
fourVec
();
97
fourVec
(
double
,
threeVec
);
98
fourVec
(
const
fourVec
&);
99
~fourVec
();
100
101
fourVec
operator +
(
const
fourVec
&)
const
;
102
fourVec
operator -
(
const
fourVec
&)
const
;
103
fourVec
operator -
()
const
;
104
double
operator *
(
const
fourVec
&)
const
;
105
threeVec
operator /
(
const
fourVec
&)
const
;
106
friend
fourVec
operator*
(
double
,
const
fourVec
&);
107
friend
fourVec
operator*
(
const
fourVec
&,
double
);
108
fourVec
&
operator =
(
const
fourVec
&);
109
fourVec
&
operator +=
(
const
fourVec
&);
110
fourVec
&
operator -=
(
const
fourVec
&);
111
fourVec
&
operator *=
(
double
);
112
113
const
fourVec
&
print
(std::ostream& = std::cout)
const
;
114
fourVec
&
scan
(std::istream& = std::cin);
115
116
fourVec
write
(std::ostream&)
const
;
117
fourVec
read
(std::istream&);
118
119
fourVec
mass
(
double
);
120
121
double
&
operator []
(
const
int
);
122
const
double
&
operator []
(
const
int
)
const
;
123
double
&
el
(
const
int
i
) {
return
this->
operator[]
(i); }
124
const
double
&
el
(
const
int
i
)
const
{
return
this->
operator[]
(i); }
125
fourVec
set
(double, double, double, double);
126
fourVec
set
(double,
threeVec
);
127
128
int
operator ==
(
const
fourVec
&)
const
;
129
int
operator !=
(
const
fourVec
&)
const
;
130
int
operator <
(
const
fourVec
&)
const
;
131
int
operator >
(
const
fourVec
&)
const
;
132
int
operator >=
(
const
fourVec
&)
const
;
133
int
operator <=
(
const
fourVec
&)
const
;
134
135
threeVec
V
()
const
;
136
double
x
()
const
;
137
double
y
()
const
;
138
double
z
()
const
;
139
double
t
()
const
;
140
141
double
r
()
const
;
142
double
theta
()
const
;
143
double
cosTheta
()
const
;
144
double
phi
()
const
;
145
146
fourVec
&
V
(
threeVec
V
);
147
fourVec
&
x
(
double
x
);
148
fourVec
&
y
(
double
y
);
149
fourVec
&
z
(
double
z
);
150
fourVec
&
t
(
double
t
);
151
152
fourVec
&
cartesian
(
double
x
,
double
y
,
double
z
);
153
fourVec
&
polar
(
double
r
,
double
theta
,
double
phi
);
154
155
double
len
()
const
;
156
double
lenSq
()
const
;
157
158
159
double
operator~
()
const
;
160
161
};
162
163
164
std::ostream&
operator <<
(std::ostream& os,
const
fourVec
& v);
165
std::istream&
operator >>
(std::istream& is,
fourVec
& v);
166
167
168
#endif // __VEC_H_
Generated by
1.8.1.2