SND@LHC Software
Loading...
Searching...
No Matches
charm-geometry_config.py
Go to the documentation of this file.
1import shipunit as u
2from ShipGeoConfig import AttrDict, ConfigRegistry
3# the following params should be passed through 'ConfigRegistry.loadpy' method
4# none for the moment
5with ConfigRegistry.register_config("basic") as c:
6
7 c.MufluxSpectrometer = AttrDict(z = 0*u.cm)
8 # False = charm cross-section; True = muon flux measurement
9
10 if "targetOpt" not in globals():
11 targetOpt = 18 # add extra 20cm of tungsten as per 13/06/2017
12
13 if "Setup" not in globals(): #muon flux or charm xsec measurement
14 Setup = 0
15
16 if "cTarget" not in globals():
17 cTarget = 3
18
19 if Setup == 0:
20 c.MufluxSpectrometer.muflux = True
21 else:
22 c.MufluxSpectrometer.muflux = False
23
24 c.target = AttrDict(z0=0*u.cm)
25
26 c.MufluxTargetStation=AttrDict(z0=0* u.cm)
27 c.MufluxTargetStation.absorber_x=120 *u.cm
28 c.MufluxTargetStation.absorber_y=97.5*u.cm
29 c.MufluxTargetStation.absorbercutout_x=102* u.cm
30 c.MufluxTargetStation.absorbercutout_y=27.5*u.cm
31 c.MufluxTargetStation.ironshield_x=20.*u.cm
32 c.MufluxTargetStation.ironshield_y=82.5*u.cm
33 c.MufluxTargetStation.ironshield_z=160*u.cm
34 c.MufluxTargetStation.concreteshield_x=40*u.cm
35 c.MufluxTargetStation.concreteshield_y=82.5*u.cm
36 c.MufluxTargetStation.concreteshield_z=160.*u.cm
37 c.MufluxTargetStation.abovetargetshield_x=120*u.cm
38 c.MufluxTargetStation.abovetargetshield_y=42.5*u.cm
39 c.MufluxTargetStation.abovetargetshield_z=160*u.cm
40 c.MufluxTargetStation.aboveabsorbershield_x=120*u.cm
41 c.MufluxTargetStation.aboveabsorbershield_y=40*u.cm
42 c.MufluxTargetStation.aboveabsorbershield_z=80*u.cm
43 c.MufluxTargetStation.aboveabovetargetshield_y=40*u.cm
44 c.MufluxTargetStation.floor_x=500.*u.cm
45 c.MufluxTargetStation.floor_y=80.*u.cm
46 c.MufluxTargetStation.floor_z=800.*u.cm
47 c.MufluxTargetStation.floorT34_x=500.*u.cm
48 c.MufluxTargetStation.floorT34_y=16.*u.cm
49 c.MufluxTargetStation.floorT34_z=118.875*u.cm
50 c.MufluxTargetStation.floorRPC_x=500.*u.cm
51 #c.MufluxTargetStation.floorRPC_y=32.5*u.cm
52 #c.MufluxTargetStation.floorRPC_z=110.*u.cm
53 c.MufluxTargetStation.floorRPC_y=42.5*u.cm
54 c.MufluxTargetStation.floorRPC_z=175.*u.cm
55
56 #BOX (Brick!)
57 c.Box = AttrDict(z=0*u.cm)
58 c.Box.zBox = 106.66 * u.cm
59 c.Box.EmTh = 0.0070 * u.cm
60 c.Box.EmX = 12.5 * u.cm
61 c.Box.EmY = 9.9 * u.cm
62 c.Box.PBTh = 0.0175 * u.cm
63 if cTarget == 16:
64 c.Box.PasSlabTh = 0.09 * u.cm #passive slab in ECC (run with tungsten)
65 else:
66 c.Box.PasSlabTh = 0.1 * u.cm #passive slab in ECC (lead for July 2018 measurement, molybdenum/tungsten for SHiP target replica)
67 c.Box.EPlW = 2* c.Box.EmTh + c.Box.PBTh
68 c.Box.AllPW = c.Box.PasSlabTh + c.Box.EPlW
69 c.Box.BrX = 12.9 *u.cm
70 c.Box.BrY = 10.5 *u.cm
71 c.Box.BrPackZ = 0.1 * u.cm
72 c.Box.BrPackX = c.Box.BrX - c.Box.EmX
73 c.Box.BrPackY = c.Box.BrY - c.Box.EmY
74 c.Box.BrZ = 54 * c.Box.AllPW + c.Box.EPlW +c.Box.BrPackZ
75 c.Box.CoolX = c.Box.EmX #all the passive layers have the same transverse dimensions of nuclear emulsion films
76 c.Box.CoolY = c.Box.EmY
77 c.Box.CoolZ = 0.5 * u.cm
78 c.Box.CoatX = c.Box.EmX
79 c.Box.CoatY = c.Box.EmY
80 c.Box.CoatZ = 0.15 * u.cm
81 c.Box.TX = c.Box.EmX
82 c.Box.TY = c.Box.EmY
83 c.Box.TZ = 5.7 *u.cm #not used for July testbeam geometry
84 #passive blocks thicknesses
85 c.Box.Molblock1Z = 7.7 * u.cm
86 c.Box.Molblock2Z = 2.2 * u.cm
87 c.Box.Molblock3Z = 4.7 * u.cm
88 c.Box.Molblock4Z = 6.2 * u.cm
89 c.Box.Wblock1Z = 4.7 * u.cm
90 c.Box.Wblock2Z = 7.7 * u.cm
91 c.Box.Wblock3Z = 9.7 * u.cm
92 c.Box.Wblock3_5Z = 19.7 * u.cm
93 c.Box.Wblock4Z = 8.45 * u.cm
94
95 #passive sampling
96 c.Box.Passive3mmZ = 0.3 * u.cm
97 c.Box.Passive2mmZ = 0.2 * u.cm
98 c.Box.Passive1mmZ = 0.1 * u.cm
99
100 #Distance between passive bricks and ECC brick
101 c.Box.distancePassive2ECC = 3.0 *u.cm
102
103
104 #OPTIONS FOR CHARM XSEC DETECTOR
105 c.Box.gausbeam = True
106 c.Box.Julytarget = True
107 c.Box.GapPostTargetTh = 0.73 * u.cm #distance between end of the emulsion target and start of pixel box (Pixel origin)
108 c.Box.RunNumber = cTarget #run configuration for charm
109
110 # target absorber muon shield setup, decayVolume.length = nominal EOI length, only kept to define z=0
111 c.decayVolume = AttrDict(z=0*u.cm)
112 c.decayVolume.length = 50*u.m
113
114 c.hadronAbsorber = AttrDict(z=0*u.cm)
115 c.hadronAbsorber.length = 2.4*u.m
116
117 c.hadronAbsorber.z = - c.hadronAbsorber.length/2.
118
119 c.target = AttrDict(z=0*u.cm)
120 c.targetOpt = targetOpt
121
122 c.target.M1 = "molybdenummisis"
123 c.target.L1 = 8.52*u.cm
124 c.target.M2 = "molybdenummisis"
125 c.target.L2 = 2.8*u.cm
126 c.target.M3 = "molybdenummisis"
127 c.target.L3 = 2.8*u.cm
128 c.target.M4 = "molybdenummisis"
129 c.target.L4 = 2.8*u.cm
130 c.target.M5 = "molybdenummisis"
131 c.target.L5 = 2.8*u.cm
132 c.target.M6 = "molybdenummisis"
133 c.target.L6 = 2.8*u.cm
134 c.target.M7 = "molybdenummisis"
135 c.target.L7 = 2.8*u.cm
136 c.target.M8 = "molybdenummisis"
137 c.target.L8 = 2.8*u.cm
138 c.target.M9 = "molybdenummisis"
139 c.target.L9 = 5.4*u.cm
140 c.target.M10 = "molybdenummisis"
141 c.target.L10 = 5.4*u.cm
142 c.target.M11 = "molybdenummisis"
143 c.target.L11 = 6.96*u.cm
144 c.target.M12 = "molybdenummisis"
145 c.target.L12 = 8.52*u.cm
146 c.target.M13 = "molybdenummisis"
147 c.target.L13 = 8.52*u.cm
148 c.target.M14 = "tungstenmisis"
149 c.target.L14 = 5.17*u.cm
150 c.target.M15 = "tungstenmisis"
151 c.target.L15 = 8.3*u.cm
152 c.target.M16 = "tungstenmisis"
153 c.target.L16 = 10.39*u.cm
154 c.target.M17 = "tungstenmisis"
155 c.target.L17 = 20.82*u.cm
156 c.target.M18 = "tungstenmisis"
157 c.target.L18 = 36.47*u.cm
158 c.target.sl = 0.54459*u.cm # H20 slit *17 times; to get to the measured length by survey
159 c.target.xy = 10.*u.cm # new diameter of muflux target
160
161 # 5.0 cm is for front and endcaps
162
163 c.target.length = 154.328*u.cm #from survey
164 # interaction point, start of target
165
166 c.target.z = c.hadronAbsorber.z - c.hadronAbsorber.length/2. - c.target.length/2.
167 c.target.z0 = c.target.z - c.target.length/2.
168
169 #PixelModules
170
171 c.PixelModules = AttrDict(z = 0*u.cm)
172
173 #Spectrometer
174 c.Spectrometer = AttrDict(z = 0*u.cm)
175 #Parameters for Goliath by Annarita
176 c.Spectrometer.LS = 4.5*u.m
177 c.Spectrometer.TS = 3.6*u.m
178 #c.Spectrometer.CoilR = 1.*u.m
179 c.Spectrometer.CoilR = 1.6458*u.m
180 c.Spectrometer.UpCoilH = 45*u.cm
181 c.Spectrometer.LowCoilH = 30*u.cm
182 #c.Spectrometer.CoilD = 105*u.cm
183 c.Spectrometer.CoilD = 103.5575*u.cm
184 #c.Spectrometer.BasisH = 57*u.cm
185 c.Spectrometer.BasisH = 50.22125*u.cm
186 c.Spectrometer.H = 2*c.Spectrometer.BasisH + c.Spectrometer.CoilD + c.Spectrometer.UpCoilH + c.Spectrometer.LowCoilH
187
188 # -----Drift tube part --------
189 c.MufluxSpectrometer.v_drift = 1./(72*u.ns/u.mm) # 1300 ns max for 36.3 mm drifttubes
190 c.MufluxSpectrometer.sigma_spatial = 0.027*u.cm # from Daniel 8feb2018
191
192 c.MufluxSpectrometer.TubeLength = 160.*u.cm
193 c.MufluxSpectrometer.TubeLength12 = 110.*u.cm
194 c.MufluxSpectrometer.tr12ydim = 110.*u.cm
195 c.MufluxSpectrometer.tr34xdim = 200.*u.cm
196 c.MufluxSpectrometer.tr12xdim = 50.*u.cm
197 c.MufluxSpectrometer.tr34ydim = 160.*u.cm
198
199 # parameters for drift tubes
200 c.MufluxSpectrometer.InnerTubeDiameter = 3.63*u.cm
201 c.MufluxSpectrometer.WallThickness = 0.085*u.cm
202 c.MufluxSpectrometer.OuterTubeDiameter = (c.MufluxSpectrometer.InnerTubeDiameter + 2*c.MufluxSpectrometer.WallThickness)
203
204 c.MufluxSpectrometer.TubePitch = 4.2*u.cm
205 c.MufluxSpectrometer.TubePitch_T1u = 0.0009765*u.cm
206 #c.MufluxSpectrometer.T1u_const = -0.008655*u.cm
207 c.MufluxSpectrometer.T1u_const = 0.001343*u.cm
208 c.MufluxSpectrometer.T1u_const_2 = 0.00183*u.cm
209 c.MufluxSpectrometer.T1u_const_3 = 0.001575*u.cm
210 c.MufluxSpectrometer.T1u_const_4 = 0.0010859*u.cm
211 c.MufluxSpectrometer.T2v_const = 3.100985*u.cm
212 c.MufluxSpectrometer.T2v_const_2 = -1.09986*u.cm
213 c.MufluxSpectrometer.T2v_const_3 = -1.100305*u.cm
214 c.MufluxSpectrometer.T2v_const_4 = 3.100543*u.cm
215 c.MufluxSpectrometer.TubePitch_T2v = 0.001695*u.cm
216 c.MufluxSpectrometer.DeltazLayer = 3.64*u.cm
217 c.MufluxSpectrometer.DeltazPlane = 7.7*u.cm
218
219 c.MufluxSpectrometer.TubesPerLayer = 12
220 c.MufluxSpectrometer.ViewAngle = 60.2
221 c.MufluxSpectrometer.ViewvAngle = -60.
222 c.MufluxSpectrometer.WireThickness = 0.0045*u.cm
223 c.MufluxSpectrometer.DeltazView = 15.14*u.cm
224
225 c.MufluxSpectrometer.diststereoT1 = 16.08*u.cm
226 c.MufluxSpectrometer.diststereoT2 = 16.27*u.cm
227 c.MufluxSpectrometer.distT1T2 = 11.*u.cm
228 if c.MufluxSpectrometer.muflux == True:
229 c.MufluxSpectrometer.distT3T4 = 1.6*u.m
230 else:
231 c.MufluxSpectrometer.distT3T4 = 1.0*u.m
232
233 #c.MufluxSpectrometer.goliathcentre_to_beam = 178.6*u.mm
234 #from edms 1825777 + cumer email
235 c.MufluxSpectrometer.goliathcentre_to_beam = 17.32*u.cm + (c.Spectrometer.UpCoilH-c.Spectrometer.LowCoilH)/2.
236 c.MufluxSpectrometer.goliathcentre = 351.19*u.cm
237
238 c.MufluxSpectrometer.T1x_x=4.22*u.cm
239 c.MufluxSpectrometer.T1x_y=-1.995*u.cm
240 c.MufluxSpectrometer.T1x_z=0.*u.cm
241 c.MufluxSpectrometer.T1z=40.13*u.cm
242 c.MufluxSpectrometer.T1u_x=7.8*u.cm
243 c.MufluxSpectrometer.T1u_y=-0.16*u.cm
244 c.MufluxSpectrometer.T1u_z=-0.00175*u.cm
245 c.MufluxSpectrometer.T2x_x=2.43*u.cm
246 c.MufluxSpectrometer.T2x_y=-2.1875*u.cm
247 c.MufluxSpectrometer.T2x_z=-0.01074*u.cm
248 c.MufluxSpectrometer.T2z=108.822745*u.cm
249 c.MufluxSpectrometer.T2v_x=3.5*u.cm
250 c.MufluxSpectrometer.T2v_y=0.09*u.cm
251 c.MufluxSpectrometer.T2v_z=0.*u.cm
252 c.MufluxSpectrometer.T3x=2.475*u.cm
253 c.MufluxSpectrometer.T3y=-7.3405*u.cm
254 c.MufluxSpectrometer.T3z=585.18*u.cm # plus 7cm offset + 5mm ad hoc
255 c.MufluxSpectrometer.T3z_1=0.1350*u.cm
256 c.MufluxSpectrometer.T3z_2=-0.06250*u.cm
257 c.MufluxSpectrometer.T3z_3=-0.1150*u.cm
258 c.MufluxSpectrometer.T3z_4=-0.100*u.cm
259 c.MufluxSpectrometer.T3x_1=-0.13250*u.cm
260 c.MufluxSpectrometer.T3x_2=-0.014*u.cm
261 c.MufluxSpectrometer.T3x_3=0.1120*u.cm
262 c.MufluxSpectrometer.T3x_4=0.1270*u.cm
263 c.MufluxSpectrometer.T4x=2.95*u.cm
264 c.MufluxSpectrometer.T4y=-6.9845*u.cm
265 c.MufluxSpectrometer.T4z=748.32*u.cm # min 7cm offset +5mm ad hoc
266 c.MufluxSpectrometer.T4z_1=0.1125*u.cm
267 c.MufluxSpectrometer.T4z_2=-0.050*u.cm
268 c.MufluxSpectrometer.T4z_3=-0.12250*u.cm
269 c.MufluxSpectrometer.T4z_4=-0.05250*u.cm
270 c.MufluxSpectrometer.T4x_1=-0.030*u.cm
271 c.MufluxSpectrometer.T4x_2=0.04250*u.cm
272 c.MufluxSpectrometer.T4x_3=-0.00750*u.cm
273 c.MufluxSpectrometer.T4x_4=-0.010*u.cm
274
275 if c.MufluxSpectrometer.muflux == True:
276 c.Spectrometer.DX = 2.*u.m
277 c.Spectrometer.DY = 1.6*u.m
278 c.Spectrometer.DZ = 16.*u.cm
279 else:
280 c.Spectrometer.DX = 1*u.m
281 c.Spectrometer.DY = 0.5*u.m
282 c.Spectrometer.DZ = 13.5 * u.cm
283 c.PixelModules.DX = 1*u.m
284 c.PixelModules.DY = 0.5*u.m
285 c.PixelModules.DZ = 13.5 * u.cm
286
287 c.MufluxSpectrometer.DX = 2.*u.m
288 c.MufluxSpectrometer.DY = 1.6*u.m
289 c.MufluxSpectrometer.DZ = 11.72*u.cm
290
291 #Adding survey results for charm measurement (Daniel)
292
293 c.MufluxSpectrometer.SurveyCharm_T3ax = 876.075*u.mm
294 c.MufluxSpectrometer.SurveyCharm_T3ay = 101.6*u.mm
295 c.MufluxSpectrometer.SurveyCharm_T3az = 15269*u.mm+70*u.mm-8896.09*u.mm #todo: check th 70mm (probably forgt bolt and alignement sphere before)
296 c.MufluxSpectrometer.SurveyCharm_T3bx = 372.1*u.mm
297 c.MufluxSpectrometer.SurveyCharm_T3by = 98.875*u.mm
298 c.MufluxSpectrometer.SurveyCharm_T3bz = 15338.475*u.mm-8896.09*u.mm
299 c.MufluxSpectrometer.SurveyCharm_T3cx = -323.425*u.mm
300 c.MufluxSpectrometer.SurveyCharm_T3cy = 97.85*u.mm
301 c.MufluxSpectrometer.SurveyCharm_T3cz = 15337.625*u.mm-8896.09*u.mm
302 c.MufluxSpectrometer.SurveyCharm_T3dx = -829.3*u.mm
303 c.MufluxSpectrometer.SurveyCharm_T3dy = 97.7*u.mm
304 c.MufluxSpectrometer.SurveyCharm_T3dz = 15337.6*u.mm-8896.09*u.mm
305
306 c.MufluxSpectrometer.SurveyCharm_T3tx = 13.8*u.mm
307 c.MufluxSpectrometer.SurveyCharm_T3ty = 649.85*u.mm
308 c.MufluxSpectrometer.SurveyCharm_T3tz = 15606.1*u.mm-8896.09*u.mm
309
310 c.MufluxSpectrometer.SurveyCharm_T4ax = 886.15*u.mm
311 c.MufluxSpectrometer.SurveyCharm_T4ay = 105.35*u.mm
312 c.MufluxSpectrometer.SurveyCharm_T4az = 16572.225*u.mm-200*u.mm-8896.09*u.mm #-200 mm because of wrong sign in first calcualtion
313 c.MufluxSpectrometer.SurveyCharm_T4bx = 351.9*u.mm
314 c.MufluxSpectrometer.SurveyCharm_T4by = 102.45*u.mm
315 c.MufluxSpectrometer.SurveyCharm_T4bz = 16570.8*u.mm-200*u.mm-8896.09*u.mm
316 c.MufluxSpectrometer.SurveyCharm_T4cx = -341.575*u.mm
317 c.MufluxSpectrometer.SurveyCharm_T4cy = 100.225*u.mm
318 c.MufluxSpectrometer.SurveyCharm_T4cz = 16571.625*u.mm-200*u.mm-8896.09*u.mm
319 c.MufluxSpectrometer.SurveyCharm_T4dx = -845.8*u.mm
320 c.MufluxSpectrometer.SurveyCharm_T4dy = 99.05*u.mm
321 c.MufluxSpectrometer.SurveyCharm_T4dz = 16571.3*u.mm-200*u.mm-8896.09*u.mm
322
323 c.MufluxSpectrometer.SurveyCharm_T4tx = 13.6*u.mm
324 c.MufluxSpectrometer.SurveyCharm_T4ty = 675*u.mm
325 c.MufluxSpectrometer.SurveyCharm_T4tz = 16102.45*u.mm-8896.09*u.mm
326
327 #These parameters are used only by the charm detector ---
328 c.Spectrometer.D1Short = 3.36 * u.cm / 2.;
329 c.Spectrometer.D1Long = 4 * u.cm;
330 c.Spectrometer.SX = c.Spectrometer.DX
331 c.Spectrometer.SY = c.Spectrometer.DY
332
333 c.PixelModules.DimZSithin = 0.0200 * u.cm
334 c.PixelModules.DimZSithick = 0.0245 * u.cm
335 c.PixelModules.nSlice = 5 # for digitization simulation recommended nSlice=10
336 c.PixelModules.D1short = 50. * u.um * 336 # = 1.68 u.cm. Each module has 336 rows.
337 c.PixelModules.D1long = ((78 * 250.) + 450. + 500. )* u.um * 2 # = 4.09 * u.cm. Each module has 160 columns, the outer two and the centered two have different size.
338 c.PixelModules.numSi = 12*c.PixelModules.nSlice
339 c.PixelModules.z_offset = 0.7 * u.cm
340
341 # position of module centres units are cm. Geometry is given with reference to the centre of all modules for the xy plane and the front of the pixel box for the z axis, precision is given to the micron range
342 # module position naming: "axis"Si"Module number"
343
344 #position of module centres units are cm. Geometry is given with reference to the centre of all modules for the xy plane and the front of the pixel box for the z axis, precision is given to the micron range
345 #module position naming: "axis"Si"Module number"
346
347 #measured values
348 c.PixelModules.xSi = []
349 c.PixelModules.ySi = []
350 c.PixelModules.zSi = []
351
352 # Module 0
353 for i in range(1-c.PixelModules.nSlice, 1):
354 c.PixelModules.xSi.append(1.53912)
355 c.PixelModules.ySi.append(-0.002332)
356 c.PixelModules.zSi.append(-0.13 + i * c.PixelModules.DimZSithick / c.PixelModules.nSlice)
357 # Module 1
358 for i in range(1-c.PixelModules.nSlice, 1):
359 c.PixelModules.xSi.append(-0.229076)
360 c.PixelModules.ySi.append(0.005328)
361 c.PixelModules.zSi.append(0.52 + i * c.PixelModules.DimZSithick / c.PixelModules.nSlice)
362 # Module 2
363 for i in range(1-c.PixelModules.nSlice, 1):
364 c.PixelModules.xSi.append(0.704924)
365 c.PixelModules.ySi.append(0.808437)
366 c.PixelModules.zSi.append(2.412+i*c.PixelModules.DimZSithin/c.PixelModules.nSlice)
367 # Module 3
368 for i in range(1-c.PixelModules.nSlice, 1):
369 c.PixelModules.xSi.append(0.705433)
370 c.PixelModules.ySi.append(-0.879224)
371 c.PixelModules.zSi.append(3.09+i*c.PixelModules.DimZSithick/c.PixelModules.nSlice)
372 # Module 4 (Didn't take data)
373 for i in range(1-c.PixelModules.nSlice, 1):
374 c.PixelModules.xSi.append(1.54963)
375 c.PixelModules.ySi.append(-0.003912)
376 c.PixelModules.zSi.append(5.17+i*c.PixelModules.DimZSithick/c.PixelModules.nSlice)
377 # Module 5
378 for i in range(1-c.PixelModules.nSlice, 1):
379 c.PixelModules.xSi.append(-0.221577)
380 c.PixelModules.ySi.append(-0.023944)
381 c.PixelModules.zSi.append(5.79+i*c.PixelModules.DimZSithick/c.PixelModules.nSlice)
382 # Module 6
383 for i in range(1-c.PixelModules.nSlice, 1):
384 c.PixelModules.xSi.append(0.690749)
385 c.PixelModules.ySi.append(0.769728)
386 c.PixelModules.zSi.append(7.77+i*c.PixelModules.DimZSithick/c.PixelModules.nSlice)
387 # Module 7
388 for i in range(1-c.PixelModules.nSlice, 1):
389 c.PixelModules.xSi.append(0.702302)
390 c.PixelModules.ySi.append(-0.874356)
391 c.PixelModules.zSi.append(8.46+i*c.PixelModules.DimZSithick/c.PixelModules.nSlice)
392 # Module 8
393 for i in range(1-c.PixelModules.nSlice, 1):
394 c.PixelModules.xSi.append(1.58271)
395 c.PixelModules.ySi.append(-0.0030432)
396 c.PixelModules.zSi.append(10.462+i*c.PixelModules.DimZSithick/c.PixelModules.nSlice)
397 # Module 9
398 for i in range(1-c.PixelModules.nSlice, 1):
399 c.PixelModules.xSi.append(-0.209171)
400 c.PixelModules.ySi.append(0.002488)
401 c.PixelModules.zSi.append(11.17+i*c.PixelModules.DimZSithick/c.PixelModules.nSlice)
402 # Module 10
403 for i in range(1-c.PixelModules.nSlice, 1):
404 c.PixelModules.xSi.append(0.694199)
405 c.PixelModules.ySi.append(0.850237)
406 c.PixelModules.zSi.append(13.162+i*c.PixelModules.DimZSithick/c.PixelModules.nSlice)
407 # Module 11
408 for i in range(1-c.PixelModules.nSlice, 1):
409 c.PixelModules.xSi.append(0.683245)
410 c.PixelModules.ySi.append(-0.79636)
411 c.PixelModules.zSi.append(13.85+i*c.PixelModules.DimZSithin/c.PixelModules.nSlice)
412
413 # SciFi Modules
414 c.SciFi = AttrDict(z=0*u.cm)
415 # mother volume dimensions
416 c.SciFi.DX = 50*u.cm
417 c.SciFi.DY = 50*u.cm
418 c.SciFi.DZ = 28.07 * u.cm #as difference between positions of SF_DHBR and x of SF_UHTL in the Survey document
419
420 c.SciFi.nstations = 8 #number of stations (currently sensitive volumes)
421 #dimensions of each station
422 c.SciFi.StationDimX = 40 * u.cm
423 c.SciFi.StationDimY = 40 * u.cm
424 c.SciFi.StationDimZ = 0.0200 * u.cm
425 #SciFi position values (referred to the start of SciFi mother volume)
426 c.SciFi.xSi = []
427 c.SciFi.ySi = []
428 c.SciFi.zSi = []
429 zscifigap = c.SciFi.DZ/c.SciFi.nstations - c.SciFi.StationDimZ #distance between center of two stations, for the moment equally spaced
430 #Module 0
431 c.SciFi.xSi.append(0.)
432 c.SciFi.ySi.append(0.)
433 c.SciFi.zSi.append(c.SciFi.StationDimZ/2)
434 #Module 1
435 c.SciFi.xSi.append(0.0)
436 c.SciFi.ySi.append(0.0)
437 c.SciFi.zSi.append(c.SciFi.StationDimZ/2 + zscifigap)
438 #Module 2
439 c.SciFi.xSi.append(0.0)
440 c.SciFi.ySi.append(0.0)
441 c.SciFi.zSi.append(c.SciFi.StationDimZ/2 + 2* zscifigap)
442 #Module 3
443 c.SciFi.xSi.append(0.0)
444 c.SciFi.ySi.append(0.0)
445 c.SciFi.zSi.append(c.SciFi.StationDimZ/2 + 3*zscifigap)
446 #Module 4
447 c.SciFi.xSi.append(0.0)
448 c.SciFi.ySi.append(0.0)
449 c.SciFi.zSi.append(c.SciFi.StationDimZ/2 + 4*zscifigap)
450 #Module 5
451 c.SciFi.xSi.append(0.0)
452 c.SciFi.ySi.append(0.0)
453 c.SciFi.zSi.append(c.SciFi.StationDimZ/2 + 5*zscifigap)
454 #Module 6
455 c.SciFi.xSi.append(0.0)
456 c.SciFi.ySi.append(0.0)
457 c.SciFi.zSi.append(c.SciFi.StationDimZ/2 + 6*zscifigap)
458 #Module 7
459 c.SciFi.xSi.append(0.0)
460 c.SciFi.ySi.append(0.0)
461 c.SciFi.zSi.append(c.SciFi.StationDimZ/2 + 7*zscifigap)
462
463 c.Spectrometer.Bvalue = 1 * u.tesla;
464
465 #-------------------------------------------------------
466
467
468 #Scintillator
469 c.Scintillator = AttrDict(z = 0*u.cm)
470 c.Scintillator.Scoring1X = 55.*u.cm
471 c.Scintillator.Scoring1Y = 110.*u.cm
472 c.Scintillator.DistT1 = 11.5*u.cm
473 #c.Scintillator.DistT2 = 135.25*u.cm
474 c.Scintillator.DistT2 = 136.26*u.cm
475
476 c.Spectrometer.SZ = c.Spectrometer.DZ*2 + c.PixelModules.zSi[c.PixelModules.numSi-1] - c.PixelModules.zSi[0] + c.PixelModules.DimZSithick + 80 *u.cm + 4.5*u.m #4.5 m is the Goliath length
477
478 c.PixelModules.DimZpixelbox = c.PixelModules.zSi[c.PixelModules.numSi-1] - c.PixelModules.zSi[c.PixelModules.nSlice-1] + c.PixelModules.DimZSithick
479
480 # old calculation for DimZpixelbox c.PixelModules.zSi[c.PixelModules.numSi-1] - c.PixelModules.zSi[c.PixelModules.nSlice-1] + c.PixelModules.DimZSithick
481 c.PixelModules.DimZpixelbox = 34. * u.cm # correct physical size of surrounding box
482
483 PixeltoGoliath = 30.45 * u.cm # 25.45 + 5cm different goliath dz
484 c.Spectrometer.zBox = 350.75 - c.Spectrometer.TS/2 - PixeltoGoliath - c.PixelModules.DimZpixelbox/2.
485 #position of mother volumes
486 c.Box.zBox = c.Spectrometer.zBox - c.PixelModules.DimZpixelbox/2. - c.Box.GapPostTargetTh
487 c.PixelModules.zBox = c.Spectrometer.zBox
488 PixelToSciFi = 469.05 #position of SciFi center defined with respect to distance to start of PixelBox, point PIXEL_UR-Measured in the survey document
489 c.SciFi.zBox = c.PixelModules.zBox - c.PixelModules.DimZpixelbox/2. + 469.05
490
491# Need to add SciFi
492 #Muon Filter
493
494 c.MuonTagger = AttrDict(z = 0*u.cm)
495 c.MuonTagger.PTh = 80 * u.cm;
496 c.MuonTagger.PTh1 = 40 * u.cm #last 3 slabs' thickness
497 c.MuonTagger.STh = 15.0 * u.cm
498
499 #from survey relative to center of RPC system (18.569225 + 0.00326706 ad hoc, iron blocks were measured by hand in survey coords)
500 #from survey to FairShip: subtract 8.89608294 m
501
502 #from survey
503 c.MuonTagger.RPC1z = -88.160794 * u.cm
504 c.MuonTagger.RPC2z = 6.799206 * u.cm
505 c.MuonTagger.RPC3z = 62.194206 * u.cm
506 c.MuonTagger.RPC4z = 117.309206 * u.cm
507 c.MuonTagger.RPC5z = 172.119206 * u.cm
508
509 c.MuonTagger.RPCthickness = 8. * u.cm
510 c.MuonTagger.VStripx = 0.8625 * u.cm
511 c.MuonTagger.VStripx_L = 0.9625 * u.cm
512 c.MuonTagger.VStripx_R = 0.86 * u.cm
513 c.MuonTagger.HStripy = 0.8625 * u.cm
514 c.MuonTagger.HStripy_ext = 0.3 * u.cm
515 c.MuonTagger.Stripfoamz = 0.6 * u.cm
516 c.MuonTagger.Stripz = 0.003 * u.cm # same as ground plane thickness
517 c.MuonTagger.HStripoffset = 0.1983 * u.cm
518 c.MuonTagger.VStripoffset = 0.2 * u.cm
519 c.MuonTagger.Gapthickness = 0.2 * u.cm
520 c.MuonTagger.Electrodethickness = 0.275 * u.cm
521 c.MuonTagger.NVstrips = 184
522 c.MuonTagger.NHstrips = 116
523
524
525
526 c.MuonTagger.BX = 2.0 *u.m
527 c.MuonTagger.BY = 1.3 * u.m
528 #c.MuonTagger.BX = 195.5 * u.cm
529 #c.MuonTagger.BY = 125. * u.cm
530 #c.MuonTagger.BZ = c.MuonTagger.PTh * 2 + c.MuonTagger.PTh1 * 3 + c.MuonTagger.STh * 5
531 #length of muon tagger from survey (260.475) + half of first rpc space (7.5) + first wall (80cm) + half of last rpc (4)
532 # half length 175.9875
533 #c.MuonTagger.BZ = 347.3551 * u.cm + 9. * u.cm
534 c.MuonTagger.BZ = 352.301706 * u.cm
535 #c.MuonTagger.BZ = 351.975 * u.cm
536
537 if c.MufluxSpectrometer.muflux == True:
538 #for the muflux measurement the muontagger has to be moved back 791.75 measured by hand, 173.6775=347.3551/2
539 #c.MuonTagger.zBox = 791.*u.cm + 173.67755*u.cm
540 c.MuonTagger.zBox = 791.*u.cm + 175.9875*u.cm
541 else:
542 c.MuonTagger.zBox = c.Spectrometer.zBox + c.PixelModules.DimZpixelbox/2. + PixeltoGoliath + c.Spectrometer.TS + 261*u.cm + c.MuonTagger.BZ/2. #real position of MuonTagger
543
544 c.MuonTagger.PX = c.MuonTagger.BX
545 c.MuonTagger.PY = c.MuonTagger.BY
546 c.MuonTagger.SX = 195.3975 * u.cm
547 c.MuonTagger.SY = 121.7295 * u.cm
548 c.MuonTagger.HX = 5 * u.cm #dimensions of central hole
549 c.MuonTagger.HY = 5 * u.cm
550
551
552
553