updated parametrisation for pi0, eta, omega, phi for different energies, allow select...
[u/mrichter/AliRoot.git] / EVGEN / AliGenCocktailEntry.h
index daed7d6..9a24126 100644 (file)
@@ -5,29 +5,36 @@
 
 /* $Id$ */
 
+// Entry for AleGenCocktail container class. 
+// See also comments there
+// Author: andreas.morsch@cern.ch
 
-#include <TObject.h>
-#include <TString.h>
+#include <TNamed.h>
 
 class AliGenerator;
+class TFormula;
 
-
-class AliGenCocktailEntry : public TObject
+class AliGenCocktailEntry : public TNamed
 {
  public:
     AliGenCocktailEntry();
     AliGenCocktailEntry(const AliGenCocktailEntry &entry);
     AliGenCocktailEntry
-       (AliGenerator* Generator, TString Name, Float_t RateExp);
+      (AliGenerator* pGenerator, const char* Name, Float_t RateExp);
     ~AliGenCocktailEntry(){;}
     AliGenerator* Generator() {return fGenerator;}
     void SetGenerator(AliGenerator* generator){fGenerator=generator;}
-    void SetFirst(Int_t first){fFirst=first;}
-    void SetLast (Int_t last ){fLast =last;}
-    Int_t GetFirst(){return fFirst;}
-    Int_t GetLast (){return fLast;}
-    Float_t Rate(){return fRate;}
-    void  PrintInfo();
+    void SetFormula(TFormula* formula) {fFormula = formula;}
+    void SetNTimes(Int_t ntimes) {fNTimes = ntimes;}
+    void SetFirst(Int_t first) {fFirst=first;}
+    void SetLast (Int_t last ) {fLast =last;}
+    Int_t GetFirst() const {return fFirst;}
+    Int_t GetLast () const {return fLast;}
+    Float_t Rate()   const {return fRate;}
+    Int_t NTimes()   const {return fNTimes;}
+    Int_t   Bin()    const {return Int_t(fRate);}
+    void  PrintInfo() const;
+    TFormula* Formula() const {return fFormula;}
     AliGenCocktailEntry & operator =(const AliGenCocktailEntry & rhs);
  protected:
     AliGenerator *fGenerator;   // Pointer to generator
@@ -35,11 +42,13 @@ class AliGenCocktailEntry : public TObject
     Int_t fFirst;               // First index in list of primaries
     Int_t fLast;                // Last index in list of primaries
     Float_t fRate;              // Rate per event
+    Int_t   fNTimes;            // Generate is called N times
     Float_t fKineBias;          // Bias due to kinematic selecion
     Float_t fBias;              // Bias
-    TString fName;              // Name of generator
+    TFormula* fFormula;         // Formula to calculate number of signals per event    
+    void Copy(TObject&) const;
  private:
-    ClassDef(AliGenCocktailEntry,1) // Generator entry of AliGenCocktail
+    ClassDef(AliGenCocktailEntry, 3) // Generator entry of AliGenCocktail
 };
 #endif