Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
externals
clhep
include
CLHEP
Vector
EulerAngles.h
Go to the documentation of this file.
1
// -*- C++ -*-
2
// CLASSDOC OFF
3
// $Id:$
4
// ---------------------------------------------------------------------------
5
// CLASSDOC ON
6
//
7
// This file is a part of the CLHEP - a Class Library for High Energy Physics.
8
//
9
// ----------------------------------------------------------------------
10
//
11
// EulerAngles.h EulerAngles class --
12
// Support class for PhysicsVectors classes
13
//
14
// History:
15
// 09-Jan-1998 WEB FixedTypes is now found in ZMutility
16
// 12-Jan-1998 WEB PI is now found in ZMutility
17
// 15-Jun-1998 WEB Added namespace support
18
// 02-May-2000 WEB No global using
19
// 26-Jul-2000 MF CLHEP version
20
//
21
// ----------------------------------------------------------------------
22
23
#ifndef HEP_EULERANGLES_H
24
#define HEP_EULERANGLES_H
25
26
#include <iostream>
27
28
namespace
CLHEP {
29
30
// Declarations of classes and global methods
31
class
HepEulerAngles;
32
std::ostream &
operator<<
(std::ostream & os,
const
HepEulerAngles & aa);
33
std::istream &
operator>>
(std::istream & is, HepEulerAngles & aa);
34
39
class
HepEulerAngles
{
40
41
protected
:
42
typedef
HepEulerAngles
EA
;
// just an abbreviation
43
static
double
tolerance
;
// to determine relative nearness
44
45
public
:
46
47
// ---------- Constructors:
48
inline
HepEulerAngles
();
49
inline
HepEulerAngles
(
double
phi
,
double
theta
,
double
psi
);
50
51
// ---------- Destructor, copy constructor, assignment:
52
// use C++ defaults
53
54
// ---------- Accessors:
55
56
public
:
57
inline
double
getPhi
()
const
;
58
inline
double
phi
()
const
;
59
inline
EA
&
setPhi
(
double
phi
);
60
61
inline
double
getTheta
()
const
;
62
inline
double
theta
()
const
;
63
inline
EA
&
setTheta
(
double
theta
);
64
65
inline
double
getPsi
()
const
;
66
inline
double
psi
()
const
;
67
inline
EA
&
setPsi
(
double
psi
);
68
69
inline
EA
&
set
(
double
phi
,
double
theta
,
double
psi
);
70
71
// ---------- Operations:
72
73
// comparisons:
74
inline
int
compare
(
const
EA
& ea )
const
;
75
76
inline
bool
operator==
(
const
EA
& ea )
const
;
77
inline
bool
operator!=
(
const
EA
& ea )
const
;
78
inline
bool
operator<
(
const
EA
& ea )
const
;
79
inline
bool
operator<=
(
const
EA
& ea )
const
;
80
inline
bool
operator>
(
const
EA
& ea )
const
;
81
inline
bool
operator>=
(
const
EA
& ea )
const
;
82
83
// relative comparison:
84
inline
static
double
getTolerance
();
85
inline
static
double
setTolerance
(
double
tol );
86
87
bool
isNear
(
const
EA
& ea,
double
epsilon =
tolerance
)
const
;
88
double
howNear
(
const
EA
& ea )
const
;
89
90
// ---------- I/O:
91
92
friend
std::ostream &
operator<<
( std::ostream & os,
const
EA
& ea );
93
friend
std::istream &
operator>>
( std::istream & is,
EA
& ea );
94
95
// ---------- Helper methods:
96
97
protected
:
98
double
distance
(
const
HepEulerAngles
& ex )
const
;
99
100
// ---------- Data members:
101
protected
:
102
double
phi_
;
103
double
theta_
;
104
double
psi_
;
105
106
};
// HepEulerAngles
107
108
}
// namespace CLHEP
109
110
#include "CLHEP/Vector/EulerAngles.icc"
111
112
#endif // EULERANGLES_H
Generated on Sat May 25 2013 14:33:06 for Geant4 by
1.8.4