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
Normal3D.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file Normal3D.h
1
// -*- C++ -*-
2
// ---------------------------------------------------------------------------
3
//
4
// This file is a part of the CLHEP - a Class Library for High Energy Physics.
5
//
6
// History:
7
// 09.09.96 E.Chernyaev - initial version
8
// 12.06.01 E.Chernyaev - CLHEP-1.7: introduction of BasicVector3D to decouple
9
// the functionality from CLHEP::Hep3Vector
10
// 01.04.03 E.Chernyaev - CLHEP-1.9: template version
11
//
12
13
#ifndef HEP_NORMAL3D_H
14
#define HEP_NORMAL3D_H
15
16
#include <iosfwd>
17
#include "
CLHEP/Vector/ThreeVector.h
"
18
#include "
CLHEP/Geometry/BasicVector3D.h
"
19
20
namespace
HepGeom {
21
22
class
Transform3D
;
23
32
template
<
class
T>
33
class
Normal3D
:
public
BasicVector3D
<T> {};
34
41
template
<>
42
class
Normal3D
<float> :
public
BasicVector3D
<float> {
43
public
:
46
Normal3D
() =
default
;
47
50
Normal3D
(
float
x1
,
float
y1
,
float
z1
) :
BasicVector3D
<float>(x1,y1,z1) {}
51
54
explicit
Normal3D
(
const
float
*
a
)
55
:
BasicVector3D
<float>(a[0],a[1],a[2]) {}
56
59
Normal3D
(
const
Normal3D<float>
&) =
default
;
60
63
Normal3D
(
Normal3D<float>
&&) =
default
;
64
67
Normal3D
(
const
BasicVector3D<float>
&
v
) :
BasicVector3D
<float>(v) {}
68
71
~
Normal3D
() =
default
;
72
75
Normal3D<float>
&
operator=
(
const
Normal3D<float>
&) =
default
;
76
79
Normal3D<float>
&
operator=
(
const
BasicVector3D<float>
&
v
) {
80
this->
BasicVector3D<float>::operator=
(v);
81
return
*
this
;
82
}
83
86
Normal3D<float>
&
operator=
(
Normal3D<float>
&&) =
default
;
87
90
Normal3D<float>
&
transform
(
const
Transform3D
&
m
);
91
};
92
97
Normal3D<float>
98
operator*
(
const
Transform3D
&
m
,
const
Normal3D<float> &
n
);
99
106
template
<>
107
class
Normal3D
<double> :
public
BasicVector3D
<double> {
108
public
:
111
Normal3D
() =
default
;
112
115
Normal3D
(
double
x1
,
double
y1
,
double
z1
) :
BasicVector3D
<double>(x1,y1,z1) {}
116
119
explicit
Normal3D
(
const
float
*
a
)
120
:
BasicVector3D
<double>(a[0],a[1],a[2]) {}
121
124
explicit
Normal3D
(
const
double
*
a
)
125
:
BasicVector3D
<double>(a[0],a[1],a[2]) {}
126
129
Normal3D
(
const
Normal3D<double>
&) =
default
;
130
133
Normal3D
(
Normal3D<double>
&&) =
default
;
134
137
Normal3D
(
const
BasicVector3D<float>
&
v
) :
BasicVector3D
<double>(v) {}
138
141
Normal3D
(
const
BasicVector3D<double>
&
v
) :
BasicVector3D
<double>(v) {}
142
145
~
Normal3D
() =
default
;
146
152
Normal3D
(
const
CLHEP::Hep3Vector
&
v
)
153
:
BasicVector3D
<double>(v.
x
(),v.
y
(),v.
z
()) {}
154
160
operator
CLHEP::Hep3Vector
()
const
{
return
CLHEP::Hep3Vector
(
x
(),
y
(),
z
()); }
161
164
Normal3D<double>
&
operator=
(
const
Normal3D<double>
&) =
default
;
165
168
Normal3D<double>
&
operator=
(
const
BasicVector3D<float>
&
v
) {
169
this->
BasicVector3D<double>::operator=
(v);
170
return
*
this
;
171
}
172
175
Normal3D<double>
&
operator=
(
const
BasicVector3D<double>
&
v
) {
176
this->
BasicVector3D<double>::operator=
(v);
177
return
*
this
;
178
}
179
182
Normal3D<double>
&
operator=
(
Normal3D<double>
&&) =
default
;
183
186
Normal3D<double>
&
transform
(
const
Transform3D
&
m
);
187
};
188
193
Normal3D<double>
194
operator*
(
const
Transform3D
&
m
,
const
Normal3D<double> &
n
);
195
196
}
/* namespace HepGeom */
197
198
#endif
/* HEP_NORMAL3D_H */
geant4
tree
geant4-10.6-release
source
externals
clhep
include
CLHEP
Geometry
Normal3D.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:14
using
1.8.2 with
ECCE GitHub integration