]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - EVGEN/AliGenCocktail.h
Protection against division by 0.
[u/mrichter/AliRoot.git] / EVGEN / AliGenCocktail.h
... / ...
CommitLineData
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
15class AliGenCocktailEntry;
16
17
18class 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