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
<?xml version="1.0"?>
<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">
    

<ConstantsSection label="pixfwd.xml" eval="true">
 <Constant name="RootRadius"     value="[pixfwdCylinder:CylindersOuterRmax]"/>
 <Constant name="RootHalfLength" value="[pixfwdCylinder:CylindersOuterLength]/2.+ [pixfwdCylinder:CylindersEndFlangeLength]/2."/>

 <Constant name="AnchorZ"        value="0.*mm"/>
 <Constant name="ZPixelForward"  value="291.*mm"/>
 <Constant name="RootStartZ"     value="-4*mm"/> <!-- -2*mm-->
 <Constant name="RootMidSupZ1"   value="[cms:TrackBeamSupZ1]-[ZPixelForward]"/>
 <Constant name="RootMidSupZ2"   value="[cms:TrackBeamSupZ2]-[ZPixelForward]"/>
 <Constant name="RootMidZ1"      value="[cms:TrackLumiZ1]-[ZPixelForward]"/>
 <Constant name="RootMidZ2"      value="[cms:TrackLumiZ2]-[ZPixelForward]"/>
 <Constant name="RootMidZ3"      value="[cms:TrackBeamZ1]-[ZPixelForward]"/>
 <Constant name="RootEndZ"       value="2*[RootHalfLength]"/>

 <Constant name="Disk1Z"         value="[pixfwdDisks:DiskHalfWidth]+[RootStartZ]"/> <!-- 35.75*mm-->
 <Constant name="Disk2Z"         value="[Disk1Z]+75.0*mm"/> <!-- +72.5*mm--> <!-- +105.0*mm -->
 <Constant name="Disk3Z"         value="[Disk2Z]+95.0*mm"/> <!-- +120.0*mm-->

 <Constant name="ZCylinder"      value="[AnchorZ]"/>

</ConstantsSection>

<SolidSection label="pixfwd.xml">
 <Polycone name="PixelForward" startPhi="0*deg" deltaPhi="360*deg" >
 <ZSection z="[RootStartZ]"  rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootMidSupZ1]" rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootMidSupZ1]" rMin="[cms:TrackBeamSupR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootMidSupZ2]" rMin="[cms:TrackBeamSupR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootMidSupZ2]" rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootMidZ1]"   rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootMidZ1]"   rMin="[cms:TrackLumiR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootMidZ2]"   rMin="[cms:TrackLumiR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootMidZ2]"   rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootMidZ3]"   rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/>
 <ZSection z="[RootEndZ]"    rMin="[cms:TrackBeamR2]" rMax="[RootRadius]"/>
 </Polycone>
</SolidSection>
 
<LogicalPartSection label="pixfwd.xml">
 <LogicalPart name="PixelForward" category="envelope">
  <rSolid name="PixelForward"/>
  <rMaterial name="materials:Air"/>
 </LogicalPart>
</LogicalPartSection>


<!-- Position disks inside root -->

<PosPartSection label="pixfwd.xml">
  <PosPart copyNumber="1">
    <rParent name="pixfwd:PixelForward"/>
    <rChild name="pixfwdDisks:PixelForwardDisk1"/>
    <Translation x="0." y="0." z="[AnchorZ]+[Disk1Z]"/>
  </PosPart>
  <PosPart copyNumber="1">
    <rParent name="pixfwd:PixelForward"/>
    <rChild name="pixfwdDisks:PixelForwardDisk2"/>
    <Translation x="0." y="0." z="[AnchorZ]+[Disk2Z]"/>
  </PosPart>
  <PosPart copyNumber="1">
    <rParent name="pixfwd:PixelForward"/>
    <rChild name="pixfwdDisks:PixelForwardDisk3"/>
    <Translation x="0." y="0." z="[AnchorZ]+ [Disk3Z]" />
  </PosPart>

  <PosPart copyNumber="1">
    <rParent name="pixfwd:PixelForward"/>
    <rChild name="pixfwdCylinder:PixelForwardServiceCylinder"/>
    <Translation x="0." y="0." z="0."/>
  </PosPart>
  <PosPart copyNumber="1">

  <rParent name="pixfwd:PixelForward"/>
    <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/>
    <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/>
    <rRotation name="pixfwdCylinder:EndFlangeRot1"/>
  </PosPart>
  <PosPart copyNumber="2">
    <rParent name="pixfwd:PixelForward"/>
    <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/>
    <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/>
    <rRotation name="pixfwdCylinder:EndFlangeRot2"/>  <!-- xt rRotation name="pixfwdCommon:Z180" / xt-->
  </PosPart>

  <!-- xt PosPart copyNumber="1">
    <rParent name="pixfwd:PixelForward"/>
    <rChild name="pixfwdCylinder:PixelForwardCylinderBackCyl"/>
    <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersFrontLength]+[pixfwdCylinder:CylinderBackLength]/2." />
  </PosPart xt -->

</PosPartSection>
    
</DDDefinition>