]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenCocktail.h
Stand-alone library for ESD. Possibility to use only root and lidESD.so for analysis...
[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     virtual void SetVertexSmear(VertexSmear_t smear);
29     //
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;}
34     // Iterators
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);
40
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  private:
48     void Copy(TObject &arun) const;
49     ClassDef(AliGenCocktail,1) // Particle cocktail generator a la SHAKER
50 };
51
52 #endif
53
54
55
56
57