1 #ifndef ALIGENCOCKTAIL_H
2 #define ALIGENCOCKTAIL_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 // Container class for AliGenerator through recursion.
9 // (Container is itself an AliGenerator)
10 // Author: andreas.morsch@cern.ch
13 #include "AliGenerator.h"
15 class AliGenCocktailEntry;
18 class AliGenCocktail : public AliGenerator
22 AliGenCocktail(const AliGenCocktail &cocktail);
24 virtual ~AliGenCocktail();
26 virtual void FinishRun();
27 virtual void Generate();
29 // Add a new generator to the list
30 virtual void AddGenerator
31 (AliGenerator *Generator, const char* Name, Float_t RateExp );
32 virtual TList* Entries() {return fEntries;}
34 AliGenCocktailEntry* FirstGenerator();
35 AliGenCocktailEntry* NextGenerator();
36 void FirstGeneratorPair(AliGenCocktailEntry*&e1, AliGenCocktailEntry*&e2);
37 void NextGeneratorPair (AliGenCocktailEntry*&e1, AliGenCocktailEntry*&e2);
38 AliGenCocktail & operator=(const AliGenCocktail & rhs);
41 Int_t fNGenerators; // Number of generators booked
42 TList *fEntries; // List of Generators
43 TObjLink *flnk1; // ! Iterator for first generator
44 TObjLink *flnk2; // ! Iterator for second generator
47 void Copy(TObject &arun) const;
48 ClassDef(AliGenCocktail,1) // Particle cocktail generator a la SHAKER