196{
197
198
199
200
201
202
203
205
206 double cylinderOuterRadius =
parameters->thermalShieldOuterRadius();
207 double cylinderInnerRadius =
parameters->thermalShieldInnerRadius();
208 double cylinderLength =
parameters->cylinderLength();
209 double bulkheadInnerRadius =
parameters->thermalShieldBulkheadInnerRadius();
210 double bulkheadOuterRadius =
parameters->thermalShieldBulkheadOuterRadius();
211 double bulkheadThickness =
parameters->thermalShieldEndCapCylThickness();
212 double endPanelInnerRadius =
parameters->thermalShieldEndPanelInnerRadius();
213 double endPanelOuterRadius =
parameters->thermalShieldEndPanelOuterRadius();
214 double endPanelThickness =
parameters->thermalShieldEndCapThickness();
215 double endPanelZMax =
parameters->thermalShieldEndZMax();
216
217 std::string cylinderMaterialName =
parameters->thermalShieldMaterialCyl();
218 std::string bulkheadMaterialName =
parameters->thermalShieldMaterialOuterSect();
219 std::string endPanelMaterialName =
parameters->thermalShieldMaterialInnerSect();
220
221
222
223 const GeoTube * cylinderShape = new GeoTube(cylinderInnerRadius, cylinderOuterRadius, 0.5*cylinderLength);
224 const GeoMaterial* cylinderMaterial =
m_materials->getMaterialForVolume(cylinderMaterialName,cylinderShape->volume());
225 const GeoLogVol * cylinderLog = new GeoLogVol("ThShieldOuterCyl", cylinderShape, cylinderMaterial);
226 GeoPhysVol * cylinder = new GeoPhysVol(cylinderLog);
228
229
230 const GeoTube * bulkheadShape = new GeoTube(bulkheadInnerRadius, bulkheadOuterRadius, 0.5*bulkheadThickness);
231 const GeoMaterial* bulkheadMaterial =
m_materials->getMaterialForVolume(bulkheadMaterialName,bulkheadShape->volume());
232 const GeoLogVol * bulkheadLog = new GeoLogVol("ThShieldBulkhead", bulkheadShape, bulkheadMaterial);
233 GeoPhysVol * bulkhead = new GeoPhysVol(bulkheadLog);
234 GeoTransform * bulkheadPosPlus = new GeoTransform(GeoTrf::TranslateZ3D(+(endPanelZMax-endPanelThickness-0.5*bulkheadThickness)));
235 GeoTransform * bulkheadPosMinus = new GeoTransform(GeoTrf::TranslateZ3D(-(endPanelZMax-endPanelThickness-0.5*bulkheadThickness)));
236 parent->add(bulkheadPosPlus);
238 parent->add(bulkheadPosMinus);
240
241
242 const GeoTube * endPanelShape = new GeoTube(endPanelInnerRadius, endPanelOuterRadius, 0.5*endPanelThickness);
243 const GeoMaterial* endPanelMaterial =
m_materials->getMaterialForVolume(endPanelMaterialName,endPanelShape->volume());
244 const GeoLogVol * endPanelLog = new GeoLogVol("ThShieldEndPanel", endPanelShape, endPanelMaterial);
245 GeoPhysVol * endPanel = new GeoPhysVol(endPanelLog);
246 GeoTransform * endPanelPosPlus = new GeoTransform(GeoTrf::TranslateZ3D(+(endPanelZMax-0.5*endPanelThickness)));
247 GeoTransform * endPanelPosMinus = new GeoTransform(GeoTrf::TranslateZ3D(-(endPanelZMax-0.5*endPanelThickness)));
248 parent->add(endPanelPosPlus);
250 parent->add(endPanelPosMinus);
252
253}