16 for (vector<const Det*>::const_iterator
i=dets.begin();
i!=dets.end();
i++) {
17 posSum += (**i).surface().position().basicVector();
23 Plane tmpPlane( meanPos, rotation);
24 auto bo = computeBounds( dets, tmpPlane);
32 return new Plane( meanPos+bo.second, rotation, bo.first);
35 pair<RectangularPlaneBounds*, GlobalVector>
37 const Plane& plane)
const 40 vector<GlobalPoint> corners;
41 for (vector<const Det*>::const_iterator idet=dets.begin();
42 idet != dets.end(); idet++) {
57 corners.insert( corners.end(),dc.begin(), dc.end() );
61 for (vector<GlobalPoint>::const_iterator
i=corners.begin();
62 i!=corners.end();
i++) {
68 if (p.
z() < zmin) zmin = p.
z();
69 if (p.
z() > zmax) zmax = p.
z();
90 dynamic_cast<const Plane&
>(dets.front()->surface());
96 if (planeYAxis.
z() < 0) yAxis = -planeYAxis;
97 else yAxis = planeYAxis;
102 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
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
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
Plane * operator()(const std::vector< const Det * > &dets) const
static std::vector< GlobalPoint > corners(const Plane &)
TkRotation< float > RotationType