9 vector<const Det*>::const_iterator
last)
const {
14 for (vector<const Det*>::const_iterator
i =
first;
i !=
last;
i++) {
15 posSum += (**i).surface().position().basicVector();
16 rSum += (**i).surface().position().
perp();
20 float meanR(div * rSum);
25 float zmin = meanPos.
z();
26 float zmax = meanPos.
z();
27 for (vector<const Det*>::const_iterator
i =
first;
i !=
last;
i++) {
29 for (vector<GlobalPoint>::const_iterator ic = corners.begin(); ic != corners.end(); ic++) {
40 float rdet = (**i).surface().position().perp();
41 float halfThick = (**i).surface().bounds().thickness() / 2.F;
42 rmin =
min(rmin, rdet - halfThick);
43 rmax =
max(rmax, rdet + halfThick);
61 for (
int nc = 0; nc < 8; ++nc) {
62 float r = bb[nc].perp();
74 rmin =
std::min(rmin, rdet - halfThick);
75 rmax =
std::max(rmax, rdet + halfThick);
BoundCylinder * operator()(std::vector< const Det *>::const_iterator first, std::vector< const Det *>::const_iterator last) const
virtual float thickness() const =0
BoundCylinder * build() const
T perp() const
Magnitude of transverse component.
const Plane & surface() const
The nominal surface of the GeomDet.
const PositionType & position() const
static std::vector< GlobalPoint > corners(const Plane &)
static float computeRadius(Bounds const &bounds)
const Bounds & bounds() const