src
Geometry
TrackerGeometryBuilder
src
StripTopologyBuilder.cc
Go to the documentation of this file.
1
#include "
Geometry/TrackerGeometryBuilder/interface/StripTopologyBuilder.h
"
2
#include "
Geometry/CommonTopologies/interface/RectangularStripTopology.h
"
3
#include "
Geometry/CommonTopologies/interface/TkRadialStripTopology.h
"
4
#include "
DataFormats/GeometrySurface/interface/Bounds.h
"
5
#include "
DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h
"
6
7
StripTopologyBuilder::StripTopologyBuilder
(
void
) : theAPVNumb(0.0) {}
8
9
StripTopology
*
StripTopologyBuilder::build
(
const
Bounds
*
bs
,
double
apvnumb,
const
std::string
&
part
) {
10
theAPVNumb
= apvnumb;
11
12
StripTopology
*
result
=
nullptr
;
13
if
(
part
==
"barrel"
) {
14
result
=
constructBarrel
(
bs
->length(),
bs
->width());
15
}
else
{
16
const
TrapezoidalPlaneBounds
* topo =
dynamic_cast<
const
TrapezoidalPlaneBounds
*
>
(
bs
);
17
if
(topo) {
18
int
yAx = topo->
yAxisOrientation
();
19
result
=
constructForward
(
bs
->length(),
bs
->width(),
bs
->widthAtHalfLength(), yAx);
20
}
21
}
22
return
result
;
23
}
24
25
StripTopology
*
StripTopologyBuilder::constructBarrel
(
float
length,
float
width
) {
26
int
nstrip =
int
(128 *
theAPVNumb
);
27
float
pitch =
width
/ nstrip;
28
29
return
new
RectangularStripTopology
(nstrip, pitch, length);
30
}
31
32
StripTopology
*
StripTopologyBuilder::constructForward
(
float
length,
float
width
,
float
widthAtHalf,
int
yAxOr) {
33
int
nstrip =
int
(128 *
theAPVNumb
);
34
float
rCross = widthAtHalf * length / (2 * (
width
- widthAtHalf));
35
float
aw =
atan2
(widthAtHalf / 2., static_cast<double>(rCross)) / (nstrip / 2);
36
return
new
TkRadialStripTopology
(nstrip, aw, length, rCross, yAxOr);
37
}
TkRadialStripTopology
Definition:
TkRadialStripTopology.h:28
TrapezoidalPlaneBounds
Definition:
TrapezoidalPlaneBounds.h:15
mps_fire.result
result
Definition:
mps_fire.py:311
StripTopologyBuilder::constructForward
StripTopology * constructForward(float, float, float, int)
Definition:
StripTopologyBuilder.cc:32
StripTopology
Definition:
StripTopology.h:11
RectangularStripTopology.h
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
Bounds.h
TrapezoidalPlaneBounds::yAxisOrientation
virtual int yAxisOrientation() const
Definition:
TrapezoidalPlaneBounds.cc:16
createfilelist.int
int
Definition:
createfilelist.py:10
StripTopologyBuilder.h
StripTopologyBuilder::theAPVNumb
double theAPVNumb
Definition:
StripTopologyBuilder.h:20
TkRadialStripTopology.h
ApeEstimator_cff.width
width
Definition:
ApeEstimator_cff.py:24
part
part
Definition:
HCALResponse.h:20
StripTopologyBuilder::constructBarrel
StripTopology * constructBarrel(float, float)
Definition:
StripTopologyBuilder.cc:25
RectangularStripTopology
Definition:
RectangularStripTopology.h:11
StripTopologyBuilder::StripTopologyBuilder
StripTopologyBuilder(void)
Definition:
StripTopologyBuilder.cc:7
cms::cuda::bs
bs
Definition:
HistoContainer.h:76
TrapezoidalPlaneBounds.h
Bounds
Definition:
Bounds.h:18
StripTopologyBuilder::build
StripTopology * build(const Bounds *, double, const std::string &)
Definition:
StripTopologyBuilder.cc:9
Matriplex::atan2
MPlex< T, D1, D2, N > atan2(const MPlex< T, D1, D2, N > &y, const MPlex< T, D1, D2, N > &x)
Definition:
Matriplex.h:648
Generated for CMSSW Reference Manual by
1.8.14