RecoTracker
TkDetLayers
src
GlobalDetRodRangeZPhi.cc
Go to the documentation of this file.
1
#include "
GlobalDetRodRangeZPhi.h
"
2
#include "
DataFormats/GeometrySurface/interface/Plane.h
"
3
#include "
DataFormats/GeometrySurface/interface/Bounds.h
"
4
#include "
DataFormats/GeometryVector/interface/VectorUtil.h
"
5
6
#include <array>
7
8
GlobalDetRodRangeZPhi::GlobalDetRodRangeZPhi
(
const
Plane
& plane) {
9
float
dx
= plane.
bounds
().
width
() / 2.;
10
float
dy
= plane.
bounds
().
length
() / 2.;
11
float
dz
= plane.
bounds
().
thickness
() / 2.;
12
13
// rods may be inverted (actually are in every other layer), so have to find out the
14
// orientation of the local frame
15
float
deltaZ =
16
(plane.
toGlobal
(
LocalPoint
(0, 0, -
dz
)).
perp
() < plane.
toGlobal
(
LocalPoint
(0, 0,
dz
)).
perp
()) ? -
dz
:
dz
;
17
18
const
std::array<Surface::GlobalPoint, 4> corners{{plane.
toGlobal
(
LocalPoint
(-
dx
, -
dy
, deltaZ)),
19
plane.
toGlobal
(
LocalPoint
(-
dx
,
dy
, deltaZ)),
20
plane.
toGlobal
(
LocalPoint
(
dx
, -
dy
, deltaZ)),
21
plane.
toGlobal
(
LocalPoint
(
dx
,
dy
, deltaZ))}};
22
23
float
phimin
= corners[0].phi();
24
float
phimax
=
phimin
;
25
26
float
zmin
= corners[0].z();
27
float
zmax
=
zmin
;
28
29
for
(
const
auto
&
corner
: corners) {
30
float
phi
=
corner
.phi();
31
if
(
Geom::phiLess
(
phi
,
phimin
))
32
phimin
=
phi
;
33
if
(
Geom::phiLess
(
phimax
,
phi
))
34
phimax
=
phi
;
35
36
float
z
=
corner
.z();
37
zmin
=
std::min
(
zmin
,
z
);
38
zmax
=
std::max
(
zmax
,
z
);
39
}
40
41
theZRange
.first =
zmin
;
42
theZRange
.second =
zmax
;
43
thePhiRange
.first =
phimin
;
44
thePhiRange
.second =
phimax
;
45
}
GlobalDetRodRangeZPhi::GlobalDetRodRangeZPhi
GlobalDetRodRangeZPhi(const Plane &RodPlane)
Definition:
GlobalDetRodRangeZPhi.cc:8
Bounds::width
virtual float width() const =0
min
T min(T a, T b)
Definition:
MathUtil.h:58
phimin
float phimin
Definition:
ReggeGribovPartonMCHadronizer.h:107
VectorUtil.h
distTCMET_cfi.corner
corner
Definition:
distTCMET_cfi.py:38
align::LocalPoint
Point3DBase< Scalar, LocalTag > LocalPoint
Definition:
Definitions.h:30
SiStripMonitorCluster_cfi.zmin
zmin
Definition:
SiStripMonitorCluster_cfi.py:200
GlobalDetRodRangeZPhi.h
Bounds::length
virtual float length() const =0
Plane.h
GlobalDetRodRangeZPhi::thePhiRange
Range thePhiRange
Definition:
GlobalDetRodRangeZPhi.h:23
SiStripMonitorCluster_cfi.zmax
zmax
Definition:
SiStripMonitorCluster_cfi.py:201
Surface::bounds
const Bounds & bounds() const
Definition:
Surface.h:87
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition:
Surface.h:79
DDAxes::z
Bounds.h
Bounds::thickness
virtual float thickness() const =0
Geom::phiLess
bool phiLess(float phi1, float phi2)
Definition:
VectorUtil.h:18
SiStripPI::max
Definition:
SiStripPayloadInspectorHelper.h:169
GlobalDetRodRangeZPhi::theZRange
Range theZRange
Definition:
GlobalDetRodRangeZPhi.h:22
PVValHelper::dy
Definition:
PVValidationHelpers.h:49
phimax
float phimax
Definition:
ReggeGribovPartonMCHadronizer.h:106
DDAxes::phi
PVValHelper::dz
Definition:
PVValidationHelpers.h:50
Plane
Definition:
Plane.h:16
PV3DBase::perp
T perp() const
Definition:
PV3DBase.h:69
PVValHelper::dx
Definition:
PVValidationHelpers.h:48
Generated for CMSSW Reference Manual by
1.8.16