]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenPHOSlib.cxx
New class used for primary vertex finding (AliITSVertexerTracks)
[u/mrichter/AliRoot.git] / EVGEN / AliGenPHOSlib.cxx
index bf523d5c1578ecf6f2d9e08ba19ea544bae7010d..fad630e98e96000a5222567629b6e11e7c68df1f 100644 (file)
@@ -1,3 +1,4 @@
+
 /**************************************************************************
  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  *                                                                        *
 
 /*
 $Log$
+Revision 1.7.10.1  2002/06/10 14:57:41  hristov
+Merged with v3-08-02
+
+Revision 1.10  2002/05/02 09:40:50  morsch
+Recover mods from Rev. 1.8
+
+Revision 1.9  2002/04/23 12:54:29  morsch
+New options kPi0Flat y kEtaFlat (Gustavo Conesa)
+
+Revision 1.7  2001/03/09 13:01:41  morsch
+- enum constants for paramterisation type (particle family) moved to AliGen*lib.h
+- use AliGenGSIlib::kUpsilon, AliGenPHOSlib::kEtaPrime to access the constants
+
 Revision 1.6  2000/11/30 07:12:50  alibrary
 Introducing new Rndm and QA classes
 
@@ -120,25 +134,57 @@ ClassImp(AliGenPHOSlib)
 //                 particle composition pi+, pi0, pi-
 //
 
-    Float_t random = ran->Rndm();
-
-    if ( (3.*random)  < 1. ) 
-    {
-          return 211 ;
-    } 
-    else
-    {  
-      if ( (3.*random) >= 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)
@@ -166,6 +212,7 @@ ClassImp(AliGenPHOSlib)
   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
 //============================================================================
@@ -254,6 +301,38 @@ ClassImp(AliGenPHOSlib)
         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
@@ -415,7 +494,7 @@ ClassImp(AliGenPHOSlib)
 
 
 typedef Double_t (*GenFunc) (Double_t*,  Double_t*);
- GenFunc AliGenPHOSlib::GetPt(Int_t param, const char* tname)
+ GenFunc AliGenPHOSlib::GetPt(Int_t param, const char* tname) const
 {
 // Return pinter to pT parameterisation
     GenFunc func;
@@ -425,12 +504,18 @@ typedef Double_t (*GenFunc) (Double_t*,  Double_t*);
     case kPion:     
         func=PtPion;
         break;
+    case kPi0Flat:     
+        func=PtPi0Flat;
+        break;
     case kKaon:
         func=PtKaon;
         break;
     case kEta:
         func=PtEta;
         break;
+    case kEtaFlat:
+        func=PtEtaFlat;
+        break;
     case kOmega:
         func=PtOmega;
         break;
@@ -447,7 +532,7 @@ typedef Double_t (*GenFunc) (Double_t*,  Double_t*);
     return func;
 }
 
- GenFunc AliGenPHOSlib::GetY(Int_t param, const char* tname)
+ GenFunc AliGenPHOSlib::GetY(Int_t param, const char* tname) const
 {
 // Return pointer to Y parameterisation
     GenFunc func;
@@ -456,12 +541,18 @@ typedef Double_t (*GenFunc) (Double_t*,  Double_t*);
     case kPion:
         func=YPion;
         break;
+    case kPi0Flat:
+        func=YPi0Flat;
+        break;
     case kKaon:
         func=YKaon;
         break;
     case kEta:
         func=YEta;
         break;
+   case kEtaFlat:
+        func=YEtaFlat;
+        break;
     case kOmega:
         func=YOmega;
         break;
@@ -481,22 +572,28 @@ typedef Double_t (*GenFunc) (Double_t*,  Double_t*);
     return func;
 }
 typedef Int_t (*GenFuncIp) (TRandom *);
- GenFuncIp AliGenPHOSlib::GetIp(Int_t param,  const char* tname)
+ GenFuncIp AliGenPHOSlib::GetIp(Int_t param,  const char* tname) const
 {
 // Return pointer to particle composition
     GenFuncIp func;
     switch (param)
     {
-    case kPion:
-        
+    case kPion:       
         func=IpPion;
         break;
+    case kPi0Flat:       
+        func=IpPi0Flat;
+        break;
     case kKaon:
         func=IpKaon;
         break;
     case kEta:
         func=IpEta;
         break;
+    case kEtaFlat:
+        func=IpEtaFlat;
+        break;
+       
     case kOmega:
         func=IpOmega;
         break;