Generation of Lambda1520
[u/mrichter/AliRoot.git] / EVGEN / AliGenSTRANGElib.cxx
index 2432f6bca59953e3229e79512123f28bbee8aa83..49d5d30876a46280a283e7034683d260d1973c79 100644 (file)
@@ -60,7 +60,7 @@ ClassImp(AliGenSTRANGElib)
 
   //    MASS SCALING RESPECT TO PIONS
   //    MASS                1=>PI,  2=>K, 3=>ETA,4=>OMEGA,5=>ETA',6=>PHI 
-  const Double_t khm[10] = {0.1396, 0.494,0.547, 0.782,   0.957,  1.02, 
+  const Double_t khm[11] = {0.1396, 0.494,0.547, 0.782,   0.957,  1.02, 
   //    MASS               7=>BARYON-BARYONBAR  
                                  0.938, 
   //    MASS               8=>Lambda-antiLambda  
@@ -68,9 +68,11 @@ ClassImp(AliGenSTRANGElib)
   //    MASS               9=>Xi-antiXi  
                                   1.3213, 
   //    MASS              10=>Omega-antiOmega  
-                                  1.6725};
+                                  1.6725,
+  //    MASS              11=>Lambda(1520)
+                                  1.5195};
   //     VALUE MESON/PI AT 5 GEV
-  const Double_t kfmax[10]={1., 1., 1., 1., 1., 1., 1., 1., 1., 1.};
+  const Double_t kfmax[11]={1., 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];
@@ -223,13 +225,17 @@ ClassImp(AliGenSTRANGElib)
   return ka*TMath::Exp(-ex);
 }
 
- Int_t AliGenSTRANGElib::IpLambda(TRandom *)
+ Int_t AliGenSTRANGElib::IpLambda(TRandom *ran)
 {
 //                 particle composition
 //                 generation of fixed type of particle
 //
-
-        return  3122; //   Lambda 
+    Float_t random = ran->Rndm();
+    if (random < 0.5) {       
+      return  3122;   //   Lambda 
+    } else {  
+      return -3122;   //   Anti-Lambda
+    }
 }
 // End Lambda
 //============================================================================
@@ -258,14 +264,17 @@ ClassImp(AliGenSTRANGElib)
   return ka*TMath::Exp(-ex);
 }
 
- Int_t AliGenSTRANGElib::IpXiMinus(TRandom *)
+ Int_t AliGenSTRANGElib::IpXiMinus(TRandom *ran)
 {
 //                 particle composition
 //                 generation of fixed type of particle
 //
-
-        return  3312; //   Xi- (only)
-//        return  -3312; //   Xi+
+    Float_t random = ran->Rndm();
+    if (random < 0.5) {       
+      return  3312;   //   Xi- 
+    } else {  
+      return -3312;   //   Xi+
+    }
 }
 // End Ximinus
 //============================================================================
@@ -294,17 +303,61 @@ ClassImp(AliGenSTRANGElib)
   return ka*TMath::Exp(-ex);
 }
 
- Int_t AliGenSTRANGElib::IpOmegaMinus(TRandom *)
+ Int_t AliGenSTRANGElib::IpOmegaMinus(TRandom * ran)
 {
 //                 particle composition
 //                 generation of fixed type of particle
 //
 
-        return  3334; //   Omega- 
+    Float_t random = ran->Rndm();
+    if (random < 0.5) {       
+      return  3334;   //   Omega- 
+    } else {  
+      return -3334;   //   Omega+
+    }
 }
 // End Omegaminus
 //============================================================================
+//     Lambda(1520)
+Double_t AliGenSTRANGElib::PtLambda1520( Double_t *px, Double_t *)
+{
+// Lambda(1520)
+//                  pt-distribution
+//____________________________________________________________
+
+  return PtScal(*px,11);   //   11=> Lambda(1520) in the PtScal function
+}
+
+Double_t AliGenSTRANGElib::YLambda1520( Double_t *py, Double_t *)
+{
+// y-distribution
+//____________________________________________________________
 
+  const Double_t ka   = 1000.;
+  const Double_t kdy  = 4.;
+
+  
+  Double_t y=TMath::Abs(*py);
+  //
+  Double_t ex = y*y/(2*kdy*kdy);
+  return ka*TMath::Exp(-ex);
+}
+
+Int_t AliGenSTRANGElib::IpLambda1520(TRandom * ran)
+{
+//                 particle composition
+//                 generation of fixed type of particle
+//
+
+   Float_t random = ran->Rndm();
+   if (random < 0.5) {       
+     return  3124;   //   Lambda(1520) 
+   } else {  
+     return -3124;   //   antiLambda(1520)
+   }
+}
+// End Lambda(1520)
+//============================================================================
 
 typedef Double_t (*GenFunc) (Double_t*,  Double_t*);
  GenFunc AliGenSTRANGElib::GetPt(Int_t param, const char* /*tname*/) const
@@ -329,6 +382,9 @@ typedef Double_t (*GenFunc) (Double_t*,  Double_t*);
     case kOmegaMinus:
         func=PtOmegaMinus;
         break;
+    case kLambda1520:
+        func=PtLambda1520;
+        break;
     default:
         func=0;
         printf("<AliGenSTRANGElib::GetPt> unknown parametrisationn");
@@ -357,6 +413,9 @@ typedef Double_t (*GenFunc) (Double_t*,  Double_t*);
     case kOmegaMinus:
         func=YOmegaMinus;
         break;
+    case kLambda1520:
+        func=YLambda1520;
+        break;
     default:
         func=0;
         printf("<AliGenSTRANGElib::GetY> unknown parametrisationn");
@@ -385,6 +444,9 @@ typedef Int_t (*GenFuncIp) (TRandom *);
     case kOmegaMinus:
         func=IpOmegaMinus;
         break;
+    case kLambda1520:
+        func=IpLambda1520;
+        break;
     default:
         func=0;
         printf("<AliGenSTRANGElib::GetIp> unknown parametrisationn");