]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenCocktail.h
fEntries initialized to 0 in constructor and new TList() for first call of
[u/mrichter/AliRoot.git] / EVGEN / AliGenCocktail.h
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                               */
5
6 /* $Id$ */
7
8 // Container class for AliGenerator through recursion.
9 // (Container is itself an AliGenerator)
10 // Author: andreas.morsch@cern.ch 
11 //
12
13 #include "AliGenerator.h"
14
15 class AliGenCocktailEntry;
16
17
18 class AliGenCocktail : public AliGenerator
19 {
20  public:
21     AliGenCocktail();
22     AliGenCocktail(const AliGenCocktail &cocktail);
23      
24     virtual ~AliGenCocktail();
25     virtual void Init();
26     virtual void FinishRun();
27     virtual void Generate();
28     //
29     // Add a new generator to the list
30     virtual void AddGenerator
31         (AliGenerator *Generator, char* Name, Float_t RateExp );
32     virtual TList* Entries() {return fEntries;}
33     // Iterators
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);
39  private:
40     void Copy(AliGenCocktail &arun) const;
41  protected:
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
46 //
47     ClassDef(AliGenCocktail,1) // Particle cocktail generator a la SHAKER
48 };
49
50 #endif
51
52
53
54
55