]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenCocktail.h
Updates for mixing.
[u/mrichter/AliRoot.git] / EVGEN / AliGenCocktail.h
index 013d2716551988fa3ca76894571a88aec233893f..8a1e2790a4f9210fef66a5102d70235818f64593 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "AliGenerator.h"
 #include <TArrayF.h>
+#include <TList.h>
 
 class AliGenCocktailEntry;
 class AliGenCocktailEventHeader;
@@ -22,7 +23,6 @@ class AliGenCocktail : public AliGenerator
 {
  public:
     AliGenCocktail();
-    AliGenCocktail(const AliGenCocktail &cocktail);
      
     virtual ~AliGenCocktail();
     virtual void Init();
@@ -30,6 +30,7 @@ class AliGenCocktail : public AliGenerator
     virtual void Generate();
     virtual void SetVertexSmear(VertexSmear_t smear);
     virtual void SetRandomise(Bool_t flag) {fRandom = flag;}
+    virtual void UsePerEventRates() {fUsePerEventRate  = kTRUE;}
            
     //
     // Add a new generator to the list
@@ -41,12 +42,13 @@ class AliGenCocktail : public AliGenerator
     AliGenCocktailEntry*  NextGenerator();
     void FirstGeneratorPair(AliGenCocktailEntry*&e1, AliGenCocktailEntry*&e2);
     void NextGeneratorPair (AliGenCocktailEntry*&e1, AliGenCocktailEntry*&e2);
-    AliGenCocktail & operator=(const AliGenCocktail & rhs);
     virtual void AddHeader(AliGenEventHeader* header);
            
  protected:
     Int_t fNGenerators;                 // Number of generators booked
+    Float_t fTotalRate;                 // Total rate of the generators booked
     Bool_t fRandom;                     // Flag to select random generator from list
+    Bool_t fUsePerEventRate;            // Flag to generate the events according to the rate per event    
     TArrayF  fProb;                     // Probability of an event (if fRandom == kTRUE)
     TList  *fEntries;                   // List of Generators
     TObjLink *flnk1;                    // ! Iterator for first generator
@@ -55,7 +57,9 @@ class AliGenCocktail : public AliGenerator
                           
 //
  private:
-    void Copy(TObject &arun) const;
+    AliGenCocktail(const AliGenCocktail &cocktail);
+    AliGenCocktail & operator=(const AliGenCocktail & rhs);
+
     ClassDef(AliGenCocktail,1) // Particle cocktail generator a la SHAKER
 };