MagneticField
VolumeGeometry
src
MagCylinder.cc
Go to the documentation of this file.
1
#include "
MagneticField/VolumeGeometry/interface/MagCylinder.h
"
2
#include "
MagneticField/VolumeGeometry/interface/MagExceptions.h
"
3
#include "
DataFormats/GeometrySurface/interface/Cylinder.h
"
4
5
MagCylinder::MagCylinder
(
const
PositionType
&
pos
,
6
const
RotationType
&
rot
,
7
const
std::vector<VolumeSide>& faces,
8
const
MagneticFieldProvider<float>
* mfp)
9
:
MagVolume
(
pos
,
rot
, mfp), theFaces(faces), theZmin(0.), theZmax(0.), theInnerR(0.), theOuterR(0.) {
10
using
SurfaceOrientation::GlobalFace
;
11
12
unsigned
int
def
= 0;
13
for
(std::vector<VolumeSide>::const_iterator
i
=
faces
.begin();
i
!=
faces
.end(); ++
i
) {
14
if
(
i
->globalFace() ==
SurfaceOrientation::zminus
) {
15
theZmin
=
MagVolume::toLocal
(
i
->surface().position()).
z
();
16
++
def
;
17
}
else
if
(
i
->globalFace() ==
SurfaceOrientation::zplus
) {
18
theZmax
=
MagVolume::toLocal
(
i
->surface().position()).
z
();
19
++
def
;
20
}
else
if
(
i
->globalFace() ==
SurfaceOrientation::outer
||
i
->globalFace() ==
SurfaceOrientation::inner
) {
21
const
Cylinder
* cyl = dynamic_cast<const Cylinder*>(&(
i
->surface()));
22
if
(cyl ==
nullptr
) {
23
throw
MagGeometryError
(
"MagCylinder inner/outer surface is not a cylinder"
);
24
}
25
if
(
i
->globalFace() ==
SurfaceOrientation::outer
)
26
theOuterR
= cyl->
radius
();
27
else
28
theInnerR
= cyl->
radius
();
29
++
def
;
30
}
31
}
32
if
(
def
!=
faces
.size()) {
33
throw
MagGeometryError
(
"MagCylinder constructed with wrong number/type of faces"
);
34
}
35
}
36
37
bool
MagCylinder::inside
(
const
GlobalPoint
&
gp
,
double
tolerance
)
const
{
return
inside
(
toLocal
(
gp
),
tolerance
); }
38
39
bool
MagCylinder::inside
(
const
LocalPoint
& lp,
double
tolerance
)
const
{
40
Scalar
r
(lp.perp());
41
return
lp.z() >
theZmin
-
tolerance
&& lp.z() <
theZmax
+
tolerance
&&
r
>
theInnerR
-
tolerance
&&
42
r
<
theOuterR
+
tolerance
;
43
}
mps_fire.i
i
Definition:
mps_fire.py:428
Cylinder.h
Cylinder::radius
Scalar radius() const
Radius of the cylinder.
Definition:
Cylinder.h:64
align::RotationType
TkRotation< Scalar > RotationType
Definition:
Definitions.h:27
MagCylinder::MagCylinder
MagCylinder(const PositionType &pos, const RotationType &rot, const std::vector< VolumeSide > &faces, const MagneticFieldProvider< float > *mfp)
Definition:
MagCylinder.cc:5
pos
Definition:
PixelAliasList.h:18
MagCylinder::inside
bool inside(const GlobalPoint &gp, double tolerance=0.) const override
Definition:
MagCylinder.cc:37
align::PositionType
Point3DBase< Scalar, GlobalTag > PositionType
Definition:
Definitions.h:28
MagneticFieldProvider< float >
MagExceptions.h
MagVolume::GlobalPoint
GloballyPositioned< float >::GlobalPoint GlobalPoint
Definition:
MagVolume.h:18
MagCylinder::theZmax
Scalar theZmax
Definition:
MagCylinder.h:36
SurfaceOrientation::inner
Definition:
Surface.h:19
DDAxes::z
MagCylinder.h
SurfaceOrientation::zminus
Definition:
Surface.h:19
runTauDisplay.gp
gp
Definition:
runTauDisplay.py:431
MagCylinder::faces
const std::vector< VolumeSide > & faces() const override
Access to volume faces.
Definition:
MagCylinder.h:27
MagCylinder::theInnerR
Scalar theInnerR
Definition:
MagCylinder.h:37
MagVolume
Definition:
MagVolume.h:13
tolerance
const double tolerance
Definition:
HGCalGeomParameters.cc:26
MagCylinder::theZmin
Scalar theZmin
Definition:
MagCylinder.h:35
alignCSCRings.r
r
Definition:
alignCSCRings.py:93
MagGeometryError
Definition:
MagExceptions.h:18
GloballyPositioned< float >::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Definition:
GloballyPositioned.h:98
MagVolume::LocalPoint
GloballyPositioned< float >::LocalPoint LocalPoint
Definition:
MagVolume.h:16
SurfaceOrientation::zplus
Definition:
Surface.h:19
makeMuonMisalignmentScenario.rot
rot
Definition:
makeMuonMisalignmentScenario.py:322
SurfaceOrientation::GlobalFace
GlobalFace
Definition:
Surface.h:19
Cylinder
Definition:
Cylinder.h:19
spu::def
int def(FILE *, FILE *, int)
Definition:
SherpackUtilities.cc:14
SurfaceOrientation::outer
Definition:
Surface.h:19
GloballyPositioned< float >::Scalar
float Scalar
Definition:
GloballyPositioned.h:20
MagCylinder::theOuterR
Scalar theOuterR
Definition:
MagCylinder.h:38
Generated for CMSSW Reference Manual by
1.8.16