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