Skip to content
Snippets Groups Projects
Commit 7cfe7390 authored by Nigel Hessey's avatar Nigel Hessey :call_me_tone2: Committed by Graeme Stewart
Browse files

Requirements file selects LTF_LongStrip production (GmxLayouts-00-00-13-02)

parent 910188a5
No related branches found
No related tags found
No related merge requests found
Showing
with 1850 additions and 12 deletions
Bonjour ...
Ho hum te dum ...
And more...
And again, for long strips...
\ No newline at end of file
......@@ -15,6 +15,9 @@ apply_pattern declare_runtime files="-s=../data/ *.dtd"
# Awaiting a better solution.
# Choose one of the following:
#apply_pattern declare_runtime files="-s=../data/ITk/Strip/LoI/ *.gmx"
apply_pattern declare_runtime files="-s=../data/ITk/Strip/LTF/ *.gmx"
apply_pattern declare_runtime files="-s=../data/ITk/Strip/LTF_LongStrip/ *.gmx"
#apply_pattern declare_runtime files="-s=../data/ITk/Strip/LTFwithBCL/ *.gmx"
#apply_pattern declare_runtime files="-s=../data/ITk/Strip/LTF/ *.gmx"
#apply_pattern declare_runtime files="-s=../data/ITk/Strip/Sandbox/ *.gmx"
......@@ -74,7 +74,7 @@
</shapes>
<logvol name="SCT_ForwardPlus" shape="ShStripEC_Envelope" material="N2">
<logvol name="SCT_ForwardPlus" shape="ShStripEC_Envelope" material="N2" alignable="true">
<transform>
<transformation name="MoveEC1ToEnvelope">
<translation z="-(StripEC_Z_Start + StripEC_HalfLength)"/>
......@@ -84,7 +84,7 @@
</logvol>
<!-- We make an identical logvol differing only in name for the other endcap, to fit with SCT_GeoModel convention -->
<logvol name="SCT_ForwardMinus" shape="ShStripEC_Envelope" material="N2">
<logvol name="SCT_ForwardMinus" shape="ShStripEC_Envelope" material="N2" alignable="true">
<transform>
<transformation name="MoveEC2ToEnvelope">
<translation z="-(StripEC_Z_Start + StripEC_HalfLength)"/>
......@@ -156,23 +156,26 @@
</transform>
<index ref="barrel_endcap" value="0"/>
<logvol name="SCT_Barrel" shape="ShStripB_Envelope" material="N2">
<assemblyref ref="StripB"/>
</logvol>
<transform alignable="3">
<transformation name="NoneButNeededForAlignable" alignable="true">
<translation />
</transformation>
<logvol name="SCT_Barrel" shape="ShStripB_Envelope" material="N2" alignable="true">
<assemblyref ref="StripB"/>
</logvol>
</transform>
<index ref="barrel_endcap" value="2"/>
<transform>
<transformation name="PlaceEC_Plus">
<transform alignable="3">
<transformation name="PlaceEC_Plus" alignable="true">
<translation z="StripEC_Z_Start + StripEC_HalfLength"/>
</transformation>
<logvolref ref="SCT_ForwardPlus"/>
</transform>
<index ref="barrel_endcap" value="-2"/>
<transform>
<transformation name="TurnE_A_ToE_C">
<transform alignable="3">
<transformation name="TurnE_A_ToE_C" alignable="true">
<rotation ycos="1." angle="PI"/>
<translation z="StripEC_Z_Start + StripEC_HalfLength"/>
</transformation>
......
<!-- Set up the Barrel Completion Layer. Do in a separate file so it is easy to remove. -->
&bcl_defines;
&bcl_supports;
&bcl_core;
&bcl_hybrid;
<assembly name="BCL_Module">
<logvolref ref="BRLSensorMS"/>
<transform>
<transformation name="PlaceHybridBCL">
<translation x="-(B_HybridX_Offset + B_HybridW / 2)" z="(SensorThickness + B_HybridT) / 2."/>
</transformation>
<assemblyref ref="BCL_Hybrid"/>
</transform>
<transform>
<transformation name="PlaceDCDC_PCB_BCL">
<translation x="-(B_HybridX_Offset + B_HybridW + DCDC_BCL_PCB_W / 2)"
z="(SensorThickness + DCDC_BCL_PCB_T) / 2."/>
</transformation>
<logvolref ref="DCDC_BCL_PCB"/>
</transform>
<transform>
<transformation name="PlaceDCDC_Box_BCL">
<translation x="-(B_HybridX_Offset + B_HybridW + DCDC_BCL_PCB_W / 2)"
z="(SensorThickness + DCDC_BoxT) / 2. + DCDC_PCB_T"/>
</transformation>
<logvolref ref="DCDC_BCL_Box"/>
</transform>
</assembly>
<assembly name="BCL_Pair">
<transform>
<transformation name="PlaceLowModZ_BCL_Module">
<translation x="-(B_SensorGap + B_SensorLength) / 2."/>
</transformation>
<assemblyref ref="BCL_Module" zeroid="true"/>
</transform>
<transform>
<transformation name="PlaceHighModZ_BCL_Module">
<translation x="(B_SensorGap + B_SensorLength) / 2."/>
<rotation zcos="1" angle="PI"/>
</transformation>
<assemblyref ref="BCL_Module"/>
</transform>
</assembly>
<assembly name="BCL_Face">
<multicopy name="CopyBCL_PairsInBCL_Face" n="BCL_N_PairsPerFace">
<transformation name="PlaceBCL_PairsInBCL_Face">
<translation y="B_SensorGap + B_SensorWidth"/>
</transformation>
<transform>
<transformationref ref="StereoRot"/>
<assemblyref ref="BCL_Pair"/>
</transform>
</multicopy>
</assembly>
<assembly name="BCL_Stave">
<transform>
<transformation name="RotateBCL_CoreToFace">
<rotation zcos="1." angle="PI/2"/>
</transformation>
<logvolref ref="BCL_Core"/>
</transform>
<transform>
<transformation name="PlaceFirstBCL_FaceOnCore">
<translation y="BCL_FaceTranslation"
z="-(BCL_CoreT + SensorThickness)/2 - BCL_BusCuT"/>
<rotation ycos="1" angle="PI"/> <!-- Strips on low-z side -->
</transformation>
<assemblyref ref="BCL_Face" zeroid="true"/>
</transform>
<transform>
<transformation name="PlaceSecondBCL_FaceOnCore">
<translation y="BCL_FaceTranslation"
z="+(BCL_CoreT + SensorThickness)/2 + BCL_BusCuT"/>
</transformation>
<assemblyref ref="BCL_Face"/>
</transform>
<transform>
<transformation name="PlaceFirstEOS_OnBCL_Core">
<translation x="-(BCL_CoreW - 100.)/2"
y="(BCL_CoreL - 45.)/2"
z="-(BCL_CoreT + 5.)/2"/>
</transformation>
<logvolref ref="EOS"/>
</transform>
<transform>
<transformation name="PlaceSecondEOS_OnBCL_Core">
<translation x="-(BCL_CoreW - 100.)/2"
y="(BCL_CoreL - 45.)/2"
z="+(BCL_CoreT + 5.)/2"/>
</transformation>
<logvolref ref="EOS"/>
</transform>
</assembly>
<assembly name="BCL_A">
<multicopy name="CopyBCL_A_Staves" n="BCL_N_Staves">
<transformation name="PlaceBCL_A_Staves">
<rotation zcos="1" angle="2 * PI / BCL_N_Staves"/>
</transformation>
<transform>
<transformation name="BCL_A_ReadyForCopying">
<!-- Rotate half a notch so x = 0 passes through edges not centres (as in standard LoI) -->
<rotation zcos="1" angle="PI / BCL_N_Staves"/>
<translation x="BCL_Radius"/>
<rotation zcos="1" angle="-BCL_TiltAngle"/>
<rotation ycos="1" angle="PI/2"/>
</transformation>
<assemblyref ref="BCL_Stave"/>
</transform>
</multicopy>
</assembly>
<assembly name="BCL_C">
<!-- For now, identical to BCL-A; just needs translated to correct z. Later: probably BCL staves differ slightly at each end. -->
<multicopy name="CopyBCL_C_Staves" n="BCL_N_Staves">
<transformation name="PlaceBCL_C_Staves">
<rotation zcos="1" angle="2 * PI / BCL_N_Staves"/>
</transformation>
<transform>
<transformation name="BCL_C_ReadyForCopying">
<!-- Rotate half a notch so x = 0 passes through edges not centres (as in standard LoI) -->
<rotation zcos="1" angle="PI / BCL_N_Staves"/>
<translation x="BCL_Radius"/>
<rotation zcos="1" angle="-BCL_TiltAngle"/>
<rotation ycos="1" angle="PI/2"/>
</transformation>
<assemblyref ref="BCL_Stave"/>
</transform>
</multicopy>
</assembly>
<!--
<shapes>
<box name="shBCL_Core" xhalflength="BCL_CoreW / 2." yhalflength="BCL_CoreL / 2." zhalflength="BCL_CoreT /
2."/>
</shapes>
<logvol name="BCL_Core" shape="shBCL_Core" material="MatMSSupport"/>
-->
<!-- To be included in BCL.gmx. Builds up the BCL core (including bus tape copper) -->
<shapes>
<box name="shBCL_Core" xhalflength="BCL_CoreL/2" yhalflength="BCL_CoreW/2" zhalflength="BCL_CoreT/2 - EPS"/>
<box name="shBCL_Facesheet" xhalflength="BCL_CoreL/2 - EPS" yhalflength="BCL_CoreW/2 - EPS" zhalflength="BCL_FacesheetT/2 - EPS"/>
<box name="shBCL_CloseoutLong" xhalflength="BCL_CloseoutLongL/2 - EPS" yhalflength="BCL_CloseoutLongT/2"
zhalflength="BCL_CloseoutLongW/2 - EPS"/>
<box name="shBCL_CloseoutShort" xhalflength="BCL_CloseoutShortW/2" yhalflength="BCL_CloseoutShortL/2"
zhalflength="BCL_CloseoutShortT/2 - EPS"/>
<box name="shBCL_BusKapton" xhalflength="(BCL_CoreL - BCL_EOS_L)/2 - EPS" yhalflength="BCL_CoreW/2 - EPS"
zhalflength="BCL_BusKaptonT/2 - EPS"/>
<box name="shBCL_BusGlue" xhalflength="(BCL_CoreL - BCL_EOS_L)/2 - EPS" yhalflength="BCL_CoreW/2 - EPS"
zhalflength="BCL_BusGlueT/2 - EPS"/>
<box name="shBCL_BusCu" xhalflength="BCL_BusCuL/2" yhalflength="BCL_BusCuW/2" zhalflength="BCL_BusCuT/2 - EPS"/>
<box name="shBCL_CFoam" xhalflength="BCL_CoolingL/2" yhalflength="BCL_CFoamW/2"
zhalflength="BCL_CFoamT/2 - EPS"/>
<tube name="shBCL_CoolingTube" rmin="BCL_CoolingPipeID" rmax="BCL_CoolingPipeOD"
zhalflength="BCL_CoolingL/2 - EPS"/>
<tube name="shBCL_CoolingCO2" rmin="0.0" rmax="BCL_CoolingPipeID - EPS"
zhalflength="BCL_CoolingL/2 - 2 * EPS"/>
</shapes>
<logvol name="BCL_Facesheet" shape="shBCL_Facesheet" material="K13D2U"/>
<logvol name="BCL_CloseoutLong" shape="shBCL_CloseoutLong" material="CFRP"/>
<logvol name="BCL_CloseoutShort" shape="shBCL_CloseoutShort" material="Peek"/>
<logvol name="BCL_BusKapton" shape="shBCL_BusKapton" material="Kapton"/>
<logvol name="BCL_BusGlue" shape="shBCL_BusGlue" material="BoronNitrideEpoxy"/>
<logvol name="BCL_BusCu" shape="shBCL_BusCu" material="CuMetal"/>
<logvol name="BCL_CoolingTube" shape="shBCL_CoolingTube" material="TiMetal">
<logvol name="BCL_CoolingCO2" shape="shBCL_CoolingCO2" material="CO2Liquid"/>
</logvol>
<logvol name="BCL_CoolingUnit" shape="shBCL_CFoam" material="CFoam">
<transform>
<transformation name="PlaceTubeInBCL_CFoam">
<rotation ycos="1" angle="PI / 2."/>
</transformation>
<logvolref ref="BCL_CoolingTube"/>
</transform>
</logvol>
<logvol name="BCL_Core" shape="shBCL_Core" material="Honeycomb2pcf">
<transform>
<transformation name="PlaceBCL_LowZ_Facesheet">
<translation z="-((BCL_HoneycombT + BCL_FacesheetT)/2)"/>
</transformation>
<logvolref ref="BCL_Facesheet"/>
</transform>
<transform>
<transformation name="PlaceBCL_HighZ_Facesheet">
<translation z="(BCL_HoneycombT + BCL_FacesheetT)/2"/>
</transformation>
<logvolref ref="BCL_Facesheet"/>
</transform>
<transform>
<transformation name="PlaceBCL_CloseoutLongUp">
<translation x="(BCL_CoreL - BCL_CloseoutLongL)/2 - BCL_CloseoutShortW" y="BCL_CoreW/2 - 2."/>
</transformation>
<logvolref ref="BCL_CloseoutLong"/>
</transform>
<transform>
<transformation name="PlaceBCL_CloseoutLongDown">
<translation x="(BCL_CoreL - BCL_CloseoutLongL)/2 - BCL_CloseoutShortW" y="-(BCL_CoreW/2 - 2.)"/>
</transformation>
<logvolref ref="BCL_CloseoutLong"/>
</transform>
<transform>
<transformation name="PlaceBCL_CloseoutFarEnd">
<translation x="-(BCL_CoreL - BCL_CloseoutShortW)/2"/>
</transformation>
<logvolref ref="BCL_CloseoutShort"/>
</transform>
<transform>
<transformation name="PlaceBCLCloseoutShortEOS_End">
<translation x="(BCL_CoreL - BCL_CloseoutShortW)/2"/>
</transformation>
<logvolref ref="BCL_CloseoutShort"/>
</transform>
<transform>
<transformation name="PlaceLowZ_BCL_BusGlue">
<translation x="-BCL_EOS_L/2"
z="-((BCL_HoneycombT + BCL_BusGlueT)/2 + BCL_FacesheetT)"/>
</transformation>
<logvolref ref="BCL_BusGlue"/>
</transform>
<transform>
<transformation name="PlaceHighZ_BCL_BusGlue">
<translation x="-BCL_EOS_L/2"
z="(BCL_HoneycombT + BCL_BusGlueT)/2 + BCL_FacesheetT"/>
</transformation>
<logvolref ref="BCL_BusGlue"/>
</transform>
<transform>
<transformation name="PlaceLowZ_BCL_BusKapton">
<translation x="-BCL_EOS_L/2"
z="-((BCL_HoneycombT + BCL_BusKaptonT)/2 + BCL_FacesheetT + BCL_BusGlueT)"/>
</transformation>
<logvolref ref="BCL_BusKapton"/>
</transform>
<transform>
<transformation name="PlaceHighZ_BCL_BusKapton">
<translation x="-BCL_EOS_L/2"
z="(BCL_HoneycombT + BCL_BusKaptonT)/2 + BCL_FacesheetT + BCL_BusGlueT"/>
</transformation>
<logvolref ref="BCL_BusKapton"/>
</transform>
<transform>
<transformation name="PlaceLowY_BCL_Cooling">
<translation x="(BCL_CoreL - BCL_CoolingL)/2 - BCL_CloseoutShortW" y="-BCL_CoolingOffset"/>
</transformation>
<logvolref ref="BCL_CoolingUnit"/>
</transform>
<transform>
<transformation name="PlaceHighY_BCL_Cooling">
<translation x="(BCL_CoreL - BCL_CoolingL)/2 - BCL_CloseoutShortW" y="BCL_CoolingOffset"/>
</transformation>
<logvolref ref="BCL_CoolingUnit"/>
</transform>
<transform>
<transformation name="PlaceLowZ_HighY_Cu">
<translation x="(BCL_CoreL - BCL_BusCuL)/2 - BCL_EOS_L"
y="(BCL_CoreW - BCL_BusCuW)/2"
z="-(BCL_CoreT + BCL_BusCuT)/2"/>
</transformation>
<logvolref ref="BCL_BusCu"/>
</transform>
<transform>
<transformation name="PlaceHighZ_HighY_Cu">
<translation x="(BCL_CoreL - BCL_BusCuL)/2 - BCL_EOS_L"
y="(BCL_CoreW - BCL_BusCuW)/2"
z="(BCL_CoreT + BCL_BusCuT)/2"/>
</transformation>
<logvolref ref="BCL_BusCu"/>
</transform>
<transform>
<transformation name="PlaceLowZ_LowY_Cu">
<translation x="(BCL_CoreL - BCL_BusCuL)/2 - BCL_EOS_L"
y="-(BCL_CoreW - BCL_BusCuW)/2"
z="-(BCL_CoreT + BCL_BusCuT)/2"/>
</transformation>
<logvolref ref="BCL_BusCu"/>
</transform>
<transform>
<transformation name="PlaceHighZ_LowY_Cu">
<translation x="(BCL_CoreL - BCL_BusCuL)/2 - BCL_EOS_L"
y="-(BCL_CoreW - BCL_BusCuW)/2"
z="(BCL_CoreT + BCL_BusCuT)/2"/>
</transformation>
<logvolref ref="BCL_BusCu"/>
</transform>
</logvol>
<defines>
<var name="BCL_N_PairsPerFace" value="5"/>
<var name="BCL_N_Staves" value="12"/>
<var name="BCL_EOS_L" value="50."/>
<var name="BCL_CoreL" value="BCL_N_PairsPerFace * (B_SensorWidth + B_SensorGap) + 5. + BCL_EOS_L"/>
<var name="BCL_CoreW" value="220."/>
<var name="BCL_CoreT" value="StaveCoreT"/>
<var name="BCL_FacesheetT" value="StaveFacesheetT"/>
<var name="BCL_CloseoutShortL" value="BCL_CoreW"/>
<var name="BCL_CloseoutShortW" value="StaveHoneycombT"/>
<var name="BCL_CloseoutShortT" value="5.0"/>
<var name="BCL_CloseoutLongL" value="BCL_CoreL - 2 * BCL_CloseoutShortW"/>
<var name="BCL_CloseoutLongW" value="StaveHoneycombT"/>
<var name="BCL_CloseoutLongT" value="2 * 0.05"/>
<var name="BCL_BusKaptonT" value="StaveBusKaptonT"/>
<var name="BCL_BusGlueT" value="StaveBusGlueT"/>
<var name="BCL_BusCuL_Corr" value="48."/>
<var name="BCL_BusCuL" value="BCL_CoreL - BCL_EOS_L - BCL_BusCuL_Corr"/>
<var name="BCL_BusCuW" value="15.0"/>
<var name="BCL_BusCuT" value="1.5 * StaveBusCuT"/> <!-- 1 for power, 0.5 for signal layers -->
<var name="BCL_BusCu_FromEnd" value="0.0"/>
<var name="BCL_BusCu_FromTop" value="0.0"/>
<var name="BCL_CoolingL" value="BCL_CoreL - 2 * BCL_CloseoutShortT"/>
<var name="BCL_CFoamW" value="10.0"/>
<var name="BCL_CFoamT" value="StaveHoneycombT"/>
<var name="BCL_CoolingOffset" value="50."/>
<var name="BCL_CoolingPipeOD" value="2.275"/>
<var name="BCL_CoolingPipeID" value="1.975"/> <!-- 0.1 mm wall thickness on drawing, but not yet achieved so
thicker -->
<var name="BCL_HoneycombT" value="StaveHoneycombT"/>
<var name="BCL_FaceTranslation" value="-((BCL_N_PairsPerFace - 1) / 2 * (B_SensorWidth + B_SensorGap)
+ BCL_EOS_L / 2.)"/>
<var name="BCL_TiltAngle" value="4.5 * DEG"/>
<var name="BCL_Radius" value="842."/>
<var name="BCL_MiddleZ" value="(B_N_SensorsPerFace - 1) * (B_SensorWidth + B_SensorGap) - 10."/>
</defines>
&barreldefines;
<!-- CNL_n meanings for barrel:
n Meaning Range
===================================
0 SCT 0
1 SCTBarrel 0
2 StripB 0
3 Cylinder 0 (! All cylinders are unique, never copied)
4 StavePair 0 - 72; depends on which barrel
5 Stave 0 - 1
6 StaveFace 0 - 1
7 Module 0 - 13
8 Sensor 0
or for BCL:
3 BCL 0
4 Stave 0 - 11
5 BCL_Face 0 - 1
6 Module pair 0 - 4
7 Module 0 - 1
8 Sensor 0
-->
&barrelsupports;
&stave;
&barrelhybrids;
<shapes>
<tube name="shInnerPolyMod" rmin="StripB_OuterRadius - InnerPolyModThickness" rmax="StripB_OuterRadius - 3 * EPS"
zhalflength="InnerPolyModHalfLength"/>
<tube name="shBarrel0" rmin="StripInnerRadius + EPS" rmax="CylRadius_0 + CylEnvelopeThO"
zhalflength="StripB_HalfLength - EPS"/>
<tube name="shBarrel1" rmin="CylRadius_1 - CylEnvelopeThI" rmax="CylRadius_1 + CylEnvelopeThO"
zhalflength="StripB_HalfLength - EPS"/>
<tube name="shBarrel2" rmin="CylRadius_2 - CylEnvelopeThI" rmax="CylRadius_2 + CylEnvelopeThO"
zhalflength="StripB_HalfLength - EPS"/>
<tube name="shBarrel3" rmin="CylRadius_3 - CylEnvelopeThI" rmax="StripB_OuterRadius - 2 * EPS"
zhalflength="StripB_HalfLength - EPS"/>
</shapes>
<transformation name="StereoRot">
<rotation zcos="1" angle="StereoAngle"/>
</transformation>
<transformation name="RotateModulePowerEnd">
<rotation zcos="1" angle="PI + StereoAngle"/>
</transformation>
<!-- GeoModelXml input created by ConsolidX for BarrelEOSBoard, version 1.0. -->
<materials>
<material name='matEOS' density='0.001052'>
<elementref ref='Carbon' fraction='0.103183'/>
<elementref ref='Copper' fraction='0.393132'/>
<elementref ref='Hydrogen' fraction='0.009621'/>
<elementref ref='Oxygen' fraction='0.266262'/>
<elementref ref='Silicon' fraction='0.215452'/>
<elementref ref='Tin' fraction='0.012349'/>
</material>
</materials>
<shapes>
<box name='shEOS' xhalflength='100/2' yhalflength='45/2' zhalflength='5/2'/>
</shapes>
<logvol name='EOS' shape='shEOS' material='matEOS'/>
<assembly name="MS_Module">
<logvolref ref="BRLSensorMS"/>
<transform>
<transformation name="PlaceNearHybridMS">
<translation x="B_HybridX_Offset + B_HybridW / 2" z="(SensorThickness + B_HybridT) / 2."/>
</transformation>
<assemblyref ref="B_HybridNear"/>
</transform>
<transform>
<transformation name="PlaceDCDC_PCB_MS">
<translation y="-(B_SensorWidth - DCDC_PCB_L) / 2." z="(SensorThickness + DCDC_PCB_T) / 2."/>
</transformation>
<logvolref ref="DCDC_PCB"/>
</transform>
<transform>
<transformation name="PlaceDCDC_Box_MS">
<translation y="-(B_SensorWidth - DCDC_PCB_L - DCDC_PCB_L + DCDC_BoxL) / 2."
z="(SensorThickness + DCDC_BoxT) / 2. + DCDC_PCB_T"/>
</transformation>
<logvolref ref="DCDC_Box"/>
</transform>
</assembly>
<assembly name="MS_FaceL">
<index ref="side" value="CNL_5"/>
<multicopy name="CopyMS_InStereoFaceL" n="B_N_SensorsPerFace">
<transformation name="PlaceMS_InStereoFaceL">
<translation x="B_SensorGap + B_SensorLength"/>
</transformation>
<transform>
<transformationref ref="StereoRot"/>
<assemblyref ref="MS_Module"/>
</transform>
</multicopy>
</assembly>
<assembly name="MS_FaceR">
<index ref="side" value="1 - CNL_5"/>
<multicopy name="CopyMS_InStereoFaceR" n="B_N_SensorsPerFace">
<transformation name="PlaceMS_InStereoFaceR">
<translation x="B_SensorGap + B_SensorLength"/>
</transformation>
<transform>
<transformationref ref="RotateModulePowerEnd"/>
<assemblyref ref="MS_Module"/>
</transform>
</multicopy>
</assembly>
<assembly name="MS_Stave">
<assemblyref ref="StaveCoreMS"/>
<transform>
<transformation name="PlaceFirstMS_FaceOnCore">
<translation x="StaveFaceTranslation"
z="-(StavePlankT + SensorThickness)/2"/>
<rotation xcos="1" angle="PI"/> <!-- Strips on low-z side -->
</transformation>
<assemblyref ref="MS_FaceR" zeroid="true"/>
</transform>
<transform>
<transformation name="PlaceSecondMS_FaceOnCore">
<translation x="StaveFaceTranslation"
z="+(StavePlankT + SensorThickness)/2"/>
</transformation>
<assemblyref ref="MS_FaceL"/>
</transform>
<transform>
<transformation name="PlaceFirstEOS_OnMS_Core">
<translation x="(StaveCoreLength - 100.)/2"
y="(StaveCoreWidth + EOSCoreWidth)/2"
z="-(StavePlankT + 5.)/2"/>
</transformation>
<logvolref ref="EOS"/>
</transform>
<transform>
<transformation name="PlaceSecondEOS_OnMS_Core">
<translation x="(StaveCoreLength - 100.)/2"
y="(StaveCoreWidth + EOSCoreWidth)/2"
z="+(StavePlankT + 5.)/2"/>
</transformation>
<logvolref ref="EOS"/>
</transform>
</assembly>
<assembly name="StavePairMS">
<index ref="eta_module" value="CNL_7 + 1"/>
<transform>
<transformation name="PlacePlusZ_MS_Stave">
<translation x="StaveGapZ0 + StaveCoreLength/2"/>
</transformation>
<assemblyref ref="MS_Stave" zeroid="true"/>
</transform>
<multicopy name="CopyStaveMountsMS_Plus" n="NumStaveMounts">
<transformation name="PlaceStaveMountsMS_Plus">
<translation x="(StaveCoreLength - 2 * StaveMountL - 2 * 25.) / (NumStaveMounts - 1)"/>
</transformation>
<transform>
<transformation name="PlaceStaveMountReadyMS_PlusForCopying">
<translation x="25. + StaveGapZ0"
y="-(StaveCoreWidth/2 + StaveMountR)"
z="StaveMountR/2"/>
<rotation ycos="1" angle="PI/2"/>
</transformation>
<logvolref ref="StaveMount"/>
</transform>
</multicopy>
<index ref="eta_module" value="-(CNL_7 + 1)"/>
<transform>
<transformation name="PlaceMinusZ_MS_Stave">
<translation x="-(StaveGapZ0 + StaveCoreLength/2)"/>
<rotation ycos="1" angle="PI"/>
</transformation>
<assemblyref ref="MS_Stave"/>
</transform>
<multicopy name="CopyStaveMountsMS_Minus" n="NumStaveMounts">
<transformation name="PlaceStaveMountsMS_Minus">
<translation x="-(StaveCoreLength - 2 * StaveMountL - 2 * 25.) / (NumStaveMounts - 1)"/>
</transformation>
<transform>
<transformation name="PlaceStaveMountMS_MinusReadyForCopying">
<translation x="-(25. + StaveGapZ0)"
y="-(StaveCoreWidth/2 + StaveMountR)"
z="StaveMountR/2"/>
<rotation ycos="1" angle="-PI/2"/>
</transformation>
<logvolref ref="StaveMount"/>
</transform>
</multicopy>
</assembly>
<logvol name="Barrel0" shape="shBarrel0" material="N2">
<index ref="layer_wheel" value="0"/>
<multicopy name="PlaceStavesB0" n="N_StavesInCyl_0">
<transformation name="XfStavesB0">
<rotation zcos="1" angle="2 * PI / N_StavesInCyl_0"/>
</transformation>
<transform>
<transformation name="XfStave0ReadyForCopying">
<!-- Rotate half a notch so x = 0 passes through edges not centres (as in standard LoI) -->
<rotation zcos="1" angle="PI / N_StavesInCyl_0"/>
<translation x="CylRadius_0"/>
<rotation zcos="1" angle="-TiltAngle_0"/>
<rotation ycos="1" angle="-PI/2"/>
</transformation>
<assemblyref ref="StavePairMS"/>
</transform>
</multicopy>
<assemblyref ref="Barrel0Support"/>
</logvol>
<logvol name="Barrel1" shape="shBarrel1" material="N2">
<index ref="layer_wheel" value="1"/>
<multicopy name="PlaceStavesB1" n="N_StavesInCyl_1">
<transformation name="XfStavesB1">
<rotation zcos="1" angle="2 * PI / N_StavesInCyl_1"/>
</transformation>
<transform>
<transformation name="XfStave1ReadyForCopying">
<!-- Rotate half a notch so x = 0 passes through edges not centres (as in standard LoI) -->
<rotation zcos="1" angle="PI / N_StavesInCyl_1"/>
<translation x="CylRadius_1"/>
<rotation zcos="1" angle="-TiltAngle_1"/>
<rotation ycos="1" angle="-PI/2"/>
</transformation>
<assemblyref ref="StavePairMS"/>
</transform>
</multicopy>
<assemblyref ref="Barrel1Support"/>
</logvol>
<logvol name="Barrel2" shape="shBarrel2" material="N2">
<index ref="layer_wheel" value="2"/>
<multicopy name="PlaceStavesB2" n="N_StavesInCyl_2">
<transformation name="XfStavesB2">
<rotation zcos="1" angle="2 * PI / N_StavesInCyl_2"/>
</transformation>
<transform>
<transformation name="XfStave2ReadyForCopying">
<!-- Rotate half a notch so x = 0 passes through edges not centres (as in standard LoI) -->
<rotation zcos="1" angle="PI / N_StavesInCyl_2"/>
<translation x="CylRadius_2"/>
<rotation zcos="1" angle="-TiltAngle_2"/>
<rotation ycos="1" angle="-PI/2"/>
</transformation>
<assemblyref ref="StavePairMS"/>
</transform>
</multicopy>
<assemblyref ref="Barrel2Support"/>
</logvol>
<logvol name="Barrel3" shape="shBarrel3" material="N2">
<index ref="layer_wheel" value="3"/>
<multicopy name="PlaceStavesB3" n="N_StavesInCyl_3">
<transformation name="XfStavesB3">
<rotation zcos="1" angle="2 * PI / N_StavesInCyl_3"/>
</transformation>
<transform>
<transformation name="XfStave3ReadyForCopying">
<!-- Rotate half a notch so x = 0 passes through edges not centres (as in standard LoI) -->
<rotation zcos="1" angle="PI / N_StavesInCyl_3"/>
<translation x="CylRadius_3"/>
<rotation zcos="1" angle="-TiltAngle_3"/>
<rotation ycos="1" angle="-PI/2"/>
</transformation>
<assemblyref ref="StavePairMS"/>
</transform>
</multicopy>
<logvol name="InnerPolyMod" shape="shInnerPolyMod" material="BoratedPolyethylene"/>
<assemblyref ref="Barrel3Support"/>
</logvol>
<assembly name="StripB">
<index ref="phi_module" value="CNL_4"/>
<logvolref ref="Barrel0"/>
<logvolref ref="Barrel1"/>
<logvolref ref="Barrel2"/>
<logvolref ref="Barrel3"/>
</assembly>
<defines>
<var name="StereoAngle" value="26.0e-3"/>
<var name="B_N_SensorsPerFace" value="14"/>
<!-- Most dimensions from NP49-01-100.pdf, 27-AUG-2014 -->
<var name="B_SensorGap" value="98.0 - B_SensorWidth"/>
<var name="StaveCoreWidth" value="115."/>
<var name="StaveCoreExtraLength" value="3.0"/>
<var name="StaveCoreLength" value="B_N_SensorsPerFace * (B_SensorLength + B_SensorGap) + StaveCoreExtraLength"/>
<var name="CoreToSiDistAtEta0" value="0.0"/> <!-- Overhangs!! Or you need a very special shape at the end. -->
<var name="StaveFaceTranslation" value="-((B_N_SensorsPerFace - 1) / 2 * (B_SensorLength + B_SensorGap) +
StaveCoreExtraLength / 2) + CoreToSiDistAtEta0"/>
<!-- Stave core thickness built up in following order: -->
<var name="StaveHoneycombT" value="5.2 + 0.078"/> <!-- Small correction to make Si-Si mid dist. 6.42.
NPH logbook UG20 29/4/2016 -->
<var name="StaveFacesheetT" value="0.15"/>
<var name="StaveBusGlueT" value="2 * 0.025 + 0.1"/> <!-- Includes module-to-bus glue, 0.1 mm -->
<var name="StaveBusKaptonT" value="3 * 0.025"/>
<var name="StaveCoreT" value="StaveHoneycombT + 2 * (StaveFacesheetT + StaveBusGlueT + StaveBusKaptonT)"/>
<var name="StaveBusCuT" value="0.018"/>
<var name="StavePlankT" value="StaveCoreT + 4 * StaveBusCuT"/>
<var name="EOSCoreWidth" value="50."/>
<var name="EOSCoreLength" value="100."/>
<var name="EOSCoreT" value="StaveCoreT"/>
<var name="StaveCloseoutFarEndL" value="StaveCoreWidth"/>
<var name="StaveCloseoutFarEndT" value="StaveHoneycombT"/>
<!-- Reference e-mail from Peter Sutcliffe to Nigel, 13 Jan 2016 -->
<var name="StaveCloseoutFarEndW" value="(1754. + 328.) / StaveCloseoutFarEndL / StaveCloseoutFarEndT"/>
<var name="StaveCloseoutEOS_EndL" value="StaveCoreWidth + EOSCoreWidth"/>
<var name="StaveCloseoutEOS_EndT" value="StaveHoneycombT"/>
<var name="StaveCloseoutEOS_EndW" value="10.0"/> <!-- Temp. Guessed! -->
<var name="StaveCloseoutLongL" value="StaveCoreLength - StaveCloseoutEOS_EndW - StaveCloseoutFarEndW"/>
<var name="StaveCloseoutLongT" value="2 * 0.05"/> <!-- We do the C as a | of double thickness -->
<var name="StaveCloseoutLongW" value="StaveHoneycombT"/>
<var name="StaveCloseoutLongEOS_L" value="StaveCoreLength - EOSCoreLength - StaveCloseoutFarEndW"/>
<var name="StaveMountL" value="20.0"/> <!-- Guesses; fed up waiting for reply from Ian Wilmut -->
<var name="StaveMountR" value="7.5"/> <!-- Must be small to miss support cylinder and next stave -->
<var name="NumStaveMounts" value="5"/>
<!-- Stave Bus Copper dimensions Ref LB. UG20, 7/1/2016: -->
<var name="StaveTrackWidth" value="0.100"/>
<var name="StaveI2C_Width" value="0.200"/>
<var name="StaveGroundEOS_L" value="92."/>
<var name="StaveGroundEOS_W" value="12.5"/>
<var name="StaveGroundEOS_FromEnd" value="10.5"/>
<var name="StaveGroundEOS_FromTop" value="4.2"/>
<var name="StaveGroundPowerL_Corr" value="48."/>
<var name="StaveGroundPowerL" value="B_N_SensorsPerFace * (B_SensorLength + B_SensorGap) - StaveGroundPowerL_Corr"/>
<var name="StaveGroundPowerW" value="12.0 + StaveI2C_Width + B_N_SensorsPerFace * 71.3 / StaveGroundPowerL"/>
<var name="StaveGroundPowerFromEnd" value="StaveGroundEOS_FromEnd + StaveGroundEOS_W"/>
<var name="StaveGroundPowerFromTop" value="StaveGroundEOS_FromTop + StaveGroundEOS_L - StaveGroundPowerW"/>
<var name="StaveGroundSignalL" value="StaveGroundPowerL"/>
<var name="StaveGroundSignalW" value="11.5"/>
<var name="StaveGroundSignalFromEnd" value="StaveGroundEOS_FromEnd + StaveGroundEOS_W"/>
<var name="StaveGroundSignalFromTop" value="1.0"/>
<var name="StaveSignalEOS_L" value="95."/>
<var name="StaveSignalEOS_W" value="13.15"/>
<var name="StaveSignalEOS_FromEnd" value="9.0"/>
<var name="StaveSignalEOS_FromTop" value="1.4"/>
<var name="StaveSignalPowerL_Corr" value="48."/>
<var name="StaveSignalPowerL" value="B_N_SensorsPerFace * (B_SensorLength + B_SensorGap) - StaveSignalPowerL_Corr"/>
<var name="StaveSignalPowerW" value="13.15 + B_N_SensorsPerFace * 89.3 / StaveSignalPowerL"/>
<var name="StaveSignalPowerFromEnd" value="StaveSignalEOS_FromEnd + StaveSignalEOS_W"/>
<var name="StaveSignalPowerFromTop" value="StaveSignalEOS_FromTop + StaveSignalEOS_L - StaveSignalPowerW"/>
<var name="StaveSignalSignalL" value="StaveSignalPowerL"/>
<var name="StaveSignalSSSignalBigW" value="(3 + 2 * B_N_SensorsPerFace) * 2 * StaveTrackWidth"/>
<var name="StaveSignalSSSignalSmallW" value="(3 + 2) * 2 * StaveTrackWidth"/>
<var name="StaveSignalMSSignalBigW" value="(3 + B_N_SensorsPerFace) * 2 * StaveTrackWidth"/>
<var name="StaveSignalMSSignalSmallW" value="(3 + 1) * 2 * StaveTrackWidth"/>
<var name="StaveSignalSignalFromEnd" value="StaveSignalEOS_FromEnd + StaveSignalEOS_W"/>
<var name="StaveSignalSignalFromTop" value="StaveSignalEOS_FromTop"/>
<var name="StaveCFoamT" value="StaveHoneycombT"/>
<var name="StaveCFoamW" value="10.0"/>
<var name="StaveCoolingL" value="StaveCoreLength - StaveCloseoutEOS_EndW - StaveCloseoutFarEndW"/>
<var name="StaveCoolingOffset" value="25."/>
<var name="StaveCoolingPipeOD" value="2.275"/>
<var name="StaveCoolingPipeID" value="1.975"/> <!-- 0.1 mm wall thickness on drawing, but not yet achieved so thicker -->
<var name="StaveEOS_CFoamL" value="60.0"/> <!-- Ref: np49-01-141.pdf 1/3/2016 -->
<var name="StaveEOS_CFoamW" value="73.5"/> <!-- Ref: np49-01-141.pdf 1/3/2016 -->
<vector name="N_StavesInCyl" value="28 40 56 72"/>
<vector name="CylRadius" value="405. 562. 762. 1000."/>
<vector name="TiltAngle" value="0.20071286 0.19198622 0.17453293 0.17453293" />
<!-- 11.5, 11.0, 10.0, 10.0 degrees converted to radians 10/360*2pi = 0.17453293 Upgrade Week Apr 2016, Gregor talk -->
<var name="CylEnvelopeThO" value="42."/> <!-- coreT/2 + EOS_T + roatation + spare ~ 3 + 5 + 22 + 10 -->
<var name="CylEnvelopeThI" value="45."/> <!-- StaveHeightAboveCyl + Cyl-T + Top hat wall height + Hat-thickness
plus some more -->
<var name="StaveGapZ0" value="0.1"/> <!-- each stave shifted this much at z = 0 -->
<var name="StaveSupportCylLength" value="2. * StaveCoreLength"/>
<var name="StaveHeightAboveCyl" value="21."/> <!-- Must not push top-hats inwards beyond inner radius of Strip env. -->
<var name="StaveSupportCylThickness" value="0.6"/>
<var name="StaveCylHatThickness" value="1.0"/>
<var name="StaveCylHatFootWidth" value="10."/>
<var name="StaveCylHatWallHeight" value="20."/>
<var name="StaveCylHatWidth" value="20."/>
<var name="NumberOfHatsPerCyl" value="7"/>
<var name="StaveSupportCylInnerRad0" value="CylRadius_0 - StaveHeightAboveCyl - StaveSupportCylThickness"/>
<var name="StaveSupportCylInnerRad1" value="CylRadius_1 - StaveHeightAboveCyl - StaveSupportCylThickness"/>
<var name="StaveSupportCylInnerRad2" value="CylRadius_2 - StaveHeightAboveCyl - StaveSupportCylThickness"/>
<var name="StaveSupportCylInnerRad3" value="CylRadius_3 - StaveHeightAboveCyl - StaveSupportCylThickness"/>
<var name="InnerPolyModThickness" value="20."/>
<var name="InnerPolyModHalfLength" value="StaveCoreLength - EOSCoreLength - 50.0"/>
</defines>
<!-- Build up SS and MS barrel hybrids -->
<defines>
<!-- Ref. np49-01-104.pdf, Rev C June 2014, ignore extension for HCC -->
<var name="B_HybridW" value="15.5"/>
<var name="B_HybridL" value="B_SensorWidth"/>
<var name="B_HybridT" value="0.120 + 0.240 + 0.080"/>
<var name="HCC_OffsetX" value="B_HybridW/2 - (3.55 + 0.5 + ABC_W + HCC_L/2)"/>
<var name="HCC_OffsetY" value="36.41 + HCC_W/2"/>
<var name="NumABC_PerB_Hybrid" value="10"/>
<var name="ABC_Pitch" value="1.64 + ABC_L"/>
<var name="ABC_ToHybridEdgeGap" value="0.5"/>
<var name="B_HybridX_Offset" value="5.535"/>
<var name="BCL_HybridExtraW" value="B_SensorLength / 2 - B_HybridX_Offset - B_HybridW"/>
<var name="BCL_HybridExtraL" value="10.0"/>
<var name="BCL_HybridExtraT" value="B_HybridT"/>
</defines>
<shapes>
<box name="shB_HybridPCB" xhalflength="B_HybridW/2" yhalflength="B_HybridL/2" zhalflength="B_HybridT/2 - EPS"/>
<box name="shBCL_HybridExtra" xhalflength="BCL_HybridExtraW/2" yhalflength="BCL_HybridExtraL/2"
zhalflength="BCL_HybridExtraT/2 - EPS"/>
</shapes>
<materials>
<!-- GeoModelXml input created by ConsolidX for B_HybridPCB, version 1.0. -->
<material name='matB_HybridPCB' density='0.002165'>
<elementref ref='Aluminium' fraction='0.008079'/>
<elementref ref='Barium' fraction='0.057375'/>
<elementref ref='Carbon' fraction='0.250888'/>
<elementref ref='Copper' fraction='0.421377'/>
<elementref ref='Gold' fraction='0.004799'/>
<elementref ref='Hydrogen' fraction='0.014609'/>
<elementref ref='Lead' fraction='0.023518'/>
<elementref ref='Nickel' fraction='0.020306'/>
<elementref ref='Nitrogen' fraction='0.048265'/>
<elementref ref='Oxygen' fraction='0.058161'/>
<elementref ref='Silver' fraction='0.024977'/>
<elementref ref='Tin' fraction='0.047647'/>
<elementref ref='Titanium' fraction='0.019999'/>
</material>
</materials>
<!-- End of ConsolidX output -->
<logvol name='B_HybridPCB' shape='shB_HybridPCB' material='matB_HybridPCB'/>
<logvol name="BCL_HybridExtra" shape="shBCL_HybridExtra" material="matB_HybridPCB"/>
<assembly name="B_HybridNear"> <!-- As in near to EOS -->
<logvolref ref="B_HybridPCB"/>
<transform>
<transformation name="PlaceHCCOnB_Hybrid">
<translation x="HCC_OffsetX" y="HCC_OffsetY" z="(B_HybridT + HCC_T) / 2"/>
</transformation>
<logvolref ref="HCC_Chip"/>
</transform>
<multicopy name="PlaceABCsOnB_Hybrid" n="NumABC_PerB_Hybrid">
<transformation name="PlaceABCOnHybrid">
<translation y="ABC_Pitch"/>
</transformation>
<transform>
<transformation name="ABC_ReadyForCopyingToB_Hybrid">
<translation x="B_HybridW/2 - ABC_ToHybridEdgeGap - ABC_W/2"
y="-((NumABC_PerB_Hybrid - 1) * ABC_Pitch / 2.)"
z="(B_HybridT + ABC_T) / 2"/>
</transformation>
<logvolref ref="ABC_Chip"/>
</transform>
</multicopy>
</assembly>
<assembly name="B_HybridFar">
<logvolref ref="B_HybridPCB"/>
<transform>
<transformation name="PlaceHCCOnB_HybridF">
<translation x="-HCC_OffsetX" y="HCC_OffsetY" z="(B_HybridT + HCC_T) / 2"/>
</transformation>
<logvolref ref="HCC_Chip"/>
</transform>
<multicopy name="PlaceABCsOnB_HybridF" n="NumABC_PerB_Hybrid">
<transformation name="PlaceABCOnHybridF">
<translation y="ABC_Pitch"/>
</transformation>
<transform>
<transformation name="ABC_ReadyForCopyingToB_HybridF">
<translation x="-(B_HybridW/2 - ABC_ToHybridEdgeGap - ABC_W/2)"
y="-((NumABC_PerB_Hybrid - 1) * ABC_Pitch / 2.)"
z="(B_HybridT + ABC_T) / 2"/>
</transformation>
<logvolref ref="ABC_Chip"/>
</transform>
</multicopy>
</assembly>
<assembly name="BCL_Hybrid"> <!-- As in near to EOS -->
<logvolref ref="B_HybridPCB"/>
<transform>
<transformation name="PlaceExtraHybridPCB">
<translation x="-(B_HybridW + BCL_HybridExtraW)/2"
y="(B_HybridL - BCL_HybridExtraL)/2 - 5.0" />
</transformation>
<logvolref ref="BCL_HybridExtra"/>
</transform>
<transform>
<transformation name="PlaceHCCOnBCL_Hybrid">
<translation x="HCC_OffsetX" y="HCC_OffsetY" z="(B_HybridT + HCC_T) / 2"/>
</transformation>
<logvolref ref="HCC_Chip"/>
</transform>
<multicopy name="PlaceABCsOnBCL_Hybrid" n="NumABC_PerB_Hybrid">
<transformation name="PlaceABCOnBCLHybrid">
<translation y="ABC_Pitch"/>
</transformation>
<transform>
<transformation name="ABC_ReadyForCopyingToBCL_Hybrid">
<translation x="B_HybridW/2 - ABC_ToHybridEdgeGap - ABC_W/2"
y="-((NumABC_PerB_Hybrid - 1) * ABC_Pitch / 2.)"
z="(B_HybridT + ABC_T) / 2"/>
</transformation>
<logvolref ref="ABC_Chip"/>
</transform>
</multicopy>
</assembly>
<shapes>
<tube name="shStripB_Cyl0" rmin="StaveSupportCylInnerRad0 + EPS"
rmax="StaveSupportCylInnerRad0 + StaveSupportCylThickness - EPS"
zhalflength="StaveSupportCylLength / 2.0"/>
<!-- For top-hats on inside of cylinder: -->
<tube name="shStaveCylHatFoot0" rmin="StaveSupportCylInnerRad0 - StaveCylHatThickness"
rmax="StaveSupportCylInnerRad0" zhalflength="StaveCylHatFootWidth / 2."/>
<tube name="shStaveCylHatWall0" rmin="StaveSupportCylInnerRad0 - StaveCylHatWallHeight"
rmax="StaveSupportCylInnerRad0" zhalflength="StaveCylHatThickness / 2."/>
<tube name="shStaveCylHatTop0" rmin="StaveSupportCylInnerRad0 - StaveCylHatWallHeight - StaveCylHatThickness"
rmax="StaveSupportCylInnerRad0 - StaveCylHatWallHeight" zhalflength="StaveCylHatWidth / 2."/>
<tube name="shStripB_Cyl1" rmin="StaveSupportCylInnerRad1"
rmax="StaveSupportCylInnerRad1 + StaveSupportCylThickness"
zhalflength="StaveSupportCylLength / 2.0"/>
<tube name="shStaveCylHatFoot1" rmin="StaveSupportCylInnerRad1 - StaveCylHatThickness"
rmax="StaveSupportCylInnerRad1" zhalflength="StaveCylHatFootWidth / 2."/>
<tube name="shStaveCylHatWall1" rmin="StaveSupportCylInnerRad1 - StaveCylHatWallHeight"
rmax="StaveSupportCylInnerRad1" zhalflength="StaveCylHatThickness / 2."/>
<tube name="shStaveCylHatTop1" rmin="StaveSupportCylInnerRad1 - StaveCylHatWallHeight - StaveCylHatThickness"
rmax="StaveSupportCylInnerRad1 - StaveCylHatWallHeight" zhalflength="StaveCylHatWidth / 2."/>
<tube name="shStripB_Cyl2" rmin="StaveSupportCylInnerRad2"
rmax="StaveSupportCylInnerRad2 + StaveSupportCylThickness"
zhalflength="StaveSupportCylLength / 2.0"/>
<tube name="shStaveCylHatFoot2" rmin="StaveSupportCylInnerRad2 - StaveCylHatThickness"
rmax="StaveSupportCylInnerRad2" zhalflength="StaveCylHatFootWidth / 2."/>
<tube name="shStaveCylHatWall2" rmin="StaveSupportCylInnerRad2 - StaveCylHatWallHeight"
rmax="StaveSupportCylInnerRad2" zhalflength="StaveCylHatThickness / 2."/>
<tube name="shStaveCylHatTop2" rmin="StaveSupportCylInnerRad2 - StaveCylHatWallHeight - StaveCylHatThickness"
rmax="StaveSupportCylInnerRad2 - StaveCylHatWallHeight" zhalflength="StaveCylHatWidth / 2."/>
<tube name="shStripB_Cyl3" rmin="StaveSupportCylInnerRad3"
rmax="StaveSupportCylInnerRad3 + StaveSupportCylThickness"
zhalflength="StaveSupportCylLength / 2.0"/>
<tube name="shStaveCylHatFoot3" rmin="StaveSupportCylInnerRad3 - StaveCylHatThickness"
rmax="StaveSupportCylInnerRad3" zhalflength="StaveCylHatFootWidth / 2."/>
<tube name="shStaveCylHatWall3" rmin="StaveSupportCylInnerRad3 - StaveCylHatWallHeight"
rmax="StaveSupportCylInnerRad3" zhalflength="StaveCylHatThickness / 2."/>
<tube name="shStaveCylHatTop3" rmin="StaveSupportCylInnerRad3 - StaveCylHatWallHeight - StaveCylHatThickness"
rmax="StaveSupportCylInnerRad3 - StaveCylHatWallHeight" zhalflength="StaveCylHatWidth / 2."/>
</shapes>
<logvol name="StaveCylHatFoot0" shape="shStaveCylHatFoot0" material="CFRP"/>
<logvol name="StaveCylHatWall0" shape="shStaveCylHatWall0" material="CFRP"/>
<logvol name="StaveCylHatTop0" shape="shStaveCylHatTop0" material="CFRP"/>
<logvol name="StaveCylHatFoot1" shape="shStaveCylHatFoot1" material="CFRP"/>
<logvol name="StaveCylHatWall1" shape="shStaveCylHatWall1" material="CFRP"/>
<logvol name="StaveCylHatTop1" shape="shStaveCylHatTop1" material="CFRP"/>
<logvol name="StaveCylHatFoot2" shape="shStaveCylHatFoot2" material="CFRP"/>
<logvol name="StaveCylHatWall2" shape="shStaveCylHatWall2" material="CFRP"/>
<logvol name="StaveCylHatTop2" shape="shStaveCylHatTop2" material="CFRP"/>
<logvol name="StaveCylHatFoot3" shape="shStaveCylHatFoot3" material="CFRP"/>
<logvol name="StaveCylHatWall3" shape="shStaveCylHatWall3" material="CFRP"/>
<logvol name="StaveCylHatTop3" shape="shStaveCylHatTop3" material="CFRP"/>
<assembly name="StaveCylHat0">
<logvolref ref="StaveCylHatTop0"/>
<transform>
<transformation name="PlaceStaveCylHatWall0Low">
<translation z="-(StaveCylHatWidth / 2. - StaveCylHatThickness / 2.)"/>
</transformation>
<logvolref ref="StaveCylHatWall0"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatWall0High">
<translation z="StaveCylHatWidth / 2. - StaveCylHatThickness / 2."/>
</transformation>
<logvolref ref="StaveCylHatWall0"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatFoot0Low">
<translation z="-(StaveCylHatWidth / 2. + StaveCylHatFootWidth / 2.)"/>
</transformation>
<logvolref ref="StaveCylHatFoot0"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatFoot0High">
<translation z="StaveCylHatWidth / 2. + StaveCylHatFootWidth / 2."/>
</transformation>
<logvolref ref="StaveCylHatFoot0"/>
</transform>
</assembly>
<assembly name="StaveCylHat1">
<logvolref ref="StaveCylHatTop1"/>
<transform>
<transformation name="PlaceStaveCylHatWall1Low">
<translation z="-(StaveCylHatWidth / 2. - StaveCylHatThickness / 2.)"/>
</transformation>
<logvolref ref="StaveCylHatWall1"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatWall1High">
<translation z="StaveCylHatWidth / 2. - StaveCylHatThickness / 2."/>
</transformation>
<logvolref ref="StaveCylHatWall1"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatFoot1Low">
<translation z="-(StaveCylHatWidth / 2. + StaveCylHatFootWidth / 2.)"/>
</transformation>
<logvolref ref="StaveCylHatFoot1"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatFoot1High">
<translation z="StaveCylHatWidth / 2. + StaveCylHatFootWidth / 2."/>
</transformation>
<logvolref ref="StaveCylHatFoot1"/>
</transform>
</assembly>
<assembly name="StaveCylHat2">
<logvolref ref="StaveCylHatTop2"/>
<transform>
<transformation name="PlaceStaveCylHatWall2Low">
<translation z="-(StaveCylHatWidth / 2. - StaveCylHatThickness / 2.)"/>
</transformation>
<logvolref ref="StaveCylHatWall2"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatWall2High">
<translation z="StaveCylHatWidth / 2. - StaveCylHatThickness / 2."/>
</transformation>
<logvolref ref="StaveCylHatWall2"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatFoot2Low">
<translation z="-(StaveCylHatWidth / 2. + StaveCylHatFootWidth / 2.)"/>
</transformation>
<logvolref ref="StaveCylHatFoot2"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatFoot2High">
<translation z="StaveCylHatWidth / 2. + StaveCylHatFootWidth / 2."/>
</transformation>
<logvolref ref="StaveCylHatFoot2"/>
</transform>
</assembly>
<assembly name="StaveCylHat3">
<logvolref ref="StaveCylHatTop3"/>
<transform>
<transformation name="PlaceStaveCylHatWall3Low">
<translation z="-(StaveCylHatWidth / 2. - StaveCylHatThickness / 2.)"/>
</transformation>
<logvolref ref="StaveCylHatWall3"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatWall3High">
<translation z="StaveCylHatWidth / 2. - StaveCylHatThickness / 2."/>
</transformation>
<logvolref ref="StaveCylHatWall3"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatFoot3Low">
<translation z="-(StaveCylHatWidth / 2. + StaveCylHatFootWidth / 2.)"/>
</transformation>
<logvolref ref="StaveCylHatFoot3"/>
</transform>
<transform>
<transformation name="PlaceStaveCylHatFoot3High">
<translation z="StaveCylHatWidth / 2. + StaveCylHatFootWidth / 2."/>
</transformation>
<logvolref ref="StaveCylHatFoot3"/>
</transform>
</assembly>
<assembly name="Barrel0Support">
<logvol name="StripB_Cyl0" shape="shStripB_Cyl0" material="CFRP"/>
<multicopy name="PlaceHatsCyl0" n="NumberOfHatsPerCyl">
<transformation name="TranslateHatsCyl0">
<translation z="StaveSupportCylLength / (NumberOfHatsPerCyl + 1)"/>
</transformation>
<transform>
<transformation name="PlaceTopHatAtLowEnd0">
<translation z="-StaveSupportCylLength / 2. + StaveSupportCylLength / (NumberOfHatsPerCyl + 1)"/>
</transformation>
<assemblyref ref="StaveCylHat0"/>
</transform>
</multicopy>
</assembly>
<assembly name="Barrel1Support">
<logvol name="StripB_Cyl1" shape="shStripB_Cyl1" material="CFRP"/>
<multicopy name="PlaceHatsCyl1" n="NumberOfHatsPerCyl">
<transformation name="TranslateHatsCyl1">
<translation z="StaveSupportCylLength / (NumberOfHatsPerCyl + 1)"/>
</transformation>
<transform>
<transformation name="PlaceTopHatAtLowEnd1">
<translation z="-StaveSupportCylLength / 2. + StaveSupportCylLength / (NumberOfHatsPerCyl + 1)"/>
</transformation>
<assemblyref ref="StaveCylHat1"/>
</transform>
</multicopy>
</assembly>
<assembly name="Barrel2Support">
<logvol name="StripB_Cyl2" shape="shStripB_Cyl2" material="CFRP"/>
<multicopy name="PlaceHatsCyl2" n="NumberOfHatsPerCyl">
<transformation name="TranslateHatsCyl2">
<translation z="StaveSupportCylLength / (NumberOfHatsPerCyl + 1)"/>
</transformation>
<transform>
<transformation name="PlaceTopHatAtLowEnd2">
<translation z="-StaveSupportCylLength / 2. + StaveSupportCylLength / (NumberOfHatsPerCyl + 1)"/>
</transformation>
<assemblyref ref="StaveCylHat2"/>
</transform>
</multicopy>
</assembly>
<assembly name="Barrel3Support">
<logvol name="StripB_Cyl3" shape="shStripB_Cyl3" material="CFRP"/>
<multicopy name="PlaceHatsCyl3" n="NumberOfHatsPerCyl">
<transformation name="TranslateHatsCyl3">
<translation z="StaveSupportCylLength / (NumberOfHatsPerCyl + 1)"/>
</transformation>
<transform>
<transformation name="PlaceTopHatAtLowEnd3">
<translation z="-StaveSupportCylLength / 2. + StaveSupportCylLength / (NumberOfHatsPerCyl + 1)"/>
</transformation>
<assemblyref ref="StaveCylHat3"/>
</transform>
</multicopy>
</assembly>
<defines>
<!-- ABC chip ref. np49-01-104.pdf -->
<var name="ChipT" value="0.31"/>
<!-- Ref Hessey radlen calcs from few years ago, which came from a talk by Anginholfi on future plans -->
<var name="ABC_W" value="6.0"/>
<var name="ABC_L" value="7.9"/>
<var name="ABC_T" value="ChipT"/>
<!-- Ref. HCC_PADFRAME.pdf, Fri 13th June 2014 -->
<var name="HCC_W" value="4.7"/>
<var name="HCC_L" value="2.86"/>
<var name="HCC_T" value="ChipT"/>
<!-- Ref. Paulo Moreira GBT status talk, 20?? -->
<var name="GBT_W" value="5.5"/>
<var name="GBT_L" value="5.5"/>
<var name="GBT_T" value="ChipT"/>
<!-- Ref. Complete guess. Smaller than GBT. -->
<var name="GBT_SCA_W" value="2.5"/>
<var name="GBT_SCA_L" value="2.5"/>
<var name="GBT_SCA_T" value="ChipT"/>
</defines>
<shapes>
<box name="shABC_Chip" xhalflength="ABC_W/2" yhalflength="ABC_L/2" zhalflength="ABC_T/2 - EPS" />
<box name="shHCC_Chip" xhalflength="HCC_W/2" yhalflength="HCC_L/2" zhalflength="HCC_T/2 - EPS" />
<box name="shGBT_Chip" xhalflength="GBT_W/2" yhalflength="GBT_L/2" zhalflength="GBT_T/2 - EPS" />
<box name="shGBT_SCA_Chip" xhalflength="GBT_SCA_W/2" yhalflength="GBT_SCA_L/2" zhalflength="GBT_SCA_T/2 - EPS" />
</shapes>
<logvol name="ABC_Chip" shape="shABC_Chip" material="SiMetal"/>
<logvol name="HCC_Chip" shape="shHCC_Chip" material="SiMetal"/>
<logvol name="GBT_Chip" shape="shGBT_Chip" material="SiMetal"/>
<logvol name="GBT_SCA_Chip" shape="shGBT_SCA_Chip" material="SiMetal"/>
<!-- Inner Tracker dimensions and things common to barrel and endcap. -->
<defines>
<var name="PI" value="acos(-1.0)"/>
<var name="DEG" value="PI/180."/> <!-- Use as value="10*DEG" so it converts to radians for you -->
<var name="EPS" value="2.e-3"/> <!-- 2 micron to subtract from touching volumes to avoid G4 errors -->
<vector name="CNL" value="0 0 0 0 0 0 0 0 0"/> <!-- Special for indexes; length >= no. levels -->
<!--
ITk (defined in C++ code) contains Strip (aka SCT) + Pixel + Beampipe
SCT contains PolymoderatorOC and StripB + StripB_ServicesGap + StripB_ServicesEC and StripEC + StripEC_Services + StripPP1
Numbers mostly from EDMS 1530699 v1.3
-->
<var name="ITkOuterRadius" value="1130."/> <!-- Cryo inner r is 1150. mm, ref. blue book ATLAS exp at LHC -->
<var name="ITkHalfLength" value="3475."/> <!-- ITk env. v 1.4 has 3505 but reduced to 3475 to make space for HGTD
E-mail Simon Viel, 18/10/2016 -->
<!-- E-mail Sabine 2015-10-26 for next three numbers -->
<var name="StripOuterRadius" value="ITkOuterRadius"/>
<var name="StripInnerRadius" value="361.751"/>
<var name="StripHalfLength" value="3326."/>
<var name="PolymoderatorOCOuterRadius" value="StripOuterRadius"/>
<var name="PolymoderatorOCInnerRadius" value="1045."/>
<var name="PolymoderatorOCLength" value="2*3170.+0.1"/> <!-- DeGeorge envelope drawing -->
<var name="StripB_OuterRadius" value="PolymoderatorOCInnerRadius"/>
<var name="StripB_InnerRadius" value="StripInnerRadius"/>
<var name="StripB_HalfLength" value="1380."/> <!-- Envelope 1376 dropped in v1.4; set bit bigger than stave length -->
<var name="StripB_ServicesGapOuterRadius" value="1015."/>
<var name="StripB_ServicesGapInnerRadius" value="StripInnerRadius"/>
<var name="StripB_ServicesGapZ_Start" value="StripB_HalfLength"/>
<var name="StripB_ServicesGapZ_End" value="StripB_ServicesGapZ_Start + 100."/>
<var name="StripB_ServicesGapHalfLength" value="(StripB_ServicesGapZ_End - StripB_ServicesGapZ_Start) / 2."/>
<var name="StripB_ServicesEC_OuterRadius" value="StripB_OuterRadius"/>
<var name="StripB_ServicesEC_InnerRadius" value="StripB_ServicesGapOuterRadius"/>
<var name="StripB_ServicesEC_Z_Start" value="StripB_ServicesGapZ_Start"/>
<var name="StripB_ServicesEC_Z_End" value="StripHalfLength"/>
<var name="StripB_ServicesEC_HalfLength" value="(StripB_ServicesEC_Z_End - StripB_ServicesEC_Z_Start) / 2."/>
<var name="StripEC_OuterRadius" value="989."/> <!-- Was 985. Increased to accommodate M. Doets wheel design. -->
<var name="StripEC_InnerRadius" value="StripInnerRadius"/>
<var name="StripEC_Z_Start" value="StripB_ServicesGapZ_End"/>
<var name="StripEC_Z_End" value="3130. - 1."/>
<var name="StripEC_HalfLength" value="(StripEC_Z_End - StripEC_Z_Start) / 2."/>
<var name="StripEC_ServicesOuterRadius" value="1011"/> <!-- Env. def v1.4 -->
<var name="StripEC_ServicesInnerRadius" value="StripEC_OuterRadius"/>
<var name="StripEC_ServicesZ_Start" value="StripEC_Z_Start"/>
<var name="StripEC_ServicesZ_End" value="StripEC_Z_End - 2."/>
<var name="StripEC_ServicesHalfLength" value="(StripEC_ServicesZ_End - StripEC_ServicesZ_Start) / 2."/>
<var name="StripEC_PP1OuterRadius" value="StripB_ServicesEC_InnerRadius"/>
<var name="StripEC_PP1InnerRadius" value="StripInnerRadius"/>
<var name="StripEC_PP1Z_Start" value="StripEC_Z_End"/>
<var name="StripEC_PP1Z_End" value="StripHalfLength"/>
<var name="StripEC_PP1HalfLength" value="(StripEC_PP1Z_End - StripEC_PP1Z_Start) / 2."/>
</defines>
<defines>
<!-- Ref: NP49-01-104.pdf Ver. C 24 June 2014-->
<var name="DCDC_PCB_W" value="8.0"/>
<var name="DCDC_PCB_L" value="53.85"/>
<var name="DCDC_PCB_T" value="0.66"/>
<!-- modified to follow Tony Affolder values from his spreadsheet powering-X-calculator-01011v10.xls -->
<var name="DCDC_BoxW" value="8.5"/>
<var name="DCDC_BoxL" value="19.0"/>
<var name="DCDC_BoxT" value="4.5"/>
<var name="DCDC_BCL_PCB_W" value="0.5 * DCDC_PCB_L"/> <!-- Keep same vol. and material as barrel -->
<var name="DCDC_BCL_PCB_L" value="2.0 * DCDC_PCB_W"/>
<var name="DCDC_BCL_PCB_T" value="0.66"/>
<var name="DCDC_BCL_BoxW" value="DCDC_BoxL"/>
<var name="DCDC_BCL_BoxL" value="DCDC_BoxW"/>
<var name="DCDC_BCL_BoxT" value="DCDC_BoxT"/>
</defines>
<materials>
<!-- GeoModelXml input created by ConsolidX for DCDC_PCB, version 1.0. -->
<material name='matDCDC_PCB' density='0.004929'>
<elementref ref='Aluminium' fraction='0.000974'/>
<elementref ref='Barium' fraction='0.139637'/>
<elementref ref='Carbon' fraction='0.114105'/>
<elementref ref='Copper' fraction='0.259533'/>
<elementref ref='Gold' fraction='0.001686'/>
<elementref ref='Hydrogen' fraction='0.010639'/>
<elementref ref='Lead' fraction='0.015838'/>
<elementref ref='Nickel' fraction='0.026116'/>
<elementref ref='Oxygen' fraction='0.215126'/>
<elementref ref='Silicon' fraction='0.122968'/>
<elementref ref='Silver' fraction='0.000614'/>
<elementref ref='Tin' fraction='0.044091'/>
<elementref ref='Titanium' fraction='0.048672'/>
</material>
<!-- GeoModelXml input created by ConsolidX for DCDC_CoilShield, version 1.0. -->
<material name='matDCDC_Box' density='0.000850'>
<elementref ref='Aluminium' fraction='0.178664'/>
<elementref ref='Carbon' fraction='0.254920'/>
<elementref ref='Copper' fraction='0.523632'/>
<elementref ref='Hydrogen' fraction='0.042785'/>
</material>
</materials>
<shapes>
<box name="shDCDC_PCB" xhalflength="DCDC_PCB_W/2" yhalflength="DCDC_PCB_L/2" zhalflength="DCDC_PCB_T/2 - EPS" />
<box name="shDCDC_Box" xhalflength="DCDC_BoxW/2" yhalflength="DCDC_BoxL/2" zhalflength="DCDC_BoxT/2 - EPS" />
<box name="shDCDC_BCL_PCB" xhalflength="DCDC_BCL_PCB_W/2" yhalflength="DCDC_BCL_PCB_L/2" zhalflength="DCDC_BCL_PCB_T/2 - EPS" />
<box name="shDCDC_BCL_Box" xhalflength="DCDC_BCL_BoxW/2" yhalflength="DCDC_BCL_BoxL/2" zhalflength="DCDC_BCL_BoxT/2 - EPS" />
</shapes>
<logvol name="DCDC_PCB" shape="shDCDC_PCB" material="matDCDC_PCB"/>
<logvol name="DCDC_Box" shape="shDCDC_Box" material="matDCDC_Box"/>
<logvol name="DCDC_BCL_PCB" shape="shDCDC_BCL_PCB" material="matDCDC_PCB"/>
<logvol name="DCDC_BCL_Box" shape="shDCDC_BCL_Box" material="matDCDC_Box"/>
<!-- GeoModelXml input created by ConsolidX for BarrelEOSBoard, version 1.0. -->
<material name='matEOS' density='0.001052'>
<elementref ref='Carbon' fraction='0.103183'/>
<elementref ref='Copper' fraction='0.393132'/>
<elementref ref='Hydrogen' fraction='0.009621'/>
<elementref ref='Oxygen' fraction='0.266262'/>
<elementref ref='Silicon' fraction='0.215452'/>
<elementref ref='Tin' fraction='0.012349'/>
</material>
<shapes>
<box name='shEOS' x='100/2' y='45/2' z='5/2'/>
</shapes>
<logvol name='EOS' shape='shEOS' material='matEOS'/>
<defines>
<var name="N_Wheels" value="6"/>
<vector name="WheelZ" value="1512 1702 1952 2252 2602 3000"/>
<var name="NPetalsInWheel" value="32"/>
<var name="CastellationOffset" value="7.5"/>
<var name="PetalCoreInnerRadius" value="380"/>
<var name="PetalCoreOuterRadius" value="975"/>
<var name="PetalCoreThickness" value="5.8"/>
<var name="PetalCoreExtraWidth" value="25"/> <!-- Extra width at outer edges for bus-tape -->
<var name="PetalCoreAngle" value="2*PI/NPetalsInWheel + 2 * PetalCoreExtraWidth / PetalCoreOuterRadius"/>
<var name="PetalEarLength" value="100"/>
<var name="PetalEarWidth" value="60"/>
<var name="PetalEarAngle" value="PetalEarWidth / PetalCoreOuterRadius"/>
<var name="PetalEarInnerRadius" value="PetalCoreOuterRadius - PetalEarLength"/>
<var name="PetalEarOuterRadius" value="PetalCoreOuterRadius"/>
<var name="PetalFaceRotation" value="3.0/PetalCoreOuterRadius"/>
<var name="EC_InnerCylLength" value="2. * StripEC_HalfLength - 2."/>
<var name="EC_InnerCylThickness" value="0.6"/>
<var name="EC_InnerCylInnerR" value="367."/>
<var name="EC_InnerCylOuterR" value="EC_InnerCylInnerR + EC_InnerCylThickness"/>
<var name="WheelSupportOffset" value="40."/>
<var name="WheelInnerT_ShimThickness" value="1.0"/>
<!-- No need for separate shim... add it to InnerBase
<var name="WheelInnerT_ShimInnerR" value="EC_InnerCylOuterR"/>
<var name="WheelInnerT_ShimOuterR" value="EC_InnerCylOuterR + WheelInnerT_ShimThickness"/>
-->
<var name="WheelInnerT_BaseThickness" value="2.0 + WheelInnerT_ShimThickness"/>
<var name="WheelInnerT_BaseWidth" value="20.0"/>
<var name="WheelInnerT_BaseOuterR" value="EC_InnerCylOuterR + WheelInnerT_BaseThickness "/>
<var name="WheelInnerT_UprightThickness" value="3.0"/>
<var name="WheelInnerT_UprightHeight" value="30.0"/>
<var name="WheelInnerT_UprightOuterR" value="WheelInnerT_BaseOuterR + WheelInnerT_UprightHeight"/>
<var name="WheelOuterT_OuterR" value="988.0"/>
<var name="WheelOuterT_BaseThickness" value="2.0"/>
<var name="WheelOuterT_BaseWidth" value="20.0"/>
<var name="WheelOuterT_BaseInnerR" value="WheelOuterT_OuterR - WheelOuterT_BaseThickness"/>
<var name="WheelOuterT_UprightThickness" value="3.0"/>
<var name="WheelOuterT_UprightHeight" value="50.0"/>
<var name="WheelOuterT_UprightInnerR" value="WheelOuterT_BaseInnerR - WheelOuterT_UprightHeight"/>
<!-- Cone modelled as tubes. See layout/LTF/services/StiffDisc.ods -->
<var name="StiffDiscRI" value="EC_InnerCylOuterR + 1."/>
<var name="StiffDiscRO" value="988.0"/>
<var name="StiffDiscCF_T" value="0.9"/>
<var name="StiffDiscFoamT" value="54.5"/>
<var name="StiffDiscTranslation" value="StripEC_HalfLength - StiffDiscFoamT/ 2. - StiffDiscCF_T - 1."/>
<!-- Word of mouth and guesses for the tubes at outer radius of wheels which control their z positions -->
<var name="ZtubeRI" value="3.0"/>
<var name="ZtubeRO" value="5.0"/>
<var name="ZtubeRadialPosition" value="WheelOuterT_OuterR - WheelOuterT_BaseThickness - ZtubeRO - EPS"/>
<var name="nZtubes" value="8"/>
</defines>
<shapes>
<tube name="shEC_InnerCyl" rmin="EC_InnerCylInnerR"
rmax="EC_InnerCylOuterR - EPS" zhalflength="EC_InnerCylLength / 2."/>
<tube name="shWheelInnerT_Base" rmin="EC_InnerCylOuterR"
rmax="WheelInnerT_BaseOuterR" zhalflength="WheelInnerT_BaseWidth / 2."/>
<tube name="shWheelInnerT_Upright" rmin="WheelInnerT_BaseOuterR"
rmax="WheelInnerT_UprightOuterR" zhalflength="WheelInnerT_UprightThickness / 2."/>
<union name="shWheelInnerT">
<shaperef ref="shWheelInnerT_Base"/>
<transformationref ref="IdentityTransform"/>
<shaperef ref="shWheelInnerT_Upright"/>
</union>
<tube name="shWheelOuterT_Base" rmin="WheelOuterT_BaseInnerR"
rmax="WheelOuterT_OuterR" zhalflength="WheelOuterT_BaseWidth / 2.0"/>
<tube name="shWheelOuterT_Upright" rmin="WheelOuterT_UprightInnerR"
rmax="WheelOuterT_BaseInnerR" zhalflength="WheelOuterT_UprightThickness / 2.0"/>
<union name="shWheelOuterT">
<shaperef ref="shWheelOuterT_Base"/>
<transformationref ref="IdentityTransform"/>
<shaperef ref="shWheelOuterT_Upright"/>
</union>
<tube name="shStiffDiscCF" rmin="StiffDiscRI" rmax="StiffDiscRO" zhalflength="StiffDiscCF_T / 2."/>
<tube name="shStiffDiscFoam" rmin="StiffDiscRI" rmax="StiffDiscRO" zhalflength="StiffDiscFoamT / 2. - 2. * EPS"/>
<tube name="shZtubeD0D1" rmin="ZtubeRI" rmax="ZtubeRO"
zhalflength="(WheelZ_1 - WheelZ_0 - WheelOuterT_UprightThickness) / 2. - EPS"/>
<tube name="shZtubeD1D2" rmin="ZtubeRI" rmax="ZtubeRO"
zhalflength="(WheelZ_2 - WheelZ_1 - WheelOuterT_UprightThickness) / 2. - EPS"/>
<tube name="shZtubeD2D3" rmin="ZtubeRI" rmax="ZtubeRO"
zhalflength="(WheelZ_3 - WheelZ_2 - WheelOuterT_UprightThickness) / 2. - EPS"/>
<tube name="shZtubeD3D4" rmin="ZtubeRI" rmax="ZtubeRO"
zhalflength="(WheelZ_4 - WheelZ_3 - WheelOuterT_UprightThickness) / 2. - EPS"/>
<tube name="shZtubeD4D5" rmin="ZtubeRI" rmax="ZtubeRO"
zhalflength="(WheelZ_5 - WheelZ_4 - WheelOuterT_UprightThickness) / 2. - EPS"/>
</shapes>
<logvol name="EC_InnerCyl" shape="shEC_InnerCyl" material="CFRP"/>
<logvol name="WheelInnerT" shape="shWheelInnerT" material="CFRP"/>
<logvol name="WheelOuterT" shape="shWheelOuterT" material="CFRP"/>
<logvol name="StiffDiscCF" shape="shStiffDiscCF" material="CFRP"/>
<logvol name="StiffDiscFoam" shape="shStiffDiscFoam" material="Rohacell110A"/>
<logvol name="ZtubeD0D1" shape="shZtubeD0D1" material="CFRP"/>
<logvol name="ZtubeD1D2" shape="shZtubeD1D2" material="CFRP"/>
<logvol name="ZtubeD2D3" shape="shZtubeD2D3" material="CFRP"/>
<logvol name="ZtubeD3D4" shape="shZtubeD3D4" material="CFRP"/>
<logvol name="ZtubeD4D5" shape="shZtubeD4D5" material="CFRP"/>
<assembly name="WheelSupport">
<logvolref ref="WheelInnerT"/>
<logvolref ref="WheelOuterT"/>
</assembly>
<assembly name="Ztubes">
<!-- We place each tube midway between discs, remembering how much the whole endcap will be shifted when placed -->
<transform>
<transformation name="PlaceZtubeD0D1">
<translation z="-(StripEC_Z_Start + 0.5 + EC_InnerCylLength / 2.) + (WheelZ_0 + WheelZ_1) / 2.0 + WheelSupportOffset"/>
</transformation>
<logvolref ref="ZtubeD0D1"/>
</transform>
<transform>
<transformation name="PlaceZtubeD1D2">
<translation z="-(StripEC_Z_Start + 0.5 + EC_InnerCylLength / 2.) + (WheelZ_1 + WheelZ_2) / 2.0 + WheelSupportOffset"/>
</transformation>
<logvolref ref="ZtubeD1D2"/>
</transform>
<transform>
<transformation name="PlaceZtubeD2D3">
<translation z="-(StripEC_Z_Start + 0.5 + EC_InnerCylLength / 2.) + (WheelZ_2 + WheelZ_3) / 2.0 + WheelSupportOffset"/>
</transformation>
<logvolref ref="ZtubeD2D3"/>
</transform>
<transform>
<transformation name="PlaceZtubeD3D4">
<translation z="-(StripEC_Z_Start + 0.5 + EC_InnerCylLength / 2.) + (WheelZ_3 + WheelZ_4) / 2.0 + WheelSupportOffset"/>
</transformation>
<logvolref ref="ZtubeD3D4"/>
</transform>
<transform>
<transformation name="PlaceZtubeD4D5">
<translation z="-(StripEC_Z_Start + 0.5 + EC_InnerCylLength / 2.) + (WheelZ_4 + WheelZ_5) / 2.0 + WheelSupportOffset"/>
</transformation>
<logvolref ref="ZtubeD4D5"/>
</transform>
</assembly>
<assembly name="StiffDisc">
<logvolref ref="StiffDiscFoam"/>
<transform>
<transformation name="PlaceNearFaceSheetStiffDisc">
<translation z="-(StiffDiscFoamT + StiffDiscCF_T) / 2.0"/>
</transformation>
<logvolref ref="StiffDiscCF"/>
</transform>
<transform>
<transformation name="PlaceFarFaceSheetStiffDisc">
<translation z="(StiffDiscFoamT + StiffDiscCF_T) / 2.0"/>
</transformation>
<logvolref ref="StiffDiscCF"/>
</transform>
</assembly>
<assembly name="EC_Support">
<logvolref ref="EC_InnerCyl"/>
<!-- For now, add support wheels with wheel-of-petals
<multicopy name="AddSupportWheels" loopvar="WheelZ" n="N_Wheels" >
????
</multicopy>
-->
<transform>
<transformation name="PlaceStiffDisc">
<translation z="StiffDiscTranslation"/>
</transformation>
<assemblyref ref="StiffDisc"/>
</transform>
<multicopy name="AddZtubes" n="nZtubes">
<transformation name="PlaceZtubes">
<rotation zcos="1." angle="2. * PI / nZtubes"/>
</transformation>
<transform>
<transformation name="PlaceZtubesReadyForRotation">
<translation x="ZtubeRadialPosition"/>
</transformation>
<assemblyref ref="Ztubes"/>
</transform>
</multicopy>
</assembly>
<!-- CNL_n meanings:
n Meaning Range
0 SCT Envelope 0
1 Endcap envelope 0 - 1
2 Endcap 0 - 1
3 Wheel 0 - 6
4 Pair 0 - 15
5 Petal 0 - 1
6 Face 0 - 1
7 Sensor 0 - 1 (phi-direction)
-->
&endcapdefines;
<shapes>
<tubs name="ShPetalCore" rmin="PetalCoreInnerRadius" rmax="PetalCoreOuterRadius" zhalflength="PetalCoreThickness/2 - EPS"
sphi="-PetalCoreAngle/2" dphi="PetalCoreAngle"/>
<tubs name="ShPetalEOS" rmin="PetalEarInnerRadius" rmax="PetalEarOuterRadius" zhalflength="PetalCoreThickness/2 - EPS"
sphi="-PetalEarAngle/2" dphi="PetalEarAngle"/>
<union name="ShPetal1EOS">
<shaperef ref="ShPetalCore"/>
<transformation name="PlaceFirstEOS">
<rotation zcos="1" angle="(PetalCoreAngle + PetalEarAngle)/2"/>
</transformation>
<shaperef ref="ShPetalEOS"/>
</union>
</shapes>
&endcapsupports;
<materials>
<material name="MatPetalSupport" density="1.133"> <!-- Density tuned to get 2.0 % rad length per layer -->
<materialref ref="MatStaveSupport" fraction="1.0"/>
</material>
</materials>
<logvol name="PetalPlank" shape="ShPetal1EOS" material="MatPetalSupport"/>
<assembly name="PetalFace">
<index ref="phi_module" value="2*CNL_4 + CNL_5"/> <!-- 0 to 31. -->
<logvolref ref="ECSensor0" zeroid="true"/>
<logvolref ref="ECSensor1" zeroid="true"/>
<logvolref ref="ECSensor2" zeroid="true"/>
<!-- For outer rings, we have to add or subtract the phi copy number (CNL_7)
according to which way round the face is in the wheel. 0 - 63. -->
<index ref="phi_module" value="2*(2*CNL_4 + CNL_5) +
(CNL_5 == 0 &amp;&amp; CNL_6 == 0) * (1 - CNL_7) +
(CNL_5 == 0 &amp;&amp; CNL_6 == 1) * CNL_7 +
(CNL_5 == 1 &amp;&amp; CNL_6 == 0) * CNL_7 +
(CNL_5 == 1 &amp;&amp; CNL_6 == 1) * (1 - CNL_7)"/>
<transform>
<transformation name="PlaceFaceRing3Minus">
<rotation zcos="1.0" angle="-SensorRotation_3"/>
</transformation>
<logvolref ref="ECSensor3" zeroid="true"/>
</transform>
<transform>
<transformation name="PlaceFaceRing4Minus">
<rotation zcos="1.0" angle="-SensorRotation_4"/>
</transformation>
<logvolref ref="ECSensor4" zeroid="true"/>
</transform>
<transform>
<transformation name="PlaceFaceRing5Minus">
<rotation zcos="1.0" angle="-SensorRotation_5"/>
</transformation>
<logvolref ref="ECSensor5" zeroid="true"/>
</transform>
<transform>
<transformation name="PlaceFaceRing3Plus">
<rotation zcos="1.0" angle="+SensorRotation_3"/>
</transformation>
<logvolref ref="ECSensor3" />
</transform>
<transform>
<transformation name="PlaceFaceRing4Plus">
<rotation zcos="1.0" angle="+SensorRotation_4"/>
</transformation>
<logvolref ref="ECSensor4" />
</transform>
<transform>
<transformation name="PlaceFaceRing5Plus">
<rotation zcos="1.0" angle="+SensorRotation_5"/>
</transformation>
<logvolref ref="ECSensor5" />
</transform>
</assembly>
<assembly name="Petal">
<logvolref ref="PetalPlank"/>
<transform name="NearFace">
<transformation name="PlacePetalFaceNear">
<translation z="-(PetalCoreThickness + SensorThickness)/2"/>
<rotation xcos="1." angle="PI"/> <!-- Move strips to low-z side -->
<rotation zcos="1." angle="PetalFaceRotation"/>
</transformation>
<assemblyref ref="PetalFace" zeroid="true"/>
</transform>
<transform name="FarFace">
<transformation name="PlacePetalFaceFar">
<translation z="(PetalCoreThickness + SensorThickness)/2"/>
<rotation zcos="1." angle="PetalFaceRotation"/>
</transformation>
<assemblyref ref="PetalFace"/>
</transform>
</assembly>
<assembly name="PetalPair">
<index ref="side" value="CNL_6"/>
<transform name="Near">
<transformation name="PlaceCastleNear">
<translation z="-CastellationOffset"/>
</transformation>
<assemblyref ref="Petal" zeroid="true"/>
</transform>
<index ref="side" value="1 - CNL_6"/>
<transform name="Far">
<transformation name="PlaceCastleFar">
<translation z="+CastellationOffset"/>
<rotation zcos="1." angle="2*PI/NPetalsInWheel"/>
<rotation xcos="1." angle="2*PI/2"/>
</transformation>
<assemblyref ref="Petal"/>
</transform>
</assembly>
<assembly name="Wheel">
<index ref="layer_wheel" value="CNL_3"/>
<multicopy name="AddPetalPairsToWheel" n="NPetalsInWheel/2" >
<transformation name="PlacePetalPairsToWheel">
<rotation zcos="1." angle="2*PI/(NPetalsInWheel/2)"/>
</transformation>
<assemblyref ref="PetalPair"/>
</multicopy>
<transform>
<transformation name="PlaceWheelSupport">
<translation z="WheelSupportOffset"/>
</transformation>
<assemblyref ref="WheelSupport"/>
</transform>
</assembly>
<assembly name="SCT_Forward">
<multicopy name="AddWheelsToEndcap" n="N_Wheels" loopvar="WheelZ">
<transformation name="PlaceWheels">
<translation z="WheelZ"/>
</transformation>
<assemblyref ref="Wheel"/>
</multicopy>
<transform>
<transformation name="PlaceEC_Support">
<translation z="StripEC_Z_Start + 0.5 + EC_InnerCylLength / 2."/>
</transformation>
<assemblyref ref="EC_Support"/>
</transform>
</assembly>
<!-- Inner Tracker common items like polythene moderator, outer cyl support etc. -->
<defines>
<!-- Ref EDMS 1516118, Viehhauser, p. 10; deGeorge envelope model for length -->
<var name="OC_Length" value="PolymoderatorOCLength - 1."/>
<var name="OC_SkinThickness" value="2.5"/>
<var name="OC_CoreThickness" value="30."/>
<var name="OC_OuterSkinOuterR" value="1101."/>
<var name="OC_OuterSkinInnerR" value="OC_OuterSkinOuterR - OC_SkinThickness"/>
<var name="OC_InnerSkinOuterR" value="OC_OuterSkinInnerR - OC_CoreThickness"/>
<var name="OC_InnerR" value="OC_InnerSkinOuterR - OC_SkinThickness"/>
<var name="PolyModOuterR" value="PolymoderatorOCOuterRadius"/>
<var name="PolyModThickness" value="25."/> <!-- ref LoI p. 101 -->
<var name="PolyModInnerR" value="PolymoderatorOCOuterRadius - PolyModThickness"/>
<var name="BulkheadRI" value="StripInnerRadius + 5"/>
<var name="BulkheadRO" value="StripEC_ServicesInnerRadius - 25."/>
<var name="BulkheadT" value="6"/> <!-- Guess, 3 May 2016: two facesheets of 3 mm CF -->
<var name="BulkheadTranslation" value="OC_Length/2 - BulkheadT/2 - 2"/>
<var name="EC_PolyModRI" value="StripInnerRadius"/> <!-- To continue from Pixel polyM -->
<var name="EC_PolyModRO" value="PolymoderatorOCInnerRadius"/> <!-- Bit arbitrary. Space for type II limits it -->
<var name="EC_PolyModT" value="70."/> <!-- Ben Smart choice for pixel part -->
<!-- We put PP1's here because they are attached to the supports rather than barrel or endcap -->
<var name="B_PP1_Z_Start" value="OC_Length / 2 + 1."/>
<var name="B_PP1_Z_End" value="StripHalfLength - 1."/>
<var name="B_PP1_RI" value="StripB_ServicesEC_OuterRadius + 1."/>
<var name="B_PP1_RO" value="OC_OuterSkinOuterR - 1."/>
<var name="B_PP1_L" value="B_PP1_Z_End - B_PP1_Z_Start"/>
<var name="EC_PP1_Z_Start" value="3170 + 1."/>
<var name="EC_PP1_Z_End" value="3270 - 1."/>
<var name="EC_PP1_RI" value="750."/>
<var name="EC_PP1_RO" value="BulkheadRO"/>
<var name="EC_PP1_L" value="EC_PP1_Z_End - EC_PP1_Z_Start"/>
</defines>
<shapes>
<tube name="shPolyModOCEnvelope" rmin="PolymoderatorOCInnerRadius" rmax="PolymoderatorOCOuterRadius - 2*EPS"
zhalflength="PolymoderatorOCLength/2"/>
<tube name="shOC_InnerFace" rmin="OC_InnerR" rmax="OC_InnerSkinOuterR" zhalflength="OC_Length/2"/>
<tube name="shOC_Core" rmin="OC_InnerSkinOuterR + EPS" rmax="OC_OuterSkinInnerR - EPS" zhalflength="OC_Length/2"/>
<tube name="shOC_OuterFace" rmin="OC_OuterSkinInnerR" rmax="OC_OuterSkinOuterR" zhalflength="OC_Length/2"/>
<tube name="shBulkhead" rmin="BulkheadRI" rmax="BulkheadRO" zhalflength="BulkheadT/2"/>
<tube name="shPolyMod" rmin="PolyModInnerR" rmax="PolyModOuterR - 3*EPS" zhalflength="OC_Length/2"/>
<tube name="shEC_PolyMod" rmin="EC_PolyModRI + EPS" rmax="EC_PolyModRO - EPS" zhalflength="EC_PolyModT/2"/>
<tube name="shB_PP1" rmin="B_PP1_RI" rmax="B_PP1_RO" zhalflength="B_PP1_L/2"/>
<tube name="shEC_PP1" rmin="EC_PP1_RI" rmax="EC_PP1_RO" zhalflength="EC_PP1_L/2"/>
</shapes>
<logvol name="EC_PolyMod" shape="shEC_PolyMod" material="BoratedPolyethylene"/>
<logvol name="PolyModOCEnvelope" shape="shPolyModOCEnvelope" material="N2">
<logvol name="OC_InnerFace" shape="shOC_InnerFace" material="CFRP"/>
<logvol name="OC_OuterFace" shape="shOC_OuterFace" material="CFRP"/>
<logvol name="OC_Core" shape="shOC_Core" material="Honeycomb10pcf"/>
<logvol name="PolyMod" shape="shPolyMod" material="BoratedPolyethylene"/>
</logvol>
<logvol name="Bulkhead" shape="shBulkhead" material="CFRP"/>
<materials>
<material name="MatB_PP1" density="0.356"> <!-- Hand calc to give 20 kg; logbook UG20 May 13th 2016 -->
<materialref ref="MatStaveSupport" fraction="1.0"/>
</material>
<material name="MatEC_PP1" density="0.177"> <!-- Density from hand calc. to give 20 kg -->
<materialref ref="MatStaveSupport" fraction="1.0"/>
</material>
</materials>
<logvol name="B_PP1" shape="shB_PP1" material="MatB_PP1"/>
<logvol name="EC_PP1" shape="shEC_PP1" material="MatEC_PP1"/>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment