16 for (vector<const Det*>::const_iterator
i=dets.begin();
i!=dets.end();
i++) {
17 posSum += (**i).surface().position().basicVector();
24 pair<RectangularPlaneBounds,GlobalVector> bo =
25 computeBounds( dets, tmpPlane);
33 return new BoundPlane( meanPos+bo.second, rotation, bo.first);
36 pair<RectangularPlaneBounds, GlobalVector>
41 vector<GlobalPoint> corners;
42 for (vector<const Det*>::const_iterator idet=dets.begin();
43 idet != dets.end(); idet++) {
58 corners.insert( corners.end(),dc.begin(), dc.end() );
61 float xmin(0), xmax(0), ymin(0), ymax(0), zmin(0), zmax(0);
62 for (vector<GlobalPoint>::const_iterator
i=corners.begin();
63 i!=corners.end();
i++) {
65 if (p.
x() < xmin) xmin = p.
x();
66 if (p.
x() > xmax) xmax = p.
x();
67 if (p.
y() < ymin) ymin = p.
y();
68 if (p.
y() > ymax) ymax = p.
y();
69 if (p.
z() < zmin) zmin = p.
z();
70 if (p.
z() > zmax) zmax = p.
z();
73 LocalVector localOffset( (xmin+xmax)/2., (ymin+ymax)/2., (zmin+zmax)/2.);
91 dynamic_cast<const BoundPlane&
>(dets.front()->surface());
97 if (planeYAxis.
z() < 0) yAxis = -planeYAxis;
98 else yAxis = planeYAxis;
103 if (n.
x() * meanPos.
x() + n.
y() * meanPos.
y() > 0) {
Surface::RotationType computeRotation(const std::vector< const Det * > &dets, const Surface::PositionType &meanPos) const
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Local3DVector LocalVector
ROOT::Math::Plane3D::Vector Vector
static std::vector< GlobalPoint > corners(const BoundPlane &)
LocalPoint toLocal(const GlobalPoint &gp) const
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
unsigned int offset(bool)
std::pair< RectangularPlaneBounds, GlobalVector > computeBounds(const std::vector< const Det * > &dets, const BoundPlane &plane) const
BoundPlane * operator()(const std::vector< const Det * > &dets) const
TkRotation< float > RotationType