Warning, /DD4hep/examples/DDCMS/data/pixfwdBlade.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0"?>
0002 <DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd">
0003 <!--
0004
0005 == CMS Forward Pixels Geometry ==
0006
0007 @version 3.02.01 May 30, 2006
0008 @created Dmitry Onoprienko
0009 @modified Vesna Cuplov (fix overlaps 05.02.07)
0010
0011 == Subsystem or component described by the file ==
0012
0013 Aluminum base of a blade with a cooling channel (no nipples, no panels).
0014
0015 == Root volume and its reference frame ==
0016
0017 "PixelForwardBlade"
0018
0019 Y is along the axis of the blade, from narrow to wider end. Once the blade
0020 is positioned, its Y axis will be pointing away from the beam line.
0021 Z is perpendicular to the plane of the blade, pointing from "body" (narrow) to "cover" (wide) side.
0022
0023 == Positioning ==
0024
0025 The file defines AnchorX, AnchorY, and AnchorZ
0026 constants that describe the coordinates of the anchor point in the blade
0027 root volume (PixelForwardBlade) reference frame.
0028 Currently, [AnchorX] = [AnchorZ] = 0.
0029
0030 Since the origin of the "blade frame" with respect to which DDPixFwdBlades
0031 algorithm positions all one-per-blade items coincides with the blade anchor point,
0032 the "child translation" vector passed to the algorithm should be
0033 (-[pixfwdBlade:AnchorX], -[pixfwdBlade:AnchorY], -[pixfwdBlade:AnchorZ]).
0034
0035 == Additional comments ==
0036
0037 Blade is implemented so that it consists of
0038 "body" (narrow aluminum side), "cover" (wide aluminum side), and
0039 "tip" (part close to inner ring, common to both sides.
0040 Cooling channel then goes into both "body" and "cover".
0041
0042 Multiple boolean operations are used in describing the tip of the blade and
0043 the crossbar. As a result, IguanaCMS sometimes fails to visualize it properly.
0044 This seems to be a problem for visualization only, not for tracking at simulation time.
0045
0046 -->
0047 <!-- Blade geometry parameters: Input from drawings -->
0048 <ConstantsSection label="Common" eval="true">
0049 <Constant name="T01" value="0.5*mm"/>
0050 <!-- Blade01.gif -->
0051 <Constant name="T02" value="3.0*mm"/>
0052 <!-- Blade01.gif -->
0053 <Constant name="T03" value="0.5*mm"/>
0054 <!-- Blade01.gif -->
0055 <Constant name="T04" value="2.5*mm"/>
0056 <!-- Blade01.gif -->
0057 <Constant name="W01" value="6.5*mm"/>
0058 <!-- Blade01.gif -->
0059 <Constant name="W02" value="7.5*mm"/>
0060 <!-- Blade01.gif -->
0061 <Constant name="W03" value="11.5*mm"/>
0062 <!-- Blade01.gif -->
0063 <Constant name="R01" value="8.57*mm"/>
0064 <!-- Blade02.gif -->
0065 <Constant name="L01" value="57.1*mm"/>
0066 <!-- Blade02.gif -->
0067 <Constant name="L02" value="32.38*mm"/>
0068 <!-- Blade02.gif -->
0069 <Constant name="L03" value="32.42*mm"/>
0070 <!-- Blade02.gif -->
0071 <Constant name="L09" value="48.80*mm"/>
0072 <!-- Blade02.gif -->
0073 <Constant name="A01" value="16.625*deg"/>
0074 <!-- Blade03.gif -->
0075 <Constant name="W04" value="1.0*mm"/>
0076 <!-- Blade03.gif -->
0077 <Constant name="W05" value="4.0*mm"/>
0078 <!-- Blade03.gif -->
0079 <Constant name="R02" value="2.0*mm"/>
0080 <!-- Blade03.gif -->
0081 <Constant name="R03" value="2.0*mm"/>
0082 <!-- Blade03.gif -->
0083 <Constant name="L04" value="9.79*mm"/>
0084 <!-- Blade03.gif -->
0085 <Constant name="L05" value="1.83*mm"/>
0086 <!-- Blade03.gif -->
0087 <Constant name="L10" value="3.47*mm"/>
0088 <!-- Blade03.gif -->
0089 <Constant name="W06" value="5.6*mm"/>
0090 <!-- Blade04.gif -->
0091 <Constant name="R04" value="2.0*mm"/>
0092 <!-- Blade04.gif -->
0093 <Constant name="L06" value="3.77*mm"/>
0094 <!-- Blade04.gif -->
0095 <Constant name="L07" value="3.0*mm"/>
0096 <!-- Blade04.gif -->
0097 <Constant name="L08" value="5.79*mm"/>
0098 <!-- Blade04.gif -->
0099 </ConstantsSection>
0100 <!-- Calculating parameters that will be needed by multiple components : -->
0101 <ConstantsSection label="Common" eval="true">
0102 <!-- Root volume dimensions (may need to be changed later) -->
0103 <Constant name="RootHalfLength" value="([L04]+[L03]+[L01]+[W03]/2.)/2."/>
0104 <Constant name="RootHalfWidth" value="([L02]+[W03])/2."/>
0105 <Constant name="RootHalfThickness" value="[BladeHalfThickness]+0.1*mm"/>
0106 <!-- Coordinates of ancor point -->
0107 <Constant name="AnchorX" value="0."/>
0108 <Constant name="AnchorY" value="-[RootHalfLength]+[L10]"/>
0109 <Constant name="AnchorZ" value="0."/>
0110 <!-- Coordinate of point 0 on Blade02.gif. All other Y-coordinates are relative to it. -->
0111 <Constant name="y00" value="[AnchorY]-[L10]+[L04]+[L03]"/>
0112 <!-- Others -->
0113 <Constant name="zCover" value="([T02]-[T03])/2."/>
0114 <Constant name="zBody" value="-([T01]+[T03])/2."/>
0115 <Constant name="BladeHalfThickness" value="([T01]+[T02])/2."/>
0116 <Constant name="BodyHalfThickness" value="([T02]-[T03])/2."/>
0117 <Constant name="CoverHalfThickness" value="([T01]+[T03])/2."/>
0118 </ConstantsSection>
0119 <!-- Root volume for the blade. This volume is positioned by pixfwdDisk.xml -->
0120 <!-- Previous description from D. Onoprienko
0121 <SolidSection label="Root">
0122 <Box name="PixelForwardBlade" dx="[RootHalfWidth]" dy="[RootHalfLength]" dz="[RootHalfThickness]" />
0123 </SolidSection>
0124 -->
0125 <!-- New Description (05/02/07): Two overlaps were fixed. The overlap with the Nipples was fixed by removing 0.1*mm in the mother volume thickness. The second overlap was: The corners of the box describing the mother volume were going outside the DiskOuterRing, so we remove these corners with a little box for simplicity. -->
0126 <SolidSection label="Root">
0127 <Box name="PixelForwardBlade_main" dx="[RootHalfWidth]" dy="[RootHalfLength]" dz="[RootHalfThickness]-0.1*mm"/>
0128 <Box name="PixelForwardBlade_box" dx="1.5*mm" dy="1.5*mm" dz="[RootHalfThickness]"/>
0129 <SubtractionSolid name="PixelForwardBlade_Left_subtraction">
0130 <rSolid name="PixelForwardBlade_main"/>
0131 <rSolid name="PixelForwardBlade_box"/>
0132 <Translation x="-[RootHalfWidth]" y="[RootHalfLength]" z="0."/>
0133 </SubtractionSolid>
0134 <SubtractionSolid name="PixelForwardBlade">
0135 <rSolid name="PixelForwardBlade_Left_subtraction"/>
0136 <rSolid name="PixelForwardBlade_box"/>
0137 <Translation x="[RootHalfWidth]" y="[RootHalfLength]" z="0."/>
0138 </SubtractionSolid>
0139 </SolidSection>
0140 <LogicalPartSection label="Root">
0141 <LogicalPart name="PixelForwardBlade" category="envelope">
0142 <rSolid name="PixelForwardBlade"/>
0143 <rMaterial name="materials:Air"/>
0144 </LogicalPart>
0145 </LogicalPartSection>
0146 <!-- Constants for Body and Cover -->
0147 <ConstantsSection label="BodyCover" eval="true">
0148 <Constant name="e01" value="[L02]/2."/>
0149 <Constant name="e02" value="sqrt([e01]*[e01]+[L01]*[L01]-[R01]*[R01])"/>
0150 <!-- length of straight part of cooling channel -->
0151 <Constant name="a01" value="atan([e01]/[L01])-atan([R01]/[e02])"/>
0152 <!-- angle between blade axis and straight part of cooling channel -->
0153 <Constant name="sin01" value="sin([a01])"/>
0154 <Constant name="cos01" value="cos([a01])"/>
0155 <Constant name="x04" value="[L02]/2."/>
0156 <Constant name="y05" value="[y00]+[L01]"/>
0157 <Constant name="x03" value="([R01]*[cos01]+[x04])/2."/>
0158 <Constant name="y04" value="[y00]+(-[R01]*[sin01]+[L01])/2."/>
0159 <Constant name="e03" value="([L03]*cos([A01]))/2."/>
0160 <Constant name="r01" value="([R01]+[W02]/2.-[W04]/2.)"/>
0161 <Constant name="y02" value="-[r01]*sin([A01])-[e03]*cos([A01])"/>
0162 <Constant name="x01" value="[r01]*cos([A01])-[e03]*sin([A01])"/>
0163 <Constant name="x06" value="[L07]/2.+[R04]+[L06]/2."/>
0164 </ConstantsSection>
0165 <!-- Body -->
0166 <SolidSection label="Body">
0167 <Box name="PixelForwardBladeBody01" dx="[W02]/2." dy="[e02]/2." dz="[BodyHalfThickness]"/>
0168 <Tubs name="PixelForwardBladeBody02_01" rMin="[R01]-[W02]/2." rMax="[R01]+[W02]/2." dz="[BodyHalfThickness]" startPhi="-180.*deg+[a01]" deltaPhi="180.*deg-2.*[a01]"/>
0169 <Box name="PixelForwardBladeBody02_02" dx="[W04]/2." dy="[e03]" dz="[BodyHalfThickness]"/>
0170 <Box name="PixelForwardBladeBody02_03" dx="[W04]/2." dy="[e03]" dz="[BodyHalfThickness]"/>
0171 <UnionSolid name="PixelForwardBladeBody02_int01">
0172 <rSolid name="PixelForwardBladeBody02_01"/>
0173 <rSolid name="PixelForwardBladeBody02_02"/>
0174 <Translation x="-[x01]" y="[y02]" z="0."/>
0175 <rRotation name="LeftArm02"/>
0176 </UnionSolid>
0177 <UnionSolid name="PixelForwardBladeBody02">
0178 <rSolid name="PixelForwardBladeBody02_int01"/>
0179 <rSolid name="PixelForwardBladeBody02_03"/>
0180 <Translation x="[x01]" y="[y02]" z="0."/>
0181 <rRotation name="RightArm02"/>
0182 </UnionSolid>
0183 <Tubs name="PixelForwardBladeBody03" rMin="0." rMax="[W02]/2." dz="[BodyHalfThickness]" startPhi="0*deg" deltaPhi="180*deg"/>
0184 <!-- Crossbar -->
0185 <Trapezoid name="PixelForwardBladeBody04" dz="[BodyHalfThickness]" bl1="([R01]-[W02]/2.)/[cos01]+([L09]-[W06]/2.)*tan([a01])" bl2="([R01]-[W02]/2.)/[cos01]+([L09]-[W06]/2.)*tan([a01])" tl1="([R01]-[W02]/2.)/[cos01]+([L09]+[W06]/2.)*tan([a01])" tl2="([R01]-[W02]/2.)/[cos01]+([L09]+[W06]/2.)*tan([a01])" h1="[W06]/2." h2="[W06]/2." alp1="0.0" alp2="0.0" phi="90*deg"/>
0186 <Box name="PixelForwardBladeBody05_01" dx="[L08]/2." dy="[R04]" dz="[BodyHalfThickness]"/>
0187 <Tubs name="PixelForwardBladeBody05_02" rMin="0." rMax="[R04]" dz="[BodyHalfThickness]" startPhi="0." deltaPhi="360*deg"/>
0188 <Tubs name="PixelForwardBladeBody05_03" rMin="0." rMax="[R04]" dz="[BodyHalfThickness]" startPhi="0." deltaPhi="360*deg"/>
0189 <UnionSolid name="PixelForwardBladeBody05_int01">
0190 <rSolid name="PixelForwardBladeBody05_01"/>
0191 <rSolid name="PixelForwardBladeBody05_02"/>
0192 <Translation x="[L08]/2." y="0." z="0."/>
0193 </UnionSolid>
0194 <UnionSolid name="PixelForwardBladeBody05">
0195 <rSolid name="PixelForwardBladeBody05_int01"/>
0196 <rSolid name="PixelForwardBladeBody05_03"/>
0197 <Translation x="-[L08]/2." y="0." z="0."/>
0198 </UnionSolid>
0199 </SolidSection>
0200 <LogicalPartSection label="Body">
0201 <LogicalPart name="PixelForwardBladeBody01_Left" category="support">
0202 <rSolid name="PixelForwardBladeBody01"/>
0203 <rMaterial name="trackermaterial:T_Aluminium"/>
0204 </LogicalPart>
0205 <LogicalPart name="PixelForwardBladeBody01_Right" category="support">
0206 <rSolid name="PixelForwardBladeBody01"/>
0207 <rMaterial name="trackermaterial:T_Aluminium"/>
0208 </LogicalPart>
0209 <LogicalPart name="PixelForwardBladeBody02" category="support">
0210 <rSolid name="PixelForwardBladeBody02"/>
0211 <rMaterial name="trackermaterial:T_Aluminium"/>
0212 </LogicalPart>
0213 <LogicalPart name="PixelForwardBladeBody03_Left" category="support">
0214 <rSolid name="PixelForwardBladeBody03"/>
0215 <rMaterial name="trackermaterial:T_Aluminium"/>
0216 </LogicalPart>
0217 <LogicalPart name="PixelForwardBladeBody03_Right" category="support">
0218 <rSolid name="PixelForwardBladeBody03"/>
0219 <rMaterial name="trackermaterial:T_Aluminium"/>
0220 </LogicalPart>
0221 <LogicalPart name="PixelForwardBladeBody04" category="support">
0222 <rSolid name="PixelForwardBladeBody04"/>
0223 <rMaterial name="trackermaterial:T_Aluminium"/>
0224 </LogicalPart>
0225 <LogicalPart name="PixelForwardBladeBody05" category="support">
0226 <rSolid name="PixelForwardBladeBody05"/>
0227 <rMaterial name="materials:Air"/>
0228 </LogicalPart>
0229 </LogicalPartSection>
0230 <PosPartSection label="Body">
0231 <PosPart copyNumber="1">
0232 <rParent name="PixelForwardBlade"/>
0233 <rChild name="PixelForwardBladeBody01_Left"/>
0234 <Translation x="-[x03]" y="[y04]" z="[zBody]"/>
0235 <rRotation name="LeftArm01"/>
0236 </PosPart>
0237 <PosPart copyNumber="1">
0238 <rParent name="PixelForwardBlade"/>
0239 <rChild name="PixelForwardBladeBody01_Right"/>
0240 <Translation x="[x03]" y="[y04]" z="[zBody]"/>
0241 <rRotation name="RightArm01"/>
0242 </PosPart>
0243 <PosPart copyNumber="1">
0244 <rParent name="PixelForwardBlade"/>
0245 <rChild name="PixelForwardBladeBody02"/>
0246 <Translation x="0." y="[y00]" z="[zBody]"/>
0247 </PosPart>
0248 <PosPart copyNumber="1">
0249 <rParent name="PixelForwardBlade"/>
0250 <rChild name="PixelForwardBladeBody03_Left"/>
0251 <Translation x="-[x04]" y="[y05]" z="[zBody]"/>
0252 <rRotation name="LeftArm01"/>
0253 </PosPart>
0254 <PosPart copyNumber="1">
0255 <rParent name="PixelForwardBlade"/>
0256 <rChild name="PixelForwardBladeBody03_Right"/>
0257 <Translation x="[x04]" y="[y05]" z="[zBody]"/>
0258 <rRotation name="RightArm01"/>
0259 </PosPart>
0260 <!-- Crossbar -->
0261 <PosPart copyNumber="1">
0262 <rParent name="PixelForwardBlade"/>
0263 <rChild name="PixelForwardBladeBody04"/>
0264 <Translation x="0." y="[y00]+[L09]" z="[zBody]"/>
0265 </PosPart>
0266 <PosPart copyNumber="1">
0267 <rParent name="PixelForwardBladeBody04"/>
0268 <rChild name="PixelForwardBladeBody05"/>
0269 <Translation x="[x06]" y="0." z="0."/>
0270 </PosPart>
0271 <PosPart copyNumber="2">
0272 <rParent name="PixelForwardBladeBody04"/>
0273 <rChild name="PixelForwardBladeBody05"/>
0274 <Translation x="-[x06]" y="0." z="0."/>
0275 </PosPart>
0276 </PosPartSection>
0277 <!-- Cover -->
0278 <SolidSection label="Cover">
0279 <Box name="PixelForwardBladeCover01" dx="[W03]/2." dy="[e02]/2." dz="[CoverHalfThickness]"/>
0280 <Tubs name="PixelForwardBladeCover02_01" rMin="[R01]-[W03]/2." rMax="[R01]+[W03]/2." dz="[CoverHalfThickness]" startPhi="-180.*deg+[a01]" deltaPhi="180.*deg-2.*[a01]"/>
0281 <Box name="PixelForwardBladeCover02_02" dx="[W04]/2." dy="[e03]" dz="[CoverHalfThickness]"/>
0282 <Box name="PixelForwardBladeCover02_03" dx="[W04]/2." dy="[e03]" dz="[CoverHalfThickness]"/>
0283 <UnionSolid name="PixelForwardBladeCover02_int01">
0284 <rSolid name="PixelForwardBladeCover02_01"/>
0285 <rSolid name="PixelForwardBladeCover02_02"/>
0286 <Translation x="-[x01]" y="[y02]" z="0."/>
0287 <rRotation name="LeftArm02"/>
0288 </UnionSolid>
0289 <UnionSolid name="PixelForwardBladeCover02">
0290 <rSolid name="PixelForwardBladeCover02_int01"/>
0291 <rSolid name="PixelForwardBladeCover02_03"/>
0292 <Translation x="[x01]" y="[y02]" z="0."/>
0293 <rRotation name="RightArm02"/>
0294 </UnionSolid>
0295 <Tubs name="PixelForwardBladeCover03" rMin="0." rMax="[W03]/2." dz="[CoverHalfThickness]" startPhi="0*deg" deltaPhi="180*deg"/>
0296 <!-- Crossbar -->
0297 <Trapezoid name="PixelForwardBladeCover04_01" dz="[CoverHalfThickness]" bl1="([R01]-[W03]/2.)/[cos01]+([L09]-[W06]/2.)*tan([a01])" bl2="([R01]-[W03]/2.)/[cos01]+([L09]-[W06]/2.)*tan([a01])" tl1="([R01]-[W03]/2.)/[cos01]+([L09]+[W06]/2.)*tan([a01])" tl2="([R01]-[W03]/2.)/[cos01]+([L09]+[W06]/2.)*tan([a01])" h1="[W06]/2." h2="[W06]/2." alp1="0.0" alp2="0.0" phi="90*deg"/>
0298 <Box name="PixelForwardBladeCover04_02" dx="[L06]/2." dy="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" dz="[R04]"/>
0299 <Box name="PixelForwardBladeCover04_03" dx="[L06]/2." dy="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" dz="[R04]"/>
0300 <Tubs name="PixelForwardBladeCover04_04" rMin="0." rMax="[R04]" dz="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="0." deltaPhi="360*deg"/>
0301 <Tubs name="PixelForwardBladeCover04_05" rMin="0." rMax="[R04]" dz="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="0." deltaPhi="360*deg"/>
0302 <Tubs name="PixelForwardBladeCover04_06" rMin="0." rMax="[R04]" dz="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="0." deltaPhi="360*deg"/>
0303 <Tubs name="PixelForwardBladeCover04_07" rMin="0." rMax="[R04]" dz="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="0." deltaPhi="360*deg"/>
0304 <SubtractionSolid name="PixelForwardBladeCover04_int01">
0305 <rSolid name="PixelForwardBladeCover04_01"/>
0306 <rSolid name="PixelForwardBladeCover04_02"/>
0307 <Translation x="[L07]/2.+[R04]+[L06]/2." y="0." z="0."/>
0308 </SubtractionSolid>
0309 <SubtractionSolid name="PixelForwardBladeCover04_int02">
0310 <rSolid name="PixelForwardBladeCover04_int01"/>
0311 <rSolid name="PixelForwardBladeCover04_03"/>
0312 <Translation x="-[L07]/2.-[R04]-[L06]/2." y="0." z="0."/>
0313 </SubtractionSolid>
0314 <SubtractionSolid name="PixelForwardBladeCover04_int03">
0315 <rSolid name="PixelForwardBladeCover04_int02"/>
0316 <rSolid name="PixelForwardBladeCover04_04"/>
0317 <Translation x="-[L07]/2.-[R04]" y="0." z="0."/>
0318 </SubtractionSolid>
0319 <SubtractionSolid name="PixelForwardBladeCover04_int04">
0320 <rSolid name="PixelForwardBladeCover04_int03"/>
0321 <rSolid name="PixelForwardBladeCover04_05"/>
0322 <Translation x="-[L07]/2.-[R04]-[L06]" y="0." z="0."/>
0323 </SubtractionSolid>
0324 <SubtractionSolid name="PixelForwardBladeCover04_int05">
0325 <rSolid name="PixelForwardBladeCover04_int04"/>
0326 <rSolid name="PixelForwardBladeCover04_06"/>
0327 <Translation x="[L07]/2.+[R04]" y="0." z="0."/>
0328 </SubtractionSolid>
0329 <SubtractionSolid name="PixelForwardBladeCover04">
0330 <rSolid name="PixelForwardBladeCover04_int05"/>
0331 <rSolid name="PixelForwardBladeCover04_07"/>
0332 <Translation x="[L07]/2.+[R04]+[L06]" y="0." z="0."/>
0333 </SubtractionSolid>
0334 </SolidSection>
0335 <LogicalPartSection label="Cover">
0336 <LogicalPart name="PixelForwardBladeCover01_Left" category="support">
0337 <rSolid name="PixelForwardBladeCover01"/>
0338 <rMaterial name="trackermaterial:T_Aluminium"/>
0339 </LogicalPart>
0340 <LogicalPart name="PixelForwardBladeCover01_Right" category="support">
0341 <rSolid name="PixelForwardBladeCover01"/>
0342 <rMaterial name="trackermaterial:T_Aluminium"/>
0343 </LogicalPart>
0344 <LogicalPart name="PixelForwardBladeCover02" category="support">
0345 <rSolid name="PixelForwardBladeCover02"/>
0346 <rMaterial name="trackermaterial:T_Aluminium"/>
0347 </LogicalPart>
0348 <LogicalPart name="PixelForwardBladeCover03_Left" category="support">
0349 <rSolid name="PixelForwardBladeCover03"/>
0350 <rMaterial name="trackermaterial:T_Aluminium"/>
0351 </LogicalPart>
0352 <LogicalPart name="PixelForwardBladeCover03_Right" category="support">
0353 <rSolid name="PixelForwardBladeCover03"/>
0354 <rMaterial name="trackermaterial:T_Aluminium"/>
0355 </LogicalPart>
0356 <LogicalPart name="PixelForwardBladeCover04" category="support">
0357 <rSolid name="PixelForwardBladeCover04"/>
0358 <rMaterial name="trackermaterial:T_Aluminium"/>
0359 </LogicalPart>
0360 </LogicalPartSection>
0361 <PosPartSection label="Cover">
0362 <PosPart copyNumber="1">
0363 <rParent name="PixelForwardBlade"/>
0364 <rChild name="PixelForwardBladeCover01_Left"/>
0365 <Translation x="-[x03]" y="[y04]" z="[zCover]"/>
0366 <rRotation name="LeftArm01"/>
0367 </PosPart>
0368 <PosPart copyNumber="1">
0369 <rParent name="PixelForwardBlade"/>
0370 <rChild name="PixelForwardBladeCover01_Right"/>
0371 <Translation x="[x03]" y="[y04]" z="[zCover]"/>
0372 <rRotation name="RightArm01"/>
0373 </PosPart>
0374 <PosPart copyNumber="1">
0375 <rParent name="PixelForwardBlade"/>
0376 <rChild name="PixelForwardBladeCover02"/>
0377 <Translation x="0." y="[y00]" z="[zCover]"/>
0378 </PosPart>
0379 <PosPart copyNumber="1">
0380 <rParent name="PixelForwardBlade"/>
0381 <rChild name="PixelForwardBladeCover03_Left"/>
0382 <Translation x="-[x04]" y="[y05]" z="[zCover]"/>
0383 <rRotation name="LeftArm01"/>
0384 </PosPart>
0385 <PosPart copyNumber="1">
0386 <rParent name="PixelForwardBlade"/>
0387 <rChild name="PixelForwardBladeCover03_Right"/>
0388 <Translation x="[x04]" y="[y05]" z="[zCover]"/>
0389 <rRotation name="RightArm01"/>
0390 </PosPart>
0391 <!-- Crossbar -->
0392 <PosPart copyNumber="1">
0393 <rParent name="PixelForwardBlade"/>
0394 <rChild name="PixelForwardBladeCover04"/>
0395 <Translation x="0." y="[y00]+[L09]" z="[zCover]"/>
0396 </PosPart>
0397 </PosPartSection>
0398 <!-- Tip -->
0399 <ConstantsSection label="Tip" eval="true">
0400 <Constant name="r02" value="[R01]+[W02]/2.-[L03]*sin([A01])"/>
0401 <Constant name="r03" value="[r02]-[W04]"/>
0402 <Constant name="e04" value="([L04]-[r03])/2."/>
0403 <Constant name="e05" value="(([r02]*cos([A01])-[W05]/2.)/sin([A01]))/2."/>
0404 <Constant name="y03" value="-([r02]-[W04]/2.)*sin([A01])-[e05]*cos([A01])"/>
0405 <Constant name="x02" value="([r02]-[W04]/2.)*cos([A01])-[e05]*sin([A01])"/>
0406 </ConstantsSection>
0407 <SolidSection label="Tip">
0408 <Tubs name="PixelForwardBladeTip01_01" rMin="[r03]" rMax="[r02]" dz="[BladeHalfThickness]" startPhi="180.*deg+[A01]" deltaPhi="180.*deg-2.*[A01]"/>
0409 <Box name="PixelForwardBladeTip01_02" dx="[W05]/2." dy="[e04]-[pixfwdCommon:SmallBool]" dz="[BladeHalfThickness]"/>
0410 <Tubs name="PixelForwardBladeTip01_03" rMin="[R02]" rMax="[R02]*sqrt(2.)" dz="[BladeHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="180.*deg" deltaPhi="180.*deg"/>
0411 <Box name="PixelForwardBladeTip01_04" dx="[W04]/2." dy="[e05]" dz="[BladeHalfThickness]"/>
0412 <Box name="PixelForwardBladeTip01_05" dx="[W04]/2." dy="[e05]" dz="[BladeHalfThickness]"/>
0413 <UnionSolid name="PixelForwardBladeTip01_int01">
0414 <rSolid name="PixelForwardBladeTip01_01"/>
0415 <rSolid name="PixelForwardBladeTip01_04"/>
0416 <Translation x="-[x02]" y="[y03]" z="0."/>
0417 <rRotation name="LeftArm02"/>
0418 </UnionSolid>
0419 <UnionSolid name="PixelForwardBladeTip01_int02">
0420 <rSolid name="PixelForwardBladeTip01_int01"/>
0421 <rSolid name="PixelForwardBladeTip01_05"/>
0422 <Translation x="[x02]" y="[y03]" z="0."/>
0423 <rRotation name="RightArm02"/>
0424 </UnionSolid>
0425 <UnionSolid name="PixelForwardBladeTip01_int03">
0426 <rSolid name="PixelForwardBladeTip01_int02"/>
0427 <rSolid name="PixelForwardBladeTip01_02"/>
0428 <Translation x="0." y="-[r03]-[e04]-[pixfwdCommon:SmallBool]" z="0."/>
0429 </UnionSolid>
0430 <SubtractionSolid name="PixelForwardBladeTip01">
0431 <rSolid name="PixelForwardBladeTip01_int03"/>
0432 <rSolid name="PixelForwardBladeTip01_03"/>
0433 <Translation x="0." y="-[L04]+[L05]" z="0."/>
0434 </SubtractionSolid>
0435 </SolidSection>
0436 <LogicalPartSection label="Tip">
0437 <LogicalPart name="PixelForwardBladeTip01" category="support">
0438 <rSolid name="PixelForwardBladeTip01"/>
0439 <rMaterial name="trackermaterial:T_Aluminium"/>
0440 </LogicalPart>
0441 </LogicalPartSection>
0442 <PosPartSection label="Tip">
0443 <PosPart copyNumber="1">
0444 <rParent name="PixelForwardBlade"/>
0445 <rChild name="PixelForwardBladeTip01"/>
0446 <Translation x="0." y="[y00]-[L03]" z="0."/>
0447 </PosPart>
0448 </PosPartSection>
0449 <!-- Cooling channel -->
0450 <ConstantsSection label="Channel" eval="true">
0451 <Constant name="ChanBodyHalfThickness" value="([T04]-[T03])/2."/>
0452 <Constant name="ChanCoverHalfThickness" value="[T03]/2."/>
0453 <Constant name="z03" value="[BodyHalfThickness]-[ChanBodyHalfThickness]"/>
0454 <!-- Channel central plane inside body -->
0455 <Constant name="z04" value="-[CoverHalfThickness]+[ChanCoverHalfThickness]"/>
0456 <!-- Channel central plane inside cover -->
0457 </ConstantsSection>
0458 <SolidSection label="Channel">
0459 <Box name="PixelForwardBladeChan01_Body" dx="[W01]/2." dy="[e02]/2." dz="[ChanBodyHalfThickness]"/>
0460 <Box name="PixelForwardBladeChan01_Cover" dx="[W01]/2." dy="[e02]/2." dz="[ChanCoverHalfThickness]"/>
0461 <Tubs name="PixelForwardBladeChan02_Body" rMin="[R01]-[W01]/2." rMax="[R01]+[W01]/2." dz="[ChanBodyHalfThickness]" startPhi="180.*deg+[a01]" deltaPhi="180.*deg-2.*[a01]"/>
0462 <Tubs name="PixelForwardBladeChan02_Cover" rMin="[R01]-[W01]/2." rMax="[R01]+[W01]/2." dz="[ChanCoverHalfThickness]" startPhi="180.*deg+[a01]" deltaPhi="180.*deg-2.*[a01]"/>
0463 <Tubs name="PixelForwardBladeChan03_Body" rMin="0." rMax="[W01]/2." dz="[ChanBodyHalfThickness]" startPhi="0*deg" deltaPhi="180*deg"/>
0464 <Tubs name="PixelForwardBladeChan03_Cover" rMin="0." rMax="[W01]/2." dz="[ChanCoverHalfThickness]" startPhi="0*deg" deltaPhi="180*deg"/>
0465 </SolidSection>
0466 <LogicalPartSection label="Channel">
0467 <LogicalPart name="PixelForwardBladeChan01_Body" category="cooling">
0468 <rSolid name="PixelForwardBladeChan01_Body"/>
0469 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0470 </LogicalPart>
0471 <LogicalPart name="PixelForwardBladeChan01_Cover" category="cooling">
0472 <rSolid name="PixelForwardBladeChan01_Cover"/>
0473 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0474 </LogicalPart>
0475 <LogicalPart name="PixelForwardBladeChan02_Body" category="cooling">
0476 <rSolid name="PixelForwardBladeChan02_Body"/>
0477 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0478 </LogicalPart>
0479 <LogicalPart name="PixelForwardBladeChan02_Cover" category="cooling">
0480 <rSolid name="PixelForwardBladeChan02_Cover"/>
0481 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0482 </LogicalPart>
0483 <LogicalPart name="PixelForwardBladeChan03_Body" category="cooling">
0484 <rSolid name="PixelForwardBladeChan03_Body"/>
0485 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0486 </LogicalPart>
0487 <LogicalPart name="PixelForwardBladeChan03_Cover" category="cooling">
0488 <rSolid name="PixelForwardBladeChan03_Cover"/>
0489 <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/>
0490 </LogicalPart>
0491 </LogicalPartSection>
0492 <PosPartSection label="Channel">
0493 <PosPart copyNumber="1">
0494 <rParent name="PixelForwardBladeBody01_Left"/>
0495 <rChild name="PixelForwardBladeChan01_Body"/>
0496 <Translation x="0." y="0." z="[z03]"/>
0497 </PosPart>
0498 <PosPart copyNumber="2">
0499 <rParent name="PixelForwardBladeBody01_Right"/>
0500 <rChild name="PixelForwardBladeChan01_Body"/>
0501 <Translation x="0." y="0." z="[z03]"/>
0502 </PosPart>
0503 <PosPart copyNumber="1">
0504 <rParent name="PixelForwardBladeCover01_Left"/>
0505 <rChild name="PixelForwardBladeChan01_Cover"/>
0506 <Translation x="0." y="0." z="[z04]"/>
0507 </PosPart>
0508 <PosPart copyNumber="2">
0509 <rParent name="PixelForwardBladeCover01_Right"/>
0510 <rChild name="PixelForwardBladeChan01_Cover"/>
0511 <Translation x="0." y="0." z="[z04]"/>
0512 </PosPart>
0513 <PosPart copyNumber="1">
0514 <rParent name="PixelForwardBladeBody02"/>
0515 <rChild name="PixelForwardBladeChan02_Body"/>
0516 <Translation x="0." y="0." z="[z03]"/>
0517 </PosPart>
0518 <PosPart copyNumber="1">
0519 <rParent name="PixelForwardBladeCover02"/>
0520 <rChild name="PixelForwardBladeChan02_Cover"/>
0521 <Translation x="0." y="0." z="[z04]"/>
0522 </PosPart>
0523 <PosPart copyNumber="1">
0524 <rParent name="PixelForwardBladeBody03_Left"/>
0525 <rChild name="PixelForwardBladeChan03_Body"/>
0526 <Translation x="0." y="0." z="[z03]"/>
0527 </PosPart>
0528 <PosPart copyNumber="2">
0529 <rParent name="PixelForwardBladeBody03_Right"/>
0530 <rChild name="PixelForwardBladeChan03_Body"/>
0531 <Translation x="0." y="0." z="[z03]"/>
0532 </PosPart>
0533 <PosPart copyNumber="1">
0534 <rParent name="PixelForwardBladeCover03_Left"/>
0535 <rChild name="PixelForwardBladeChan03_Cover"/>
0536 <Translation x="0." y="0." z="[z04]"/>
0537 </PosPart>
0538 <PosPart copyNumber="2">
0539 <rParent name="PixelForwardBladeCover03_Right"/>
0540 <rChild name="PixelForwardBladeChan03_Cover"/>
0541 <Translation x="0." y="0." z="[z04]"/>
0542 </PosPart>
0543 </PosPartSection>
0544 <!-- All rotations -->
0545 <RotationSection label="Blade">
0546 <Rotation name="LeftArm01" phiX="[a01]" thetaX="90.*deg" phiY="90.*deg + [a01]" thetaY="90.*deg" phiZ="0." thetaZ="0."/>
0547 <Rotation name="RightArm01" phiX="-[a01]" thetaX="90.*deg" phiY="90.*deg - [a01]" thetaY="90.*deg" phiZ="0." thetaZ="0."/>
0548 <Rotation name="LeftArm02" phiX="[A01]" thetaX="90.*deg" phiY="90.*deg + [A01]" thetaY="90.*deg" phiZ="0." thetaZ="0."/>
0549 <Rotation name="RightArm02" phiX="-[A01]" thetaX="90.*deg" phiY="90.*deg - [A01]" thetaY="90.*deg" phiZ="0." thetaZ="0."/>
0550 </RotationSection>
0551 </DDDefinition>