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();
28 virtual void SetVertexSmear(VertexSmear_t smear);
30 // Add a new generator to the list
31 virtual void AddGenerator
32 (AliGenerator *Generator, const char* Name, Float_t RateExp );
33 virtual TList* Entries() {return fEntries;}
35 AliGenCocktailEntry* FirstGenerator();
36 AliGenCocktailEntry* NextGenerator();
37 void FirstGeneratorPair(AliGenCocktailEntry*&e1, AliGenCocktailEntry*&e2);
38 void NextGeneratorPair (AliGenCocktailEntry*&e1, AliGenCocktailEntry*&e2);
39 AliGenCocktail & operator=(const AliGenCocktail & rhs);
42 Int_t fNGenerators; // Number of generators booked
43 TList *fEntries; // List of Generators
44 TObjLink *flnk1; // ! Iterator for first generator
45 TObjLink *flnk2; // ! Iterator for second generator
48 void Copy(TObject &arun) const;
49 ClassDef(AliGenCocktail,1) // Particle cocktail generator a la SHAKER