19 LogDebug(
"DetLayers") <<
"ForwaLayer::computeSurface callded";
20 vector<const GeomDet*> comps = basicComponents();
22 vector<const GeomDet*>::const_iterator ifirst = comps.begin();
23 vector<const GeomDet*>::const_iterator ilast = comps.end();
26 float theRmin =
components().front()->position().perp();
27 float theRmax = theRmin;
28 float theZmin =
components().back()->position().z();
29 float theZmax = theZmin;
30 for (vector<const GeomDet*>::const_iterator deti = ifirst; deti != ilast; deti++) {
31 vector<GlobalPoint> corners =
BoundingBox().
corners(dynamic_cast<const Plane&>((**deti).surface()));
32 for (vector<GlobalPoint>::const_iterator ic = corners.begin(); ic != corners.end(); ic++) {
34 LogDebug(
"DetLayers") <<
"corner.perp(): " <<
r;
36 theRmin =
min(theRmin, r);
37 theRmax =
max(theRmax, r);
38 theZmin =
min(theZmin, z);
39 theZmax =
max(theZmax, z);
46 float rdet = (**deti).position().perp();
47 float len = (**deti).surface().bounds().length();
48 float width = (**deti).surface().bounds().width();
57 LogDebug(
"DetLayers") <<
"in ForwardDetLayer::computeSurface(),xAxisCos,yAxisCos: " << xAxisCos <<
" , " 59 LogDebug(
"DetLayers") <<
"det pos.perp,length,width: " << rdet <<
" , " << len <<
" , " <<
width;
61 if (fabs(xAxisCos) > fabs(yAxisCos)) {
62 theRmin =
min(theRmin, rdet - width / 2.
F);
63 theRmax =
max(theRmax, rdet + width / 2.
F);
65 theRmin =
min(theRmin, rdet - len / 2.
F);
66 theRmax =
max(theRmax, rdet + len / 2.
F);
70 LogDebug(
"DetLayers") <<
"creating SimpleDiskBounds with r range" << theRmin <<
" " << theRmax <<
" and z range " 71 << theZmin <<
" " << theZmax;
76 float zPos = (theZmax + theZmin) / 2.;
88 edm::LogError(
"DetLayers") <<
"ERROR: BarrelDetLayer::compatible() is used before the layer surface is initialized";
101 if ((
r2 > rmin() * rmin()) & (
r2 < rmax() * rmax()))
102 return make_pair(
true, myState);
112 deltaR += nSigma *
sqrt(err.
xx() + err.
yy());
116 auto ri2 =
std::max(rmin() - deltaR, 0.
f);
118 auto ro2 = rmax() +
deltaR;
120 return make_pair((
r2 > ri2) & (
r2 < ro2), myState);
~ForwardDetLayer() override
virtual BoundDisk * computeSurface()
Local3DVector LocalVector
LocalVector localDirection() const
LocalPoint localPosition() const
void setSurface(BoundDisk *cp)
Global3DPoint GlobalPoint
PreciseFloatType< T, U >::Type dot(const Vector3DBase< U, FrameTag > &v) const
LocalError positionError() const
virtual void initialize()
bool contains(const Local3DPoint &p) const
Abs< T >::type abs(const T &t)
const LocalTrajectoryError & localError() const
Vector3DBase unit() const
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
static std::vector< GlobalPoint > corners(const Plane &)
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &) const override
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Global3DVector GlobalVector