-
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
// Additional particle species simulation options has been added:
// Charged Pion, Charged Kaons, KLong Proton, Anti-Proton, Neutron,
// Anti-Neutron --> Changes made by Gustavo Conesa in November 2004
+// Add flat Omega(782) distribution in Nov. 2010 by Renzhuo WAN
//======================================================================
#include "TMath.h"
return ka*TMath::Exp(-ex);
}
- Int_t AliGenPHOSlib::IpPion(TRandom *ran)
+Int_t AliGenPHOSlib::IpPion(TRandom */*ran*/)
{
// particle composition pi+, pi0, pi-
//
- Float_t random = ran->Rndm();
-
- if ( (3.*random) < 1. )
- {
- return 211 ;
- }
- else
- {
- if ( (3.*random) >= 2.)
- {
- return -211 ;
- }
- else
- {
return 111 ;
- }
- }
}
Int_t AliGenPHOSlib::IpChargedPion(TRandom *ran)
{
// Particle distribution IdPi0Flat 111 (pi0)
//
+Double_t AliGenPHOSlib::PtPi0(const Double_t * px, const Double_t *)
+{
+// Pion transverse momentum
+ const Double_t kp0 =1.35;
+ const Double_t kxn= 6.18;
+ return TMath::Power(kp0 /(kp0 + px[0]), kxn);
+}
+
Double_t AliGenPHOSlib::PtPi0Flat(const Double_t */*px*/, const Double_t *)
{
// Pion transverse momentum flat distribution
// 7=>BARYONS-BARYONBARS
// SCALING EN MASSE PAR RAPPORT A PTPI
- // MASS 1=>PI, 2=>K, 3=>ETA, 4=>OMEGA, 5=>ETA',6=>PHI
+ // MASS 0=>PI, 1=>K, 2=>ETA, 3=>OMEGA, 4=>ETA',5=>PHI
const Double_t khm[10] = {0.1396, 0.494, 0.547, 0.782, 0.957, 1.02,
- // MASS 7=>BARYON-BARYONBAR
+ // MASS 6=>BARYON-BARYONBAR
0.938, 0. , 0., 0.};
// VALUE MESON/PI AT 5 GEV
const Double_t kfmax[10]={1., 1., 1., 1., 1., 1., 1., 1., 1., 1.};
- np--;
Double_t f5=TMath::Power(((sqrt(100.018215)+2.)/(sqrt(100.+khm[np]*khm[np])+2.0)),12.3);
Double_t kfmax2=f5/kfmax[np];
// PIONS
// pt-distribution
//____________________________________________________________
- return PtScal(*px,2); // 2==> Kaon in the PtScal function
+ return PtScal(*px,1); // 1==> Kaon in the PtScal function
}
Double_t AliGenPHOSlib::YKaon( const Double_t *py, const Double_t *)
// pt-distribution
//____________________________________________________________
- return PtScal(*px,3); // 3==> Eta in the PtScal function
+ return PtScal(*px,2); // 2==> Eta in the PtScal function
}
Double_t AliGenPHOSlib::YEta( const Double_t *py, const Double_t *)
// pt-distribution
//____________________________________________________________
- return PtScal(*px,4); // 4==> Omega in the PtScal function
+ return PtScal(*px,3); // 3==> Omega in the PtScal function
}
Double_t AliGenPHOSlib::YOmega( const Double_t *py, const Double_t *)
}
// End Omega
//============================================================================
+//======================================================================
+// Omega(782) Flat Distribution
+// Transverse momentum distribution PtOmegaFlat
+// Rapidity distribution YOmegaFlat
+// Particle distribution IdOmegaFlat 223(0mega)
+//
+
+Double_t AliGenPHOSlib::PtOmegaFlat(const Double_t */*px*/, const Double_t *)
+{
+// omega transverse momentum flat distribution
+
+return 1;
+
+}
+
+Double_t AliGenPHOSlib::YOmegaFlat( const Double_t */*py*/, const Double_t *)
+{
+
+// omega y-distribution
+//
+ return 1.;
+}
+
+ Int_t AliGenPHOSlib::IpOmegaFlat(TRandom *)
+{
+
+// particle composition omega
+//
+ return 223 ;
+}
+// End OmegaFlat
+
+
//============================================================================
// E T A P R I M E
Double_t AliGenPHOSlib::PtEtaprime( const Double_t *px, const Double_t *)
// pt-distribution
//____________________________________________________________
- return PtScal(*px,5); // 5==> Etaprime in the PtScal function
+ return PtScal(*px,4); // 4==> Etaprime in the PtScal function
}
Double_t AliGenPHOSlib::YEtaprime( const Double_t *py, const Double_t *)
// pt-distribution
//____________________________________________________________
- return PtScal(*px,6); // 6==> Phi in the PtScal function
+ return PtScal(*px,5); // 5==> Phi in the PtScal function
}
Double_t AliGenPHOSlib::YPhi( const Double_t *py, const Double_t *)
// pt-distribution
//____________________________________________________________
- return PtScal(*px,7); // 7==> Baryon in the PtScal function
+ return PtScal(*px,6); // 6==> Baryon in the PtScal function
}
Double_t AliGenPHOSlib::YBaryon( const Double_t *py, const Double_t *)
// End Baryons
//===================================================================
-
-
typedef Double_t (*GenFunc) (const Double_t*, const Double_t*);
GenFunc AliGenPHOSlib::GetPt(Int_t param, const char* /*tname*/) const
{
case kPion:
func=PtPion;
break;
+ case kPi0:
+ func=PtPi0;
+ break;
case kPi0Flat:
func=PtPi0Flat;
break;
case kOmega:
func=PtOmega;
break;
+ case kOmegaFlat:
+ func=PtOmegaFlat;
+ break;
case kEtaPrime:
func=PtEtaprime;
break;
case kPion:
func=YPion;
break;
+ case kPi0:
case kPi0Flat:
func=YPi0Flat;
break;
case kOmega:
func=YOmega;
break;
+ case kOmegaFlat:
+ func=YOmegaFlat;
+ break;
case kEtaPrime:
func=YEtaprime;
break;
case kChargedPion:
func=IpChargedPion;
break;
+ case kPi0:
case kPi0Flat:
func=IpPi0Flat;
break;
case kOmega:
func=IpOmega;
break;
+ case kOmegaFlat:
+ func=IpOmegaFlat;
+ break;
case kEtaPrime:
func=IpEtaprime;
break;