DataFormats
GeometryCommonDetAlgo
src
PerpendicularBoundPlaneBuilder.cc
Go to the documentation of this file.
1
//#include "Utilities/Configuration/interface/Architecture.h"
2
3
#include "
DataFormats/GeometryCommonDetAlgo/interface/PerpendicularBoundPlaneBuilder.h
"
4
5
BoundPlane
*
PerpendicularBoundPlaneBuilder::operator()
(
const
Surface::GlobalPoint
& origin,
6
const
Surface::GlobalVector
&
perp
)
const
{
7
// z axis coincides with perp
8
GlobalVector
zAxis
=
perp
.unit();
9
10
// x axis has no global Z component
11
GlobalVector
xAxis
;
12
if
(
zAxis
.x() != 0 ||
zAxis
.y() != 0) {
13
// precision is not an issue here, just protect against divizion by zero
14
xAxis
=
GlobalVector
(-
zAxis
.y(),
zAxis
.x(), 0).
unit
();
15
}
else
{
// perp coincides with global Z
16
xAxis
=
GlobalVector
(1, 0, 0);
17
}
18
19
// y axis obtained by cross product
20
GlobalVector
yAxis
(
zAxis
.cross(
xAxis
));
21
22
Surface::RotationType
rot
(
23
xAxis
.x(),
xAxis
.y(),
xAxis
.z(),
yAxis
.x(),
yAxis
.y(),
yAxis
.z(),
zAxis
.x(),
zAxis
.y(),
zAxis
.z());
24
25
return
new
BoundPlane
(origin,
rot
);
26
}
Vector3DBase
Definition:
Vector3DBase.h:8
TkRotation< float >
GloballyPositioned< float >::GlobalPoint
Point3DBase< float, GlobalTag > GlobalPoint
Definition:
GloballyPositioned.h:23
GlobalVector
Global3DVector GlobalVector
Definition:
GlobalVector.h:10
perp
T perp() const
Magnitude of transverse component.
Definition:
Basic3DVectorLD.h:133
GloballyPositioned< float >::GlobalVector
Vector3DBase< float, GlobalTag > GlobalVector
Definition:
GloballyPositioned.h:25
PerpendicularBoundPlaneBuilder::operator()
BoundPlane * operator()(const Surface::GlobalPoint &origin, const Surface::GlobalVector &perp) const
Definition:
PerpendicularBoundPlaneBuilder.cc:5
HLT_FULL_cff.zAxis
zAxis
Definition:
HLT_FULL_cff.py:46178
HLT_FULL_cff.yAxis
yAxis
Definition:
HLT_FULL_cff.py:46179
unit
Basic3DVector unit() const
Definition:
Basic3DVectorLD.h:162
BoundPlane
Plane BoundPlane
Definition:
Plane.h:94
BoundPlane
HLT_FULL_cff.xAxis
xAxis
Definition:
HLT_FULL_cff.py:46177
makeMuonMisalignmentScenario.rot
rot
Definition:
makeMuonMisalignmentScenario.py:322
PerpendicularBoundPlaneBuilder.h
Generated for CMSSW Reference Manual by
1.8.16