Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
<?xml version="1.0"?>
<DDDefinition>

<ConstantsSection label="pixfwdOuterDiskZplus.xml" eval="true">
  <Constant name="OuterRingHalfWidth"   value="[pixfwdSupportRingParameters:OuterDiskOuterRingHalfWidth]"/>
  <Constant name="OuterRingZ"           value="-[pixfwdDisks:DiskHalfWidth]+[OuterRingHalfWidth]+[pixfwd:FlexCableDiskHalfThickness]*2"/>
  <Constant name="InnerRingHalfWidth"   value="[pixfwdSupportRingParameters:OuterDiskInnerRingHalfWidth]"/>
  <Constant name="InnerRingZ"           value="-[pixfwdDisks:DiskHalfWidth]+[InnerRingHalfWidth]+[pixfwd:FlexCableDiskHalfThickness]*2"/>
</ConstantsSection>

<!-- support ring solids -->
<!-- each Algorithm creates on composite (union) solid that describes a cut
     ring according to the given outline. The z_l and z_t arrays describe the 
     -Z and +Z sides by giving the Z value for each of the values of the Phi
     array. The z values are only considered relatively, the object will be 
     centered around the origin and has to be placed using zPos.
     There are two instances each, for the Core and Skin (CF), which use the
     same parameters. The parameters are not defined in-place, but names are
     passed, which are defined in a different file, to avoid duplication.
--> 
<Algorithm name="track:DDCutTubsFromPoints">
  <rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
  <String  name="SolidName"        value="PixelForwardOuterDiskOuterRing"/> 
  <String  name="Material"         value="pixfwdMaterials:C_C_OuterOuterRing"/> 
  <Numeric name="zPos"             value="[OuterRingZ]"/>
  <Numeric name="rMin"             value="[pixfwdSupportRingParameters:OuterDiskOuterRingRMin]"/>
  <Numeric name="rMax"             value="[pixfwdSupportRingParameters:OuterDiskOuterRingRMax]"/>
  <String  name="Phi"              value="pixfwdSupportRingParameters:OuterDiskOuterRing_Phi"/>
  <String  name="z_t"              value="pixfwdSupportRingParameters:OuterDiskOuterRing_z_t_Plus"/>
  <String  name="z_l"              value="pixfwdSupportRingParameters:OuterDiskOuterRing_z_l_Plus"/>
</Algorithm>
<Algorithm name="track:DDCutTubsFromPoints">
  <rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
  <String  name="SolidName"        value="PixelForwardOuterDiskCFOuterRing"/> 
  <String  name="Material"         value="pixfwdMaterials:FPix_CFSkin_OuterOuterRing"/> 
  <Numeric name="zPos"             value="[OuterRingZ]"/>
  <Numeric name="rMin"             value="[pixfwdSupportRingParameters:OuterDiskOuterRingCFRMin]"/>
  <Numeric name="rMax"             value="[pixfwdSupportRingParameters:OuterDiskOuterRingCFRMax]"/>
  <String  name="Phi"              value="pixfwdSupportRingParameters:OuterDiskOuterRing_Phi"/>
  <String  name="z_t"              value="pixfwdSupportRingParameters:OuterDiskOuterRing_z_t_Plus"/>
  <String  name="z_l"              value="pixfwdSupportRingParameters:OuterDiskOuterRing_z_l_Plus"/>
</Algorithm>
<Algorithm name="track:DDCutTubsFromPoints">
  <rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
  <String  name="SolidName"        value="PixelForwardOuterDiskInnerRing"/> 
  <String  name="Material"         value="pixfwdMaterials:C_C_OuterInnerRing"/> 
  <Numeric name="zPos"             value="[InnerRingZ]"/>
  <Numeric name="rMin"             value="[pixfwdSupportRingParameters:OuterDiskInnerRingRMin]"/>
  <Numeric name="rMax"             value="[pixfwdSupportRingParameters:OuterDiskInnerRingRMax]"/>
  <String  name="Phi"              value="pixfwdSupportRingParameters:OuterDiskInnerRing_Phi"/>
  <String  name="z_t"              value="pixfwdSupportRingParameters:OuterDiskInnerRing_z_t_Plus"/>
  <String  name="z_l"              value="pixfwdSupportRingParameters:OuterDiskInnerRing_z_l_Plus"/>
