9 vector<const Det*>::const_iterator
last)
const {
12 Vector posSum(0, 0, 0);
14 for (vector<const Det*>::const_iterator
i = first;
i !=
last;
i++) {
15 posSum += (**i).surface().position().basicVector();
16 rSum += (**i).surface().position().
perp();
18 float div(1 /
float(last - first));
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);
ROOT::Math::Plane3D::Vector Vector
BoundCylinder * operator()(std::vector< const Det * >::const_iterator first, std::vector< const Det * >::const_iterator last) const
const Bounds & bounds() const
const Plane & surface() const
The nominal surface of the GeomDet.
virtual float thickness() const =0
BoundCylinder * build() const
T perp() const
Magnitude of transverse component.
static std::vector< GlobalPoint > corners(const Plane &)
static float computeRadius(Bounds const &bounds)
const PositionType & position() const