68 int nHalfModules =
m_ski->modulesPerSki()/2;
76 const GeoLogVol *skiPowerTapeLog =
78 GeoPhysVol * skiPowerTape =
new GeoPhysVol(skiPowerTapeLog);
81 for (
int iModule = 0; iModule <
m_ski->modulesPerSki(); iModule++) {
85 double tapeLength, tapeMid, tapeStart, tapeEnd;
95 if (
m_ski->zPos(iModule) > 0) {
102 nPos = iModule - nHalfModules;
111 nPos = nHalfModules - iModule - 1;
115 tapeLength = std::abs(tapeEnd - tapeStart);
116 tapeMid = 0.5 * (tapeEnd + tapeStart);
122 std::cout <<
"SCT_SkiPowerTape: Module position inconsistent with assumption that\n"
123 <<
" first half has z < 0 and second half has z > 0"
141 skiPowerTape->add(
new GeoTransform(GeoTrf::Translate3D(xTapePos, yTapePos, tapeMid)));
142 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)