]>
Commit | Line | Data |
---|---|---|
ab2f6604 | 1 | void Config() |
2 | { | |
3 | ||
4 | new AliGEODB("Test with the GEO database"); | |
5 | ||
6 | gSystem->Load("/home/dcollado/AliRoot/pro/lib/libGEODB"); | |
7 | //======================================================================= | |
8 | // Create the output file | |
9 | ||
10 | //TFile *rootfile = new TFile("GeoDB.root","recreate"); | |
11 | //rootfile->SetCompressionLevel(2); | |
12 | ||
13 | AliGEODB* geant3 = (AliGEODB*) gMC; | |
14 | ||
15 | Int_t iMAG=0; | |
16 | Int_t iITS=0; | |
17 | Int_t iTPC=1; | |
18 | Int_t iTOF=0; | |
19 | Int_t iRICH=0; | |
20 | Int_t iZDC=0; | |
21 | Int_t iCASTOR=0; | |
22 | Int_t iTRD=0; | |
23 | Int_t iABSO=0; | |
24 | Int_t iDIPO=0; | |
25 | Int_t iHALL=0; | |
26 | Int_t iFRAME=0; | |
27 | Int_t iSHIL=0; | |
28 | Int_t iPIPE=0; | |
29 | Int_t iFMD=0; | |
30 | Int_t iMUON=0; | |
31 | Int_t iPHOS=0; | |
32 | Int_t iPMD=0; | |
33 | ||
34 | //=================== Alice BODY parameters ============================= | |
35 | ||
36 | //AliBODY *BODY = new AliBODY("BODY","Alice envelop"); | |
37 | ||
38 | ||
39 | if(iMAG) { | |
40 | //=================== MAG parameters ============================ | |
41 | // --- Start with Magnet since detector layouts may be depending --- | |
42 | // --- on the selected Magnet dimensions --- | |
43 | AliMAG *MAG = new AliMAG("MAG","Magnet"); | |
44 | } | |
45 | ||
46 | if(iITS) { | |
47 | //=================== ITS parameters ============================ | |
48 | // | |
49 | // EUCLID is a flag to output (=1) both geometry and media to two ASCII files | |
50 | // (called by default ITSgeometry.euc and ITSgeometry.tme) in a format | |
51 | // understandable to the CAD system EUCLID. The default (=0) means that you | |
52 | // dont want to use this facility. | |
53 | // | |
54 | AliITS *ITS = new AliITSv3("ITS","normal ITS"); | |
55 | ITS->SetEUCLID(1); | |
56 | } | |
57 | ||
58 | if(iTPC) { | |
59 | //============================ TPC parameters ================================ | |
60 | // --- This allows the user to specify sectors for the SLOW (TPC geometry 2) | |
61 | // --- Simulator. SecAL (SecAU) <0 means that ALL lower (upper) | |
62 | // --- sectors are specified, any value other than that requires at least one | |
63 | // --- sector (lower or upper)to be specified! | |
64 | // --- Reminder: sectors 1-24 are lower sectors (1-12 -> z>0, 13-24 -> z<0) | |
65 | // --- sectors 25-72 are the upper ones (25-48 -> z>0, 49-72 -> z<0) | |
66 | // --- SecLows - number of lower sectors specified (up to 6) | |
67 | // --- SecUps - number of upper sectors specified (up to 12) | |
68 | // --- Sens - sensitive strips for the Slow Simulator !!! | |
69 | // --- This does NOT work if all S or L-sectors are specified, i.e. | |
70 | // --- if SecAL or SecAU < 0 | |
71 | // | |
72 | // | |
73 | //----------------------------------------------------------------------------- | |
74 | ||
75 | AliTPC *TPC = new AliTPCv1("TPC","Normal TPC"); | |
76 | TPC->SetSecAL(1); | |
77 | TPC->SetSecAU(1); | |
78 | TPC->SetSecLows(1, -1, -1, -1, -1, -1); | |
79 | TPC->SetSecUps(25, 26, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1); | |
80 | TPC->SetSens(1); | |
81 | } | |
82 | ||
83 | if(iTOF) { | |
84 | //=================== TOF parameters ============================ | |
85 | AliTOF *TOF = new AliTOFv2("TOF","normal TOF"); | |
86 | } | |
87 | ||
88 | if(iRICH) { | |
89 | //=================== RICH parameters =========================== | |
90 | ||
91 | ||
92 | AliRICH *RICH = new AliRICHv1("RICH","normal RICH"); | |
93 | RICH->SetSP(40); | |
94 | RICH->SetFEED(0.04); | |
95 | RICH->SetSIGM(0.18); | |
96 | RICH->SetTRIG(0); | |
97 | } | |
98 | ||
99 | if(iZDC) { | |
100 | //=================== ZDC parameters ============================ | |
101 | ||
102 | AliZDC *ZDC = new AliZDCv1("ZDC","normal ZDC"); | |
103 | } | |
104 | ||
105 | if(iCASTOR) { | |
106 | //=================== CASTOR parameters ============================ | |
107 | ||
108 | AliCASTOR *CASTOR = new AliCASTORv1("CASTOR","normal CASTOR"); | |
109 | } | |
110 | ||
111 | if(iTRD) { | |
112 | //=================== TRD parameters ============================ | |
113 | ||
114 | AliTRD *TRD = new AliTRDv2("TRD","TRD version 2"); | |
115 | } | |
116 | ||
117 | ||
118 | if(iABSO) { | |
119 | //=================== ABSO parameters ============================ | |
120 | AliABSO *ABSO = new AliABSO("ABSO","Muon Absorber"); | |
121 | } | |
122 | ||
123 | if(iDIPO) { | |
124 | //=================== DIPO parameters ============================ | |
125 | ||
126 | AliDIPO *DIPO = new AliDIPOv2("DIPO","Dipole version 2"); | |
127 | } | |
128 | ||
129 | if(iHALL) { | |
130 | //=================== HALL parameters ============================ | |
131 | ||
132 | AliHALL *HALL = new AliHALL("HALL","Alice Hall"); | |
133 | } | |
134 | ||
135 | ||
136 | if(iFRAME) { | |
137 | //=================== FRAME parameters ============================ | |
138 | AliFRAME *FRAME = new AliFRAMEv0("FRAME","Space Frame"); | |
139 | } | |
140 | ||
141 | if(iSHIL) { | |
142 | //=================== SHIL parameters ============================ | |
143 | ||
144 | AliSHIL *SHIL = new AliSHIL("SHIL","Shielding"); | |
145 | } | |
146 | ||
147 | ||
148 | if(iPIPE) { | |
149 | //=================== PIPE parameters ============================ | |
150 | ||
151 | AliPIPE *PIPE = new AliPIPEv0("PIPE","Beam Pipe"); | |
152 | } | |
153 | ||
154 | ||
155 | if(iFMD) { | |
156 | //=================== FMD parameters ============================ | |
157 | ||
158 | AliFMD *FMD = new AliFMDv1("FMD","normal FMD"); | |
159 | } | |
160 | ||
161 | if(iMUON) { | |
162 | //=================== MUON parameters =========================== | |
163 | ||
164 | AliMUON *MUON = new AliMUONv0("MUON","normal MUON"); | |
165 | ||
166 | MUON->SetSMAXAR(0.03); | |
167 | MUON->SetSMAXAL(-1); | |
168 | // | |
169 | // Version 0 | |
170 | // | |
171 | // First define the number of planes that are segmented (1 or 2) by a call | |
172 | // to SetNsec. | |
173 | // Then chose for each chamber (chamber plane) the segmentation | |
174 | // and response model. | |
175 | // They should be equal for the two chambers of each station. In a future | |
176 | // version this will be enforced. | |
177 | // | |
178 | // | |
179 | Int_t chamber; | |
180 | Int_t station; | |
181 | // Default Segmentation | |
182 | AliMUONsegmentationV0* segV0 = new AliMUONsegmentationV0; | |
183 | // Default response | |
184 | AliMUONresponseV0* response0 = new AliMUONresponseV0; | |
185 | response0->SetSqrtKx3(0.761577); | |
186 | response0->SetKx2(0.972655); | |
187 | response0->SetKx4(0.3841); | |
188 | response0->SetSqrtKy3(0.714143); | |
189 | response0->SetKy2(1.0099); | |
190 | response0->SetKy4(0.403); | |
191 | response0->SetPitch(0.25); | |
192 | response0->SetRSIGM(10.); | |
193 | response0->SetMUCHSP(5.); | |
194 | response0->SetMUSIGM(0.18, 0.18); | |
195 | response0->SetMAXADC( 1024); | |
196 | //-------------------------------------------------------- | |
197 | // Configuration for Chamber TC1/2 (Station 1) ---------- | |
198 | //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
199 | Float_t rseg[4]={17.5, 55.2, 71.3, 95.5}; | |
200 | Int_t nseg[4]={4, 4, 2, 1}; | |
201 | ||
202 | chamber=1; | |
203 | //^^^^^^^^^ | |
204 | MUON->SetNsec(chamber-1,2); | |
205 | // | |
206 | AliMUONsegmentationV01 *seg11=new AliMUONsegmentationV01; | |
207 | seg11->SetSegRadii(rseg); | |
208 | seg11->SetPADSIZ(3.048, 0.508); | |
209 | seg11->SetPadDivision(nseg); | |
210 | MUON->SetSegmentationModel(chamber-1, 1, seg11); | |
211 | // | |
212 | AliMUONsegmentationV01 *seg12=new AliMUONsegmentationV01; | |
213 | seg12->SetSegRadii(rseg); | |
214 | seg12->SetPADSIZ(2.032, 0.762); | |
215 | seg12->SetPadDivision(nseg); | |
216 | ||
217 | MUON->SetSegmentationModel(chamber-1, 2, seg12); | |
218 | ||
219 | chamber=2; | |
220 | //^^^^^^^^^ | |
221 | MUON->SetNsec(chamber-1,2); | |
222 | MUON->SetSegmentationModel(chamber-1, 1, seg11); | |
223 | MUON->SetSegmentationModel(chamber-1, 2, seg12); | |
224 | ||
225 | station=1; | |
226 | //^^^^^^^^^ | |
227 | MUON->SetResponseModel(0, response0); | |
228 | MUON->SetResponseModel(1, response0); | |
229 | // | |
230 | //-------------------------------------------------------- | |
231 | // Configuration for Chamber TC3/4 ----------------------- | |
232 | //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
233 | ||
234 | chamber=3; | |
235 | MUON->SetNsec(chamber-1,1); | |
236 | AliMUONsegmentationV0 *seg34=new AliMUONsegmentationV0; | |
237 | seg34->SetDAnod(0.51/3.); | |
238 | ||
239 | MUON->SetSegmentationModel(chamber-1, 1, seg34); | |
240 | MUON->SetResponseModel(chamber-1, response0); | |
241 | ||
242 | chamber=4; | |
243 | MUON->SetNsec(chamber-1,1); | |
244 | MUON->SetSegmentationModel(chamber-1, 1, seg34); | |
245 | MUON->SetResponseModel(chamber-1, response0); | |
246 | // | |
247 | // Station 2 | |
248 | station=2; | |
249 | MUON->SetPADSIZ(station, 1, 0.75, 0.51); | |
250 | MUON->SetMUCHSP(station, 5.); | |
251 | MUON->SetMUSIGM(station, 0.18, 0.18); | |
252 | MUON->SetRSIGM(station, 10.); | |
253 | MUON->SetMAXADC(station, 1024); | |
254 | ||
255 | // | |
256 | //-------------------------------------------------------- | |
257 | // Configuration for Chamber TC5/6 ----------------------- | |
258 | //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
259 | ||
260 | seg5 = new AliMUONsegmentationV1; | |
261 | AliMUONresponseV0* response5 = new AliMUONresponseV0; | |
262 | // K3 = 0.62 | |
263 | response5->SetSqrtKx3(0.78740079); | |
264 | response5->SetKx2(0.95237319); // 0.5 * kPI * (1- 0.5*sqrtky3 ) | |
265 | response5->SetKx4(0.37480633); // 0.25/TMath::ATan(sqrtkx3) | |
266 | // K3 = 0.55 | |
267 | response5->SetSqrtKy3(0.74161985); | |
268 | response5->SetKy2(0.98832946); | |
269 | response5->SetKy4(0.39177817); | |
270 | response5->SetPitch(0.325); | |
271 | response5->SetRSIGM(10.); | |
272 | response5->SetMUCHSP(5.); | |
273 | response5->SetMUSIGM( 0.4, 0.4); | |
274 | response5->SetMAXADC( 1024); | |
275 | ||
276 | chamber=5; | |
277 | MUON->SetNsec(chamber-1,1); | |
278 | MUON->SetSegmentationModel(chamber-1, 1, seg5); | |
279 | MUON->SetResponseModel(chamber-1, response5); | |
280 | ||
281 | chamber=6; | |
282 | MUON->SetNsec(chamber-1,1); | |
283 | MUON->SetSegmentationModel(chamber-1, 1, seg5); | |
284 | MUON->SetResponseModel(chamber-1, response5); | |
285 | // | |
286 | // Station 3 | |
287 | station=3; | |
288 | MUON->SetPADSIZ(station, 1, 0.975, 0.55); | |
289 | ||
290 | // | |
291 | //-------------------------------------------------------- | |
292 | // Configuration for Chamber TC7/8/9/10------------------- | |
293 | //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
294 | ||
295 | chamber=7; | |
296 | MUON->SetNsec(chamber-1,1); | |
297 | AliMUONsegmentationV0 *seg78=new AliMUONsegmentationV0; | |
298 | seg78->SetDAnod(0.51/3.); | |
299 | ||
300 | MUON->SetSegmentationModel(chamber-1, 1, seg78); | |
301 | MUON->SetResponseModel(chamber-1, response0); | |
302 | ||
303 | chamber=8; | |
304 | MUON->SetNsec(chamber-1,1); | |
305 | MUON->SetSegmentationModel(chamber-1, 1, seg78); | |
306 | MUON->SetResponseModel(chamber-1, response0); | |
307 | // | |
308 | // Station 4 | |
309 | station=4; | |
310 | MUON->SetPADSIZ(station, 1, 0.75, 0.5); | |
311 | ||
312 | chamber=9; | |
313 | MUON->SetNsec(chamber-1,1); | |
314 | AliMUONsegmentationV0 *seg910=new AliMUONsegmentationV0; | |
315 | seg910->SetDAnod(0.51/3.); | |
316 | ||
317 | MUON->SetSegmentationModel(chamber-1, 1, seg910); | |
318 | MUON->SetResponseModel(chamber-1, response0); | |
319 | ||
320 | chamber=10; | |
321 | MUON->SetNsec(chamber-1,1); | |
322 | MUON->SetSegmentationModel(chamber-1, 1, seg910); | |
323 | MUON->SetResponseModel(chamber-1, response0); | |
324 | // | |
325 | // Station 5 | |
326 | station=5; | |
327 | MUON->SetPADSIZ(station, 1, 0.75, 0.5); | |
328 | ||
329 | chamber=11; | |
330 | MUON->SetNsec(chamber-1,1); | |
331 | AliMUONsegmentationV0 *seg1112=new AliMUONsegmentationV0; | |
332 | seg1112->SetDAnod(0.51/3.); | |
333 | ||
334 | MUON->SetSegmentationModel(chamber-1, 1, seg1112); | |
335 | MUON->SetResponseModel(chamber-1, response0); | |
336 | ||
337 | chamber=12; | |
338 | MUON->SetNsec(chamber-1,1); | |
339 | MUON->SetSegmentationModel(chamber-1, 1, seg1112); | |
340 | MUON->SetResponseModel(chamber-1, response0); | |
341 | // | |
342 | // Trigger Station 1 | |
343 | station=6; | |
344 | MUON->SetPADSIZ(station, 1, 0.75, 0.5); | |
345 | ||
346 | chamber=13; | |
347 | MUON->SetNsec(chamber-1,1); | |
348 | AliMUONsegmentationV0 *seg1314=new AliMUONsegmentationV0; | |
349 | seg1314->SetDAnod(0.51/3.); | |
350 | ||
351 | MUON->SetSegmentationModel(chamber-1, 1, seg1314); | |
352 | MUON->SetResponseModel(chamber-1, response0); | |
353 | ||
354 | chamber=14; | |
355 | MUON->SetNsec(chamber-1,1); | |
356 | MUON->SetSegmentationModel(chamber-1, 1, seg1314); | |
357 | MUON->SetResponseModel(chamber-1, response0); | |
358 | // | |
359 | // Trigger Station 2 | |
360 | station=7; | |
361 | MUON->SetPADSIZ(station, 1, 0.75, 0.5); | |
362 | } | |
363 | ||
364 | if(iPHOS) { | |
365 | //=================== PHOS parameters =========================== | |
366 | ||
367 | AliPHOS *PHOS = new AliPHOSv1("PHOS","normal PHOS"); | |
368 | // * PHOSflags: YES: X<>0 NO: X=0 | |
369 | // * PHOSflags(1) : -----X Create branch for TObjArray of AliPHOSCradle | |
370 | // * ----X- Create file (ftn03 on HP-UX) with list of SHAKER particles (7Mb/event) | |
371 | // * | |
372 | PHOS->SetFlags(000001); | |
373 | PHOS->SetRadius(460); //Distance from beam to PHOS crystals. | |
374 | // (crystal_side_size,crystal_length,wrap_thikness,air_thikness,PIN_size,PIN length) | |
375 | PHOS->SetCell(2.2, 18., 0.01, 0.01, 1., 0.1); | |
376 | PHOS->SetCradleSize(104, 88, 4); // Nz (along beam), Nphi, Ncradles | |
377 | PHOS->SetCradleA(0); //Angle between Cradles | |
378 | PHOS->SetCPV(1., 2.); //CPV thikness, CPV-PHOS distance | |
379 | // * =============== | |
380 | // * PHOS extra parameters (contact Maxim Volkov volkov@mail.cern.ch) | |
381 | // * 1. STE_THICK Steel cover thickness | |
382 | // * 2. SUP_Y Crystal support height | |
383 | // * 3. FTIU_THICK Thermo Insulating outer cover Upper plate thickness | |
384 | // * 4. UFP_Y Upper Polystyrene Foam plate thickness | |
385 | // * 5. TCB_THICK Thermo insulating Crystal Block wall thickness | |
386 | // * 6. UCP_Y Upper Cooling Plate thickness | |
387 | // * 7. ASP_Y Al Support Plate thickness | |
388 | // * 8. TIP_Y Lower Thermo Insulating Plate thickness | |
389 | // * 9. TXP_Y Lower Textolit Plate thickness | |
390 | PHOS->SetExtra(0.001, 6.95, 4., 5., 2., 0.06, 10., 3., 1.); | |
391 | PHOS->SetTextolitWall(209., 71., 250.); //Textolit Wall box dimentions | |
392 | PHOS->SetInnerAir(206., 66., 244.); //Inner AIR volume dimensions | |
393 | // * =============================== | |
394 | // * 1. FTI_X Foam Thermo Insulating outer cover dimensions | |
395 | // * 2. FTI_Y ==//== | |
396 | // * 3. FTI_Z ==//== | |
397 | // * 4. FTI_R Distance from IP to Foam Thermo Insulating top plate | |
398 | PHOS->SetFoam(214.6, 80., 260., 467.); | |
399 | // ================================= | |
400 | // ******************************************************************************* | |
401 | // * KINE 700 - SHAKER generator | |
402 | // * KINE 700 x y z NDNDY YLIM PTLIM ChargeFlag | |
403 | // * JWEAK=0 | |
404 | // * JPI0=JETA=1 | |
405 | // * JPIC=JPRO=JKAC=JKA0=JRHO=JOME=JPHI=JPSI=JDRY=ChargeFlag | |
406 | // * Int_t JWEI; // Unweighted generation | |
407 | // * Int_t NDNDY; // Density of charged particles | |
408 | // * Float_t YLIM; // Rapidity Limit | |
409 | // * Float_t PTLIM; // Pt limit in GeV/c | |
410 | // * Int_t JWEAK; // Disable weak decays | |
411 | // * Int_t JPI0; // pi0 generation | |
412 | // * Int_t JETA; // eta generation | |
413 | // * Int_t JPIC; // pi+/- generation | |
414 | // * Int_t JPRO; // proton generation | |
415 | // * Int_t JKAC; // K+/- generation | |
416 | // * Int_t JKA0; // K0 generation | |
417 | // * Int_t JRHO; // rho generation | |
418 | // * Int_t JOME; // omega generation | |
419 | // * Int_t JPHI; // phi generation | |
420 | // * Int_t JPSI; // J/psi generation | |
421 | // * Int_t JDRY; // Drell-Yan generation | |
422 | // * KINE 700 5. 175. 0. 800. 1.5 5. 1. | |
423 | // ******************************************************************************* | |
424 | } | |
425 | ||
426 | if(iPMD) { | |
427 | //=================== PMD parameters ============================ | |
428 | ||
429 | // Must be defined AFTER PHOS | |
430 | AliPMD *PMD = new AliPMDv1("PMD","normal PMD"); | |
431 | PMD->SetPAR(1., 1., 0.8, 0.02); | |
432 | PMD->SetIN(6., 20., 600., 27., 27.); | |
433 | PMD->SetGEO(0.0, 0.2, 4.); | |
434 | PMD->SetPadSize(0.8, 1.0, 1.2, 1.5); | |
435 | } | |
436 | ||
437 | } |