X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVGEN%2FAliGenCocktail.h;h=8a1e2790a4f9210fef66a5102d70235818f64593;hb=b68c91e660030717bb2f3969f64906a98515ebeb;hp=00b59fe0458354554a922bbc37641b984af7f543;hpb=0af12c00a39ec44e138214fa2c156f236a68f52a;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/AliGenCocktail.h b/EVGEN/AliGenCocktail.h index 00b59fe0458..8a1e2790a4f 100644 --- a/EVGEN/AliGenCocktail.h +++ b/EVGEN/AliGenCocktail.h @@ -11,40 +11,55 @@ // #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 - (AliGenerator *Generator, char* Name, Float_t RateExp ); + (AliGenerator *Generator, const char* Name, Float_t RateExp ); virtual TList* Entries() {return fEntries;} // Iterators AliGenCocktailEntry* FirstGenerator(); 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(AliGenCocktail &arun) const; + AliGenCocktail(const AliGenCocktail &cocktail); + AliGenCocktail & operator=(const AliGenCocktail & rhs); + ClassDef(AliGenCocktail,1) // Particle cocktail generator a la SHAKER };