11 pair<SimpleDiskBounds,float> bo =
12 computeBounds( dets );
31 return new BoundDisk( pos, rot, bo.first);
34 pair<SimpleDiskBounds, float>
38 float rmin((**(dets.begin())).surface().position().perp());
40 float zmin((**(dets.begin())).surface().position().z());
42 for (vector<const GeomDet*>::const_iterator idet=dets.begin();
43 idet != dets.end(); idet++) {
54 for (vector<GlobalPoint>::const_iterator
i=corners.begin();
55 i!=corners.end();
i++) {
67 float rdet = (**idet).position().perp();
68 float len = (**idet).surface().bounds().length();
69 float width = (**idet).surface().bounds().width();
78 if( fabs(xAxisCos) > fabs(yAxisCos) ) {
79 rmin =
min( rmin, rdet-width/2.F);
80 rmax =
max( rmax, rdet+width/2.F);
82 rmin =
min( rmin, rdet-len/2.F);
83 rmax =
max( rmax, rdet+len/2.F);
88 float zPos = (zmax+zmin)/2.;
BoundDisk * operator()(const std::vector< const GeomDet * > &dets) const
Local3DVector LocalVector
Global3DPoint GlobalPoint
PreciseFloatType< T, U >::Type dot(const Vector3DBase< U, FrameTag > &v) const
static std::vector< GlobalPoint > corners(const BoundPlane &)
const T & max(const T &a, const T &b)
std::pair< SimpleDiskBounds, float > computeBounds(const std::vector< const GeomDet * > &dets) const
Vector3DBase unit() const
Global3DVector GlobalVector