SND@LHC Software
Loading...
Searching...
No Matches
sndLHC_geom_config.py
Go to the documentation of this file.
1import ROOT as r
2import shipunit as u
3from ShipGeoConfig import AttrDict, ConfigRegistry
4
5if "nuTargetPassive" not in globals():
6 nuTargetPassive = True
7if "useNagoyaEmulsions" not in globals():
8 useNagoyaEmulsions=False
9if "year" in globals():
10 year = int(globals()["year"])
11
12with ConfigRegistry.register_config("basic") as c:
13# cave parameters
14 c.cave = AttrDict(z=0*u.cm)
15
16 # Antonia, 482000mm (FASER+2, P3) + 1017mm (DZ) + 245mm (centre emulsion),z=483262./10.*u.cm
17 # centre emulsion now 326.2cm downstream from origin.
18 c.EmulsionDet = AttrDict(z=326.2*u.cm)
19 c.EmulsionDet.PassiveOption = nuTargetPassive #0 makes emulsion volumes active, 1 makes all emulsion volumes passive
20 c.EmulsionDet.row = 2
21 c.EmulsionDet.col = 2
22 c.EmulsionDet.wall= 5
23 c.EmulsionDet.target = 1 #number of neutrino target volumes
24 c.EmulsionDet.n_plates = 59
25 c.EmulsionDet.EmTh = 0.0070 * u.cm
26 c.EmulsionDet.EmX = 19.2 * u.cm
27 c.EmulsionDet.EmY = 19.2 * u.cm
28 c.EmulsionDet.PBTh = 0.0175 * u.cm
29 if (useNagoyaEmulsions):
30 c.EmulsionDet.n_plates = 56
31 c.EmulsionDet.PBTh = 0.0195 * u.cm
32
33 c.EmulsionDet.PassiveTh = 0.1 * u.cm
34 c.EmulsionDet.EPlW = 2* c.EmulsionDet.EmTh + c.EmulsionDet.PBTh
35 c.EmulsionDet.AllPW = c.EmulsionDet.PassiveTh + c.EmulsionDet.EPlW
36
37 c.EmulsionDet.BrPackZ = 0.*u.cm
38 c.EmulsionDet.BrPackX = 2*0.05*u.cm
39 c.EmulsionDet.BrPackY = 2*0.05*u.cm
40
41 c.EmulsionDet.BrX = c.EmulsionDet.EmX + c.EmulsionDet.BrPackX
42 c.EmulsionDet.BrY = c.EmulsionDet.EmY + c.EmulsionDet.BrPackY
43 c.EmulsionDet.BrZ = c.EmulsionDet.n_plates * c.EmulsionDet.AllPW + c.EmulsionDet.EPlW + c.EmulsionDet.BrPackZ
44
45 c.EmulsionDet.xdim = 42.2 *u.cm #external wall dimensions
46 c.EmulsionDet.ydim = 42.2 *u.cm
47 c.EmulsionDet.TotalWallZDim = 10.0 *u.cm #wall dimension along z, including border
48 c.EmulsionDet.WallXDim = 38.6 *u.cm #internal wall dimensions
49 c.EmulsionDet.WallYDim = 38.6 *u.cm
50 c.EmulsionDet.WallZDim = 8.15 *u.cm
51 c.EmulsionDet.WallZBorder_offset = 4.75 * u.mm
52 c.EmulsionDet.TTz = 3.0*u.cm
53 c.EmulsionDet.zdim = c.EmulsionDet.wall* c.EmulsionDet.TotalWallZDim + c.EmulsionDet.wall*c.EmulsionDet.TTz
54 c.EmulsionDet.ShiftX = -8.0*u.cm - c.EmulsionDet.xdim/2.
55 c.EmulsionDet.ShiftY = 15.5*u.cm + c.EmulsionDet.ydim/2.
56
57 c.EmulsionDet.startpos = -25.4750 * u.cm + c.EmulsionDet.z
58 c.EmulsionDet.zC = c.EmulsionDet.startpos + c.EmulsionDet.zdim/2.
59
60 # survey points in survey coordinate system!
61 c.EmulsionDet.Xpos0,c.EmulsionDet.Ypos0,c.EmulsionDet.Zpos0 = 53.5*u.mm,2889.2*u.mm,172.0*u.mm
62 c.EmulsionDet.Xpos1,c.EmulsionDet.Ypos1,c.EmulsionDet.Zpos1 = 53.4*u.mm,3019.3*u.mm,172.1*u.mm
63 c.EmulsionDet.Xpos2,c.EmulsionDet.Ypos2,c.EmulsionDet.Zpos2 = 53.3*u.mm,3149.2*u.mm,172.3*u.mm
64 c.EmulsionDet.Xpos3,c.EmulsionDet.Ypos3,c.EmulsionDet.Zpos3 = 53.3*u.mm,3279.2*u.mm,172.4*u.mm
65 c.EmulsionDet.Xpos4,c.EmulsionDet.Ypos4,c.EmulsionDet.Zpos4 = 53.2*u.mm,3409.2*u.mm,172.5*u.mm
66
67 #SciFi parameters
68 c.Scifi = AttrDict(z=0*u.cm)
69 c.Scifi.xdim = 39.0 * u.cm #sensitive only
70 c.Scifi.ydim = 39.0 * u.cm
71 c.Scifi.zdim = c.EmulsionDet.TTz
72 c.Scifi.DZ = c.EmulsionDet.BrZ
73 c.Scifi.nmats = 3
74 c.Scifi.nscifi = 5
75
76 #SiPM parameters
77 c.Scifi.channel_width = 0.25 *u.mm
78 c.Scifi.sipm_edge = 0.17*u.mm # on both ends
79 c.Scifi.charr_gap = 0.2 *u.mm
80 c.Scifi.charr_width = 64 * c.Scifi.channel_width
81 c.Scifi.sipm_diegap = 0.06*u.mm
82 c.Scifi.SiPMarray_width = c.Scifi.sipm_edge+c.Scifi.charr_width+c.Scifi.charr_gap+c.Scifi.charr_width+c.Scifi.sipm_edge
83 c.Scifi.nsipm_channels = 128
84 c.Scifi.nsipm_mat = 4
85 c.Scifi.nsipms = c.Scifi.nsipm_mat * c.Scifi.nmats # 12 per SciFi plane
86 c.Scifi.sipmarr_width = c.Scifi.charr_gap + 2.*c.Scifi.charr_width
87 c.Scifi.firstChannelX = -19.528*u.cm # to agree with SiPM positions of engineering design
88
89 c.Scifi.nfibers_shortrow = 471
90 c.Scifi.nfibers_longrow = 472
91 c.Scifi.nfibers_z = 6
92
93# Guido: Fibre mat total width 500um less wide than 4 SiPM arrays mounted on a single bar, therefore 32.6mm x 4 -0.5=129.9mm
94 c.Scifi.scifimat_width = (c.Scifi.SiPMarray_width+c.Scifi.sipm_diegap)*c.Scifi.nsipm_mat -0.5*u.mm
95 c.Scifi.scifimat_length = c.Scifi.ydim
96 c.Scifi.scifimat_z = 0.135 *u.cm
97 c.Scifi.epoxymat_z = 0.17 *u.cm
98 c.Scifi.scifimat_gap = 0.05 *u.cm
99
100 c.Scifi.fiber_length = c.Scifi.scifimat_length
101 c.Scifi.scintcore_rmax = 0.011 *u.cm
102 c.Scifi.clad1_rmin = c.Scifi.scintcore_rmax
103 c.Scifi.clad1_rmax = 0.01175 *u.cm
104 c.Scifi.clad2_rmin = c.Scifi.clad1_rmax
105 c.Scifi.clad2_rmax = 0.0125 *u.cm
106
107 c.Scifi.horizontal_pitch = 0.0275 *u.cm
108 c.Scifi.vertical_pitch = 0.021 *u.cm
109 c.Scifi.rowlong_offset = 0.035 *u.cm
110 c.Scifi.rowshort_offset = 0.0215 *u.cm
111
112 c.Scifi.carbonfiber_z = 0.02 *u.cm
113 c.Scifi.honeycomb_z = 0.5 *u.cm
114
115 c.Scifi.plastbar_x = 1.5 *u.cm
116 c.Scifi.plastbar_y = c.Scifi.ydim
117 c.Scifi.plastbar_z = 0.195 *u.cm
118
119 c.Scifi.scifi_separation = c.Scifi.zdim + c.EmulsionDet.BrZ
120 c.Scifi.offset_z = - c.EmulsionDet.zdim/2 + c.EmulsionDet.BrZ #SciFi starts at the end of the first ECC
121
122 c.Scifi.timeResol = 150.*u.picosecond
123
124 # absolute edge point positions in survey coordinate system
125 c.Scifi.Xpos0,c.Scifi.Ypos0,c.Scifi.Zpos0 = 39.3*u.mm,2989.7*u.mm,158.2*u.mm
126 c.Scifi.Xpos1,c.Scifi.Ypos1,c.Scifi.Zpos1 = 39.2*u.mm,3119.7*u.mm,158.4*u.mm
127 c.Scifi.Xpos2,c.Scifi.Ypos2,c.Scifi.Zpos2 = 39.1*u.mm,3249.7*u.mm,158.5*u.mm
128 c.Scifi.Xpos3,c.Scifi.Ypos3,c.Scifi.Zpos3 = 39.1*u.mm,3379.7*u.mm,158.6*u.mm
129 c.Scifi.Xpos4,c.Scifi.Ypos4,c.Scifi.Zpos4 = 39.0*u.mm,3509.7*u.mm,158.8*u.mm
130# Scifi technical drawing, distance from first channel on vertical / horizontal plane to edge point 225,225,0, xy plane z perpendicularc.Scifi.ydim
131 c.Scifi.EdgeAX, c.Scifi.EdgeAY, c.Scifi.EdgeAZ = 225*u.mm, 225*u.mm, 0*u.mm
132
133 c.Scifi.FirstChannelVX,c.Scifi.FirstChannelVY,c.Scifi.FirstChannelVZ = -195.28*u.mm, -200.0*u.mm, -12.92*u.mm
134
135 c.Scifi.FirstChannelHX,c.Scifi.FirstChannelHY,c.Scifi.FirstChannelHZ = -200.0*u.mm, -195.28*u.mm, -7.07*u.mm
136
137# Local Scifi position of first channel on a vertical scifi plane in software
138 c.Scifi.LfirstChannelVX,c.Scifi.LfirstChannelVY,c.Scifi.LfirstChannelVZ = -195.135*u.mm, 195.0*u.mm, 11.85*u.mm # sipm on top
139
140# Local Scifi position of last channel (=first channel on technical drawing) on a horizontal scifi plane in software
141 c.Scifi.LfirstChannelHX,c.Scifi.LfirstChannelHY,c.Scifi.LfirstChannelHZ = -195.0*u.mm, 195.178*u.mm, 6.25*u.mm # sipm on the right side direction away from IP1
142
143# relative mat alignments
144 c.Scifi.LocM100,c.Scifi.LocM101,c.Scifi.LocM102 = 0.0*u.um, 0.0*u.um, 0.0*u.um
145 c.Scifi.LocM110,c.Scifi.LocM111,c.Scifi.LocM112= 0.0*u.um, 0.0*u.um, 0.0*u.um
146 c.Scifi.LocM200,c.Scifi.LocM201,c.Scifi.LocM202= 0.0*u.um, 0.0*u.um, 0.0*u.um
147 c.Scifi.LocM210,c.Scifi.LocM211,c.Scifi.LocM212 = 0.0*u.um, 0.0*u.um, 0.0*u.um
148 c.Scifi.LocM300,c.Scifi.LocM301,c.Scifi.LocM302= 0.0*u.um, 0.0*u.um, 0.0*u.um
149 c.Scifi.LocM310,c.Scifi.LocM311,c.Scifi.LocM312= 0.0*u.um, 0.0*u.um, 0.0*u.um
150 c.Scifi.LocM400,c.Scifi.LocM401,c.Scifi.LocM402 = 0.0*u.um, 0.0*u.um, 0.0*u.um
151 c.Scifi.LocM410,c.Scifi.LocM411,c.Scifi.LocM412= 0.0*u.um, 0.0*u.um, 0.0*u.um
152 c.Scifi.LocM500,c.Scifi.LocM501,c.Scifi.LocM502= 0.0*u.um, 0.0*u.um, 0.0*u.um
153 c.Scifi.LocM510,c.Scifi.LocM511,c.Scifi.LocM512= 0.0*u.um, 0.0*u.um, 0.0*u.um
154# station rotations
155 c.Scifi.RotPhiS1,c.Scifi.RotPsiS1,c.Scifi.RotThetaS1 = 0,0,0
156 c.Scifi.RotPhiS2,c.Scifi.RotPsiS2,c.Scifi.RotThetaS2 = 0,0,0
157 c.Scifi.RotPhiS3,c.Scifi.RotPsiS3,c.Scifi.RotThetaS3 = 0,0,0
158 c.Scifi.RotPhiS4,c.Scifi.RotPsiS4,c.Scifi.RotThetaS4 = 0,0,0
159 c.Scifi.RotPhiS5,c.Scifi.RotPsiS5,c.Scifi.RotThetaS5 = 0,0,0
160
161# Time alignment Scifi, T0 = station 0, mat 0
162 c.Scifi.signalSpeed = 15 * u.cm/u.ns
163 c.Scifi.station1t,c.Scifi.station1H0t,c.Scifi.station1H1t,c.Scifi.station1H2t,c.Scifi.station1V0t,c.Scifi.station1V1t,c.Scifi.station1V2t = 0.000*u.ns, 0.000*u.ns, -0.222*u.ns, -0.509*u.ns, -0.517*u.ns, -1.156*u.ns, -0.771*u.ns
164 c.Scifi.station2t,c.Scifi.station2H0t,c.Scifi.station2H1t,c.Scifi.station2H2t,c.Scifi.station2V0t,c.Scifi.station2V1t,c.Scifi.station2V2t = -0.287*u.ns, 0.000*u.ns, 0.250*u.ns, -0.854*u.ns, -1.455*u.ns, -0.812*u.ns, -1.307*u.ns
165 c.Scifi.station3t,c.Scifi.station3H0t,c.Scifi.station3H1t,c.Scifi.station3H2t,c.Scifi.station3V0t,c.Scifi.station3V1t,c.Scifi.station3V2t = -0.861*u.ns, 0.000*u.ns, -0.307*u.ns, 0.289*u.ns, 0.069*u.ns, -0.895*u.ns, 0.731*u.ns
166 c.Scifi.station4t,c.Scifi.station4H0t,c.Scifi.station4H1t,c.Scifi.station4H2t,c.Scifi.station4V0t,c.Scifi.station4V1t,c.Scifi.station4V2t = 0.164*u.ns, 0.000*u.ns, -1.451*u.ns, 0.196*u.ns, -2.025*u.ns, -1.049*u.ns, -0.938*u.ns
167 c.Scifi.station5t,c.Scifi.station5H0t,c.Scifi.station5H1t,c.Scifi.station5H2t,c.Scifi.station5V0t,c.Scifi.station5V1t,c.Scifi.station5V2t = 0.337*u.ns, 0.000*u.ns, -1.157*u.ns, -1.060*u.ns, -0.627*u.ns, -2.405*u.ns, 0.071*u.ns
168
169 c.MuFilter = AttrDict(z=0*u.cm)
170 #coordinates in local gravity based system
171#coordinates in local gravity based system
172 if year == 2024:
173 c.MuFilter.Veto1Dx,c.MuFilter.Veto1Dy,c.MuFilter.Veto1Dz = 49.3*u.mm, 2761.1*u.mm, 168.1*u.mm
174 c.MuFilter.Veto2Dx,c.MuFilter.Veto2Dy,c.MuFilter.Veto2Dz = 49.3*u.mm, 2802.1*u.mm, 148.1*u.mm
175 c.MuFilter.Veto3Dx,c.MuFilter.Veto3Dy,c.MuFilter.Veto3Dz = 61.8*u.mm, 2863.1*u.mm, 146.6*u.mm
176 else:
177 c.MuFilter.Veto1Dx,c.MuFilter.Veto1Dy,c.MuFilter.Veto1Dz = 40.8*u.mm, 2798.3*u.mm, 192.1*u.mm
178 c.MuFilter.Veto2Dx,c.MuFilter.Veto2Dy,c.MuFilter.Veto2Dz = 40.6*u.mm, 2839.3*u.mm, 172.1*u.mm
179
180 c.MuFilter.Iron1Dx, c.MuFilter.Iron1Dy, c.MuFilter.Iron1Dz = -22.1*u.mm, 3579.6*u.mm, 146.6*u.mm
181 # US1
182 c.MuFilter.Muon1Dx,c.MuFilter.Muon1Dy,c.MuFilter.Muon1Dz = -46.6*u.mm, 3760.2*u.mm, 128.6 *u.mm
183 c.MuFilter.Iron2Dx, c.MuFilter.Iron2Dy, c.MuFilter.Iron2Dz = -22.1*u.mm, 3804.6*u.mm, 136.6*u.mm
184 # US2
185 c.MuFilter.Muon2Dx,c.MuFilter.Muon2Dy,c.MuFilter.Muon2Dz = -45.7*u.mm, 3984.1*u.mm, 127.6 *u.mm
186 c.MuFilter.Iron3Dx, c.MuFilter.Iron3Dy, c.MuFilter.Iron3Dz = -22.1*u.mm, 4029.6*u.mm, 126.6*u.mm
187 # US3
188 c.MuFilter.Muon3Dx,c.MuFilter.Muon3Dy,c.MuFilter.Muon3Dz = -44.6*u.mm, 4209.5*u.mm, 128.0 *u.mm
189 c.MuFilter.Iron4Dx, c.MuFilter.Iron4Dy, c.MuFilter.Iron4Dz = -22.1*u.mm, 4254.6*u.mm, 116.7*u.mm
190 # US4
191 c.MuFilter.Muon4Dx,c.MuFilter.Muon4Dy,c.MuFilter.Muon4Dz = -45.1*u.mm, 4435.6*u.mm, 128.6 *u.mm
192 c.MuFilter.Iron5Dx, c.MuFilter.Iron5Dy, c.MuFilter.Iron5Dz = -22.1*u.mm, 4479.6*u.mm, 127.7*u.mm
193 # US5
194 c.MuFilter.Muon5Dx,c.MuFilter.Muon5Dy,c.MuFilter.Muon5Dz = -46.8*u.mm, 4663.0*u.mm, 129.9 *u.mm
195 c.MuFilter.Iron6Dx, c.MuFilter.Iron6Dy, c.MuFilter.Iron6Dz = -22.1*u.mm, 4704.6*u.mm, 127.7*u.mm
196 # DS1
197 c.MuFilter.Muon6Dx,c.MuFilter.Muon6Dy,c.MuFilter.Muon6Dz = -45.1*u.mm, 4889.6*u.mm - 1*u.mm, 129.8 *u.mm
198 c.MuFilter.Iron7Dx, c.MuFilter.Iron7Dy, c.MuFilter.Iron7Dz = -22.1*u.mm, 4943.6*u.mm, 127.7*u.mm
199 # DS2
200 c.MuFilter.Muon7Dx,c.MuFilter.Muon7Dy,c.MuFilter.Muon7Dz = -45.2*u.mm, 5125.9*u.mm, 132.8 *u.mm
201 c.MuFilter.Iron8Dx, c.MuFilter.Iron8Dy, c.MuFilter.Iron8Dz = -22.1*u.mm, 5183.6*u.mm, 127.7*u.mm
202 # DS3
203 c.MuFilter.Muon8Dx,c.MuFilter.Muon8Dy,c.MuFilter.Muon8Dz = -7.9*u.mm, 5396.7*u.mm, 132.5 *u.mm
204
205 c.MuFilter.DS4ZGap = 8.82*u.cm
206 # DS4V
207 c.MuFilter.Muon9Dx,c.MuFilter.Muon9Dy,c.MuFilter.Muon9Dz = c.MuFilter.Muon8Dx, c.MuFilter.Muon8Dy + c.MuFilter.DS4ZGap, c.MuFilter.Muon8Dz
208 c.MuFilter.Iron9Dx, c.MuFilter.Iron9Dy, c.MuFilter.Iron9Dz = 177.9*u.mm, 5529.7*u.mm + 1*u.cm, 127.7*u.mm # move downstream by 1cm to avoid overlap
209
210 # relation between edge and bottom bar for VETO
211 c.MuFilter.VETOLocX,c.MuFilter.VETOLocY,c.MuFilter.VETOLocZ = 20.0*u.mm,20.0*u.mm,46.7*u.mm
212
213 # relation between edge and bottom bar for US and DS
214 c.MuFilter.DSHLocX,c.MuFilter.DSHLocY,c.MuFilter.DSHLocZ = 10.5*u.mm, 32.0*u.mm, 11.1*u.mm
215 # relation between edge and right bar
216 c.MuFilter.DSVLocX,c.MuFilter.DSVLocY,c.MuFilter.DSVLocZ = 623.0*u.mm, 47.0*u.mm, 641.3*u.mm
217
218 # offsets in Z of first US bar
219 c.MuFilter.USOffZ1 = 4.35*u.mm
220 c.MuFilter.USOffZ2 = 5.0*u.mm
221 c.MuFilter.USOffZ3 = 4.2*u.mm
222 c.MuFilter.USOffZ4 = 5.21*u.mm
223 c.MuFilter.USOffZ5 = 4.74*u.mm
224
225 #Veto station parameters
226 c.MuFilter.VetonSiPMs = 8
227 c.MuFilter.VetonSides = 2
228 if year == 2024: c.MuFilter.NVetoPlanes = 3
229 else: c.MuFilter.NVetoPlanes = 2
230 c.MuFilter.NVetoBars = 7
231
232 c.MuFilter.VetoBarX,c.MuFilter.VetoBarY,c.MuFilter.VetoBarZ = 42 *u.cm, 6 * u.cm, 1 * u.cm
233 c.MuFilter.Veto3BarX,c.MuFilter.Veto3BarY,c.MuFilter.Veto3BarZ = 5.94*u.cm, 46*u.cm, 1*u.cm
234 c.MuFilter.VetoBarGap = 2*30*u.um # wrapping material
235
236 c.MuFilter.FeX,c.MuFilter.FeY,c.MuFilter.FeZ = 80*u.cm, 60*u.cm, 20*u.cm
237 c.MuFilter.FeEndX,c.MuFilter.FeEndY,c.MuFilter.FeEndZ = 40*u.cm, 40*u.cm, 20*u.cm
238 c.MuFilter.FeBotX,c.MuFilter.FeBotY,c.MuFilter.FeBotZ = 80*u.cm, 9*u.cm, 40*u.cm
239
240 c.MuFilter.UpstreamDetZ = 2.6*u.cm
241 c.MuFilter.UpstreamnSiPMs = 8
242 c.MuFilter.UpstreamnSides = 2
243 c.MuFilter.NUpstreamPlanes = 5
244 c.MuFilter.DownstreamDetZ = 3.9*u.cm
245 c.MuFilter.DownstreamnSiPMs = 1
246 c.MuFilter.DownstreamnSides = 2 # only for horizontal, vertical only one side
247 c.MuFilter.NDownstreamPlanes = 4
248 #upstream bars configuration
249 c.MuFilter.NUpstreamBars = 10
250 c.MuFilter.UpstreamBarX,c.MuFilter.UpstreamBarY,c.MuFilter.UpstreamBarZ = 82.525*u.cm, 6.0*u.cm, 1.0*u.cm
251 c.MuFilter.UpstreamBarGap = 0.1*u.mm
252
253 #downstream bars configuration
254 c.MuFilter.NDownstreamBars = 60 #n.d.r. both for x and y in this case
255 c.MuFilter.DownstreamBarX,c.MuFilter.DownstreamBarY,c.MuFilter.DownstreamBarZ = 82.525*u.cm, 1*u.cm, 1*u.cm
256 c.MuFilter.DownstreamBarGap = 0.1*u.mm
257 c.MuFilter.DownstreamBarX_ver,c.MuFilter.DownstreamBarY_ver,c.MuFilter.DownstreamBarZ_ver = 1*u.cm, 63.525*u.cm, 1*u.cm
258
259 # DS and US support box, inner, Z pointing upward
260 c.MuFilter.SupportBoxD = 0.5*u.mm # empty space between bars and box
261 c.MuFilter.SupportBoxW = 2*u.mm
262 c.MuFilter.DSBoxX1 = c.MuFilter.DSHLocX - c.MuFilter.SupportBoxD
263 c.MuFilter.DSBoxX2 = c.MuFilter.DSHLocX + c.MuFilter.DownstreamBarX + c.MuFilter.SupportBoxD
264 c.MuFilter.DSBoxZ1 = c.MuFilter.DSHLocZ - c.MuFilter.DownstreamBarY/2 - c.MuFilter.SupportBoxD
265 c.MuFilter.DSBoxZ2 = c.MuFilter.DSVLocZ + c.MuFilter.SupportBoxD
266 c.MuFilter.DSBoxY1 = c.MuFilter.DSHLocY - c.MuFilter.DownstreamBarZ/2 - c.MuFilter.SupportBoxD
267 c.MuFilter.DSBoxY2 = c.MuFilter.DSVLocY + c.MuFilter.DownstreamBarZ/2 + c.MuFilter.SupportBoxD
268
269 c.MuFilter.USBoxY1 = c.MuFilter.DSHLocY - c.MuFilter.DownstreamBarZ/2 - c.MuFilter.SupportBoxD
270 c.MuFilter.USBoxY2 = c.MuFilter.DSHLocY + c.MuFilter.DownstreamBarZ/2 + c.MuFilter.SupportBoxD
271
272 # VETO support box
273 c.MuFilter.SupportBoxVW = 4*u.mm
274 c.MuFilter.SupportBoxVDH = 0*u.mm
275 if year == 2024:
276 c.MuFilter.SupportBoxVB3 = 6*u.mm
277 c.MuFilter.SupportBoxVDH = 2.0*u.mm # empty space between 3rd veto plane and box (left-right sides in the hor. plane)
278
279 c.MuFilter.VETOBoxX1 = c.MuFilter.VETOLocX - c.MuFilter.SupportBoxD
280 c.MuFilter.VETOBoxX2 = c.MuFilter.VETOLocX + c.MuFilter.VetoBarX + c.MuFilter.SupportBoxD
281
282 c.MuFilter.VETOBoxX3 = - c.MuFilter.Veto3BarX/2 - c.MuFilter.SupportBoxD - c.MuFilter.SupportBoxVDH
283 c.MuFilter.VETOBoxX4 = (c.MuFilter.NVetoBars-1)*(c.MuFilter.Veto3BarX+c.MuFilter.VetoBarGap) + c.MuFilter.Veto3BarX/2 + c.MuFilter.SupportBoxD + c.MuFilter.SupportBoxVDH
284
285 c.MuFilter.VETOBoxZ1 = c.MuFilter.VETOLocZ - c.MuFilter.VetoBarY/2 - c.MuFilter.SupportBoxD
286 c.MuFilter.VETOBoxZ2 = c.MuFilter.VETOLocZ + (c.MuFilter.NVetoBars-1)*(c.MuFilter.VetoBarY+c.MuFilter.VetoBarGap) + c.MuFilter.VetoBarY/2 + c.MuFilter.SupportBoxD
287
288 c.MuFilter.VETOBoxZ3 = - c.MuFilter.SupportBoxD
289 c.MuFilter.VETOBoxZ4 = c.MuFilter.Veto3BarY + c.MuFilter.SupportBoxD
290
291 c.MuFilter.VETOBoxY1 = c.MuFilter.VETOLocY - c.MuFilter.VetoBarZ/2 - c.MuFilter.SupportBoxD
292 c.MuFilter.VETOBoxY2 = c.MuFilter.VETOLocY + c.MuFilter.VetoBarZ/2 + c.MuFilter.SupportBoxD
293
294 c.MuFilter.VETOBoxY3 = - c.MuFilter.Veto3BarZ/2 - c.MuFilter.SupportBoxD
295 c.MuFilter.VETOBoxY4 = c.MuFilter.Veto3BarZ/2 + c.MuFilter.SupportBoxD
296
297 # VETO/US/DS plane alignment
298 c.MuFilter.Veto1ShiftY = 0 * u.cm
299 c.MuFilter.Veto2ShiftY = 0 * u.cm
300 c.MuFilter.Veto3ShiftY = 0 * u.cm
301 c.MuFilter.US1ShiftY = 0 * u.cm
302 c.MuFilter.US2ShiftY = 0 * u.cm
303 c.MuFilter.US3ShiftY = 0 * u.cm
304 c.MuFilter.US4ShiftY = 0 * u.cm
305 c.MuFilter.US5ShiftY = 0 * u.cm
306 c.MuFilter.DS1ShiftY = 0 * u.cm
307 c.MuFilter.DS1ShiftX = 0 * u.cm
308 c.MuFilter.DS2ShiftY = 0 * u.cm
309 c.MuFilter.DS2ShiftX = 0 * u.cm
310 c.MuFilter.DS3ShiftY = 0 * u.cm
311 c.MuFilter.DS3ShiftX = 0 * u.cm
312 c.MuFilter.DS4ShiftX = 0 * u.cm
313
314 #digitization parameters
315 c.MuFilter.DsAttenuationLength = 350 * u.cm # values between 300 cm and 400cm observed for H6 testbeam
316 c.MuFilter.DsTAttenuationLength = 700 * u.cm # top readout with mirror on bottom
317 c.MuFilter.VandUpAttenuationLength = 999 * u.cm # no significante attenuation observed for H6 testbeam
318 c.MuFilter.VandUpSiPMcalibrationL = 25.*1000. # 1.65 MeV = 41 qcd
319 c.MuFilter.VandUpSiPMcalibrationS = 25.*1000.
320 c.MuFilter.DsSiPMcalibration = 25.*1000.
321 c.MuFilter.timeResol = 150.*u.picosecond
322 c.MuFilter.VandUpPropSpeed = 12.5*u.cm/u.nanosecond
323 c.MuFilter.DsPropSpeed = 14.3*u.cm/u.nanosecond
324
325 c.Floor = AttrDict(z=48000.*u.cm) # to place tunnel in SND_@LHC coordinate system
326 c.Floor.DX = 1.0*u.cm
327 c.Floor.DY = -4.5*u.cm # subtract 4.5cm to avoid overlaps
328 c.Floor.DZ = 0.
329
330 if year == 2024:
331 # Pit on the tunnel floor hosting Veto - using survey coord. system
332 # Dimensions
333 c.Floor.VetoPitXdim, c.Floor.VetoPitYdim, c.Floor.VetoPitZdim = 500*u.mm, 200*u.mm, 86*u.mm
334 # Position == Emuslion wall 1 + a correction in Z
335 c.Floor.VetoPitX = c.EmulsionDet.Xpos0
336 c.Floor.VetoPitY = c.EmulsionDet.Ypos0
337 c.Floor.VetoPitZ = c.EmulsionDet.Zpos0 + c.EmulsionDet.WallZBorder_offset
338
339 #COLDBOX configuration
340 c.Floor.Acrylic_width = 5.0*u.cm
341 c.Floor.BPoly_width = 4.0*u.cm
342 c.Floor.CBFrontWall_xdim = 219.*u.cm
343 c.Floor.CBFrontWall_ydim = 170.72*u.cm-c.Floor.Acrylic_width
344 c.Floor.CBLatWall_zdim = 176.0*u.cm
345 c.Floor.CBTiny_zdim = 17.0*u.cm
346 c.Floor.CBExtra_zdim = 41.0*u.cm
347 c.Floor.CBExtra_xdim = 67.5 *u.cm
348 c.Floor.SlopedWall_zproj = 110.0*u.cm
349 c.Floor.MFeBlockX = c.MuFilter.FeX
350 c.Floor.MFeBlockY = c.MuFilter.FeY
351 c.Floor.MFeBlockZ = c.MuFilter.FeZ