103 int copyNo = startCopyNo;
105 double xphi = xQuadrant * tiltAngle;
106 double yphi = yQuadrant * tiltAngle;
107 double theta = 90._deg;
110 double phiZ = 3 *
theta;
114 double offsetX = xQuadrant * 0.5 * offsetXY;
115 double offsetY = yQuadrant * 0.5 * offsetXY;
118 int rowmax(0), column(0);
129 double limit1 =
sqrt((offsetX + 0.5 * xQuadrant * offsetXY) * (offsetX + 0.5 * xQuadrant * offsetXY) +
130 (offsetY + 0.5 * yQuadrant * offsetXY) * (offsetY + 0.5 * yQuadrant * offsetXY));
131 double limit2 =
sqrt((offsetX - 0.5 * xQuadrant * offsetXY) * (offsetX - 0.5 * xQuadrant * offsetXY) +
132 (offsetY - 0.5 * yQuadrant * offsetXY) * (offsetY - 0.5 * yQuadrant * offsetXY));
137 <<
"): offsetX,Y = " << offsetX <<
"," << offsetY <<
" limit=" << limit1 <<
":"
138 << limit2 <<
" rMin, rMax = " <<
m_rMin <<
"," <<
m_rMax;
145 rotstr += std::to_string(copyNo);
149 std::make_unique<DDRotationMatrix>(
164 edm::LogVerbatim(
"HGCalGeom") <<
" (" << column <<
"," << row <<
"): offsetX,Y = " << offsetX <<
"," << offsetY
165 <<
" is out of limit=" << limit1 <<
":" << limit2 <<
" rMin, rMax = " <<
m_rMin
170 yphi += yQuadrant * 2. * tiltAngle;
171 offsetY += yQuadrant * offsetXY;
177 xphi += xQuadrant * 2. * tiltAngle;
178 yphi = yQuadrant * tiltAngle;
179 offsetY = yQuadrant * 0.5 * offsetXY;
180 offsetX += xQuadrant * offsetXY;
183 edm::LogVerbatim(
"HGCalGeom") << rowmax <<
" rows and " << column <<
" columns in quadrant " << xQuadrant <<
":"
Log< level::Info, true > LogVerbatim
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
Geom::Theta< T > theta() const
DDName is used to identify DDD entities uniquely.
std::string m_idNameSpace
Represents a uniquely identifyable rotation matrix.
Abs< T >::type abs(const T &t)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation