6 #include "GaudiKernel/SystemOfUnits.h"
16 : m_noTopLevelTable(true) {
21 std::map<std::string, Part*>::const_iterator iter;
22 for (iter =
m_parts.begin(); iter !=
m_parts.end(); ++iter)
delete iter->second;
39 return(
getPart(partName) !=
nullptr);
44 if (topLevelTable.get() ==
nullptr) {
49 int numParts = topLevelTable->size();
50 for (
int i = 0;
i < numParts;
i++) {
70 int rotOrder = record->
getInt(
"ROTORDER");
76 if (rotX == 0 && rotY == 0 && rotZ == 0) {
85 int ixyz1 = rotOrder / 100 - 1;
86 int ixyz2 = (rotOrder % 100) / 10 - 1;
87 int ixyz3 = (rotOrder % 10) - 1;
89 if (ixyz1 < 0 || ixyz1 > 2 ||
90 ixyz2 < 0 || ixyz2 > 2 ||
91 ixyz3 < 0 || ixyz3 > 2) {
92 std::cout <<
"ERROR: Invalid rotation order:" << rotOrder << std::endl;
100 nullptr,
nullptr,
nullptr
102 if (rotX != 0) xformList[0] =
new GeoTrf::RotateX3D(rotX);
103 if (rotY != 0) xformList[1] =
new GeoTrf::RotateY3D(rotY);
104 if (rotZ != 0) xformList[2] =
new GeoTrf::RotateZ3D(rotZ);
120 std::map<std::string, Part*>::const_iterator iter;
122 if (iter ==
m_parts.end())
return nullptr;