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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
<?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">
<!-- TBH4 geometry driver file. B. Heltsley, Feb 27, 2007
This file should not need modification for production simulation.
The tunable numbers that must be passed around are in the
files ebcon.xml and tbrot.xml. Other tunables that
are only needed for the beam line definition appear below
(for example, positions of hodoscopes and trigger counters).
The two numbers theta and phi specifying the angle
of the beam into the supermodule are at the top of tbrot.xml.
To vary that angle, modify that file.
The hierarchy is as follows:
OCMS is a big box and the world volume
CMSSE is the same size as OCMS and its child.
TBH4BeamLine is a long tube with the beam line inside CMSSE.
CALO is a phi-slice of a polycone to hold ECAL.
ECAL is a phi-slice of a polycone to hold EBAR.
EBAR is a phi slice of a polycone to hold ESPM.
In this way the normal CMS hierarchy is preserved.
To maintain compatibility with normal CMS simulation,
eregalgo.xml in this directory defines a logical
volume ECAL which is the same size as OCMS
and is its child. This is because the barrel must
be a child of eregalgo:ECAL.
The beam line TBH4BeamLine is a narrow and long tube holding
the sections of vacuum, windows, trigger counters,
and hodoscope. This is a child of ECAL.
The barrel itself is narrowed into a phi section
to allow entry of the beam into the detector.
It is a child of eregalgo:ECAL. A single supermodule
is placed inside this barrel.
The normal ebalgo.xml and ebrot.xml files from EcalCommonData are used
in conjunction with the test beam files. It receives
some modifications from the constants defined in
these files.
-->
<ConstantsSection label="TBH4.xml" eval="true">
</ConstantsSection>
<SolidSection label="TBH4.xml">
<Box name="OCMS" dx="2*[ebcon:ocmsdz]" dy="2*[ebcon:ocmsdz]" dz="2*[ebcon:ocmsdz]"/>
<Box name="CMSSE" dx="2*[ebcon:ocmsdz]" dy="2*[ebcon:ocmsdz]" dz="2*[ebcon:ocmsdz]"/>
<Polycone name="CALO" startPhi="-35*deg" deltaPhi="70*deg">
<ZSection z="-2.935*m-20*cm" rMin="1.238*m" rMax="1.775*m"/>
<ZSection z="2.935*m+20*cm" rMin="1.238*m" rMax="1.775*m"/>
</Polycone>
<Polycone name="ECAL" startPhi="-30*deg" deltaPhi="60*deg">
<ZSection z="-2.935*m-20*cm" rMin="1.238*m" rMax="1.775*m"/>
<ZSection z="2.935*m+20*cm" rMin="1.238*m" rMax="1.775*m"/>
</Polycone>
<Tubs name="TBH4BeamLine" rMin="0*mm" rMax="[ebcon:blRadius]" dz="0.5*[ebcon:blLength]" startPhi="0*deg" deltaPhi="360*deg"/>
</SolidSection>
<LogicalPartSection label="TBH4.xml">
<LogicalPart name="World" category="unspecified">
<rSolid name="OCMS"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="OCMS" category="unspecified">
<rSolid name="OCMS"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="CMSSE" category="unspecified">
<rSolid name="CMSSE"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="CALO" category="unspecified">
<rSolid name="CALO"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="MCMS" category="unspecified">
<rSolid name="OCMS"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="TBH4BeamLine" category="unspecified">
<rSolid name="TBH4BeamLine"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
</LogicalPartSection>
<RotationSection label="TBH4.xml">
<Rotation name="blRot" phiX="[tbrot:phi]" thetaX="[tbrot:theta]+90*deg" phiY="[tbrot:phi]+90*deg" thetaY=" 90*deg" phiZ="[tbrot:phi]" thetaZ="[tbrot:theta] "/>
</RotationSection>
<PosPartSection label="TBH4.xml">
<PosPart copyNumber="1">
<rParent name="TBH4:World"/>
<rChild name="TBH4:OCMS"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="TBH4:OCMS"/>
<rChild name="TBH4:CMSSE"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="TBH4:CMSSE"/>
<rChild name="TBH4:CALO"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="TBH4:CALO"/>
<rChild name="eregalgo:ECAL"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="TBH4:CMSSE"/>
<rChild name="TBH4:TBH4BeamLine"/>
<Translation x="[ebcon:blShift]*sin([tbrot:theta])*cos([tbrot:phi])" y="[ebcon:blShift]*sin([tbrot:theta])*sin([tbrot:phi])" z="[ebcon:blShift]*cos([tbrot:theta])"/>
<rRotation name="TBH4:blRot"/>
</PosPart>
</PosPartSection>
<Algorithm name="DDTBH4Algo">
<rParent name="TBH4:TBH4BeamLine"/>
<String name="HoleMat" value="materials:Air"/>
<Numeric name="BLZBeg" value="[ebcon:zLastBend]"/>
<Numeric name="BLZPiv" value="[ebcon:zPivotPt]"/>
<Numeric name="BLZEnd" value="[ebcon:zLastBend] + [ebcon:blLength]"/>
<Numeric name="BLRadius" value="[ebcon:blRadius]"/>
<String name="VacName" value="VAC"/>
<String name="VacMat" value="materials:Vacuum"/>
<Vector name="VacZBeg" type="numeric" nEntries="8">
384815*mm, 386220*mm, 403310*mm, 466195*mm,
480737*mm, 519950*mm, 624920*mm, 629020*mm
</Vector>
<Vector name="VacZEnd" type="numeric" nEntries="8">
386220*mm, 402887*mm, 452510*mm, 480337*mm,
516730*mm, 624890*mm, 628620*mm, 638320*mm
</Vector>
<String name="WinName" value="WIN"/>
<Vector name="WinMat" type="string" nEntries="16">
materials:Aluminium, materials:Aluminium,
materials:Mylar, materials:Mylar,
materials:Mylar, materials:Mylar,
materials:Mylar, materials:Mylar,
materials:Mylar, materials:Mylar,
materials:Mylar, materials:Mylar,
materials:Mylar, materials:Mylar,
materials:Mylar, materials:Mylar
</Vector>
<!-- Negative WinZBeg values mean place the window
just before the indicated z position,
positive values mean just after
-->
<Vector name="WinZBeg" type="numeric" nEntries="16">
402887*mm, -403310*mm,
452510*mm, 452845*mm,
459280*mm, 465965*mm,
-466195*mm, 480337*mm,
-480737*mm, 516730*mm,
-519950*mm, 624890*mm,
-624920*mm, 628620*mm,
-629020*mm, 638320*mm
</Vector>
<Vector name="WinThick" type="numeric" nEntries="16">
0.120*mm, 0.120*mm,
0.120*mm, 0.750*mm,
0.850*mm, 0.850*mm,
0.120*mm, 0.120*mm,
0.120*mm, 0.120*mm,
0.120*mm, 0.120*mm,
0.120*mm, 0.120*mm,
0.120*mm, 0.120*mm
</Vector>
<!-- Now trigger scintillators: the tunable parameters
are the x and y offsets from beam center and
the phi rotation of the square counters around
the beamline axis.
-->
<String name="TrgMat" value="materials:Scintillator"/>
<Numeric name="TrgVetoHoleRadius" value="15*mm"/>
<Vector name="TrgName" type="string" nEntries="7">
FNGR, VETO, TRG1, TRG3, TRG4, TRG5, TRG6
</Vector>
<Vector name="TrgSide" type="numeric" nEntries="7">
25*mm, 60*mm, 30*mm, 20*mm, 10*mm, 5*mm, 50*mm
</Vector>
<Vector name="TrgThick" type="numeric" nEntries="7">
10*mm, 10*mm, 3*mm, 3*mm, 3*mm, 3*mm, 10*mm
</Vector>
<Vector name="TrgPhi" type="numeric" nEntries="7">
0*deg, 0*deg, 0*deg, 0*deg, 0*deg, 0*deg, 0*deg
</Vector>
<Vector name="TrgXOff" type="numeric" nEntries="7">
0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm
</Vector>
<Vector name="TrgYOff" type="numeric" nEntries="7">
0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm
</Vector>
<Vector name="TrgZPiv" type="numeric" nEntries="7">
-3274*mm, -3181*mm, -2160*mm, -2036*mm, -1974*mm, -1912*mm, -347*mm
</Vector>
<!-- Now hodoscope: tunable parameters are the x and y offsets from
nominal center on the beam line and phi rotations of fiber planes
-->
<String name="FibFibName" value="FIBR"/>
<String name="FibCladName" value="CLAD"/>
<String name="FibFibMat" value="materials:Scintillator"/>
<String name="FibCladMat" value="materials:Plexiglas"/>
<Numeric name="FibSide" value="0.96*mm"/>
<Numeric name="FibCladThick" value="0.04*mm"/>
<Numeric name="FibLength" value="35*mm"/>
<Vector name="FibPhi" type="numeric" nEntries="4">
0*deg, 90*deg, 0*deg, 90*deg
</Vector>
<Vector name="FibXOff" type="numeric" nEntries="4">
-0.381*mm, 0*mm, -0.454*mm, 0*mm
</Vector>
<Vector name="FibYOff" type="numeric" nEntries="4">
0*mm, -0.504*mm, 0*mm, -0.489*mm
</Vector>
<Vector name="FibZPiv" type="numeric" nEntries="4">
-2657*mm, -2291*mm, -172*mm, [ebcon:hodoLastZ]
</Vector>
</Algorithm>
</DDDefinition>
|