12 float zStart = wedges.front()->position().z();
13 float wphimin, wphimax;
14 for (vector<const TECWedge*>::const_iterator
i = wedges.begin();
i != wedges.end();
i++) {
15 float zdiff = (**i).surface().position().z() - zStart;
17 edm::LogError(
"TkDetLayers") <<
" ForwardDiskSectorBuilderFromWedges: Trying to build " 18 <<
"Petal from Wedges at different z ! Delta Z = " << zdiff;
19 float wphi = (**i).surface().position().phi();
27 float phidiff = wphimax - wphimin;
31 edm::LogError(
"TkDetLayers") <<
" ForwardDiskSectorBuilderFromWedges: Trying to build " 32 <<
"Petal from Wedges at different phi ! Delta phi = " <<
phidiff;
35 auto bo = computeBounds(wedges);
43 const vector<const TECWedge*>& wedges)
const {
45 float rmin((**(wedges.begin())).specificSurface().innerRadius());
47 float zmin((**(wedges.begin())).surface().position().z());
49 float phimin((**(wedges.begin())).surface().position().phi());
52 for (vector<const TECWedge*>::const_iterator iw = wedges.begin(); iw != wedges.end(); iw++) {
55 float ri = (**iw).specificSurface().innerRadius();
56 float ro = (**iw).specificSurface().outerRadius();
57 float zmi = (**iw).surface().position().z() - (**iw).specificSurface().bounds().thickness() / 2.;
58 float zma = (**iw).surface().position().z() + (**iw).specificSurface().bounds().thickness() / 2.;
59 float phi1 = (**iw).surface().position().phi() - (**iw).specificSurface().phiHalfExtension();
60 float phi2 = (**iw).surface().position().phi() + (**iw).specificSurface().phiHalfExtension();
72 edm::LogError(
"TkDetLayers") <<
" ForwardDiskSectorBuilderFromWedges : " 73 <<
"Something went wrong with Phi Sorting !";
77 float rmed = (rmin + rmax) / 2.;
80 edm::LogError(
"TkDetLayers") <<
" Debug: something strange going on, please check ";
Geom::Phi< T > phi() const
Sin< T >::type sin(const T &t)
double phidiff(double phi)
Normalized difference in azimuthal angles to a range between .
Log< level::Error, false > LogError
BoundDiskSector * operator()(const std::vector< const TECWedge *> &wedges) const
Cos< T >::type cos(const T &t)
std::pair< DiskSectorBounds *, GlobalVector > computeBounds(const std::vector< const TECWedge *> &wedges) const
Abs< T >::type abs(const T &t)
Basic3DVector unit() const
Surface::RotationType computeRotation(const std::vector< const TECWedge *> &wedges, Surface::PositionType pos) const
bool phiLess(float phi1, float phi2)
const PositionType & position() const
TkRotation< float > RotationType
Global3DVector GlobalVector