18 for (vector<const GeomDet*>::const_iterator
i=dets.begin();
i!=dets.end();
i++) {
19 posSum += (**i).surface().position().basicVector();
25 Plane tmpPlane( meanPos, rotation);
29 computeBounds( dets,tmpPlane );
32 return new BoundDiskSector( pos, rotation, bo.first);
35 pair<DiskSectorBounds *, GlobalVector>
37 const Plane& plane)
const
49 for(vector<const GeomDet*>::const_iterator it=dets.begin(); it!=dets.end(); it++){
52 for(vector<GlobalPoint>::const_iterator
i=corners.begin();
53 i!=corners.end();
i++) {
69 float rdet = (*it)->position().perp();
70 float height = (*it)->surface().bounds().width();
71 rmin =
min( rmin, rdet-height/2.
F);
72 rmax =
max( rmax, rdet+height/2.
F);
78 edm::LogError(
"TkDetLayers") <<
" BladeShapeBuilderFromDet : "
79 <<
"Something went wrong with Phi Sorting !" ;
83 float rmed = (rmin+rmax)/2.;
86 edm::LogError(
"TkDetLayers") <<
" something strange going on, please check " ;
96 LogDebug(
"TkDetLayers") <<
"localPos in computeBounds: " << localPos <<
"\n"
97 <<
"rmin: " << rmin <<
"\n"
98 <<
"rmax: " << rmax <<
"\n"
99 <<
"zmin: " <<
zmin <<
"\n"
100 <<
"zmax: " <<
zmax <<
"\n"
101 <<
"phiWin: " << phiWin ;
103 return make_pair(
new DiskSectorBounds(rmin,rmax,
zmin,
zmax,phiWin),
113 const Plane& plane = dets.front()->surface();
122 if(planePosition.
x()*planeXAxis.
x()+planePosition.
y()*planeXAxis.
y() > 0.){
129 if(planeZAxis.
z()*planePosition.
z() > 0.){
135 xAxis = yAxis.
cross( zAxis);
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Local3DVector LocalVector
std::pair< DiskSectorBounds *, GlobalVector > computeBounds(const std::vector< const GeomDet * > &dets, const Plane &plane) const
ROOT::Math::Plane3D::Vector Vector
Sin< T >::type sin(const T &t)
Geom::Phi< T > phi() const
BoundDiskSector * operator()(const std::vector< const GeomDet * > &dets) const
const T & max(const T &a, const T &b)
Surface::RotationType computeRotation(const std::vector< const GeomDet * > &dets, const Surface::PositionType &pos) const
LocalPoint toLocal(const GlobalPoint &gp) const
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
Cos< T >::type cos(const T &t)
static std::vector< GlobalPoint > corners(const Plane &)
TkRotation< float > RotationType
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
const PositionType & position() const