X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVGEN%2FAliGenCocktail.h;h=8a1e2790a4f9210fef66a5102d70235818f64593;hb=ebcdf05e1e39918edf147ce40316cac75ec9e5ed;hp=20afc493b1b720a136cdeec9163359f4222b51e8;hpb=a764b7dedcf67c8c1bd1749d4b9792c938a9215d;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/AliGenCocktail.h b/EVGEN/AliGenCocktail.h index 20afc493b1b..8a1e2790a4f 100644 --- a/EVGEN/AliGenCocktail.h +++ b/EVGEN/AliGenCocktail.h @@ -11,20 +11,27 @@ // #include "AliGenerator.h" +#include +#include class AliGenCocktailEntry; +class AliGenCocktailEventHeader; +class TArrayF; class AliGenCocktail : public AliGenerator { public: AliGenCocktail(); - AliGenCocktail(const AliGenCocktail &cocktail); virtual ~AliGenCocktail(); virtual void Init(); virtual void FinishRun(); 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 virtual void AddGenerator @@ -35,16 +42,24 @@ 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 - TList *fEntries; // List of Generators - TObjLink *flnk1; // ! Iterator for first generator - TObjLink *flnk2; // ! Iterator for second generator + 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 + TObjLink *flnk2; // ! Iterator for second generator + AliGenCocktailEventHeader* fHeader; // !Header container + // private: - void Copy(TObject &arun) const; + AliGenCocktail(const AliGenCocktail &cocktail); + AliGenCocktail & operator=(const AliGenCocktail & rhs); + ClassDef(AliGenCocktail,1) // Particle cocktail generator a la SHAKER };