Skip to content

Commit 281184a

Browse files
committed
Geometry of PLT
1 parent 9482891 commit 281184a

File tree

1 file changed

+202
-142
lines changed
  • Geometry/ForwardCommonData/data

1 file changed

+202
-142
lines changed
+202-142
Original file line numberDiff line numberDiff line change
@@ -1,144 +1,204 @@
11
<?xml version="1.0"?>
2-
<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">
3-
<ConstantsSection label="plt">
4-
<Constant name="pltTilt" value="10*deg"/>
5-
<Constant name="pltBladeR" value="54*mm"/>
6-
<Constant name="pltBladeZ" value="30*mm"/>
7-
<Constant name="pltBladeX" value="6*mm"/>
8-
<Constant name="pltBladeY" value="6*mm"/>
9-
<Constant name="pltBladeThickness" value="0.5*mm"/>
10-
<Constant name="pltSensorXoff" value="-3*mm"/>
11-
<Constant name="pltSensorX" value="2*mm"/>
12-
<Constant name="pltSensorY" value="2*mm"/>
13-
<Constant name="pltSensorThickness" value="1*mm"/>
14-
<Constant name="pltSensorZ" value="[pltBladeThickness]+[pltSensorThickness]"/>
15-
<Constant name="pltBackBoneX" value="1*mm"/>
16-
<Constant name="pltBackBoneY" value="1*mm"/>
17-
<Constant name="pltBackBoneZ" value="35*mm"/>
18-
</ConstantsSection>
19-
<SolidSection label="pltSolids">
20-
<Box name="PLT_Telescope" dx="1*cm" dy="1*cm" dz="3.5*cm"/>
21-
<Box name="PLT_Backbone" dx="[pltBackBoneX]" dy="[pltBackBoneY]" dz="[pltBackBoneZ]"/>
22-
<Box name="PLT_Blade" dx="[pltBladeX]" dy="[pltBladeY]" dz="[pltBladeThickness]"/>
23-
<Box name="PLTSensitiveDetector" dx="[pltSensorX]" dy="[pltSensorY]" dz="[pltSensorThickness]"/>
24-
</SolidSection>
25-
<RotationSection label="pltRotations">
26-
<Rotation name="PLTrot1" phiX="0*deg" thetaX="90.*deg+[pltTilt]" phiY="90.*deg" thetaY="90.*deg" phiZ="0.*deg" thetaZ="[pltTilt]"/>
27-
<Rotation name="PLTrot2" phiX="45.*deg" thetaX="90.*deg+[pltTilt]" phiY="135.*deg" thetaY="90.*deg" phiZ="45.*deg" thetaZ="[pltTilt]"/>
28-
<Rotation name="PLTrot3" phiX="90.*deg" thetaX="90.*deg+[pltTilt]" phiY="180.*deg" thetaY="90.*deg" phiZ="90.*deg" thetaZ="[pltTilt]"/>
29-
<Rotation name="PLTrot4" phiX="135.*deg" thetaX="90.*deg+[pltTilt]" phiY="225.*deg" thetaY="90.*deg" phiZ="135.*deg" thetaZ="[pltTilt]"/>
30-
<Rotation name="PLTrot5" phiX="180.*deg" thetaX="90.*deg+[pltTilt]" phiY="270.*deg" thetaY="90.*deg" phiZ="180.*deg" thetaZ="[pltTilt]"/>
31-
<Rotation name="PLTrot6" phiX="225.*deg" thetaX="90.*deg+[pltTilt]" phiY="315.*deg" thetaY="90.*deg" phiZ="225.*deg" thetaZ="[pltTilt]"/>
32-
<Rotation name="PLTrot7" phiX="270.*deg" thetaX="90.*deg+[pltTilt]" phiY="0.*deg" thetaY="90.*deg" phiZ="270.*deg" thetaZ="[pltTilt]"/>
33-
<Rotation name="PLTrot8" phiX="315.*deg" thetaX="90.*deg+[pltTilt]" phiY="45.*deg" thetaY="90.*deg" phiZ="315.*deg" thetaZ="[pltTilt]"/>
34-
</RotationSection>
35-
<LogicalPartSection label="PLTLog">
36-
<LogicalPart name="PLT_Telescope" category="unspecified">
37-
<rSolid name="PLT_Telescope"/>
38-
<rMaterial name="materials:Air"/>
39-
</LogicalPart>
40-
<LogicalPart name="PLT_Backbone" category="unspecified">
41-
<rSolid name="PLT_Backbone"/>
42-
<rMaterial name="materials:Copper"/>
43-
</LogicalPart>
44-
<LogicalPart name="PLT_Blade" category="unspecified">
45-
<rSolid name="PLT_Blade"/>
46-
<rMaterial name="trackermaterial:T_G10"/>
47-
</LogicalPart>
48-
<LogicalPart name="PLTSensitiveDetector" category="unspecified">
49-
<rSolid name="PLTSensitiveDetector"/>
50-
<rMaterial name="materials:Carbon"/>
51-
</LogicalPart>
52-
</LogicalPartSection>
53-
<!-- Position of plt volumes -->
54-
<PosPartSection label="pltPar">
55-
<PosPart copyNumber="1">
56-
<rParent name="forward:PLT"/>
57-
<rChild name="plt:PLT_Telescope"/>
58-
<Translation x="[pltBladeR]*cos(0*deg)" y="[pltBladeR]*sin(0*deg)" z="0*cm"/>
59-
<rRotation name="PLTrot1"/>
60-
</PosPart>
61-
<PosPart copyNumber="2">
62-
<rParent name="forward:PLT"/>
63-
<rChild name="plt:PLT_Telescope"/>
64-
<Translation x="[pltBladeR]*cos(45*deg)" y="[pltBladeR]*sin(45*deg)" z="0*cm"/>
65-
<rRotation name="PLTrot2"/>
66-
</PosPart>
67-
<PosPart copyNumber="3">
68-
<rParent name="forward:PLT"/>
69-
<rChild name="plt:PLT_Telescope"/>
70-
<Translation x="[pltBladeR]*cos(90*deg)" y="[pltBladeR]*sin(90*deg)" z="0*cm"/>
71-
<rRotation name="PLTrot3"/>
72-
</PosPart>
73-
<PosPart copyNumber="4">
74-
<rParent name="forward:PLT"/>
75-
<rChild name="plt:PLT_Telescope"/>
76-
<Translation x="[pltBladeR]*cos(135*deg)" y="[pltBladeR]*sin(135*deg)" z="0*cm"/>
77-
<rRotation name="PLTrot4"/>
78-
</PosPart>
79-
<PosPart copyNumber="5">
80-
<rParent name="forward:PLT"/>
81-
<rChild name="plt:PLT_Telescope"/>
82-
<Translation x="[pltBladeR]*cos(180*deg)" y="[pltBladeR]*sin(180*deg)" z="0*cm"/>
83-
<rRotation name="PLTrot5"/>
84-
</PosPart>
85-
<PosPart copyNumber="6">
86-
<rParent name="forward:PLT"/>
87-
<rChild name="plt:PLT_Telescope"/>
88-
<Translation x="[pltBladeR]*cos(225*deg)" y="[pltBladeR]*sin(225*deg)" z="0*cm"/>
89-
<rRotation name="PLTrot6"/>
90-
</PosPart>
91-
<PosPart copyNumber="7">
92-
<rParent name="forward:PLT"/>
93-
<rChild name="plt:PLT_Telescope"/>
94-
<Translation x="[pltBladeR]*cos(270*deg)" y="[pltBladeR]*sin(270*deg)" z="0*cm"/>
95-
<rRotation name="PLTrot7"/>
96-
</PosPart>
97-
<PosPart copyNumber="8">
98-
<rParent name="forward:PLT"/>
99-
<rChild name="plt:PLT_Telescope"/>
100-
<Translation x="[pltBladeR]*cos(315*deg)" y="[pltBladeR]*sin(315*deg)" z="0*cm"/>
101-
<rRotation name="PLTrot8"/>
102-
</PosPart>
103-
<PosPart copyNumber="1">
104-
<rParent name="plt:PLT_Telescope"/>
105-
<rChild name="plt:PLT_Backbone"/>
106-
<Translation x="[pltBladeX]" y="-[pltBladeY]-[pltBackBoneY]" z="0*cm"/>
107-
</PosPart>
108-
<PosPart copyNumber="2">
109-
<rParent name="plt:PLT_Telescope"/>
110-
<rChild name="plt:PLT_Backbone"/>
111-
<Translation x="[pltBladeX]" y="[pltBladeY]+[pltBackBoneY]" z="0*cm"/>
112-
</PosPart>
113-
<PosPart copyNumber="1">
114-
<rParent name="plt:PLT_Telescope"/>
115-
<rChild name="plt:PLT_Blade"/>
116-
<Translation x="0*fm" y="0*fm" z="[pltBladeZ]"/>
117-
</PosPart>
118-
<PosPart copyNumber="2">
119-
<rParent name="plt:PLT_Telescope"/>
120-
<rChild name="plt:PLT_Blade"/>
121-
<Translation x="0*fm" y="0*fm" z="0*cm"/>
122-
</PosPart>
123-
<PosPart copyNumber="3">
124-
<rParent name="plt:PLT_Telescope"/>
125-
<rChild name="plt:PLT_Blade"/>
126-
<Translation x="0*fm" y="0*fm" z="-[pltBladeZ]"/>
127-
</PosPart>
128-
<PosPart copyNumber="1">
129-
<rParent name="plt:PLT_Telescope"/>
130-
<rChild name="plt:PLTSensitiveDetector"/>
131-
<Translation x="[pltSensorXoff]" y="0*fm" z="[pltBladeZ]-[pltSensorZ]"/>
132-
</PosPart>
133-
<PosPart copyNumber="2">
134-
<rParent name="plt:PLT_Telescope"/>
135-
<rChild name="plt:PLTSensitiveDetector"/>
136-
<Translation x="[pltSensorXoff]" y="0*fm" z="-[pltSensorZ]"/>
137-
</PosPart>
138-
<PosPart copyNumber="3">
139-
<rParent name="plt:PLT_Telescope"/>
140-
<rChild name="plt:PLTSensitiveDetector"/>
141-
<Translation x="[pltSensorXoff]" y="0*fm" z="-[pltBladeZ]-[pltSensorZ]"/>
142-
</PosPart>
143-
</PosPartSection>
2+
<DDDefinition xmlns="http://www.cern.ch/cms/DDL"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://www.cern.ch/cms/DDL
5+
../../../DetectorDescription/Schema/DDLSchema.xsd">
6+
7+
<!-- Author: Christian Contreras-Campana -->
8+
<!-- Transition to Silicon from Diamond done by Steven M. Kaplan -->
9+
10+
<!-- Declare constants used in the PLT DDL -->
11+
<ConstantsSection label="cassette_build.xml" eval="true">
12+
<Constant name = "pltTilt" value = "1.57*deg" />
13+
14+
<Constant name = "SiPlane0RtoCenter" value = "48.5*mm" />
15+
<Constant name = "SiPlane1RtoCenter" value = "49.5*mm" />
16+
<Constant name = "SiPlane2RtoCenter" value = "50.5*mm" />
17+
18+
<Constant name = "SiPlane0ZtoCenter" value = "1714.1*mm" />
19+
<Constant name = "SiPlane1ZtoCenter" value = "1751.8*mm" />
20+
<Constant name = "SiPlane2ZtoCenter" value = "1789.5*mm" />
21+
22+
<Constant name = "ROCWidthX" value = "10.0*mm" />
23+
<Constant name = "ROCWidthY" value = "10.0*mm" />
24+
<Constant name = "SiThkZ" value = "0.30*mm" />
25+
26+
<Constant name = "TelWidthX" value = "[ROCWidthX]+2.*mm" />
27+
<Constant name = "TelWidthY" value = "[ROCWidthY]" />
28+
<Constant name = "TelWidthZ" value = "[SiPlane2ZtoCenter]-[SiPlane0ZtoCenter]+[SiThkZ]" />
29+
<Constant name = "PLTMaxR" value = "sqrt((([SiPlane2RtoCenter]+[ROCWidthX]/2.)*([SiPlane2RtoCenter]+[ROCWidthX]/2.))+([ROCWidthX]/2.)*([ROCWidthX]/2.))" />
30+
31+
<Constant name = "NumberOfRows" value = "80" />
32+
<Constant name = "NumberOfColumns" value = "52" />
33+
<Constant name = "PixelRowWidth" value = "0.1*mm" />
34+
<Constant name = "PixelColumnWidth" value = "0.15*mm" />
35+
<Constant name = "ActiveAreaColumnWidth" value = "[PixelColumnWidth]*[NumberOfColumns]" />
36+
<Constant name = "ActiveAreaRowWidth" value = "[PixelRowWidth]*[NumberOfRows]" />
37+
38+
</ConstantsSection>
39+
40+
<!-- Declare PLT component Solids -->
41+
<SolidSection label="main.xml">
42+
43+
<!-- Declare telescope components-->
44+
<Box name="PLTSensorPlane" dx="[ROCWidthX]/2." dy="[ROCWidthY]/2."
45+
dz="[SiThkZ]/2." />
46+
47+
<Tubs name="PLT" startPhi="0.0*deg" deltaPhi="360*deg" rMin="0.*mm"
48+
rMax="[PLTMaxR]"
49+
dz="[TelWidthZ]/2."/>
50+
<!--
51+
<Tubs name="Telescope" startPhi="-22.5*deg" deltaPhi="45.*deg" rMin="0.*mm"
52+
rMax="56.*mm" dz="[TelWidthZ]"/> -->
53+
54+
<Box name="Telescope" dx="[TelWidthX]/2." dy="[TelWidthY]/2." dz="[TelWidthZ]/2." />
55+
56+
<Box name="PLTPixel" dx="[PixelColumnWidth]/2." dy="[PixelRowWidth]/2." dz="[SiThkZ]/2." />
57+
58+
<Box name ="PLTSensorRow" dx="[ActiveAreaColumnWidth]/2." dy="[PixelRowWidth]/2." dz="[SiThkZ]/2." />
59+
60+
</SolidSection>
61+
62+
<RotationSection label="cassette_build.xml">
63+
<!-- Telescope rotation matrix -->
64+
<Rotation name="RotTel1" thetaX="90.*deg" thetaY="90.*deg" thetaZ="0.0*deg"
65+
phiX="-90.0*deg" phiY="0.0*deg" phiZ="0.0*deg" />
66+
<Rotation name="RotTel2" thetaX="90.*deg" thetaY="90.*deg" thetaZ="0.0*deg"
67+
phiX="-45.0*deg" phiY="45.0*deg" phiZ="45.0*deg" />
68+
<Rotation name="RotTel3" thetaX="90.*deg" thetaY="90.*deg" thetaZ="0.0*deg"
69+
phiX="0.0*deg" phiY="90.0*deg" phiZ="90.0*deg" />
70+
<Rotation name="RotTel4" thetaX="90.*deg" thetaY="90.*deg" thetaZ="0.0*deg"
71+
phiX="45.0*deg" phiY="135.0*deg" phiZ="135.0*deg" />
72+
<Rotation name="RotTel5" thetaX="90.*deg" thetaY="90.*deg" thetaZ="0.0*deg"
73+
phiX="90.0*deg" phiY="180.0*deg" phiZ="180.0*deg" />
74+
<Rotation name="RotTel6" thetaX="90.*deg" thetaY="90.*deg" thetaZ="0.0*deg"
75+
phiX="135.0*deg" phiY="225.0*deg" phiZ="225.0*deg" />
76+
<Rotation name="RotTel7" thetaX="90.*deg" thetaY="90.*deg" thetaZ="0.0*deg"
77+
phiX="180.0*deg" phiY="270.0*deg" phiZ="270.0*deg" />
78+
<Rotation name="RotTel8" thetaX="90.*deg" thetaY="90.*deg" thetaZ="0.0*deg"
79+
phiX="225.0*deg" phiY="315.0*deg" phiZ="315.0*deg" />
80+
</RotationSection>
81+
82+
83+
<!-- Define the Physical PLT Solids, i.e. the Logical Parts -->
84+
<LogicalPartSection label="main.xml">
85+
<!--Changed all materials to be materials:Vacuum except for silicon -->
86+
<!-- Telescope logical parts -->
87+
<LogicalPart name="PLT" category="unspecified">
88+
<rSolid name="PLT"/>
89+
<rMaterial name="materials:Vacuum"/>
90+
</LogicalPart>
91+
92+
<LogicalPart name="Telescope" category="unspecified">
93+
<rSolid name="Telescope"/>
94+
<rMaterial name="materials:Vacuum"/>
95+
</LogicalPart>
96+
97+
<LogicalPart name="PLTSensorPlane" category="unspecified">
98+
<rSolid name="PLTSensorPlane"/>
99+
<rMaterial name="materials:Vacuum"/>
100+
</LogicalPart>
101+
102+
<LogicalPart name="PLTSensorRow" category="unspecified">
103+
<rSolid name="PLTSensorRow"/>
104+
<rMaterial name="materials:Vacuum"/>
105+
</LogicalPart>
106+
107+
<LogicalPart name="PLTPixel" category="unspecified">
108+
<rSolid name="PLTPixel"/>
109+
<rMaterial name="materials:Silicon"/>
110+
</LogicalPart>
111+
112+
</LogicalPartSection>
113+
114+
<!-- Position the Silicon in the telescope and copy the telescope to have 8 of them. Take this amalgamation of 8 telescopes then copy it to have one on each end of the IP-->
115+
<PosPartSection label="main.xml">
116+
117+
<!-- Positioning Silicon in the telescope -->
118+
119+
<!-- Copy the pixels into a row to form the columns -->
120+
<Algorithm name="global:DDLinear">
121+
<rParent name="PLTSensorRow"/>
122+
<String name="ChildName" value="PLTPixel"/>
123+
<Numeric name="StartCopyNo" value="0"/>
124+
<Numeric name="IncrCopyNo" value="1"/>
125+
<Numeric name="N" value="[NumberOfColumns]"/>
126+
<Numeric name="Delta" value="[PixelColumnWidth]"/>
127+
<Vector name="Base" type="numeric" nEntries="3"> -[ActiveAreaColumnWidth]/2.+[PixelColumnWidth]/2.,0.*mm,0.*mm </Vector>
128+
<Numeric name="Theta" value="90*deg"/>
129+
<Numeric name="Phi" value="0.*deg"/>
130+
</Algorithm>
131+
<!-- Copy the rows to form the sensor plane! -->
132+
<Algorithm name="global:DDLinear">
133+
<rParent name="PLTSensorPlane"/>
134+
<String name="ChildName" value="PLTSensorRow"/>
135+
<Numeric name="StartCopyNo" value="0"/>
136+
<Numeric name="IncrCopyNo" value="1"/>
137+
<Numeric name="N" value="[NumberOfRows]"/>
138+
<Numeric name="Delta" value="[PixelRowWidth]"/>
139+
<Vector name="Base" type="numeric" nEntries="3"> 0.*mm,-[ROCWidthY]/2.+[PixelRowWidth]/2.,0.*mm </Vector>
140+
<Numeric name="Theta" value="90*deg"/>
141+
<Numeric name="Phi" value="90.*deg"/>
142+
</Algorithm>
143+
144+
<PosPart copyNumber="0">
145+
<rParent name="Telescope"/>
146+
<rChild name="PLTSensorPlane"/>
147+
<Translation x="-[TelWidthX]/2.+[ROCWidthX]/2." y="0.*mm" z="-[TelWidthZ]/2.+[SiThkZ]/2." />
148+
<rRotation name="rotations:000D" />
149+
</PosPart>
150+
151+
<PosPart copyNumber="1">
152+
<rParent name="Telescope"/>
153+
<rChild name="PLTSensorPlane"/>
154+
<Translation x="-[TelWidthX]/2.+[ROCWidthX]/2.+1.*mm" y="0.*mm" z="0.*mm" />
155+
<rRotation name="rotations:000D" />
156+
</PosPart>
157+
158+
<PosPart copyNumber="2">
159+
<rParent name="Telescope"/>
160+
<rChild name="PLTSensorPlane"/>
161+
<Translation x="-[TelWidthX]/2.+[ROCWidthX]/2.+2.*mm" y="0.*mm" z="[TelWidthZ]/2.-[SiThkZ]/2" />
162+
<rRotation name="rotations:000D" />
163+
</PosPart>
164+
165+
<PosPart copyNumber="1">
166+
<rParent name="pltbcm:PLTBCM"/>
167+
<rChild name="PLT"/>
168+
<Translation x="0.*mm" y="0.*mm" z="[SiPlane1ZtoCenter]-[pltbcm:PltBcmZ]" />
169+
<rRotation name="rotations:000D"/>
170+
</PosPart>
171+
172+
<!-- Old positioning without PLTBCM volume
173+
<PosPart copyNumber="1">
174+
<rParent name="cms:CMSE"/>
175+
<rChild name="PLT"/>
176+
<Translation x="0.*mm" y="0.*mm" z="[SiPlane1ZtoCenter]" />
177+
<rRotation name="rotations:000D"/>
178+
</PosPart>
179+
180+
181+
<PosPart copyNumber="0">
182+
<rParent name="cms:CMSE"/>
183+
<rChild name="PLT"/>
184+
<Translation x="0.*mm" y="0.*mm" z="-[SiPlane1ZtoCenter]" />
185+
<rRotation name="rotations:180D"/>
186+
</PosPart> -->
187+
188+
<Algorithm name="global:DDAngular">
189+
<rParent name="PLT"/>
190+
<String name="ChildName" value="Telescope"/>
191+
<Numeric name="StartCopyNo" value="0"/>
192+
<Numeric name="IncrCopyNo" value="1"/>
193+
<Numeric name="N" value="8"/>
194+
<Numeric name="Radius" value="[SiPlane1RtoCenter]"/>
195+
<Numeric name="StartAngle" value="0.*deg"/>
196+
<Numeric name="RangeAngle" value="360*deg"/>
197+
<Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector>
198+
<Vector name="RotateSolid" type="numeric" nEntries="24"> 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, 0.*deg, 0.*deg, 0.*deg </Vector>
199+
</Algorithm>
200+
201+
202+
</PosPartSection>
203+
144204
</DDDefinition>

0 commit comments

Comments
 (0)