17 double dx =
args.value<
double>(
"Dx");
18 double dz =
args.value<
double>(
"Dz");
19 double angwidth =
args.value<
double>(
"AngWidth");
20 int iaxis =
args.value<
int>(
"Axis");
21 std::vector<std::string>
names =
args.value<std::vector<std::string> >(
"Names");
24 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalXtalAlgo::Parameters for positioning: Axis " << iaxis <<
"\tRadius "
27 <<
"\tNumbers " << names.size();
28 for (
unsigned int i = 0;
i < names.size();
i++)
30 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalXtalAlgo: Parent " <<
args.parentName() <<
"\tChild " << idName
31 <<
" NameSpace " << idNameSpace;
39 theta[1 - iaxis] = 90._deg;
41 int number = (int)(names.size());
44 theta[iaxis] = 90._deg +
angle;
47 phi[2] = iaxis * 90._deg;
50 phi[2] = (2 - 3 * iaxis) * 90._deg;
52 pos[iaxis] = angle * (dz +
radius);
56 idName = idNameSpace +
idName;
61 static const double tol = 0.01_deg;
71 parent.placeVolume(glog,
i + 1, dd4hep::Transform3D(rotation, tran));
73 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalXtalAlgo: " << glog.name() <<
" number " <<
i + 1 <<
" positioned in "
Log< level::Info, true > LogVerbatim
constexpr NumType convertRadToDeg(NumType radians)
constexpr NumType convert2mm(NumType length)
Sin< T >::type sin(const T &t)
Geom::Theta< T > theta() const
const std::string names[nVars_]
DDRotationMatrix makeRotation3D(double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ)
static constexpr long s_executed
Abs< T >::type abs(const T &t)
T angle(T x1, T y1, T z1, T x2, T y2, T z2)