15 Vector posSum( 0, 0, 0 );
16 for( std::vector<const GeomDetUnit*>::const_iterator
i = dets.begin(),
end = dets.end();
i !=
end; ++
i )
18 posSum += (**i).surface().position().basicVector();
30 std::pair<RectangularPlaneBounds*, GlobalVector> bo =
computeRectBounds( dets, tmpPlane);
31 return new Plane( meanPos+bo.second, rotation, newmp, bo.first);
35 std::pair<RectangularPlaneBounds*, GlobalVector>
39 std::vector<GlobalPoint> corners;
40 for( std::vector<const GeomDetUnit*>::const_iterator idet = dets.begin(), dend = dets.end();
41 idet != dend; ++idet )
43 const Plane& bplane =
dynamic_cast<const Plane&
>(( *idet )->surface());
45 corners.insert( corners.end(), dc.begin(), dc.end());
49 for( std::vector<GlobalPoint>::const_iterator
i = corners.begin(), cend = corners.end();
57 if( p.
z() < zmin ) zmin = p.
z();
58 if( p.
z() > zmax ) zmax = p.
z();
82 if( planeYAxis.
z() < 0 )
90 if( n.
x() * meanPos.
x() + n.
y() * meanPos.
y() > 0 )
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Surface::RotationType computeRotation(const std::vector< const GeomDetUnit * > &dets, const Surface::PositionType &meanPos) const
Local3DVector LocalVector
ROOT::Math::Plane3D::Vector Vector
ResultType plane(const std::vector< const GeomDetUnit * > &dets) const
LocalPoint toLocal(const GlobalPoint &gp) const
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
std::pair< RectangularPlaneBounds *, GlobalVector > computeRectBounds(const std::vector< const GeomDetUnit * > &dets, const Plane &plane) const
static std::vector< GlobalPoint > corners(const Plane &)
TkRotation< float > RotationType