]>
Commit | Line | Data |
---|---|---|
014616eb | 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 | **************************************************************************/ | |
fdcaa191 | 15 | |
88cb7938 | 16 | /* $Id$ */ |
fdcaa191 | 17 | |
18 | ///////////////////////////////////////////////////////////////////////////// | |
19 | // // | |
20 | // Implementation of AliGenlib to collect parametrisations used for // | |
21 | // GSI simulations. // | |
22 | // It is an extension of AliMUONLib providing in addition the option // | |
23 | // for different parametrisations of pt, y and ip for every particle type // | |
24 | // // | |
25 | // Responsible: Andres.Sandoval@cern.ch // | |
26 | // // | |
27 | ///////////////////////////////////////////////////////////////////////////// | |
28 | ||
29 | #include "TMath.h" | |
30 | #include "TRandom.h" | |
31 | #include "TString.h" | |
32 | #include "AliGenGSIlib.h" | |
fdcaa191 | 33 | |
34 | ||
35 | ClassImp(AliGenGSIlib) | |
36 | ||
37 | //========================================================================== | |
38 | // | |
39 | // Definition of Particle Distributions | |
40 | // | |
41 | //========================================================================== | |
42 | // | |
43 | // Upsilon | |
44 | // | |
45 | //-------------------------------------------------------------------------- | |
46 | // | |
47 | // upsilon particle composition | |
48 | // | |
49 | //-------------------------------------------------------------------------- | |
50 | Int_t AliGenGSIlib::IpUpsilon(TRandom *) | |
51 | { | |
f4cd22aa | 52 | // Return upsilon pdg code |
fdcaa191 | 53 | |
54 | return 553; | |
55 | ||
56 | } | |
75e0cc59 | 57 | Double_t AliGenGSIlib::PtUpsilonFlat( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 58 | { |
fdcaa191 | 59 | //-------------------------------------------------------------------------- |
60 | // | |
61 | // upsilon pt-distribution FLAT | |
62 | // | |
63 | //____________________________________________________________-------------- | |
f4cd22aa | 64 | |
fdcaa191 | 65 | const Double_t kptmin = 0.0; |
66 | const Double_t kptmax = 15.0; | |
67 | Double_t x=*px; | |
68 | Double_t weight = 0.; | |
69 | ||
f7b22746 | 70 | if ((x > kptmin) && (x < kptmax)) weight = 1.; |
fdcaa191 | 71 | |
72 | return weight; | |
73 | ||
74 | } | |
75e0cc59 | 75 | Double_t AliGenGSIlib::YUpsilonFlat(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 76 | { |
fdcaa191 | 77 | //-------------------------------------------------------------------------- |
78 | // | |
79 | // upsilon y-distribution FLAT | |
80 | // | |
81 | //-------------------------------------------------------------------------- | |
fdcaa191 | 82 | |
83 | const Double_t ky0 = 1.5; | |
84 | const Double_t kb=1.; | |
85 | Double_t yu; | |
86 | Double_t y=TMath::Abs(*py); | |
87 | ||
88 | if (y < ky0) | |
89 | yu=kb; | |
90 | else | |
91 | yu = 0.; | |
92 | ||
93 | return yu; | |
94 | ||
95 | } | |
75e0cc59 | 96 | Double_t AliGenGSIlib::PtUpsilonRitman( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 97 | { |
fdcaa191 | 98 | //-------------------------------------------------------------------------- |
99 | // | |
100 | // upsilon pt-distribution RITMAN | |
101 | // | |
102 | //-------------------------------------------------------------------------- | |
fdcaa191 | 103 | |
104 | const Double_t kpt0 = 4.7; | |
105 | const Double_t kxn = 3.5; | |
106 | Double_t x=*px; | |
107 | ||
108 | Double_t pass1 = 1.+((x*x)/(kpt0*kpt0)); | |
109 | ||
110 | return x/TMath::Power(pass1,kxn); | |
111 | ||
112 | } | |
75e0cc59 | 113 | Double_t AliGenGSIlib::YUpsilonRitman(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 114 | { |
fdcaa191 | 115 | //-------------------------------------------------------------------------- |
116 | // | |
117 | // upsilon y-distribution RITMAN | |
118 | // | |
119 | //-------------------------------------------------------------------------- | |
fdcaa191 | 120 | |
121 | const Double_t ky0 = 3.; | |
122 | const Double_t kb=1.; | |
123 | Double_t yu; | |
124 | Double_t y=TMath::Abs(*py); | |
125 | ||
126 | if (y < ky0) | |
127 | yu=kb; | |
128 | else | |
129 | yu=kb*TMath::Exp(-(y-ky0)*(y-ky0)/2); | |
130 | ||
131 | return yu; | |
132 | ||
133 | } | |
75e0cc59 | 134 | Double_t AliGenGSIlib::PtUpsilonKarel( const Double_t */*px*/, const Double_t */*dummy*/ ) |
f4cd22aa | 135 | { |
fdcaa191 | 136 | //-------------------------------------------------------------------------- |
137 | // | |
138 | // upsilon pt-distribution kAREL | |
139 | // | |
140 | //-------------------------------------------------------------------------- | |
f4cd22aa | 141 | // to implement |
fdcaa191 | 142 | |
143 | return 0.1; | |
144 | ||
145 | } | |
75e0cc59 | 146 | Double_t AliGenGSIlib::YUpsilonKarel(const Double_t */*py*/, const Double_t */*dummy*/) |
f4cd22aa | 147 | { |
fdcaa191 | 148 | //-------------------------------------------------------------------------- |
149 | // | |
150 | // upsilon y-distribution KAREL | |
151 | // | |
152 | //-------------------------------------------------------------------------- | |
fdcaa191 | 153 | |
154 | //to implement | |
155 | ||
156 | return 0.2; | |
157 | ||
158 | } | |
75e0cc59 | 159 | Double_t AliGenGSIlib::PtUpsilonMUON( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 160 | { |
fdcaa191 | 161 | //-------------------------------------------------------------------------- |
162 | // | |
163 | // upsilon pt-distribution MUONlib | |
164 | // | |
165 | //-------------------------------------------------------------------------- | |
fdcaa191 | 166 | |
167 | const Double_t kpt0 = 5.3; | |
168 | const Double_t kxn = 2.5; | |
169 | Double_t x=*px; | |
170 | ||
171 | Double_t pass1 = 1.+(x/kpt0)*(x/kpt0); | |
172 | ||
173 | return x/TMath::Power(pass1,kxn); | |
174 | ||
175 | } | |
75e0cc59 | 176 | Double_t AliGenGSIlib::YUpsilonMUON(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 177 | { |
fdcaa191 | 178 | //-------------------------------------------------------------------------- |
179 | // | |
180 | // upsilon y-distribution MUONlib | |
181 | // | |
182 | //-------------------------------------------------------------------------- | |
fdcaa191 | 183 | |
184 | const Double_t ky0 = 3.; | |
185 | const Double_t kb=1.; | |
186 | Double_t yu; | |
187 | Double_t y=TMath::Abs(*py); | |
188 | ||
189 | if (y < ky0) | |
190 | yu=kb; | |
191 | else | |
192 | yu=kb*TMath::Exp(-(y-ky0)*(y-ky0)/2); | |
193 | ||
194 | return yu; | |
195 | ||
196 | } | |
197 | //-------------------------------------------------------------------------- | |
198 | // | |
199 | // J/Psi | |
200 | // | |
f4cd22aa | 201 | Int_t AliGenGSIlib::IpJpsi(TRandom *) |
202 | { | |
fdcaa191 | 203 | //-------------------------------------------------------------------------- |
204 | // | |
205 | // J/Psi particle composition | |
206 | // | |
207 | //-------------------------------------------------------------------------- | |
fdcaa191 | 208 | |
209 | return 443; | |
210 | ||
211 | } | |
75e0cc59 | 212 | Double_t AliGenGSIlib::PtJpsiFlat( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 213 | { |
fdcaa191 | 214 | //-------------------------------------------------------------------------- |
215 | // | |
216 | // J/Psi pt-distribution FLAT | |
217 | // | |
218 | //-------------------------------------------------------------------------- | |
fdcaa191 | 219 | |
220 | const Double_t kptmin = 0.0; | |
221 | const Double_t kptmax = 15.0; | |
222 | Double_t x=*px; | |
223 | Double_t weight = 0.; | |
224 | ||
f7b22746 | 225 | if ((x > kptmin) && (x < kptmax)) weight = 1.; |
fdcaa191 | 226 | |
227 | return weight; | |
228 | ||
229 | } | |
75e0cc59 | 230 | Double_t AliGenGSIlib::YJpsiFlat(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 231 | { |
fdcaa191 | 232 | //-------------------------------------------------------------------------- |
233 | // | |
234 | // J/Psi y-distribution FLAT | |
235 | // | |
236 | //-------------------------------------------------------------------------- | |
fdcaa191 | 237 | |
238 | const Double_t ky0 = 1.5; | |
239 | const Double_t kb=1.; | |
240 | Double_t yu; | |
241 | Double_t y=TMath::Abs(*py); | |
242 | ||
243 | if (y < ky0) | |
244 | yu=kb; | |
245 | else | |
246 | yu = 0.; | |
247 | ||
248 | return yu; | |
249 | ||
250 | } | |
75e0cc59 | 251 | Double_t AliGenGSIlib::PtJpsiMUON( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 252 | { |
fdcaa191 | 253 | //-------------------------------------------------------------------------- |
254 | // | |
255 | // J/Psi pt-distribution MUONlib | |
256 | // | |
257 | //-------------------------------------------------------------------------- | |
fdcaa191 | 258 | |
259 | const Double_t kpt0 = 4.; | |
260 | const Double_t kxn = 3.6; | |
261 | Double_t x=*px; | |
262 | ||
263 | Double_t pass1 = 1.+(x/kpt0)*(x/kpt0); | |
264 | return x/TMath::Power(pass1,kxn); | |
265 | ||
266 | } | |
75e0cc59 | 267 | Double_t AliGenGSIlib::PtJpsiRitman( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 268 | { |
fdcaa191 | 269 | //-------------------------------------------------------------------------- |
270 | // | |
271 | // J/Psi pt-distribution Ritman | |
272 | // | |
273 | //-------------------------------------------------------------------------- | |
fdcaa191 | 274 | |
275 | const Double_t kpt0 = 2.3; | |
276 | const Double_t kxn = 3.5; | |
277 | Double_t x=*px; | |
278 | ||
279 | Double_t pass1 = 1.+(x/kpt0)*(x/kpt0); | |
280 | ||
281 | return x/TMath::Power(pass1,kxn); | |
282 | ||
283 | } | |
75e0cc59 | 284 | Double_t AliGenGSIlib::YJpsiMUON(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 285 | { |
fdcaa191 | 286 | //-------------------------------------------------------------------------- |
287 | // | |
288 | // J/Psi y-distribution MUONlib | |
289 | // | |
290 | //-------------------------------------------------------------------------- | |
fdcaa191 | 291 | |
292 | const Double_t ky0 = 4.; | |
293 | const Double_t kb=1.; | |
294 | Double_t yj; | |
295 | Double_t y=TMath::Abs(*py); | |
296 | ||
297 | if (y < ky0) | |
298 | yj=kb; | |
299 | else | |
300 | yj=kb*TMath::Exp(-(y-ky0)*(y-ky0)/2); | |
301 | return yj; | |
302 | ||
303 | } | |
304 | //-------------------------------------------------------------------------- | |
305 | // | |
306 | // J/Psi pt-distribution by Sergei | |
307 | // | |
308 | //-------------------------------------------------------------------------- | |
198bb1c7 | 309 | //Double_t AliGenGSIlib::PtJpsi( Double_t *px, Double_t */*dummy*/ ) |
fdcaa191 | 310 | //{ |
311 | ||
312 | // return x = gRandom->Rndm()*10.; | |
313 | ||
314 | //} | |
315 | //-------------------------------------------------------------------------- | |
316 | // | |
317 | // J/Psi y-distribution by Sergei | |
318 | // | |
319 | //-------------------------------------------------------------------------- | |
320 | /*Double_t AliGenGSIlib::YJpsi(Double_t *py, Double_t *dummy) | |
321 | { | |
322 | ||
323 | const Double_t ky0 = 4.; | |
324 | const Double_t kb=1.; | |
325 | Double_t yj; | |
326 | Double_t y=TMath::Abs(*py); | |
327 | // | |
328 | if (y < ky0) | |
329 | yj=kb; | |
330 | else | |
331 | yj=kb*TMath::Exp(-(y-ky0)*(y-ky0)/2); | |
332 | return yj; | |
333 | ||
334 | } | |
335 | */ | |
336 | //-------------------------------------------------------------------------- | |
337 | // | |
338 | // Charm | |
339 | // | |
340 | //-------------------------------------------------------------------------- | |
f4cd22aa | 341 | Int_t AliGenGSIlib::IpCharm(TRandom *ran) |
342 | { | |
fdcaa191 | 343 | // |
344 | // charm particle composition | |
345 | // | |
346 | //-------------------------------------------------------------------------- | |
fdcaa191 | 347 | |
348 | Float_t random; | |
349 | Int_t ip; | |
350 | // 411,421,431,4122 | |
351 | random = ran->Rndm(); | |
352 | if (random < 0.5) { | |
353 | ip=411; | |
354 | } else if (random < 0.75) { | |
355 | ip=421; | |
356 | } else if (random < 0.90) { | |
357 | ip=431; | |
358 | } else { | |
359 | ip=4122; | |
360 | } | |
361 | if (ran->Rndm() < 0.5) {ip=-ip;} | |
362 | ||
363 | return ip; | |
364 | ||
365 | } | |
75e0cc59 | 366 | Double_t AliGenGSIlib::PtCharmFlat( const Double_t *px, const Double_t */*dummy*/) |
f4cd22aa | 367 | { |
fdcaa191 | 368 | //-------------------------------------------------------------------------- |
369 | // | |
370 | // charm pt-distribution, FLAT | |
371 | // | |
372 | //-------------------------------------------------------------------------- | |
fdcaa191 | 373 | |
374 | Double_t x=*px; | |
375 | ||
376 | if (x>10.) x = 0.; | |
377 | else x=1.; | |
378 | return x ; | |
379 | ||
380 | } | |
75e0cc59 | 381 | Double_t AliGenGSIlib::PtCharmGSI( const Double_t *px, const Double_t */*dummy*/) |
f4cd22aa | 382 | { |
fdcaa191 | 383 | //-------------------------------------------------------------------------- |
384 | // | |
385 | // charm pt-distribution, from Dariuzs Miskowiec | |
386 | // | |
387 | //-------------------------------------------------------------------------- | |
f4cd22aa | 388 | |
fdcaa191 | 389 | //Taken from PYTHIA with MRS D-' (3031 from PDFLIB), K=3.0 |
390 | const Double_t kp1 = 1.3; | |
391 | const Double_t kp2 = 0.39; | |
392 | const Double_t kp3 = 0.018; | |
393 | const Double_t kp4 = 0.91; | |
394 | Double_t x=*px; | |
395 | ||
396 | Double_t pass1 =TMath::Exp(-x/kp2) ; | |
397 | Double_t pass2 =TMath::Exp(-x/kp4) ; | |
398 | return TMath::Power(x,kp1) * (pass1 + kp3 * pass2); | |
399 | ||
400 | } | |
75e0cc59 | 401 | Double_t AliGenGSIlib::PtCharmMUON( const Double_t *px, const Double_t */*dummy*/) |
f4cd22aa | 402 | { |
fdcaa191 | 403 | //-------------------------------------------------------------------------- |
404 | // | |
405 | // charm pt-distribution, from MUONlib | |
406 | // | |
407 | //-------------------------------------------------------------------------- | |
fdcaa191 | 408 | |
409 | const Double_t kpt0 = 4.08; | |
410 | const Double_t kxn = 9.40; | |
411 | Double_t x=*px; | |
412 | ||
413 | Double_t pass1 = 1.+(x/kpt0)*(x/kpt0); | |
414 | ||
415 | return x/TMath::Power(pass1,kxn); | |
416 | ||
417 | } | |
75e0cc59 | 418 | Double_t AliGenGSIlib::YCharm( const Double_t *px, const Double_t */*dummy*/) |
f4cd22aa | 419 | { |
fdcaa191 | 420 | //-------------------------------------------------------------------------- |
421 | // | |
422 | // charm y-distribution | |
423 | // | |
424 | //-------------------------------------------------------------------------- | |
fdcaa191 | 425 | |
426 | Double_t *dum=0; | |
427 | ||
428 | return YJpsiMUON(px,dum); | |
429 | ||
430 | } | |
431 | //-------------------------------------------------------------------------- | |
432 | // | |
433 | // Beauty | |
434 | // | |
435 | //-------------------------------------------------------------------------- | |
f4cd22aa | 436 | Int_t AliGenGSIlib::IpBeauty(TRandom *ran) |
437 | { | |
fdcaa191 | 438 | // |
439 | // beauty particle composition | |
440 | // | |
441 | //-------------------------------------------------------------------------- | |
fdcaa191 | 442 | |
443 | Float_t random; | |
444 | Int_t ip; | |
445 | random = ran->Rndm(); | |
446 | if (random < 0.5) { | |
447 | ip=511; | |
448 | } else if (random < 0.75) { | |
449 | ip=521; | |
450 | } else if (random < 0.90) { | |
451 | ip=531; | |
452 | } else { | |
453 | ip=5122; | |
454 | } | |
455 | if (ran->Rndm() < 0.5) {ip=-ip;} | |
456 | ||
457 | return ip; | |
458 | } | |
75e0cc59 | 459 | Double_t AliGenGSIlib::PtBeautyFlat( const Double_t *px, const Double_t */*dummy*/) |
f4cd22aa | 460 | { |
fdcaa191 | 461 | //-------------------------------------------------------------------------- |
462 | // | |
463 | // beauty pt-distribution, FLAT | |
464 | // | |
465 | //-------------------------------------------------------------------------- | |
fdcaa191 | 466 | |
467 | Double_t x=*px; | |
468 | ||
469 | if (x>10.) x=0.; | |
470 | else x = 1.; | |
471 | return x ; | |
472 | ||
473 | } | |
75e0cc59 | 474 | Double_t AliGenGSIlib::PtBeautyGSI( const Double_t *px, const Double_t */*dummy*/) |
f4cd22aa | 475 | { |
fdcaa191 | 476 | //-------------------------------------------------------------------------- |
477 | // | |
478 | // | |
479 | // beauty pt-distribution, from D. Miskowiec | |
480 | // | |
481 | //-------------------------------------------------------------------------- | |
f4cd22aa | 482 | |
fdcaa191 | 483 | //Taken from PYTHIA with MRS D-' (3031 from PDFLIB), K=3.0 |
484 | const Double_t kp1 = 1.3; | |
485 | const Double_t kp2 = 1.78; | |
486 | const Double_t kp3 = 0.0096; | |
487 | const Double_t kp4 = 4.16; | |
488 | Double_t x=*px; | |
489 | ||
490 | Double_t pass1 =TMath::Exp(-x/kp2) ; | |
491 | Double_t pass2 =TMath::Exp(-x/kp4) ; | |
492 | ||
493 | return TMath::Power(x,kp1) * (pass1 + kp3 * pass2); | |
494 | ||
495 | } | |
75e0cc59 | 496 | Double_t AliGenGSIlib::PtBeautyMUON( const Double_t *px, const Double_t */*dummy*/) |
f4cd22aa | 497 | { |
fdcaa191 | 498 | //-------------------------------------------------------------------------- |
499 | // | |
500 | // beauty pt-distribution, from MUONlib | |
501 | // | |
502 | //-------------------------------------------------------------------------- | |
fdcaa191 | 503 | |
504 | const Double_t kpt0 = 4.; | |
505 | const Double_t kxn = 3.6; | |
506 | Double_t x=*px; | |
507 | ||
508 | Double_t pass1 = 1.+(x/kpt0)*(x/kpt0); | |
509 | ||
510 | return x/TMath::Power(pass1,kxn); | |
511 | ||
512 | } | |
75e0cc59 | 513 | Double_t AliGenGSIlib::YBeauty( const Double_t *px, const Double_t */*dummy*/) |
f4cd22aa | 514 | { |
fdcaa191 | 515 | //-------------------------------------------------------------------------- |
516 | // | |
517 | // beauty y-distribution | |
518 | // | |
519 | //-------------------------------------------------------------------------- | |
fdcaa191 | 520 | |
521 | Double_t *dum=0; | |
522 | ||
523 | return YJpsiMUON(px,dum); | |
524 | ||
525 | } | |
526 | //-------------------------------------------------------------------------- | |
527 | // | |
528 | // Eta | |
529 | // | |
530 | //-------------------------------------------------------------------------- | |
f4cd22aa | 531 | Int_t AliGenGSIlib::IpEta(TRandom *) |
532 | { | |
fdcaa191 | 533 | // |
534 | // eta particle composition | |
535 | // | |
536 | //-------------------------------------------------------------------------- | |
fdcaa191 | 537 | |
538 | return 221; | |
539 | ||
540 | } | |
75e0cc59 | 541 | Double_t AliGenGSIlib::PtEtaPHOS( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 542 | { |
fdcaa191 | 543 | //-------------------------------------------------------------------------- |
544 | // | |
545 | // eta pt-distribution | |
546 | // | |
547 | //____________________________________________________________-------------- | |
fdcaa191 | 548 | |
0db2f441 | 549 | return PtScal(*px,2); // 2==> Eta in the PtScal function |
fdcaa191 | 550 | |
551 | } | |
75e0cc59 | 552 | Double_t AliGenGSIlib::YEtaPHOS(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 553 | { |
fdcaa191 | 554 | //-------------------------------------------------------------------------- |
555 | // | |
556 | // eta y-distribution | |
557 | // | |
558 | //-------------------------------------------------------------------------- | |
fdcaa191 | 559 | |
560 | const Double_t ka = 1000.; | |
561 | const Double_t kdy = 4.; | |
562 | ||
563 | Double_t y=TMath::Abs(*py); | |
564 | ||
565 | Double_t ex = y*y/(2*kdy*kdy); | |
566 | ||
567 | return ka*TMath::Exp(-ex); | |
568 | ||
569 | } | |
570 | //-------------------------------------------------------------------------- | |
571 | // | |
572 | // Etaprime | |
573 | // | |
574 | //-------------------------------------------------------------------------- | |
f4cd22aa | 575 | Int_t AliGenGSIlib::IpEtaprime(TRandom *) |
576 | { | |
fdcaa191 | 577 | // |
578 | // etaprime particle composition | |
579 | // | |
580 | //-------------------------------------------------------------------------- | |
fdcaa191 | 581 | |
582 | return 331; | |
583 | ||
584 | } | |
75e0cc59 | 585 | Double_t AliGenGSIlib::PtEtaprimePHOS( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 586 | { |
fdcaa191 | 587 | //-------------------------------------------------------------------------- |
588 | // | |
589 | // etaprime pt-distribution | |
590 | // | |
591 | //____________________________________________________________-------------- | |
fdcaa191 | 592 | |
0db2f441 | 593 | return PtScal(*px,4); // 4==> Etaprime in the PtScal function |
fdcaa191 | 594 | |
595 | } | |
75e0cc59 | 596 | Double_t AliGenGSIlib::YEtaprimePHOS(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 597 | { |
fdcaa191 | 598 | //-------------------------------------------------------------------------- |
599 | // | |
600 | // etaprime y-distribution | |
601 | // | |
602 | //-------------------------------------------------------------------------- | |
fdcaa191 | 603 | |
604 | const Double_t ka = 1000.; | |
605 | const Double_t kdy = 4.; | |
606 | ||
607 | Double_t y=TMath::Abs(*py); | |
608 | ||
609 | Double_t ex = y*y/(2*kdy*kdy); | |
610 | ||
611 | return ka*TMath::Exp(-ex); | |
612 | ||
613 | } | |
614 | //-------------------------------------------------------------------------- | |
615 | // | |
616 | // omega | |
617 | // | |
618 | //-------------------------------------------------------------------------- | |
f4cd22aa | 619 | Int_t AliGenGSIlib::IpOmega(TRandom *) |
620 | { | |
fdcaa191 | 621 | // |
622 | // omega particle composition | |
623 | // | |
624 | //-------------------------------------------------------------------------- | |
fdcaa191 | 625 | |
626 | return 223; | |
627 | ||
628 | } | |
75e0cc59 | 629 | Double_t AliGenGSIlib::PtOmega( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 630 | { |
fdcaa191 | 631 | //-------------------------------------------------------------------------- |
632 | // | |
633 | // omega pt-distribution | |
634 | // | |
635 | //____________________________________________________________-------------- | |
fdcaa191 | 636 | |
0db2f441 | 637 | return PtScal(*px,3); // 3==> Omega in the PtScal function |
fdcaa191 | 638 | |
639 | } | |
75e0cc59 | 640 | Double_t AliGenGSIlib::YOmega(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 641 | { |
fdcaa191 | 642 | //-------------------------------------------------------------------------- |
643 | // | |
644 | // omega y-distribution | |
645 | // | |
646 | //-------------------------------------------------------------------------- | |
fdcaa191 | 647 | |
648 | const Double_t ka = 1000.; | |
649 | const Double_t kdy = 4.; | |
650 | ||
651 | ||
652 | Double_t y=TMath::Abs(*py); | |
653 | ||
654 | Double_t ex = y*y/(2*kdy*kdy); | |
655 | ||
656 | return ka*TMath::Exp(-ex); | |
657 | ||
658 | } | |
659 | //-------------------------------------------------------------------------- | |
660 | // | |
661 | // Rho | |
662 | // | |
663 | //-------------------------------------------------------------------------- | |
f4cd22aa | 664 | |
665 | Int_t AliGenGSIlib::IpRho(TRandom *) | |
666 | { | |
fdcaa191 | 667 | // |
668 | // rho particle composition | |
669 | // | |
670 | //-------------------------------------------------------------------------- | |
fdcaa191 | 671 | |
672 | return 113; | |
673 | ||
674 | } | |
75e0cc59 | 675 | Double_t AliGenGSIlib::PtRho( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 676 | { |
fdcaa191 | 677 | //-------------------------------------------------------------------------- |
678 | // | |
679 | // rho pt-distribution | |
680 | // | |
681 | //____________________________________________________________-------------- | |
65fb704d | 682 | |
0db2f441 | 683 | return PtScal(*px,10); // 10==> Rho in the PtScal function |
fdcaa191 | 684 | |
685 | } | |
75e0cc59 | 686 | Double_t AliGenGSIlib::YRho(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 687 | { |
fdcaa191 | 688 | //-------------------------------------------------------------------------- |
689 | // | |
690 | // rho y-distribution | |
691 | // | |
692 | //-------------------------------------------------------------------------- | |
f4cd22aa | 693 | |
fdcaa191 | 694 | const Double_t ka = 1000.; |
695 | const Double_t kdy = 4.; | |
014616eb | 696 | |
014616eb | 697 | |
fdcaa191 | 698 | Double_t y=TMath::Abs(*py); |
014616eb | 699 | |
fdcaa191 | 700 | Double_t ex = y*y/(2*kdy*kdy); |
675e9664 | 701 | |
fdcaa191 | 702 | return ka*TMath::Exp(-ex); |
65fb704d | 703 | |
fdcaa191 | 704 | } |
705 | //-------------------------------------------------------------------------- | |
706 | // | |
707 | // Pion | |
708 | // | |
709 | //-------------------------------------------------------------------------- | |
f4cd22aa | 710 | Int_t AliGenGSIlib::IpPionPHOS(TRandom *ran) |
711 | { | |
fdcaa191 | 712 | // |
713 | // particle composition pi+, pi0, pi- | |
714 | // | |
715 | //-------------------------------------------------------------------------- | |
014616eb | 716 | |
fdcaa191 | 717 | Float_t random = ran->Rndm(); |
014616eb | 718 | |
fdcaa191 | 719 | if ( (3.*random) < 1. ) |
720 | { | |
721 | return 211 ; | |
722 | } | |
723 | else | |
724 | { | |
725 | if ( (3.*random) >= 2.) | |
726 | { | |
727 | return -211 ; | |
728 | } | |
729 | else | |
730 | { | |
731 | return 111 ; | |
732 | } | |
733 | } | |
734 | } | |
75e0cc59 | 735 | Double_t AliGenGSIlib::PtPion( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 736 | { |
fdcaa191 | 737 | //-------------------------------------------------------------------------- |
014616eb | 738 | // |
fdcaa191 | 739 | // pion pt-distribution |
014616eb | 740 | // |
fdcaa191 | 741 | // Pion transverse momentum distribtuion as in AliGenMUONlib class, |
742 | // version 3.01 of aliroot: | |
743 | // PT-PARAMETERIZATION CDF, PRL 61(88) 1819 | |
744 | // POWER LAW FOR PT > 500 MEV | |
745 | // MT SCALING BELOW (T=160 MEV) | |
746 | // | |
747 | //____________________________________________________________-------------- | |
fdcaa191 | 748 | |
749 | const Double_t kp0 = 1.3; | |
750 | const Double_t kxn = 8.28; | |
751 | const Double_t kxlim=0.5; | |
752 | const Double_t kt=0.160; | |
753 | const Double_t kxmpi=0.139; | |
754 | const Double_t kb=1.; | |
755 | Double_t y, y1, kxmpi2, ynorm, a; | |
014616eb | 756 | Double_t x=*px; |
fdcaa191 | 757 | |
758 | y1=TMath::Power(kp0/(kp0+kxlim),kxn); | |
759 | kxmpi2=kxmpi*kxmpi; | |
760 | ynorm=kb*(TMath::Exp(-sqrt(kxlim*kxlim+kxmpi2)/kt)); | |
761 | a=ynorm/y1; | |
762 | if (x > kxlim) | |
763 | y=a*TMath::Power(kp0/(kp0+x),kxn); | |
764 | else | |
765 | y=kb*TMath::Exp(-sqrt(x*x+kxmpi2)/kt); | |
766 | return y*x; | |
014616eb | 767 | |
768 | } | |
75e0cc59 | 769 | Double_t AliGenGSIlib::YPion(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 770 | { |
fdcaa191 | 771 | //-------------------------------------------------------------------------- |
014616eb | 772 | // |
fdcaa191 | 773 | // pion y-distribution |
014616eb | 774 | // |
fdcaa191 | 775 | //-------------------------------------------------------------------------- |
014616eb | 776 | |
fdcaa191 | 777 | const Double_t ka = 7000.; |
778 | const Double_t kdy = 4.; | |
014616eb | 779 | |
fdcaa191 | 780 | Double_t y=TMath::Abs(*py); |
781 | ||
782 | Double_t ex = y*y/(2*kdy*kdy); | |
783 | ||
784 | return ka*TMath::Exp(-ex); | |
785 | ||
786 | } | |
f4cd22aa | 787 | Int_t AliGenGSIlib::IpKaonPHOS(TRandom *ran) |
788 | { | |
fdcaa191 | 789 | //-------------------------------------------------------------------------- |
790 | // | |
791 | // | |
792 | // Kaon | |
793 | //-------------------------------------------------------------------------- | |
794 | // | |
795 | // kaon particle composition K+, K-, Ko_short, Ko_long | |
796 | // | |
797 | //-------------------------------------------------------------------------- | |
fdcaa191 | 798 | |
799 | Float_t random = ran->Rndm(); | |
800 | Float_t random2 = ran->Rndm(); | |
801 | if (random2 < 0.5) | |
802 | { | |
803 | if (random < 0.5) { | |
804 | return 321; // K+ | |
805 | } else { | |
806 | return -321; // K- | |
807 | } | |
808 | } | |
014616eb | 809 | else |
fdcaa191 | 810 | { |
811 | if (random < 0.5) { | |
812 | return 130; // K^0 short | |
813 | } else { | |
814 | return 310; // K^0 long | |
815 | } | |
816 | } | |
014616eb | 817 | } |
75e0cc59 | 818 | Double_t AliGenGSIlib::PtKaonPHOS( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 819 | { |
fdcaa191 | 820 | //-------------------------------------------------------------------------- |
014616eb | 821 | // |
fdcaa191 | 822 | // kaon pt-distribution |
823 | // | |
824 | //____________________________________________________________-------------- | |
fdcaa191 | 825 | |
0db2f441 | 826 | return PtScal(*px,1); // 1==> Kaon in the PtScal function |
fdcaa191 | 827 | |
014616eb | 828 | } |
75e0cc59 | 829 | Double_t AliGenGSIlib::YKaonPHOS(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 830 | { |
fdcaa191 | 831 | //-------------------------------------------------------------------------- |
832 | // | |
833 | // kaon y-distribution | |
834 | // | |
835 | //-------------------------------------------------------------------------- | |
014616eb | 836 | |
fdcaa191 | 837 | const Double_t ka = 1000.; |
838 | const Double_t kdy = 4.; | |
014616eb | 839 | |
fdcaa191 | 840 | Double_t y=TMath::Abs(*py); |
841 | ||
842 | Double_t ex = y*y/(2*kdy*kdy); | |
843 | ||
844 | return ka*TMath::Exp(-ex); | |
014616eb | 845 | |
014616eb | 846 | } |
fdcaa191 | 847 | //-------------------------------------------------------------------------- |
014616eb | 848 | // |
fdcaa191 | 849 | // Phi |
014616eb | 850 | // |
f4cd22aa | 851 | Int_t AliGenGSIlib::IpPhi(TRandom *) |
852 | { | |
fdcaa191 | 853 | //-------------------------------------------------------------------------- |
854 | // | |
855 | // particle composition | |
856 | // | |
857 | //-------------------------------------------------------------------------- | |
014616eb | 858 | |
fdcaa191 | 859 | return 333; |
014616eb | 860 | |
fdcaa191 | 861 | } |
75e0cc59 | 862 | Double_t AliGenGSIlib::PtPhiPHOS( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 863 | { |
fdcaa191 | 864 | //-------------------------------------------------------------------------- |
865 | // | |
866 | // phi pt-distribution | |
867 | // | |
868 | //____________________________________________________________-------------- | |
fdcaa191 | 869 | |
0db2f441 | 870 | return PtScal(*px,5); // 5==> Phi in the PtScal function |
fdcaa191 | 871 | |
014616eb | 872 | } |
75e0cc59 | 873 | Double_t AliGenGSIlib::YPhiPHOS(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 874 | { |
fdcaa191 | 875 | //-------------------------------------------------------------------------- |
876 | // | |
877 | // phi y-distribution | |
878 | // | |
879 | //-------------------------------------------------------------------------- | |
014616eb | 880 | |
fdcaa191 | 881 | const Double_t ka = 1000.; |
882 | const Double_t kdy = 4.; | |
014616eb | 883 | |
884 | ||
fdcaa191 | 885 | Double_t y=TMath::Abs(*py); |
886 | ||
887 | Double_t ex = y*y/(2*kdy*kdy); | |
888 | ||
889 | return ka*TMath::Exp(-ex); | |
890 | ||
891 | } | |
f4cd22aa | 892 | Int_t AliGenGSIlib::IpBaryons(TRandom *ran) |
893 | { | |
fdcaa191 | 894 | //-------------------------------------------------------------------------- |
895 | // | |
896 | // Baryons | |
897 | // | |
898 | //-------------------------------------------------------------------------- | |
899 | // | |
900 | // baryons particle composition p, pbar, n, nbar | |
901 | // | |
902 | //-------------------------------------------------------------------------- | |
fdcaa191 | 903 | |
904 | Float_t random = ran->Rndm(); | |
905 | Float_t random2 = ran->Rndm(); | |
906 | if (random2 < 0.5) | |
907 | { | |
908 | if (random < 0.5) { | |
909 | return 2212; // p | |
910 | } else { | |
911 | return -2212; // pbar | |
912 | } | |
913 | } | |
914 | else | |
915 | { | |
916 | if (random < 0.5) { | |
917 | return 2112; // n | |
918 | } else { | |
919 | return -2112; // n bar | |
920 | } | |
921 | } | |
014616eb | 922 | } |
75e0cc59 | 923 | Double_t AliGenGSIlib::PtBaryons( const Double_t *px, const Double_t */*dummy*/ ) |
f4cd22aa | 924 | { |
fdcaa191 | 925 | //-------------------------------------------------------------------------- |
014616eb | 926 | // |
fdcaa191 | 927 | // baryons pt-distribution |
014616eb | 928 | // |
fdcaa191 | 929 | //____________________________________________________________-------------- |
fdcaa191 | 930 | |
0db2f441 | 931 | return PtScal(*px,6); // 6==> Baryon in the PtScal function |
fdcaa191 | 932 | |
933 | } | |
75e0cc59 | 934 | Double_t AliGenGSIlib::YBaryons(const Double_t *py, const Double_t */*dummy*/) |
f4cd22aa | 935 | { |
fdcaa191 | 936 | //-------------------------------------------------------------------------- |
937 | // | |
938 | // baryons y-distribution | |
939 | // | |
940 | //-------------------------------------------------------------------------- | |
fdcaa191 | 941 | |
942 | const Double_t ka = 1000.; | |
943 | const Double_t kdy = 4.; | |
944 | ||
014616eb | 945 | Double_t y=TMath::Abs(*py); |
fdcaa191 | 946 | |
947 | Double_t ex = y*y/(2*kdy*kdy); | |
948 | ||
949 | return ka*TMath::Exp(-ex); | |
950 | ||
014616eb | 951 | } |
fdcaa191 | 952 | //============================================================= |
953 | // | |
954 | // Mt-scaling as in AliGenPHOSlib | |
955 | // | |
956 | //============================================================= | |
014616eb | 957 | // |
fdcaa191 | 958 | Double_t AliGenGSIlib::PtScal(Double_t pt, Int_t np) |
014616eb | 959 | { |
fdcaa191 | 960 | // Function for the calculation of the Pt distribution for a |
961 | // given particle np, from the pion Pt distribution using the | |
962 | // mt scaling. | |
963 | ||
964 | // It was taken from AliGenPHOSlib aliroot version 3.04, which | |
965 | // is an update of the one in AliGenMUONlib aliroot version 3.01 | |
966 | // with an extension for Baryons but supressing Rhos | |
967 | // np = 1=>Pions 2=>Kaons 3=>Etas 4=>Omegas 5=>ETA' 6=>PHI | |
968 | // 7=>BARYONS-BARYONBARS | |
969 | ||
970 | // The present adds the Rhos | |
971 | ||
0db2f441 | 972 | // MASS 0=>PI, 1=>K, 2=>ETA, 3=>OMEGA, 4=>ETA', 5=>PHI |
973 | // 6=>BARYON-BARYONBAR, 10==>RHO | |
fdcaa191 | 974 | |
975 | const Double_t khm[11] = {0.1396, 0.494, 0.547, 0.782, 0.957, 1.02, | |
976 | 0.938, 0. , 0., 0., 0.769}; | |
977 | ||
978 | // VALUE MESON/PI AT 5 GEV | |
979 | ||
980 | const Double_t kfmax[11]={1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.}; | |
981 | ||
fdcaa191 | 982 | Double_t f5=TMath::Power(((sqrt(100.018215)+2.)/(sqrt(100.+khm[np]*khm[np])+2.0)),12.3); |
983 | Double_t kfmax2=f5/kfmax[np]; | |
984 | // PIONS | |
985 | Double_t ptpion=100.*PtPion(&pt, (Double_t*) 0); | |
986 | Double_t fmtscal=TMath::Power(((sqrt(pt*pt+0.018215)+2.)/ | |
987 | (sqrt(pt*pt+khm[np]*khm[np])+2.0)),12.3)/ kfmax2; | |
988 | return fmtscal*ptpion; | |
014616eb | 989 | } |
990 | ||
fdcaa191 | 991 | //========================================================================== |
992 | // | |
993 | // Set Getters | |
994 | // | |
995 | //========================================================================== | |
014616eb | 996 | |
75e0cc59 | 997 | typedef Double_t (*GenFunc) (const Double_t*, const Double_t*); |
014616eb | 998 | |
65fb704d | 999 | typedef Int_t (*GenFuncIp) (TRandom *); |
014616eb | 1000 | |
f4cd22aa | 1001 | GenFunc AliGenGSIlib::GetPt(Int_t param, const char * tname) const |
014616eb | 1002 | { |
1003 | // Return pointer to pT parameterisation | |
fdcaa191 | 1004 | GenFunc func=0; |
1005 | TString sname(tname); | |
1006 | ||
1007 | switch (param) | |
014616eb | 1008 | { |
34f60c01 | 1009 | case kUpsilon: |
fdcaa191 | 1010 | if (sname=="FLAT"){ |
4facea7f | 1011 | func= PtUpsilonFlat; |
1012 | break; | |
fdcaa191 | 1013 | } |
014616eb | 1014 | if (sname=="MUON"){ |
4facea7f | 1015 | func= PtUpsilonMUON; |
1016 | break; | |
014616eb | 1017 | } |
1018 | if (sname=="RITMAN"){ | |
4facea7f | 1019 | func=PtUpsilonRitman; |
1020 | break; | |
014616eb | 1021 | } |
1022 | if (sname=="KAREL"){ | |
4facea7f | 1023 | func=PtUpsilonKarel; |
1024 | break; | |
014616eb | 1025 | } |
4facea7f | 1026 | func=0; |
1027 | printf("<AliGenGSIlib::GetPt> unknown parametrisation\n"); | |
014616eb | 1028 | break; |
fdcaa191 | 1029 | |
1030 | case kJPsi: | |
1031 | if (sname=="FLAT"){ | |
4facea7f | 1032 | func= PtJpsiFlat; |
1033 | break; | |
fdcaa191 | 1034 | } |
1035 | if (sname=="MUON"){ | |
4facea7f | 1036 | func= PtJpsiMUON; |
1037 | break; | |
fdcaa191 | 1038 | } |
1039 | // if (sname=="SERGEI"){ | |
1040 | // func= PtJpsi; | |
1041 | // break; | |
1042 | // } | |
4facea7f | 1043 | func=0; |
1044 | printf("<AliGenGSIlib::GetPt> unknown parametrisation\n"); | |
fdcaa191 | 1045 | break; |
fdcaa191 | 1046 | |
1047 | case kCharm: | |
1048 | if (sname=="FLAT"){ | |
4facea7f | 1049 | func= PtCharmFlat; |
1050 | break; | |
fdcaa191 | 1051 | } |
1052 | ||
1053 | if (sname=="MUON"){ | |
4facea7f | 1054 | func= PtCharmMUON; |
1055 | break; | |
fdcaa191 | 1056 | } |
1057 | ||
1058 | if (sname=="GSI"){ | |
4facea7f | 1059 | func= PtCharmGSI; |
1060 | break; | |
fdcaa191 | 1061 | } |
4facea7f | 1062 | func=0; |
1063 | printf("<AliGenGSIlib::GetPt> unknown parametrisation\n"); | |
fdcaa191 | 1064 | break; |
fdcaa191 | 1065 | |
1066 | case kBeauty: | |
1067 | if (sname=="FLAT"){ | |
4facea7f | 1068 | func= PtBeautyFlat; |
1069 | break; | |
fdcaa191 | 1070 | } |
1071 | if (sname=="MUON"){ | |
4facea7f | 1072 | func= PtBeautyMUON; |
1073 | break; | |
fdcaa191 | 1074 | } |
1075 | if (sname=="GSI"){ | |
4facea7f | 1076 | func= PtBeautyGSI; |
1077 | break; | |
fdcaa191 | 1078 | } |
4facea7f | 1079 | func=0; |
1080 | printf("<AliGenGSIlib::GetPt> unknown parametrisation\n"); | |
fdcaa191 | 1081 | break; |
fdcaa191 | 1082 | |
1083 | ||
1084 | case kEta: | |
4facea7f | 1085 | func=PtEtaPHOS; |
1086 | break; | |
fdcaa191 | 1087 | |
1088 | case kEtaprime: | |
4facea7f | 1089 | func=PtEtaprimePHOS; |
1090 | break; | |
fdcaa191 | 1091 | |
1092 | case kOmega: | |
4facea7f | 1093 | func=PtOmega; |
1094 | break; | |
fdcaa191 | 1095 | |
1096 | case kRho: | |
4facea7f | 1097 | func=PtRho; |
1098 | break; | |
fdcaa191 | 1099 | |
1100 | case kKaon: | |
4facea7f | 1101 | func=PtKaonPHOS; |
1102 | break; | |
fdcaa191 | 1103 | |
1104 | case kPion: | |
4facea7f | 1105 | func=PtPion; |
1106 | break; | |
fdcaa191 | 1107 | |
1108 | case kPhi: | |
4facea7f | 1109 | func=PtPhiPHOS; |
1110 | break; | |
fdcaa191 | 1111 | |
1112 | // case kLambda: | |
1113 | // func=PtLambda; | |
1114 | // break; | |
1115 | ||
1116 | case kBaryons: | |
4facea7f | 1117 | func=PtBaryons; |
1118 | break; | |
fdcaa191 | 1119 | |
014616eb | 1120 | default: |
4facea7f | 1121 | func=0; |
1122 | printf("<AliGenGSIlib::GetPt> unknown parametrisation\n"); | |
014616eb | 1123 | } |
4facea7f | 1124 | return func; |
014616eb | 1125 | } |
1126 | ||
f4cd22aa | 1127 | GenFunc AliGenGSIlib::GetY(Int_t param, const char * tname) const |
014616eb | 1128 | { |
fdcaa191 | 1129 | // Return pointer to y- parameterisation |
014616eb | 1130 | GenFunc func=0; |
fdcaa191 | 1131 | TString sname(tname); |
1132 | ||
1133 | switch (param) | |
014616eb | 1134 | { |
34f60c01 | 1135 | case kUpsilon: |
fdcaa191 | 1136 | if (sname=="FLAT"){ |
1137 | func= YUpsilonFlat; | |
1138 | break; | |
1139 | } | |
014616eb | 1140 | if (sname=="MUON"){ |
1141 | func= YUpsilonMUON; | |
1142 | break; | |
1143 | } | |
1144 | if (sname=="RITMAN"){ | |
1145 | func=YUpsilonRitman; | |
1146 | break; | |
1147 | } | |
1148 | if (sname=="KAREL"){ | |
1149 | func=YUpsilonKarel; | |
1150 | break; | |
1151 | } | |
1152 | func=0; | |
1153 | printf("<AliGenGSIlib::GetY> unknown parametrisation\n"); | |
1154 | break; | |
fdcaa191 | 1155 | |
1156 | case kJPsi: | |
1157 | if (sname=="FLAT"){ | |
1158 | func= YJpsiFlat; | |
1159 | break; | |
1160 | } | |
1161 | if (sname=="MUON"){ | |
1162 | func= YJpsiMUON; | |
1163 | break; | |
1164 | } | |
1165 | // if (sname=="SERGEI"){ | |
1166 | // func= YJpsi; | |
1167 | // break; | |
1168 | // } | |
1169 | ||
1170 | func=0; | |
1171 | printf("<AliGenGSIlib::GetY> unknown parametrisation\n"); | |
1172 | break; | |
1173 | ||
1174 | case kCharm: | |
1175 | func= YCharm; | |
1176 | break; | |
1177 | ||
1178 | case kBeauty: | |
1179 | func= YBeauty; | |
1180 | break; | |
1181 | ||
1182 | case kEta: | |
1183 | func=YEtaPHOS; | |
1184 | break; | |
1185 | ||
1186 | case kEtaprime: | |
1187 | func=YEtaprimePHOS; | |
1188 | break; | |
1189 | ||
1190 | case kOmega: | |
1191 | func=YOmega; | |
1192 | break; | |
1193 | ||
1194 | case kRho: | |
1195 | func=YRho; | |
1196 | break; | |
1197 | ||
1198 | case kKaon: | |
1199 | func=YKaonPHOS; | |
1200 | break; | |
1201 | ||
1202 | case kPion: | |
1203 | func=YPion; | |
1204 | break; | |
1205 | ||
1206 | case kPhi: | |
1207 | func=YPhiPHOS; | |
1208 | break; | |
1209 | ||
1210 | // case kLambda: | |
1211 | // func=YLambda; | |
1212 | // break; | |
1213 | ||
1214 | case kBaryons: | |
1215 | func=YBaryons; | |
1216 | break; | |
1217 | ||
014616eb | 1218 | default: |
1219 | func=0; | |
1220 | printf("<AliGenGSIlib::GetY> unknown parametrisation\n"); | |
1221 | } | |
1222 | return func; | |
1223 | } | |
1224 | ||
f4cd22aa | 1225 | GenFuncIp AliGenGSIlib::GetIp(Int_t param, const char * tname) const |
014616eb | 1226 | { |
1227 | // Return pointer to particle type parameterisation | |
fdcaa191 | 1228 | GenFuncIp func=0; |
1229 | TString sname(tname); | |
1230 | ||
1231 | switch (param) | |
014616eb | 1232 | { |
34f60c01 | 1233 | case kUpsilon: |
fdcaa191 | 1234 | func= IpUpsilon; |
014616eb | 1235 | break; |
fdcaa191 | 1236 | |
1237 | case kJPsi: | |
1238 | func= IpJpsi; | |
014616eb | 1239 | break; |
fdcaa191 | 1240 | |
1241 | case kCharm: | |
1242 | func= IpCharm; | |
014616eb | 1243 | break; |
fdcaa191 | 1244 | |
1245 | case kBeauty: | |
1246 | func= IpBeauty; | |
1247 | break; | |
1248 | ||
1249 | case kEta: | |
1250 | func=IpEta; | |
1251 | break; | |
1252 | ||
1253 | case kEtaprime: | |
1254 | func=IpEtaprime; | |
1255 | break; | |
1256 | ||
1257 | case kOmega: | |
1258 | func=IpOmega; | |
1259 | break; | |
1260 | ||
1261 | case kRho: | |
1262 | func=IpRho; | |
1263 | break; | |
1264 | ||
1265 | case kKaon: | |
1266 | func=IpKaonPHOS; | |
1267 | break; | |
1268 | ||
1269 | case kPion: | |
1270 | func=IpPionPHOS; | |
1271 | break; | |
1272 | ||
1273 | case kPhi: | |
1274 | func=IpPhi; | |
1275 | break; | |
1276 | ||
1277 | // case kLambda: | |
1278 | // func=IpLambda; | |
1279 | // break; | |
1280 | ||
1281 | case kBaryons: | |
1282 | func=IpBaryons; | |
1283 | break; | |
1284 | ||
014616eb | 1285 | default: |
1286 | func=0; | |
1287 | printf("<AliGenGSIlib::GetIp> unknown parametrisation\n"); | |
1288 | } | |
1289 | return func; | |
1290 | } | |
1291 | ||
1292 | ||
1293 | ||
1294 | ||
1295 | ||
1296 | ||
1297 | ||
1298 | ||
1299 | ||
1300 | ||
1301 | ||
1302 |