86 int copyNo = startCopyNo;
88 double xphi = xQuadrant * tiltAngle;
89 double yphi = yQuadrant * tiltAngle;
90 double theta = 90._deg;
93 double phiZ = 3 *
theta;
97 double offsetX = xQuadrant * 0.5 * offsetXY;
98 double offsetY = yQuadrant * 0.5 * offsetXY;
101 int rowmax(0), column(0);
112 double limit1 =
sqrt((offsetX + 0.5 * xQuadrant * offsetXY) * (offsetX + 0.5 * xQuadrant * offsetXY) +
113 (offsetY + 0.5 * yQuadrant * offsetXY) * (offsetY + 0.5 * yQuadrant * offsetXY));
114 double limit2 =
sqrt((offsetX - 0.5 * xQuadrant * offsetXY) * (offsetX - 0.5 * xQuadrant * offsetXY) +
115 (offsetY - 0.5 * yQuadrant * offsetXY) * (offsetY - 0.5 * yQuadrant * offsetXY));
120 <<
"): offsetX,Y = " << offsetX <<
"," << offsetY <<
" limit=" << limit1 <<
":" 121 << limit2 <<
" rMin, rMax = " <<
m_rMin <<
"," <<
m_rMax;
128 rotstr += std::to_string(copyNo);
132 std::make_unique<DDRotationMatrix>(
146 edm::LogVerbatim(
"HGCalGeom") <<
" (" << column <<
"," << row <<
"): offsetX,Y = " << offsetX <<
"," << offsetY
147 <<
" is out of limit=" << limit1 <<
":" << limit2 <<
" rMin, rMax = " <<
m_rMin 152 yphi += yQuadrant * 2. * tiltAngle;
153 offsetY += yQuadrant * offsetXY;
159 xphi += xQuadrant * 2. * tiltAngle;
160 yphi = yQuadrant * tiltAngle;
161 offsetY = yQuadrant * 0.5 * offsetXY;
162 offsetX += xQuadrant * offsetXY;
165 edm::LogVerbatim(
"HGCalGeom") << rowmax <<
" rows and " << column <<
" columns in quadrant " << xQuadrant <<
":"
Geom::Theta< T > theta() const
DDName is used to identify DDD entities uniquely.
std::string m_idNameSpace
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
Abs< T >::type abs(const T &t)
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=0)
ROOT::Math::Rotation3D DDRotation