]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONFactory.cxx
J.Chudoba's changes merged correctly with the HEAD
[u/mrichter/AliRoot.git] / MUON / AliMUONFactory.cxx
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$
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
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) {
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       }
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 {
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       }
501     }
502 }
503