|
| 1 | +<?xml version="1.0"?> |
| 2 | +<DDDefinition> |
| 3 | + |
| 4 | + <!-- Author: Steven M. Kaplan --> |
| 5 | + |
| 6 | + <!-- Declare constants used in the PLT DDL --> |
| 7 | + <ConstantsSection label="plt" eval="true"> |
| 8 | + <Constant name = "pltTilt" value = "1.57*deg" /> |
| 9 | + |
| 10 | + <Constant name = "SiPlane0RtoCenter" value = "49.9*mm" /> |
| 11 | + <Constant name = "SiPlane1RtoCenter" value = "51.*mm" /> |
| 12 | + <Constant name = "SiPlane2RtoCenter" value = "52.1*mm" /> |
| 13 | + |
| 14 | + <Constant name = "SiPlane0ZtoCenter" value = "1726.9*mm" /> |
| 15 | + <Constant name = "SiPlane1ZtoCenter" value = "1764.6*mm" /> |
| 16 | + <Constant name = "SiPlane2ZtoCenter" value = "1802.3*mm" /> |
| 17 | + |
| 18 | + <Constant name = "ROCWidthX" value = "8.0*mm" /> |
| 19 | + <Constant name = "ROCWidthY" value = "10.5*mm" /> |
| 20 | + <Constant name = "SiThkZ" value = "0.30*mm" /> |
| 21 | + |
| 22 | + <Constant name = "TelWidthX" value = "[ROCWidthX]" /> |
| 23 | + <Constant name = "TelWidthY" value = "[ROCWidthY]+2.2*mm" /> |
| 24 | + <Constant name = "TelWidthZ" value = "[SiPlane2ZtoCenter]-[SiPlane0ZtoCenter]+[SiThkZ]" /> |
| 25 | + <Constant name = "PLTMinR" value = "[cms:TrackBeamR12]" /> |
| 26 | + <Constant name = "PLTMaxR" value = "[cms:TrackLumiR1]" /> |
| 27 | + |
| 28 | + <Constant name = "NumberOfRows" value = "80" /> |
| 29 | + <Constant name = "NumberOfColumns" value = "52" /> |
| 30 | + <Constant name = "PixelRowWidth" value = "0.1*mm" /> |
| 31 | + <Constant name = "PixelColumnWidth" value = "0.15*mm" /> |
| 32 | + <Constant name = "ActiveAreaColumnWidth" value = "[PixelColumnWidth]*[NumberOfColumns]" /> |
| 33 | + <Constant name = "ActiveAreaRowWidth" value = "[PixelRowWidth]*[NumberOfRows]" /> |
| 34 | + |
| 35 | + </ConstantsSection> |
| 36 | + |
| 37 | + <!-- Declare PLT component Solids --> |
| 38 | + <SolidSection label="plt"> |
| 39 | + |
| 40 | + <Box name="PLTSensorPlane" dx="[ROCWidthX]/2." dy="[ROCWidthY]/2." dz="[SiThkZ]/2." /> |
| 41 | + |
| 42 | + <Tubs name="PLT" startPhi="0.0*deg" deltaPhi="360*deg" rMin="[PLTMinR]" rMax="[PLTMaxR]" dz="[TelWidthZ]/2."/> |
| 43 | + |
| 44 | + <Box name="Telescope" dx="[TelWidthX]/2." dy="[TelWidthY]/2." dz="[TelWidthZ]/2." /> |
| 45 | + |
| 46 | + <Box name="PLTPixel" dx="[PixelColumnWidth]/2." dy="[PixelRowWidth]/2." dz="[SiThkZ]/2." /> |
| 47 | + |
| 48 | + <Box name="PLTSensorRow" dx="[ActiveAreaColumnWidth]/2." dy="[PixelRowWidth]/2." dz="[SiThkZ]/2." /> |
| 49 | + |
| 50 | + </SolidSection> |
| 51 | + |
| 52 | + <!-- Define the Physical PLT Solids, i.e. the Logical Parts --> |
| 53 | + <LogicalPartSection label="plt"> |
| 54 | + <LogicalPart name="PLT" category="unspecified"> |
| 55 | + <rSolid name="PLT"/> |
| 56 | + <rMaterial name="materials:Vacuum"/> |
| 57 | + </LogicalPart> |
| 58 | + |
| 59 | + <LogicalPart name="Telescope" category="unspecified"> |
| 60 | + <rSolid name="Telescope"/> |
| 61 | + <rMaterial name="materials:Vacuum"/> |
| 62 | + </LogicalPart> |
| 63 | + |
| 64 | + <LogicalPart name="PLTSensorPlane" category="unspecified"> |
| 65 | + <rSolid name="PLTSensorPlane"/> |
| 66 | + <rMaterial name="materials:Vacuum"/> |
| 67 | + </LogicalPart> |
| 68 | + |
| 69 | + <LogicalPart name="PLTSensorRow" category="unspecified"> |
| 70 | + <rSolid name="PLTSensorRow"/> |
| 71 | + <rMaterial name="materials:Vacuum"/> |
| 72 | + </LogicalPart> |
| 73 | + |
| 74 | + <LogicalPart name="PLTPixel" category="unspecified"> |
| 75 | + <rSolid name="PLTPixel"/> |
| 76 | + <rMaterial name="materials:Silicon"/> |
| 77 | + </LogicalPart> |
| 78 | + |
| 79 | + </LogicalPartSection> |
| 80 | + |
| 81 | + <!-- Position the Silicon in the telescope and copy the telescope to have 8 of them. Take this amalgamation of 8 telescopes then copy it into the PLTBCM volume--> |
| 82 | + <PosPartSection label="plt"> |
| 83 | + <!-- Copy the pixels into a row to form the columns --> |
| 84 | + <Algorithm name="global:DDLinear"> |
| 85 | + <rParent name="PLTSensorRow"/> |
| 86 | + <String name="ChildName" value="PLTPixel"/> |
| 87 | + <Numeric name="StartCopyNo" value="0"/> |
| 88 | + <Numeric name="IncrCopyNo" value="1"/> |
| 89 | + <Numeric name="N" value="[NumberOfColumns]"/> |
| 90 | + <Numeric name="Delta" value="[PixelColumnWidth]"/> |
| 91 | + <Vector name="Base" type="numeric" nEntries="3"> -[ActiveAreaColumnWidth]/2.+[PixelColumnWidth]/2.,0.*mm,0.*mm </Vector> |
| 92 | + <Numeric name="Theta" value="90*deg"/> |
| 93 | + <Numeric name="Phi" value="0.*deg"/> |
| 94 | + </Algorithm> |
| 95 | + <!-- Copy the rows to form the sensor plane! --> |
| 96 | + <Algorithm name="global:DDLinear"> |
| 97 | + <rParent name="PLTSensorPlane"/> |
| 98 | + <String name="ChildName" value="PLTSensorRow"/> |
| 99 | + <Numeric name="StartCopyNo" value="0"/> |
| 100 | + <Numeric name="IncrCopyNo" value="1"/> |
| 101 | + <Numeric name="N" value="[NumberOfRows]"/> |
| 102 | + <Numeric name="Delta" value="[PixelRowWidth]"/> |
| 103 | + <Vector name="Base" type="numeric" nEntries="3"> 0.*mm,-[ROCWidthY]/2.+[ActiveAreaRowWidth]-([PixelRowWidth]/2.),0.*mm </Vector> |
| 104 | + <Numeric name="Theta" value="90*deg"/> |
| 105 | + <Numeric name="Phi" value="-90.*deg"/> |
| 106 | + </Algorithm> |
| 107 | + <!-- Copy the three sensor planes into the telescope--> |
| 108 | + <PosPart copyNumber="0"> |
| 109 | + <rParent name="Telescope"/> |
| 110 | + <rChild name="PLTSensorPlane"/> |
| 111 | + <Translation x="0.*mm" y="-[TelWidthY]/2.+[ROCWidthY]/2." z="-[TelWidthZ]/2.+[SiThkZ]/2." /> |
| 112 | + <rRotation name="rotations:000D" /> |
| 113 | + </PosPart> |
| 114 | + |
| 115 | + <PosPart copyNumber="1"> |
| 116 | + <rParent name="Telescope"/> |
| 117 | + <rChild name="PLTSensorPlane"/> |
| 118 | + <Translation x="0.*mm" y="-[TelWidthY]/2.+[ROCWidthY]/2.+1.1*mm" z="0.*mm" /> |
| 119 | + <rRotation name="rotations:000D" /> |
| 120 | + </PosPart> |
| 121 | + |
| 122 | + <PosPart copyNumber="2"> |
| 123 | + <rParent name="Telescope"/> |
| 124 | + <rChild name="PLTSensorPlane"/> |
| 125 | + <Translation x="0.*mm" y="-[TelWidthY]/2.+[ROCWidthY]/2.+2.2*mm" z="[TelWidthZ]/2.-[SiThkZ]/2" /> |
| 126 | + <rRotation name="rotations:000D" /> |
| 127 | + </PosPart> |
| 128 | + <!-- Copy the PLT into the PLTBCM volume --> |
| 129 | + <!-- NOTE: The 2mm shift is due to the new tracker volume to make the plt planes positioned in |z| correctly.--> |
| 130 | + <PosPart copyNumber="1"> |
| 131 | + <rParent name="pltbcm:PLTBCM"/> |
| 132 | + <rChild name="PLT"/> |
| 133 | + <Translation x="0.*mm" y="0.*mm" z="[SiPlane1ZtoCenter]-[pltbcm:PltBcmZ]-2.*mm" /> |
| 134 | + <rRotation name="rotations:000D"/> |
| 135 | + </PosPart> |
| 136 | + |
| 137 | + <!-- Old positioning without PLTBCM volume |
| 138 | + <PosPart copyNumber="1"> |
| 139 | + <rParent name="cms:CMSE"/> |
| 140 | + <rChild name="PLT"/> |
| 141 | + <Translation x="0.*mm" y="0.*mm" z="[SiPlane1ZtoCenter]" /> |
| 142 | + <rRotation name="rotations:000D"/> |
| 143 | + </PosPart> |
| 144 | +
|
| 145 | + |
| 146 | + <PosPart copyNumber="0"> |
| 147 | + <rParent name="cms:CMSE"/> |
| 148 | + <rChild name="PLT"/> |
| 149 | + <Translation x="0.*mm" y="0.*mm" z="-[SiPlane1ZtoCenter]" /> |
| 150 | + <rRotation name="rotations:180D"/> |
| 151 | + </PosPart> --> |
| 152 | + <!-- Copy the telescopes into the PLT volume starting with phi=112.5 degrees. RotateSolid vector gives correct orientation of the planes--> |
| 153 | + <Algorithm name="global:DDAngular"> |
| 154 | + <rParent name="PLT"/> |
| 155 | + <String name="ChildName" value="Telescope"/> |
| 156 | + <Numeric name="StartCopyNo" value="0"/> |
| 157 | + <Numeric name="IncrCopyNo" value="1"/> |
| 158 | + <Numeric name="N" value="8"/> |
| 159 | + <Numeric name="Radius" value="[SiPlane1RtoCenter]"/> |
| 160 | + <Numeric name="StartAngle" value="112.5*deg"/> |
| 161 | + <Numeric name="RangeAngle" value="360*deg"/> |
| 162 | + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> |
| 163 | + <Vector name="RotateSolid" type="numeric" nEntries="24"> 0.*deg, 0.*deg, -90.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg, 0.*deg </Vector> |
| 164 | + </Algorithm> |
| 165 | + |
| 166 | + </PosPartSection> |
| 167 | + |
| 168 | +</DDDefinition> |
0 commit comments