70 int nHalfModules =
m_ski->modulesPerSki()/2;
78 const GeoLogVol *skiPowerTapeLog =
80 GeoPhysVol * skiPowerTape =
new GeoPhysVol(skiPowerTapeLog);
83 for (
int iModule = 0; iModule <
m_ski->modulesPerSki(); iModule++) {
87 double tapeLength, tapeMid, tapeStart, tapeEnd;
97 if (
m_ski->zPos(iModule) > 0) {
104 nPos = iModule - nHalfModules;
113 nPos = nHalfModules - iModule - 1;
117 tapeLength = std::abs(tapeEnd - tapeStart);
118 tapeMid = 0.5 * (tapeEnd + tapeStart);
124 std::cout <<
"SCT_SkiPowerTape: Module position inconsistent with assumption that\n"
125 <<
" first half has z < 0 and second half has z > 0"
143 skiPowerTape->add(
new GeoTransform(GeoTrf::Translate3D(xTapePos, yTapePos, tapeMid)));
144 skiPowerTape->add(powerTape.
getVolume());
SCT_SkiPowerTape(const std::string &name, const SCT_Ski *ski, double length, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials)