CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
Main Page
Namespaces
Classes
Files
File List
File Members
RandomObjects
CLHEP
Vector
RandomObjects/CLHEP/Vector/EulerAngles.h
Go to the documentation of this file.
1
#ifndef HEP_EULERANGLES_H
2
#define HEP_EULERANGLES_H
3
4
// ----------------------------------------------------------------------
5
//
6
// EulerAngles.h EulerAngles class --
7
// Support class for PhysicsVectors classes
8
//
9
// History:
10
// 09-Jan-1998 WEB FixedTypes is now found in ZMutility
11
// 12-Jan-1998 WEB PI is now found in ZMutility
12
// 15-Jun-1998 WEB Added namespace support
13
// 02-May-2000 WEB No global using
14
// 26-Jul-2000 MF CLHEP version
15
//
16
// ----------------------------------------------------------------------
17
18
#include <iostream>
19
#include "CLHEP/Vector/defs.h"
20
21
namespace
CLHEP {
22
23
// Declarations of classes and global methods
24
class
HepEulerAngles;
25
std::ostream &
operator<<
(std::ostream & os,
const
HepEulerAngles & aa);
26
std::istream &
operator>>
(std::istream & is, HepEulerAngles & aa);
27
32
class
HepEulerAngles {
33
34
protected
:
35
typedef
HepEulerAngles
EA
;
// just an abbreviation
36
static
double
tolerance
;
// to determine relative nearness
37
38
public
:
39
40
// ---------- Constructors:
41
inline
HepEulerAngles
();
42
inline
HepEulerAngles
(
double
phi
,
double
theta
,
double
psi
);
43
44
// ---------- Destructor, copy constructor, assignment:
45
// use C++ defaults
46
47
// ---------- Accessors:
48
49
public
:
50
inline
double
getPhi
()
const
;
51
inline
double
phi
()
const
;
52
inline
EA
&
setPhi
(
double
phi
);
53
54
inline
double
getTheta
()
const
;
55
inline
double
theta
()
const
;
56
inline
EA
&
setTheta
(
double
theta
);
57
58
inline
double
getPsi
()
const
;
59
inline
double
psi
()
const
;
60
inline
EA
&
setPsi
(
double
psi
);
61
62
inline
EA
&
set
(
double
phi
,
double
theta
,
double
psi
);
63
64
// ---------- Operations:
65
66
// comparisons:
67
inline
int
compare
(
const
EA
& ea )
const
;
68
69
inline
bool
operator==
(
const
EA
& ea )
const
;
70
inline
bool
operator!=
(
const
EA
& ea )
const
;
71
inline
bool
operator<
(
const
EA
& ea )
const
;
72
inline
bool
operator<=
(
const
EA
& ea )
const
;
73
inline
bool
operator>
(
const
EA
& ea )
const
;
74
inline
bool
operator>=
(
const
EA
& ea )
const
;
75
76
// relative comparison:
77
inline
static
double
getTolerance
();
78
inline
static
double
setTolerance
(
double
tol );
79
80
bool
isNear
(
const
EA
& ea,
double
epsilon =
tolerance
)
const
;
81
double
howNear
(
const
EA
& ea )
const
;
82
83
// ---------- I/O:
84
85
friend
std::ostream &
operator<<
( std::ostream & os,
const
EA
& ea );
86
friend
std::istream &
operator>>
( std::istream & is,
EA
& ea );
87
88
// ---------- Helper methods:
89
90
protected
:
91
double
distance
(
const
HepEulerAngles
& ex )
const
;
92
93
// ---------- Data members:
94
protected
:
95
double
phi_
;
96
double
theta_
;
97
double
psi_
;
98
99
};
// HepEulerAngles
100
101
}
// namespace CLHEP
102
103
104
namespace
zmpv {
105
106
typedef
CLHEP::HepEulerAngles
EulerAngles
;
107
108
}
// end of namespace zmpv
109
110
#define EULERANGLES_ICC
111
#include "CLHEP/Vector/EulerAngles.icc"
112
#undef EULERANGLES_ICC
113
114
#ifdef ENABLE_BACKWARDS_COMPATIBILITY
115
// backwards compatibility will be enabled ONLY in CLHEP 1.9
116
using namespace
CLHEP;
117
#endif
118
119
120
#endif // EULERANGLES_H
Generated on Sun Jun 17 2012 08:08:26 for CLHEP by
1.8.1.1