</Algorithm>
<Algorithm name="track:DDCutTubsFromPoints">
  <rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
  <String  name="SolidName"        value="PixelForwardOuterDiskCFInnerRing"/> 
  <String  name="Material"         value="pixfwdMaterials:FPix_CFSkin_OuterInnerRing"/> 
  <Numeric name="zPos"             value="[InnerRingZ]"/>
  <Numeric name="rMin"             value="[pixfwdSupportRingParameters:OuterDiskInnerRingCFRMin]"/>
  <Numeric name="rMax"             value="[pixfwdSupportRingParameters:OuterDiskInnerRingCFRMax]"/>
  <String  name="Phi"              value="pixfwdSupportRingParameters:OuterDiskInnerRing_Phi"/>
  <String  name="z_t"              value="pixfwdSupportRingParameters:OuterDiskInnerRing_z_t_Plus"/>
  <String  name="z_l"              value="pixfwdSupportRingParameters:OuterDiskInnerRing_z_l_Plus"/>
</Algorithm>


<!-- Blades -->

<Algorithm name="track:DDPixPhase1FwdDiskAlgo">
  <rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
  <String  name="ChildName"        value="pixfwdbladeOuterZplus:PixelForwardBlade"/> 
  <Numeric name="StartCopyNo"      value="22"/>
  <Numeric name="NumberOfBlades"   value="34"/>
  <Numeric name="BladeAngle"       value="-20*deg"/>
  <Numeric name="BladeTilt"        value="0*deg"/>
  <Numeric name="BladeCommonZ"     value="0.825*mm-4*mm"/>
  <Vector  name="BladeZShift" type="numeric" nEntries="34">
   -25.381*mm, -22.881*mm, -20.381*mm, -17.881*mm, -15.381*mm, -12.881*mm, -10.381*mm, -7.881*mm,
   -25.381*mm, -22.881*mm, -20.381*mm, -17.881*mm, -15.381*mm, -12.881*mm, -10.381*mm, -7.881*mm, -3.381*mm,
   -25.381*mm, -22.881*mm, -20.381*mm, -17.881*mm, -15.381*mm, -12.881*mm, -10.381*mm, -7.881*mm,
   -25.381*mm, -22.881*mm, -20.381*mm, -17.881*mm, -15.381*mm, -12.881*mm, -10.381*mm, -7.881*mm, -3.381*mm
  </Vector> 
  <Numeric name="AnchorRadius"     value="127.819*mm"/>
  <String  name="RotationName"     value="pixfwdOuterDiskZplus:PixOuter"/>
  <String  name="FlagString"       value="YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"/>
</Algorithm>

<SolidSection label="pixfwdOuterDiskZplus.xml">
 <Tubs name="FlexCableDisk" rMin="[pixfwd:FlexCableDiskRmin]" rMax="[pixfwd:FlexCableDiskRmax]" dz="[pixfwd:FlexCableDiskHalfThickness]" startPhi="0." deltaPhi="360*deg"/>
</SolidSection>

<LogicalPartSection label="pixfwdOuterDiskZplus.xml">
 <LogicalPart name="FlexCableDisk" category="support">
    <rSolid name="FlexCableDisk"/>
    <rMaterial name="pixfwdMaterials:Pix_Fwd_AluFlexCable2"/>
 </LogicalPart>
</LogicalPartSection>

<PosPartSection label="pixfwdOuterDiskZplus.xml">
  <PosPart copyNumber="1">
    <rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
    <rChild name="FlexCableDisk"/>
    <Translation x="0." y="0." z="-[pixfwdDisks:DiskHalfWidth]+[pixfwd:FlexCableDiskHalfThickness]"/>
  </PosPart>
  <PosPart copyNumber="2">
    <rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
    <rChild name="FlexCableDisk"/>
    <Translation x="0." y="0." z="-[pixfwdDisks:DiskHalfWidth]-[pixfwd:FlexCableDiskHalfThickness]+[OuterRingHalfWidth]*2"/>
  </PosPart>
</PosPartSection>
</DDDefinition>