]>
Commit | Line | Data |
---|---|---|
be3bb6c1 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | //////////////////////////////////////////////////////////// | |
17 | // Factory for muon chambers, segmentations and response // | |
18 | //////////////////////////////////////////////////////////// | |
19 | ||
20 | /* | |
21 | $Log$ | |
9e1a0ddb | 22 | Revision 1.1 2001/04/06 11:24:43 morsch |
23 | Dependency on implementations of AliSegmentation and AliMUONResponse moved to AliMUONFactory class. | |
24 | Static method Build() builds the MUON system out of chambers, segmentation and response. | |
25 | ||
be3bb6c1 | 26 | */ |
27 | #include "AliMUONFactory.h" | |
28 | #include "AliMUON.h" | |
29 | #include "AliMUONChamber.h" | |
30 | #include "AliMUONResponseV0.h" | |
31 | #include "AliMUONResponseTrigger.h" | |
32 | #include "AliMUONSegmentationV0.h" | |
33 | #include "AliMUONSegmentationV01.h" | |
34 | #include "AliMUONSegmentationV02.h" | |
35 | #include "AliMUONSegmentationV04.h" | |
36 | #include "AliMUONSegmentationV05.h" | |
37 | #include "AliMUONSegmentationSlat.h" | |
38 | #include "AliMUONSegmentationSlatN.h" | |
39 | #include "AliMUONSegmentationTrigger.h" | |
40 | #include "AliMUONSegmentationTriggerX.h" | |
41 | #include "AliMUONSegmentationTriggerY.h" | |
42 | ||
43 | ClassImp(AliMUONFactory) | |
44 | ||
45 | ||
46 | void AliMUONFactory::Build(AliMUON* where, const char* what) | |
47 | { | |
48 | // | |
49 | // Construct MUON from chambers, segmentation and responses | |
50 | // | |
51 | char tmp[20]; | |
52 | AliMUON* pMUON = where; | |
53 | strcpy(tmp, what); | |
54 | ||
55 | if (strcmp(tmp, "default")==0) { | |
9e1a0ddb | 56 | if(pMUON->GetDebug()) { |
57 | ||
58 | printf("\nAliMUONFactory: --------AliMUONFactory------------------------------"); | |
59 | printf("\nAliMUONFactory: Non default version of MUON selected "); | |
60 | printf("\nAliMUONFactory: You have to construct yourself the MUON elements !!"); | |
61 | printf("\nAliMUONFactory: ----------------------------------------------------"); | |
62 | } | |
be3bb6c1 | 63 | pMUON->SetIshunt(0); |
64 | pMUON->SetMaxStepGas(0.1); | |
65 | pMUON->SetMaxStepAlu(0.1); | |
66 | // | |
67 | // Version 0 | |
68 | // | |
69 | // First define the number of planes that are segmented (1 or 2) by a call | |
70 | // to SetNsec. | |
71 | // Then chose for each chamber (chamber plane) the segmentation | |
72 | // and response model. | |
73 | // They should be equal for the two chambers of each station. In a future | |
74 | // version this will be enforced. | |
75 | // | |
76 | // | |
77 | Int_t chamber; | |
78 | // Default response: 5 mm of gas | |
79 | AliMUONResponseV0* response0 = new AliMUONResponseV0; | |
80 | response0->SetSqrtKx3AndDeriveKx2Kx4(0.7131); // sqrt(0.5085) | |
81 | response0->SetSqrtKy3AndDeriveKy2Ky4(0.7642); // sqrt(0.5840) | |
82 | response0->SetPitch(0.25); // anode-cathode distance | |
83 | response0->SetSigmaIntegration(10.); | |
84 | response0->SetChargeSlope(50); | |
85 | response0->SetChargeSpread(0.18, 0.18); | |
86 | response0->SetMaxAdc(4096); | |
87 | response0->SetZeroSuppression(6); | |
88 | ||
89 | // Response for 4 mm of gas (station 1) | |
90 | // automatic consistency with width of sensitive medium in CreateGeometry ???? | |
91 | AliMUONResponseV0* responseSt1 = new AliMUONResponseV0; | |
92 | // Mathieson parameters from L.Kharmandarian's thesis, page 190 | |
93 | responseSt1->SetSqrtKx3AndDeriveKx2Kx4(0.7000); // sqrt(0.4900) | |
94 | responseSt1->SetSqrtKy3AndDeriveKy2Ky4(0.7550); // sqrt(0.5700) | |
95 | responseSt1->SetPitch(0.20); // anode-cathode distance | |
96 | responseSt1->SetSigmaIntegration(10.); | |
97 | // ChargeSlope larger to compensate for the smaller anode-cathode distance | |
98 | // and keep the same most probable ADC channel for mip's | |
99 | responseSt1->SetChargeSlope(62.5); | |
100 | // assumed proportionality to anode-cathode distance for ChargeSpread | |
101 | responseSt1->SetChargeSpread(0.144, 0.144); | |
102 | responseSt1->SetMaxAdc(4096); | |
103 | responseSt1->SetZeroSuppression(6); | |
104 | ||
105 | //-------------------------------------------------------- | |
106 | // Configuration for Chamber TC1/2 (Station 1) ---------- | |
107 | //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
108 | Float_t rseg1[4]={17.5, 55.2, 71.3, 95.5}; | |
109 | Int_t nseg1[4]={4, 4, 2, 1}; | |
110 | // | |
111 | chamber=1; | |
112 | // ^^^^^^^^^ | |
113 | pMUON->SetNsec(chamber-1,2); | |
114 | // | |
115 | AliMUONSegmentationV01 *seg11=new AliMUONSegmentationV01(4); | |
116 | ||
117 | seg11->SetSegRadii(rseg1); | |
118 | seg11->SetPadSize(2.4, 0.4); // smaller pad size | |
119 | seg11->SetDAnod(0.20); // smaller distance between anode wires | |
120 | seg11->SetPadDivision(nseg1); | |
121 | ||
122 | pMUON->SetSegmentationModel(chamber-1, 1, seg11); | |
123 | ||
124 | AliMUONSegmentationV02 *seg12=new AliMUONSegmentationV02(4); | |
125 | seg12->SetSegRadii(rseg1); | |
126 | seg12->SetPadSize(0.6, 1.6); // smaller pad size | |
127 | seg12->SetDAnod(0.20); // smaller distance between anode wires | |
128 | seg12->SetPadDivision(nseg1); | |
129 | ||
130 | pMUON->SetSegmentationModel(chamber-1, 2, seg12); | |
131 | ||
132 | pMUON->SetResponseModel(chamber-1, responseSt1); // special response | |
133 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
134 | ||
135 | chamber=2; | |
136 | // ^^^^^^^^^ | |
137 | // | |
138 | pMUON->SetNsec(chamber-1,2); | |
139 | // | |
140 | AliMUONSegmentationV01 *seg21=new AliMUONSegmentationV01(4); | |
141 | seg21->SetSegRadii(rseg1); | |
142 | seg21->SetPadSize(2.4, 0.4); // smaller pad size | |
143 | seg21->SetDAnod(0.20); // smaller distance between anode wires | |
144 | seg21->SetPadDivision(nseg1); | |
145 | pMUON->SetSegmentationModel(chamber-1, 1, seg21); | |
146 | // | |
147 | AliMUONSegmentationV02 *seg22=new AliMUONSegmentationV02(4); | |
148 | seg22->SetSegRadii(rseg1); | |
149 | seg22->SetPadSize(0.6, 1.6); // smaller pad size | |
150 | seg22->SetDAnod(0.20); // smaller distance between anode wires | |
151 | seg22->SetPadDivision(nseg1); | |
152 | pMUON->SetSegmentationModel(chamber-1, 2, seg22); | |
153 | ||
154 | pMUON->SetResponseModel(chamber-1, responseSt1); // special response | |
155 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
156 | ||
157 | // | |
158 | //-------------------------------------------------------- | |
159 | // Configuration for Chamber TC3/4 (Station 2) ----------- | |
160 | ///^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
161 | // Float_t rseg2[4]={23.5, 87.7, 122.4, 122.5}; | |
162 | Float_t rseg2[4]={23.5, 47.1, 87.7, 122.5}; | |
163 | Int_t nseg2[4]={4, 4, 2, 1}; | |
164 | // | |
165 | chamber=3; | |
166 | // ^^^^^^^^^ | |
167 | pMUON->SetNsec(chamber-1,2); | |
168 | // | |
169 | AliMUONSegmentationV01 *seg31=new AliMUONSegmentationV01(4); | |
170 | seg31->SetSegRadii(rseg2); | |
171 | seg31->SetPadSize(3.0, 0.5); | |
172 | seg31->SetDAnod(3.0/3./4); | |
173 | seg31->SetPadDivision(nseg2); | |
174 | pMUON->SetSegmentationModel(chamber-1, 1, seg31); | |
175 | // | |
176 | AliMUONSegmentationV02 *seg32=new AliMUONSegmentationV02(4); | |
177 | seg32->SetSegRadii(rseg2); | |
178 | seg32->SetPadSize(0.75, 2.0); | |
179 | seg32->SetPadDivision(nseg2); | |
180 | seg32->SetDAnod(3.0/3./4); | |
181 | ||
182 | pMUON->SetSegmentationModel(chamber-1, 2, seg32); | |
183 | ||
184 | pMUON->SetResponseModel(chamber-1, response0); | |
185 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
186 | ||
187 | chamber=4; | |
188 | // ^^^^^^^^^ | |
189 | // | |
190 | pMUON->SetNsec(chamber-1,2); | |
191 | // | |
192 | AliMUONSegmentationV01 *seg41=new AliMUONSegmentationV01(4); | |
193 | seg41->SetSegRadii(rseg2); | |
194 | seg41->SetPadSize(3.0, 0.5); | |
195 | seg41->SetDAnod(3.0/3./4); | |
196 | seg41->SetPadDivision(nseg2); | |
197 | pMUON->SetSegmentationModel(chamber-1, 1, seg41); | |
198 | // | |
199 | AliMUONSegmentationV02 *seg42=new AliMUONSegmentationV02(4); | |
200 | seg42->SetSegRadii(rseg2); | |
201 | seg42->SetPadSize(0.75, 2.0); | |
202 | seg42->SetPadDivision(nseg2); | |
203 | seg42->SetDAnod(3.0/3./4); | |
204 | ||
205 | pMUON->SetSegmentationModel(chamber-1, 2, seg42); | |
206 | ||
207 | pMUON->SetResponseModel(chamber-1, response0); | |
208 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
209 | ||
210 | ||
211 | //-------------------------------------------------------- | |
212 | // Configuration for Chamber TC5/6 (Station 3) ---------- | |
213 | //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
214 | Int_t nseg3[4]={4, 4, 2, 1}; | |
215 | Int_t npcb5[36] = {0,0,2,0, | |
216 | 0,0,3,0, | |
217 | 0,1,3,0, | |
218 | 0,2,2,0, | |
219 | 0,1,2,0, | |
220 | 0,2,2,0, | |
221 | 0,1,3,0, | |
222 | 0,0,3,0, | |
223 | 0,0,2,0}; | |
224 | ||
225 | Float_t shift = 1.5/2.; | |
226 | Float_t xpos5[9] = {2., 2., 2., 2.,33., 2., 2., 2., 2.}; | |
227 | Float_t ypos5 = -(20.+4.*(40.-2.*shift)); | |
228 | ||
229 | chamber=5; | |
230 | pMUON->SetNsec(chamber-1,2); | |
231 | AliMUONSegmentationSlat *seg51=new AliMUONSegmentationSlat(4); | |
232 | seg51->SetNSlats(9); | |
233 | seg51->SetShift(shift); | |
234 | seg51->SetNPCBperSector(npcb5); | |
235 | seg51->SetSlatXPositions(xpos5); | |
236 | seg51->SetSlatYPosition(ypos5); | |
237 | seg51->SetPadSize(10.,0.5); | |
238 | seg51->SetDAnod(0.25); | |
239 | seg51->SetPadDivision(nseg3); | |
240 | pMUON->SetSegmentationModel(chamber-1, 1, seg51); | |
241 | ||
242 | AliMUONSegmentationSlatN *seg52=new AliMUONSegmentationSlatN(4); | |
243 | seg52->SetNSlats(9); | |
244 | seg52->SetShift(shift); | |
245 | seg52->SetNPCBperSector(npcb5); | |
246 | seg52->SetSlatXPositions(xpos5); | |
247 | seg52->SetSlatYPosition(ypos5); | |
248 | seg52->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending) | |
249 | seg52->SetDAnod(0.25); | |
250 | seg52->SetPadDivision(nseg3); | |
251 | pMUON->SetSegmentationModel(chamber-1, 2, seg52); | |
252 | pMUON->SetResponseModel(chamber-1, response0); | |
253 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
254 | ||
255 | chamber=6; | |
256 | pMUON->SetNsec(chamber-1,2); | |
257 | AliMUONSegmentationSlat *seg61=new AliMUONSegmentationSlat(4); | |
258 | seg61->SetNSlats(9); | |
259 | seg61->SetShift(shift); | |
260 | seg61->SetNPCBperSector(npcb5); | |
261 | seg61->SetSlatXPositions(xpos5); | |
262 | seg61->SetSlatYPosition(ypos5); | |
263 | seg61->SetPadSize(10.,0.5); | |
264 | seg61->SetDAnod(0.25); | |
265 | seg61->SetPadDivision(nseg3); | |
266 | pMUON->SetSegmentationModel(chamber-1, 1, seg61); | |
267 | ||
268 | AliMUONSegmentationSlatN *seg62=new AliMUONSegmentationSlatN(4); | |
269 | seg62->SetNSlats(9); | |
270 | seg62->SetShift(shift); | |
271 | seg62->SetNPCBperSector(npcb5); | |
272 | seg62->SetSlatXPositions(xpos5); | |
273 | seg62->SetSlatYPosition(ypos5); | |
274 | seg62->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending) | |
275 | seg62->SetDAnod(0.25); | |
276 | seg62->SetPadDivision(nseg3); | |
277 | pMUON->SetSegmentationModel(chamber-1, 2, seg62); | |
278 | pMUON->SetResponseModel(chamber-1, response0); | |
279 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
280 | ||
281 | //-------------------------------------------------------- | |
282 | // Configuration for Chamber TC7/8 (Station 4) ---------- | |
283 | //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
284 | ||
285 | Int_t nseg4[4]={4, 4, 2, 1}; | |
286 | ||
287 | chamber=7; | |
288 | // ^^^^^^^^^ | |
289 | ||
290 | pMUON->SetNsec(chamber-1,2); | |
291 | // | |
292 | AliMUONSegmentationSlat *seg71=new AliMUONSegmentationSlat(4); | |
293 | Int_t npcb7[44] = {0,0,0,3, | |
294 | 0,0,2,2, | |
295 | 0,0,3,2, | |
296 | 0,2,2,1, | |
297 | 0,2,2,1, | |
298 | 0,1,2,1, | |
299 | 0,2,2,1, | |
300 | 0,2,2,1, | |
301 | 0,0,3,2, | |
302 | 0,0,2,2, | |
303 | 0,0,0,3}; | |
304 | Float_t xpos7[11] = {2., 2., 2., 2., 2., 40.5, 2., 2., 2., 2., 2.}; | |
305 | Float_t ypos7 = -(20.+5.*(40.-2.*shift)); | |
306 | ||
307 | seg71->SetNSlats(11); | |
308 | seg71->SetShift(shift); | |
309 | seg71->SetNPCBperSector(npcb7); | |
310 | seg71->SetSlatXPositions(xpos7); | |
311 | seg71->SetSlatYPosition(ypos7); | |
312 | ||
313 | seg71->SetPadSize(10.,0.5); | |
314 | seg71->SetDAnod(0.25); | |
315 | seg71->SetPadDivision(nseg4); | |
316 | pMUON->SetSegmentationModel(chamber-1, 1, seg71); | |
317 | ||
318 | AliMUONSegmentationSlatN *seg72=new AliMUONSegmentationSlatN(4); | |
319 | ||
320 | pMUON->SetSegmentationModel(chamber-1, 2, seg72); | |
321 | seg72->SetNSlats(11); | |
322 | seg72->SetShift(shift); | |
323 | seg72->SetNPCBperSector(npcb7); | |
324 | seg72->SetSlatXPositions(xpos7); | |
325 | seg72->SetSlatYPosition(ypos7); | |
326 | seg72->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending) | |
327 | seg72->SetDAnod(0.25); | |
328 | seg72->SetPadDivision(nseg4); | |
329 | ||
330 | pMUON->SetResponseModel(chamber-1, response0); | |
331 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
332 | ||
333 | chamber=8; | |
334 | // ^^^^^^^^^ | |
335 | pMUON->SetNsec(chamber-1,2); | |
336 | // | |
337 | AliMUONSegmentationSlat *seg81=new AliMUONSegmentationSlat(4); | |
338 | ||
339 | seg81->SetNSlats(11); | |
340 | seg81->SetShift(shift); | |
341 | seg81->SetNPCBperSector(npcb7); | |
342 | seg81->SetSlatXPositions(xpos7); | |
343 | seg81->SetSlatYPosition(ypos7); | |
344 | seg81->SetPadSize(10.,0.5); | |
345 | seg81->SetDAnod(0.25); | |
346 | seg81->SetPadDivision(nseg4); | |
347 | pMUON->SetSegmentationModel(chamber-1, 1, seg81); | |
348 | ||
349 | AliMUONSegmentationSlat *seg82=new AliMUONSegmentationSlatN(4); | |
350 | ||
351 | pMUON->SetSegmentationModel(chamber-1, 2, seg82); | |
352 | seg82->SetNSlats(11); | |
353 | seg82->SetShift(shift); | |
354 | seg82->SetNPCBperSector(npcb7); | |
355 | seg82->SetSlatXPositions(xpos7); | |
356 | seg82->SetSlatYPosition(ypos7); | |
357 | seg82->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending) | |
358 | seg82->SetDAnod(0.25); | |
359 | seg82->SetPadDivision(nseg4); | |
360 | ||
361 | pMUON->SetResponseModel(chamber-1, response0); | |
362 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
363 | ||
364 | ||
365 | //-------------------------------------------------------- | |
366 | // Configuration for Chamber TC9/10 (Station 5) --------- | |
367 | //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
368 | chamber=9; | |
369 | // ^^^^^^^^^ | |
370 | ||
371 | pMUON->SetNsec(chamber-1,2); | |
372 | // | |
373 | AliMUONSegmentationSlat *seg91=new AliMUONSegmentationSlat(4); | |
374 | Int_t npcb9[52] = {0,0,0,3, | |
375 | 0,0,0,4, | |
376 | 0,0,2,3, | |
377 | 0,0,3,3, | |
378 | 0,2,2,2, | |
379 | 0,2,2,2, | |
380 | 0,1,2,2, | |
381 | 0,2,2,2, | |
382 | 0,2,2,2, | |
383 | 0,0,3,3, | |
384 | 0,0,2,3, | |
385 | 0,0,0,4, | |
386 | 0,0,0,3}; | |
387 | ||
388 | Float_t xpos9[13] = {2., 2., 2., 2., 2., 2., 40.5, 2., 2., 2., 2., 2., 2.}; | |
389 | Float_t ypos9 = -(20.+6.*(40.-2.*shift)); | |
390 | ||
391 | seg91->SetNSlats(13); | |
392 | seg91->SetShift(shift); | |
393 | seg91->SetNPCBperSector(npcb9); | |
394 | seg91->SetSlatXPositions(xpos9); | |
395 | seg91->SetSlatYPosition(ypos9); | |
396 | seg91->SetPadSize(10.,0.5); | |
397 | seg91->SetDAnod(0.25); | |
398 | seg91->SetPadDivision(nseg4); | |
399 | pMUON->SetSegmentationModel(chamber-1, 1, seg91); | |
400 | ||
401 | AliMUONSegmentationSlatN *seg92=new AliMUONSegmentationSlatN(4); | |
402 | ||
403 | pMUON->SetSegmentationModel(chamber-1, 2, seg92); | |
404 | seg92->SetNSlats(13); | |
405 | seg92->SetShift(shift); | |
406 | seg92->SetNPCBperSector(npcb9); | |
407 | seg92->SetSlatXPositions(xpos9); | |
408 | seg92->SetSlatYPosition(ypos9); | |
409 | seg92->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending) | |
410 | seg92->SetDAnod(0.25); | |
411 | seg92->SetPadDivision(nseg4); | |
412 | ||
413 | pMUON->SetResponseModel(chamber-1, response0); | |
414 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
415 | ||
416 | chamber=10; | |
417 | // ^^^^^^^^^ | |
418 | pMUON->SetNsec(chamber-1,2); | |
419 | // | |
420 | AliMUONSegmentationSlat *seg101=new AliMUONSegmentationSlat(4); | |
421 | ||
422 | seg101->SetNSlats(13); | |
423 | seg101->SetShift(shift); | |
424 | seg101->SetNPCBperSector(npcb9); | |
425 | seg101->SetSlatXPositions(xpos9); | |
426 | seg101->SetSlatYPosition(ypos9); | |
427 | seg101->SetPadSize(10.,0.5); | |
428 | seg101->SetDAnod(0.25); | |
429 | seg101->SetPadDivision(nseg4); | |
430 | pMUON->SetSegmentationModel(chamber-1, 1, seg101); | |
431 | ||
432 | AliMUONSegmentationSlatN *seg102=new AliMUONSegmentationSlatN(4); | |
433 | ||
434 | pMUON->SetSegmentationModel(chamber-1, 2, seg102); | |
435 | seg102->SetNSlats(13); | |
436 | seg102->SetShift(shift); | |
437 | seg102->SetNPCBperSector(npcb9); | |
438 | seg102->SetSlatXPositions(xpos9); | |
439 | seg102->SetSlatYPosition(ypos9); | |
440 | seg102->SetPadSize(1., 10.); // DeltaX(non bending) = 2 * DeltaY(bending) | |
441 | seg102->SetDAnod(0.25); | |
442 | seg102->SetPadDivision(nseg4); | |
443 | ||
444 | pMUON->SetResponseModel(chamber-1, response0); | |
445 | pMUON->Chamber(chamber-1).SetChargeCorrel(0.11); // 11% charge spread | |
446 | ||
447 | //-------------------------------------------------------- | |
448 | // Configuration for Trigger Stations -------------------- | |
449 | //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
450 | // Cluster-size off | |
451 | AliMUONResponseTrigger* responseTrigger0 = new AliMUONResponseTrigger; | |
452 | // Cluster-size on | |
453 | // AliMUONResponseTriggerV1* responseTrigger0 = new AliMUONResponseTriggerV1; | |
454 | ||
455 | chamber=11; | |
456 | pMUON->SetNsec(chamber-1,2); | |
457 | AliMUONSegmentationTriggerX *seg111=new AliMUONSegmentationTriggerX; | |
458 | pMUON->SetSegmentationModel(chamber-1, 1, seg111); | |
459 | AliMUONSegmentationTriggerY *seg112=new AliMUONSegmentationTriggerY; | |
460 | pMUON->SetSegmentationModel(chamber-1, 2, seg112); | |
461 | ||
462 | pMUON->SetResponseModel(chamber-1, responseTrigger0); | |
463 | pMUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes | |
464 | ||
465 | ||
466 | chamber=12; | |
467 | pMUON->SetNsec(chamber-1,2); | |
468 | AliMUONSegmentationTriggerX *seg121=new AliMUONSegmentationTriggerX; | |
469 | pMUON->SetSegmentationModel(chamber-1, 1, seg121); | |
470 | AliMUONSegmentationTriggerY *seg122=new AliMUONSegmentationTriggerY; | |
471 | pMUON->SetSegmentationModel(chamber-1, 2, seg122); | |
472 | ||
473 | pMUON->SetResponseModel(chamber-1, responseTrigger0); | |
474 | pMUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes | |
475 | ||
476 | chamber=13; | |
477 | pMUON->SetNsec(chamber-1,2); | |
478 | AliMUONSegmentationTriggerX *seg131=new AliMUONSegmentationTriggerX; | |
479 | pMUON->SetSegmentationModel(chamber-1, 1, seg131); | |
480 | AliMUONSegmentationTriggerY *seg132=new AliMUONSegmentationTriggerY; | |
481 | pMUON->SetSegmentationModel(chamber-1, 2, seg132); | |
482 | pMUON->SetResponseModel(chamber-1, responseTrigger0); | |
483 | pMUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes | |
484 | ||
485 | chamber=14; | |
486 | pMUON->SetNsec(chamber-1,2); | |
487 | AliMUONSegmentationTriggerX *seg141=new AliMUONSegmentationTriggerX; | |
488 | pMUON->SetSegmentationModel(chamber-1, 1, seg141); | |
489 | AliMUONSegmentationTriggerY *seg142=new AliMUONSegmentationTriggerY; | |
490 | pMUON->SetSegmentationModel(chamber-1, 2, seg142); | |
491 | ||
492 | pMUON->SetResponseModel(chamber-1, responseTrigger0); | |
493 | pMUON->Chamber(chamber-1).SetChargeCorrel(0); // same charge on cathodes | |
494 | } else { | |
9e1a0ddb | 495 | if(pMUON->GetDebug()) { |
496 | printf("\nAliMUONFactory: --------AliMUONFactory------------------------------"); | |
497 | printf("\nAliMUONFactory: Non default version of MUON selected "); | |
498 | printf("\nAliMUONFactory: You have to construct yourself the MUON elements !!"); | |
499 | printf("\nAliMUONFactory: ----------------------------------------------------"); | |
500 | } | |
be3bb6c1 | 501 | } |
502 | } | |
503 |