]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenCocktailAfterBurner.h
Fully commented version by Bruno Espagnon.
[u/mrichter/AliRoot.git] / EVGEN / AliGenCocktailAfterBurner.h
1 #ifndef AliGenCocktailAfterBurner_H
2 #define AliGenCocktailAfterBurner_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 #include "AliGenCocktailAfterBurner.h"
13 #include "AliGenCocktail.h"
14 #include "AliRun.h"
15
16 class AliGenCocktailEntry;
17 class AliStack;
18
19 class AliGenCocktailAfterBurner : public  AliGenCocktail
20 {
21  public:
22     AliGenCocktailAfterBurner();
23 //    AliGenCocktailAfterBurner(const AliGenCocktailAfterBurner &cocktail){}
24      
25     virtual ~AliGenCocktailAfterBurner();
26     virtual void Init();
27     virtual void Generate();
28     virtual void SetTracks(Int_t stackno);
29     //
30     // Add a new generator to the list
31     virtual void AddAfterBurner
32         (AliGenerator *Generator, char* Name, Float_t RateExp );
33     AliGenCocktailAfterBurner & operator=(const AliGenCocktailAfterBurner & rhs);
34     
35     AliStack* GetStack(Int_t n);
36     AliStack* GetActiveStack() {return fActiveStack;}
37     
38     AliGenerator* GetCurrentGenerator();
39     virtual void  SetActiveEventNumber(Int_t actev);
40     Int_t GetActiveEventNumber() {return fActiveEvent;}
41     virtual Int_t GetNumberOfEvents() {return gAlice->GetEventsPerRun() + fNBgEvents;}
42
43     static AliMCProcess IntToMCProcess(Int_t no);
44     void SetNBgEvents(Int_t nbg=0){fNBgEvents = nbg;}
45
46
47  protected:
48     Int_t fNAfterBurners;       // Number of afterburners  
49     TList  *fAfterBurnerEntries;// List of afterburners
50     Bool_t fGenerationDone;     // flag if generation is already done 
51                                 //   during first call of Generate method
52                                 //   if true just return event to gAlice
53                                 //   
54     TObjArray *fInternalStacks; //! List of internal stacks
55     Int_t fCurrentEvent;        //  Number of current event/stack
56     
57
58     AliStack* fActiveStack;   //! pointer to the current stack
59     Int_t fActiveEvent;       //HBT Processor needs more then one event to do correlations
60                               //Due to complications in fortran, it first calls C routine
61                               //that sets the active event to be read. All alihbtp_gettrack
62                               //are addressed to this event
63     
64     AliGenerator *fCurrentGenerator;      // Current event generator 
65     Int_t fNBgEvents;
66     
67     ClassDef(AliGenCocktailAfterBurner,2) // Particle cocktail generator a la SHAKER
68                                           //background events added
69 };
70
71 inline  AliGenerator*  
72     AliGenCocktailAfterBurner::GetCurrentGenerator()
73 {
74   return fCurrentGenerator;
75 }
76
77
78 #endif
79
80
81
82
83