]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenPHOSlib.cxx
doxy: TPC/stressTest/testSparse converted
[u/mrichter/AliRoot.git] / EVGEN / AliGenPHOSlib.cxx
index 4d4c985f3a21f2e454c298eadf5a1dc68505464e..9a97f517b2b8fb0107ed697ffa42249d08ed9cc2 100644 (file)
@@ -1,4 +1,3 @@
-
 /**************************************************************************
  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  *                                                                        *
@@ -39,6 +38,7 @@
 //  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"
@@ -97,28 +97,12 @@ ClassImp(AliGenPHOSlib)
   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)
 {
@@ -145,6 +129,14 @@ ClassImp(AliGenPHOSlib)
 //    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 
@@ -182,13 +174,12 @@ Double_t AliGenPHOSlib::YPi0Flat( const Double_t */*py*/, const Double_t *)
 //      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
@@ -207,7 +198,7 @@ Double_t AliGenPHOSlib::YPi0Flat( const Double_t */*py*/, const Double_t *)
 //                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 *)
@@ -282,7 +273,7 @@ Int_t AliGenPHOSlib::IpKaon0L(TRandom *)
 //                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 *)
@@ -349,7 +340,7 @@ Double_t AliGenPHOSlib::YEtaFlat( 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 *)
@@ -376,6 +367,39 @@ Double_t AliGenPHOSlib::YEtaFlat( 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 *)
@@ -384,7 +408,7 @@ Double_t AliGenPHOSlib::YEtaFlat( const Double_t */*py*/, 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 *)
@@ -419,7 +443,7 @@ Double_t AliGenPHOSlib::YEtaFlat( 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 *)
@@ -454,7 +478,7 @@ Double_t AliGenPHOSlib::YEtaFlat( 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 *)
@@ -529,8 +553,6 @@ Double_t AliGenPHOSlib::YEtaFlat( 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
 {
@@ -542,6 +564,9 @@ 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;
@@ -557,6 +582,9 @@ GenFunc AliGenPHOSlib::GetPt(Int_t param, const char* /*tname*/) const
       case kOmega:
         func=PtOmega;
         break;
+      case kOmegaFlat:
+        func=PtOmegaFlat;
+      break;
       case kEtaPrime:
         func=PtEtaprime;
         break;
@@ -579,6 +607,7 @@ GenFunc AliGenPHOSlib::GetY(Int_t param, const char* /*tname*/) const
     case kPion:
       func=YPion;
       break;
+    case kPi0:     
     case kPi0Flat:
       func=YPi0Flat;
       break;
@@ -594,6 +623,9 @@ GenFunc AliGenPHOSlib::GetY(Int_t param, const char* /*tname*/) const
     case kOmega:
       func=YOmega;
       break;
+    case kOmegaFlat:
+      func=YOmegaFlat;
+      break;
     case kEtaPrime:
       func=YEtaprime;
       break;
@@ -622,6 +654,7 @@ GenFuncIp AliGenPHOSlib::GetIp(Int_t param,  const char* /*tname*/) const
     case kChargedPion:       
       func=IpChargedPion;
       break;
+    case kPi0:     
     case kPi0Flat:       
       func=IpPi0Flat;
       break;
@@ -644,6 +677,9 @@ GenFuncIp AliGenPHOSlib::GetIp(Int_t param,  const char* /*tname*/) const
     case kOmega:
       func=IpOmega;
       break;
+    case kOmegaFlat:
+      func=IpOmegaFlat;
+      break;
     case kEtaPrime:
       func=IpEtaprime;
       break;