11 auto bo = computeBounds( dets );
30 return new BoundDisk( pos, rot, bo.first);
33 pair<SimpleDiskBounds*, float>
37 float rmin((**(dets.begin())).surface().position().perp());
39 float zmin((**(dets.begin())).surface().position().z());
41 for (vector<const GeomDet*>::const_iterator idet=dets.begin();
42 idet != dets.end(); idet++) {
53 for (vector<GlobalPoint>::const_iterator
i=corners.begin();
54 i!=corners.end();
i++) {
66 float rdet = (**idet).position().perp();
67 float len = (**idet).surface().bounds().length();
68 float width = (**idet).surface().bounds().width();
77 if( fabs(xAxisCos) > fabs(yAxisCos) ) {
78 rmin =
min( rmin, rdet-width/2.
F);
79 rmax =
max( rmax, rdet+width/2.
F);
81 rmin =
min( rmin, rdet-len/2.
F);
82 rmax =
max( rmax, rdet+len/2.
F);
BoundDisk * operator()(const std::vector< const GeomDet * > &dets) const
Local3DVector LocalVector
Global3DPoint GlobalPoint
PreciseFloatType< T, U >::Type dot(const Vector3DBase< U, FrameTag > &v) const
std::pair< SimpleDiskBounds *, float > computeBounds(const std::vector< const GeomDet * > &dets) const
const T & max(const T &a, const T &b)
Vector3DBase unit() const
static std::vector< GlobalPoint > corners(const Plane &)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Global3DVector GlobalVector