]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenCocktail.h
Write header with vertex position.
[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, const 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
40  protected:
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
45 //
46  private:
47     void Copy(TObject &arun) const;
48     ClassDef(AliGenCocktail,1) // Particle cocktail generator a la SHAKER
49 };
50
51 #endif
52
53
54
55
56