]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | #ifndef ALIGENCOCKTAIL_H |
2 | #define ALIGENCOCKTAIL_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
675e9664 | 8 | // Container class for AliGenerator through recursion. |
9 | // (Container is itself an AliGenerator) | |
10 | // Author: andreas.morsch@cern.ch | |
11 | // | |
12 | ||
fe4da5cc | 13 | #include "AliGenerator.h" |
1ebe6dc8 | 14 | #include <TArrayF.h> |
886b6f73 | 15 | |
374924b5 | 16 | class AliGenCocktailEntry; |
4f85aa78 | 17 | class AliGenCocktailEventHeader; |
1ebe6dc8 | 18 | class TArrayF; |
fe4da5cc | 19 | |
20 | ||
21 | class AliGenCocktail : public AliGenerator | |
22 | { | |
fe4da5cc | 23 | public: |
24 | AliGenCocktail(); | |
374924b5 | 25 | AliGenCocktail(const AliGenCocktail &cocktail); |
26 | ||
fe4da5cc | 27 | virtual ~AliGenCocktail(); |
28 | virtual void Init(); | |
09e2e187 | 29 | virtual void FinishRun(); |
fe4da5cc | 30 | virtual void Generate(); |
c44d1c08 | 31 | virtual void SetVertexSmear(VertexSmear_t smear); |
1ebe6dc8 | 32 | virtual void SetRandomise(Bool_t flag) {fRandom = flag;} |
c89fc3f1 | 33 | virtual void UsePerEventRates() {fUsePerEventRate = kTRUE;} |
1ebe6dc8 | 34 | |
fe4da5cc | 35 | // |
36 | // Add a new generator to the list | |
37 | virtual void AddGenerator | |
a764b7de | 38 | (AliGenerator *Generator, const char* Name, Float_t RateExp ); |
fe4da5cc | 39 | virtual TList* Entries() {return fEntries;} |
40 | // Iterators | |
41 | AliGenCocktailEntry* FirstGenerator(); | |
42 | AliGenCocktailEntry* NextGenerator(); | |
374924b5 | 43 | void FirstGeneratorPair(AliGenCocktailEntry*&e1, AliGenCocktailEntry*&e2); |
44 | void NextGeneratorPair (AliGenCocktailEntry*&e1, AliGenCocktailEntry*&e2); | |
45 | AliGenCocktail & operator=(const AliGenCocktail & rhs); | |
4f85aa78 | 46 | virtual void AddHeader(AliGenEventHeader* header); |
47 | ||
374924b5 | 48 | protected: |
4f85aa78 | 49 | Int_t fNGenerators; // Number of generators booked |
50 | Bool_t fRandom; // Flag to select random generator from list | |
c89fc3f1 | 51 | Bool_t fUsePerEventRate; // Flag to generate the events according to the rate per event |
4f85aa78 | 52 | TArrayF fProb; // Probability of an event (if fRandom == kTRUE) |
53 | TList *fEntries; // List of Generators | |
54 | TObjLink *flnk1; // ! Iterator for first generator | |
55 | TObjLink *flnk2; // ! Iterator for second generator | |
56 | AliGenCocktailEventHeader* fHeader; // !Header container | |
57 | ||
fe4da5cc | 58 | // |
0af12c00 | 59 | private: |
dc1d768c | 60 | void Copy(TObject &arun) const; |
374924b5 | 61 | ClassDef(AliGenCocktail,1) // Particle cocktail generator a la SHAKER |
fe4da5cc | 62 | }; |
63 | ||
64 | #endif | |
65 | ||
66 | ||
67 | ||
68 | ||
69 |