13 Vector posSum(0, 0, 0);
14 for (vector<const Det*>::const_iterator
i = dets.begin();
i != dets.end();
i++) {
15 posSum += (**i).surface().position().basicVector();
21 Plane tmpPlane(meanPos, rotation);
22 auto bo = computeBounds(dets, tmpPlane);
30 return new Plane(meanPos + bo.second, rotation, bo.first);
34 const Plane& plane)
const {
36 vector<GlobalPoint> corners;
37 for (vector<const Det*>::const_iterator idet = dets.begin(); idet != dets.end(); idet++) {
51 corners.insert(corners.end(), dc.begin(), dc.end());
55 for (vector<GlobalPoint>::const_iterator
i = corners.begin();
i != corners.end();
i++) {
74 pair<RectangularPlaneBounds*, GlobalVector>
result(
86 const Plane& plane =
dynamic_cast<const Plane&
>(dets.front()->surface());
92 if (planeYAxis.
z() < 0)
100 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
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
Local3DVector LocalVector
std::pair< RectangularPlaneBounds *, GlobalVector > computeBounds(const std::vector< const Det * > &dets, const Plane &plane) const
ROOT::Math::Plane3D::Vector Vector
LocalPoint toLocal(const GlobalPoint &gp) const
Plane * operator()(const std::vector< const Det * > &dets) const
static std::vector< GlobalPoint > corners(const Plane &)
TkRotation< float > RotationType