]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - EVGEN/AliGenCocktailAfterBurner.h
added stuff
[u/mrichter/AliRoot.git] / EVGEN / AliGenCocktailAfterBurner.h
... / ...
CommitLineData
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: piotr.skowronski@cern.ch
11//
12
13#include <TMCProcess.h>
14
15#include "AliGenCocktail.h"
16#include "AliRun.h"
17
18class AliGenCocktailEntry;
19class AliStack;
20
21// ANDREAS MORSCH ------------------------------------- (
22class AliCollisionGeometry;
23// ANDREAS MORSCH ------------------------------------- )
24
25class AliGenCocktailAfterBurner : public AliGenCocktail
26{
27//container class for other generators
28//extends AliGenCocktail functionality
29//with possiblity of adding after-burners
30
31 public:
32 AliGenCocktailAfterBurner();
33 AliGenCocktailAfterBurner(const AliGenCocktailAfterBurner& in);
34 virtual ~AliGenCocktailAfterBurner();
35 AliGenCocktailAfterBurner & operator=(const AliGenCocktailAfterBurner & rhs);
36
37 virtual void Init();
38 virtual void Generate();
39 virtual void SetTracks(Int_t stackno);
40 //
41 // Add a new generator to the list
42 virtual void AddAfterBurner
43 (AliGenerator *Generator, char* Name, Float_t RateExp );
44
45 AliStack* GetStack(Int_t n) const;
46 AliStack* GetActiveStack() const{return fActiveStack;}
47
48// ANDREAS MORSCH ------------------------------------- (
49 AliCollisionGeometry* GetCollisionGeometry(Int_t n) const;
50// ANDREAS MORSCH ------------------------------------- )
51
52 AliGenerator* GetCurrentGenerator() const;
53 virtual void SetActiveEventNumber(Int_t actev);
54 Int_t GetActiveEventNumber() const {return fActiveEvent;}
55 virtual Int_t GetNumberOfEvents() const {return gAlice->GetEventsPerRun() + fNBgEvents;}
56 void SetNBgEvents(Int_t nbg=0){fNBgEvents = nbg;}
57
58 static TMCProcess IntToMCProcess(Int_t no);
59
60 protected:
61 Int_t fNAfterBurners; // Number of afterburners
62 TList *fAfterBurnerEntries;// List of afterburners
63 Bool_t fGenerationDone; // flag if generation is already done
64 // during first call of Generate method
65 // if true just return event to gAlice
66 //
67 TObjArray *fInternalStacks; //! List of internal stacks
68
69// ANDREAS MORSCH ------------------------------------- (
70 AliCollisionGeometry** fCollisionGeometries; //! List of Collision Geometries
71// ANDREAS MORSCH ------------------------------------- )
72
73 Int_t fCurrentEvent; // Number of current event/stack
74
75
76 AliStack* fActiveStack; //! pointer to the current stack
77 Int_t fActiveEvent; //HBT Processor needs more then one event to do correlations
78 //Due to complications in fortran, it first calls C routine
79 //that sets the active event to be read. All alihbtp_gettrack
80 //are addressed to this event
81
82 AliGenerator *fCurrentGenerator; // Current event generator
83 Int_t fNBgEvents; //Nuber of backgrouns events
84 //(events that are generated only temporarly)
85 //needed by some afterburners that works better with higher statistics
86 //this generates such a artificial one
87 private:
88 void Copy(TObject &arun) const;
89
90 ClassDef(AliGenCocktailAfterBurner,2) // Particle cocktail generator a la SHAKER
91 //background events added
92};
93
94inline AliGenerator*
95 AliGenCocktailAfterBurner::GetCurrentGenerator() const
96{
97 return fCurrentGenerator;
98}
99
100
101#endif
102
103
104
105
106