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
|
<?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="bcm1f">
<!-- dimensions of the bcm1f volume -->
<Constant name="Bcm1Z1" value="1.800*m"/>
<Constant name="Bcm1Z2" value="1.900*m"/>
<Constant name="Bcm1fZ" value="([Bcm1Z2]+[Bcm1Z1])/2"/> <!-- z position of the centre of bcm1f volume wrt to CMS -->
<Constant name="Bcm1fThickness" value="([Bcm1Z2]-[Bcm1Z1])"/>
<Constant name="Bcm1fInnerRadius" value="[cms:TrackBeamR1]"/>
<Constant name="Bcm1fOuterRadius" value="[cms:TrackLumiR1]"/>
<!-- dimensions of the diamonds -->
<Constant name="DiamondLX" value="5.0*mm"/>
<Constant name="DiamondLY" value="5.0*mm"/>
<Constant name="DiamondLZ" value="0.5*mm"/>
<Constant name="DiamondZ" value="1814*mm"/> <!-- z position of the centre of the diamond wrt CMS -->
<!-- dimensions of the effective (metallised) sensitive area -->
<Constant name="SensorLX" value="[DiamondLX]*0.95"/>
<Constant name="SensorLY" value="[DiamondLY]*0.95/2"/>
<Constant name="SensorLZ" value="[DiamondLZ]"/>
<Constant name="SensorGap" value="0.01*mm"/>
<Constant name="SensorShift" value="[SensorLY]/2+[SensorGap]/2"/>
<!-- location of the sensors in rho-z with respect to CMS (0,0,0) -->
<Constant name="SensorRho" value="70.5*mm"/>
<Constant name="SensorZ" value="[DiamondZ]"/>
</ConstantsSection>
<!-- Create geometrical shapes -->
<SolidSection label="bcm1f">
<Tubs name="BCM1F" rMin="[Bcm1fInnerRadius]" rMax="[Bcm1fOuterRadius]" dz="[Bcm1fThickness]/2" startPhi="0*deg" deltaPhi="360*deg"/>
<Box name="BCM1FDiamond" dx="[DiamondLX]/2" dy="[DiamondLY]/2" dz="[DiamondLZ]/2"/>
<Box name="BCM1FSensor" dx="[SensorLX]/2" dy="[SensorLY]/2" dz="[SensorLZ]/2"/>
</SolidSection>
<!-- Define the materials of the geometrical shapes -->
<LogicalPartSection label="bcm1f">
<LogicalPart name="BCM1F" category="unspecified">
<rSolid name="BCM1F"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="BCM1FDiamond" category="unspecified">
<rSolid name="BCM1FDiamond"/>
<rMaterial name="materials:Diamond"/>
</LogicalPart>
<LogicalPart name="BCM1FSensor" category="unspecified">
<rSolid name="BCM1FSensor"/>
<rMaterial name="materials:Diamond"/>
</LogicalPart>
</LogicalPartSection>
<!-- Position -->
<PosPartSection label="bcm1f">
<!-- Planes -->
<PosPart copyNumber="1">
<rParent name="pltbcm:PLTBCM"/>
<rChild name="BCM1F"/>
<rRotation name="rotations:000D"/>
<Translation x="0*fm" y="0*fm" z="[Bcm1fZ]-[pltbcm:PltBcmZ]"/>
</PosPart>
<!-- Diamonds -->
<Algorithm name="global:DDAngular">
<rParent name="BCM1F"/>
<String name="ChildName" value="BCM1FDiamond"/>
<Numeric name="StartCopyNo" value="1"/>
<Numeric name="IncrCopyNo" value="1"/>
<Numeric name="N" value="12"/>
<Numeric name="Radius" value="[SensorRho]"/>
<Numeric name="StartAngle" value="120*deg"/>
<Numeric name="RangeAngle" value="360*deg"/>
<Vector name="Center" type="numeric" nEntries="3"> 0, 0, ([DiamondZ]-[Bcm1fZ]) </Vector>
<Vector name="RotateSolid" type="numeric" nEntries="36">
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,
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>
</Algorithm>
<!-- Sensors -->
<PosPart copyNumber="1">
<rParent name="BCM1FDiamond"/>
<rChild name="BCM1FSensor"/>
<rRotation name="rotations:000D"/>
<Translation x="0*fm" y="-[SensorShift]" z="0*fm"/>
</PosPart>
<PosPart copyNumber="2">
<rParent name="BCM1FDiamond"/>
<rChild name="BCM1FSensor"/>
<rRotation name="rotations:000D"/>
<Translation x="0*fm" y="[SensorShift]" z="0*fm"/>
</PosPart>
</PosPartSection>
</DDDefinition>
|