+
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.2 1999/11/04 11:30:48 fca
-Improve comments
-
-Revision 1.1 1999/11/03 17:43:20 fca
-New version from G.Martinez & A.Morsch
-
-*/
+/* $Id$ */
//======================================================================
// AliGenPHOSlib class contains parameterizations of the
// martinez@subatech.in2p3.fr
//======================================================================
-#include "AliGenPHOSlib.h"
#include "TMath.h"
-#include "AliRun.h"
+#include "TRandom.h"
+
+#include "AliGenPHOSlib.h"
ClassImp(AliGenPHOSlib)
return ka*TMath::Exp(-ex);
}
- Int_t AliGenPHOSlib::IpPion()
+ Int_t AliGenPHOSlib::IpPion(TRandom *ran)
{
// particle composition pi+, pi0, pi-
//
- Float_t random[1];
- gMC->Rndm(random,1);
-
- if ( (3.*random[0]) < 1. )
- {
- return 211 ;
- }
- else
- {
- if ( (3.*random[0]) >= 2.)
- {
- return -211 ;
- }
- else
- {
+ Float_t random = ran->Rndm();
+
+ if ( (3.*random) < 1. )
+ {
+ return 211 ;
+ }
+ else
+ {
+ if ( (3.*random) >= 2.)
+ {
+ return -211 ;
+ }
+ else
+ {
return 111 ;
}
}
}
-// End Pions
+
+//End Pions
+//======================================================================
+// Pi 0 Flat Distribution
+// Transverse momentum distribution PtPi0Flat
+// Rapidity distribution YPi0Flat
+// Particle distribution IdPi0Flat 111 (pi0)
+//
+
+Double_t AliGenPHOSlib::PtPi0Flat(Double_t */*px*/, Double_t *)
+{
+// Pion transverse momentum flat distribution
+
+return 1;
+
+}
+
+Double_t AliGenPHOSlib::YPi0Flat( Double_t */*py*/, Double_t *)
+{
+
+// pion y-distribution
+//
+ return 1.;
+}
+
+ Int_t AliGenPHOSlib::IpPi0Flat(TRandom *)
+{
+
+// particle composition pi0
+//
+ return 111 ;
+}
+// End Pi0Flat
//=============================================================
//
Double_t AliGenPHOSlib::PtScal(Double_t pt, Int_t np)
Double_t fmtscal=TMath::Power(((sqrt(pt*pt+0.018215)+2.)/
(sqrt(pt*pt+khm[np]*khm[np])+2.0)),12.3)/ kfmax2;
return fmtscal*ptpion;
+
}
// End Scaling
//============================================================================
return ka*TMath::Exp(-ex);
}
- Int_t AliGenPHOSlib::IpKaon()
+ Int_t AliGenPHOSlib::IpKaon(TRandom *ran)
{
// particle composition
//
- Float_t random[1],random2[1];
- gMC->Rndm(random,1);
- gMC->Rndm(random2,1);
- if (random2[0] < 0.5)
+ Float_t random = ran->Rndm();
+ Float_t random2 = ran->Rndm();
+ if (random2 < 0.5)
{
- if (random[0] < 0.5) {
+ if (random < 0.5) {
return 321; // K+
} else {
return -321; // K-
}
else
{
- if (random[0] < 0.5) {
+ if (random < 0.5) {
return 130; // K^0 short
} else {
return 310; // K^0 long
return ka*TMath::Exp(-ex);
}
- Int_t AliGenPHOSlib::IpEta()
+ Int_t AliGenPHOSlib::IpEta(TRandom *)
{
// particle composition
//
return 221; // eta
}
// End Etas
+
+//======================================================================
+// Eta Flat Distribution
+// Transverse momentum distribution PtEtaFlat
+// Rapidity distribution YEtaFlat
+// Particle distribution IdEtaFlat 111 (pi0)
+//
+
+Double_t AliGenPHOSlib::PtEtaFlat(Double_t */*px*/, Double_t *)
+{
+// Eta transverse momentum flat distribution
+
+ return 1;
+
+}
+
+Double_t AliGenPHOSlib::YEtaFlat( Double_t */*py*/, Double_t *)
+{
+//
+// pion y-distribution
+//
+ return 1.;
+}
+
+ Int_t AliGenPHOSlib::IpEtaFlat(TRandom *)
+{
+//
+// particle composition eta
+//
+ return 221 ;
+}
+// End Pi0Flat
//============================================================================
//============================================================================
// O M E G A S
return ka*TMath::Exp(-ex);
}
- Int_t AliGenPHOSlib::IpOmega()
+ Int_t AliGenPHOSlib::IpOmega(TRandom *)
{
// particle composition
//
return ka*TMath::Exp(-ex);
}
- Int_t AliGenPHOSlib::IpEtaprime()
+ Int_t AliGenPHOSlib::IpEtaprime(TRandom *)
{
// particle composition
//
return ka*TMath::Exp(-ex);
}
- Int_t AliGenPHOSlib::IpPhi()
+ Int_t AliGenPHOSlib::IpPhi(TRandom *)
{
// particle composition
//
return ka*TMath::Exp(-ex);
}
- Int_t AliGenPHOSlib::IpBaryon()
+ Int_t AliGenPHOSlib::IpBaryon(TRandom *ran)
{
// particle composition
//
- Float_t random[1],random2[1];
- gMC->Rndm(random,1);
- gMC->Rndm(random2,1);
- if (random2[0] < 0.5)
+ Float_t random = ran->Rndm();
+ Float_t random2 = ran->Rndm();
+ if (random2 < 0.5)
{
- if (random[0] < 0.5) {
+ if (random < 0.5) {
return 2212; // p
} else {
return -2212; // pbar
}
else
{
- if (random[0] < 0.5) {
+ if (random < 0.5) {
return 2112; // n
} else {
return -2112; // n bar
typedef Double_t (*GenFunc) (Double_t*, Double_t*);
- GenFunc AliGenPHOSlib::GetPt(Param_t param)
+GenFunc AliGenPHOSlib::GetPt(Int_t param, const char* /*tname*/) const
{
// Return pinter to pT parameterisation
GenFunc func;
switch (param)
{
- case Pion:
+ case kPion:
func=PtPion;
break;
- case Kaon:
+ case kPi0Flat:
+ func=PtPi0Flat;
+ break;
+ case kKaon:
func=PtKaon;
break;
- case Eta:
+ case kEta:
func=PtEta;
break;
- case Omega:
+ case kEtaFlat:
+ func=PtEtaFlat;
+ break;
+ case kOmega:
func=PtOmega;
break;
- case Etaprime:
+ case kEtaPrime:
func=PtEtaprime;
break;
- case Baryon:
+ case kBaryon:
func=PtBaryon;
break;
default:
return func;
}
- GenFunc AliGenPHOSlib::GetY(Param_t param)
+GenFunc AliGenPHOSlib::GetY(Int_t param, const char* /*tname*/) const
{
// Return pointer to Y parameterisation
GenFunc func;
switch (param)
{
- case Pion:
+ case kPion:
func=YPion;
break;
- case Kaon:
+ case kPi0Flat:
+ func=YPi0Flat;
+ break;
+ case kKaon:
func=YKaon;
break;
- case Eta:
+ case kEta:
func=YEta;
break;
- case Omega:
+ case kEtaFlat:
+ func=YEtaFlat;
+ break;
+ case kOmega:
func=YOmega;
break;
- case Etaprime:
+ case kEtaPrime:
func=YEtaprime;
break;
- case Phi:
+ case kPhi:
func=YPhi;
break;
- case Baryon:
+ case kBaryon:
func=YBaryon;
break;
default:
}
return func;
}
-typedef Int_t (*GenFuncIp) ();
- GenFuncIp AliGenPHOSlib::GetIp(Param_t param)
+typedef Int_t (*GenFuncIp) (TRandom *);
+GenFuncIp AliGenPHOSlib::GetIp(Int_t param, const char* /*tname*/) const
{
// Return pointer to particle composition
GenFuncIp func;
switch (param)
{
- case Pion:
-
+ case kPion:
func=IpPion;
break;
- case Kaon:
+ case kPi0Flat:
+ func=IpPi0Flat;
+ break;
+ case kKaon:
func=IpKaon;
break;
- case Eta:
+ case kEta:
func=IpEta;
break;
- case Omega:
+ case kEtaFlat:
+ func=IpEtaFlat;
+ break;
+
+ case kOmega:
func=IpOmega;
break;
- case Etaprime:
+ case kEtaPrime:
func=IpEtaprime;
break;
- case Phi:
+ case kPhi:
func=IpPhi;
break;
- case Baryon:
+ case kBaryon:
func=IpBaryon;
break;
default: