1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 Revision 1.1 2000/06/15 08:48:43 morsch
19 AliGenGSIlib with parametersations for GSI physics simulation added (YF, MI)
21 Revision 1.7 2000/05/02 08:12:13 morsch
22 Coding rule violations corrected.
24 Revision 1.6 1999/09/29 09:24:14 fca
25 Introduction of the Copyright and cvs Log
32 #include "AliGenGSIlib.h"
35 ClassImp(AliGenGSIlib)
37 Bool_t AliGenGSIlib::fgDebug =kFALSE;
42 //____________________________________________________________
43 Double_t AliGenGSIlib::PtUpsilonRitman( Double_t *px, Double_t *dummy )
46 /* AliGenMUONlib parametrisation
47 const Double_t kpt0 = 5.3;
48 const Double_t kxn = 2.5;
51 Double_t pass1 = 1.+(x/kpt0)*(x/kpt0);
52 return x/TMath::Power(pass1,kxn);
54 if (fgDebug) cout<<"Ritman Pt paramtrisation\n";
55 const Double_t kpt0 = 4.7;
56 const Double_t kxn = 3.5;
59 Double_t pass1 = 1.+((x*x)/(kpt0*kpt0));
60 return x/TMath::Power(pass1,kxn);
66 //____________________________________________________________
67 Double_t AliGenGSIlib::YUpsilonRitman(Double_t *py, Double_t *dummy)
72 /* original from AliGenMUON
73 const Double_t ky0 = 3.;
76 Double_t y=TMath::Abs(*py);
81 yu=kb*TMath::Exp(-(y-ky0)*(y-ky0)/2);
84 if (fgDebug) cout<<"Ritman Y paramtrisation\n";
85 return 0.003; //GSI parametrisation
87 // particle composition
89 Int_t AliGenGSIlib::IpUpsilonRitman(TRandom *)
92 if (fgDebug) cout<<"Ritman Ip paramtrisation\n";
97 Double_t AliGenGSIlib::PtUpsilonKarel( Double_t *px, Double_t *dummy )
101 if (fgDebug) cout<<"Karel Pt paramtrisation\n";
108 //____________________________________________________________
109 Double_t AliGenGSIlib::YUpsilonKarel(Double_t *py, Double_t *dummy)
114 if (fgDebug) cout<<"Karel Y paramtrisation\n";
115 return 0.003; //Karel parametrisation
118 // particle composition
121 Int_t AliGenGSIlib::IpUpsilonKarel(TRandom *)
125 if (fgDebug) cout<<"Karel Ip paramtrisation\n";
131 Double_t AliGenGSIlib::PtUpsilonMUON( Double_t *px, Double_t *dummy )
134 const Double_t kpt0 = 5.3;
135 const Double_t kxn = 2.5;
138 Double_t pass1 = 1.+(x/kpt0)*(x/kpt0);
139 return x/TMath::Power(pass1,kxn);
144 //____________________________________________________________
145 Double_t AliGenGSIlib::YUpsilonMUON(Double_t *py, Double_t *dummy)
148 const Double_t ky0 = 3.;
149 const Double_t kb=1.;
151 Double_t y=TMath::Abs(*py);
156 yu=kb*TMath::Exp(-(y-ky0)*(y-ky0)/2);
159 // particle composition
161 Int_t AliGenGSIlib::IpUpsilonMUON(TRandom *)
168 typedef Double_t (*GenFunc) (Double_t*, Double_t*);
170 typedef Int_t (*GenFuncIp) (TRandom *);
174 GenFunc AliGenGSIlib::GetPt(Param_t param, const char * tname)
176 // Return pointer to pT parameterisation
178 TString sname(tname);
186 if (sname=="RITMAN"){
187 func=PtUpsilonRitman;
196 printf("<AliGenGSIlib::GetPt> unknown parametrisation\n");
199 printf("<AliGenGSIlib::GetPt> unknown parametrisation\n");
206 GenFunc AliGenGSIlib::GetY(Param_t param, const char * tname)
208 // Return pointer to y- parameterisation
210 TString sname(tname);
218 if (sname=="RITMAN"){
227 printf("<AliGenGSIlib::GetY> unknown parametrisation\n");
231 printf("<AliGenGSIlib::GetY> unknown parametrisation\n");
238 GenFuncIp AliGenGSIlib::GetIp(Param_t param, const char * tname)
240 // Return pointer to particle type parameterisation
242 TString sname(tname);
250 if (sname=="RITMAN"){
251 func=IpUpsilonRitman;
259 printf("<AliGenGSIlib::GetIP> unknown parametrisation\n");
263 printf("<AliGenGSIlib::GetIp> unknown parametrisation\n");