ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
AxisAngle.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file AxisAngle.h
1
// -*- C++ -*-
2
// ---------------------------------------------------------------------------
3
//
4
// This file is a part of the CLHEP - a Class Library for High Energy Physics.
5
//
6
// ----------------------------------------------------------------------
7
// ----------------------------------------------------------------------
8
//
9
// AxisAngle.h - provide HepAxisAngle class
10
//
11
// History:
12
// 23-Jan-1998 WEB Initial draft
13
// 15-Jun-1998 WEB Added namespace support
14
// 02-May-2000 WEB No global using
15
// 27-Jul-2000 MF CLHEP version
16
//
17
// ----------------------------------------------------------------------
18
19
#ifndef HEP_AXISANGLE_H
20
#define HEP_AXISANGLE_H
21
22
#include <iostream>
23
#include "
CLHEP/Vector/ThreeVector.h
"
24
25
namespace
CLHEP {
26
27
// Declarations of classes and global methods
28
class
HepAxisAngle;
29
std::ostream &
operator<<
( std::ostream & os,
const
HepAxisAngle & aa );
30
std::istream &
operator>>
( std::istream & is, HepAxisAngle & aa );
31
36
class
HepAxisAngle
{
37
38
public
:
39
typedef
double
Scalar
;
40
41
protected
:
42
typedef
HepAxisAngle
AA
;
// just an abbreviation
43
static
Scalar
tolerance
;
// to determine relative nearness
44
45
public
:
46
47
// ---------- Constructors:
48
inline
HepAxisAngle
();
49
inline
HepAxisAngle
(
const
Hep3Vector
axis
,
Scalar
delta
);
50
51
// ---------- Destructor, copy constructor, assignment:
52
// use C++ defaults
53
54
// ---------- Accessors:
55
56
public
:
57
inline
Hep3Vector
getAxis
()
const
;
58
inline
Hep3Vector
axis
()
const
;
59
inline
AA
&
setAxis
(
const
Hep3Vector
axis
);
60
61
inline
double
getDelta
()
const
;
62
inline
double
delta
()
const
;
63
inline
AA
&
setDelta
(
Scalar
delta
);
64
65
inline
AA
&
set
(
const
Hep3Vector
axis
,
Scalar
delta
);
66
67
// ---------- Operations:
68
69
// comparisons:
70
inline
int
compare
(
const
AA
& aa )
const
;
71
72
inline
bool
operator==
(
const
AA
& aa )
const
;
73
inline
bool
operator!=
(
const
AA
& aa )
const
;
74
inline
bool
operator<
(
const
AA
& aa )
const
;
75
inline
bool
operator<=
(
const
AA
& aa )
const
;
76
inline
bool
operator>
(
const
AA
& aa )
const
;
77
inline
bool
operator>=
(
const
AA
& aa )
const
;
78
79
// relative comparison:
80
inline
static
double
getTolerance
();
81
inline
static
double
setTolerance
(
Scalar
tol );
82
83
protected
:
84
double
distance
(
const
HepAxisAngle
& aa )
const
;
85
public
:
86
87
bool
isNear
(
const
AA
& aa,
Scalar
epsilon
=
tolerance
)
const
;
88
double
howNear
(
const
AA
& aa )
const
;
89
90
// ---------- I/O:
91
92
friend
std::ostream &
operator<<
( std::ostream & os,
const
AA
& aa );
93
friend
std::istream &
operator>>
( std::istream & is,
AA
& aa );
94
95
private
:
96
Hep3Vector
axis_
;
// Note: After construction, this is always of mag 1
97
double
delta_
;
98
99
};
// HepAxisAngle
100
101
102
}
// namespace CLHEP
103
104
#include "CLHEP/Vector/AxisAngle.icc"
105
106
#endif // HEP_AXISANGLE_H
geant4
tree
geant4-10.6-release
source
externals
clhep
include
CLHEP
Vector
AxisAngle.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:14
using
1.8.2 with
ECCE GitHub integration