X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVGEN%2FAliGenCocktailAfterBurner.h;h=0930e19167839aa868598ae6134ebab634101fee;hb=08f220c8b0cda791859fb0854c89f2d57ec9034e;hp=3a0e78d1462f0b70fbc7613d8f4f86da952bf1ab;hpb=984c69bd8979f6e3af7f504f309f996665be628f;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/AliGenCocktailAfterBurner.h b/EVGEN/AliGenCocktailAfterBurner.h index 3a0e78d1462..0930e191678 100644 --- a/EVGEN/AliGenCocktailAfterBurner.h +++ b/EVGEN/AliGenCocktailAfterBurner.h @@ -7,49 +7,66 @@ // Container class for AliGenerator through recursion. // (Container is itself an AliGenerator) -// Author: andreas.morsch@cern.ch +// Author: piotr.skowronski@cern.ch // -#include "AliGenCocktailAfterBurner.h" -#include "AliGenCocktail.h" +#include + +#include "AliGenCocktail.h" +#include "AliRunLoader.h" class AliGenCocktailEntry; class AliStack; +class AliCollisionGeometry; +class AliGenCocktailEventHeader; + class AliGenCocktailAfterBurner : public AliGenCocktail { +//container class for other generators +//extends AliGenCocktail functionality +//with possiblity of adding after-burners + public: AliGenCocktailAfterBurner(); -// AliGenCocktailAfterBurner(const AliGenCocktailAfterBurner &cocktail){} - virtual ~AliGenCocktailAfterBurner(); - virtual void Init(); - virtual void Generate(); - virtual void SetTracks(Int_t stackno); + + virtual void Init(); + virtual void Generate(); + virtual void SetTracks(Int_t stackno); // // Add a new generator to the list - virtual void AddAfterBurner + virtual void AddAfterBurner (AliGenerator *Generator, char* Name, Float_t RateExp ); - AliGenCocktailAfterBurner & operator=(const AliGenCocktailAfterBurner & rhs); - AliStack* GetStack(Int_t n); - AliStack* GetActiveStack() {return fActiveStack;} - - AliGenerator* GetCurrentGenerator(); + AliStack* GetStack(Int_t n) const; + AliStack* GetActiveStack() const{return fActiveStack;} + + AliCollisionGeometry* GetCollisionGeometry(Int_t n) const; + + AliGenerator* GetCurrentGenerator() const; virtual void SetActiveEventNumber(Int_t actev); - Int_t GetActiveEventNumber() {return fActiveEvent;} - virtual void SetNumberOfEvents(Int_t n) {fNumberOfEvents=n;} - virtual Int_t GetNumberOfEvents() {return fNumberOfEvents;} + Int_t GetActiveEventNumber() const {return fActiveEvent;} + virtual Int_t GetNumberOfEvents() const {return AliRunLoader::Instance()->GetNumberOfEventsPerRun() + fNBgEvents;} + void SetNBgEvents(Int_t nbg=0){fNBgEvents = nbg;} + AliGenCocktailEventHeader* GetActiveEventHeader() const { return fHeaders[fActiveEvent]; } + + static TMCProcess IntToMCProcess(Int_t no); - static AliMCProcess IntToMCProcess(Int_t no); protected: Int_t fNAfterBurners; // Number of afterburners TList *fAfterBurnerEntries;// List of afterburners - Bool_t fGenerationDone; + Bool_t fGenerationDone; // flag if generation is already done + // during first call of Generate method + // if true just return event to gAlice + // TObjArray *fInternalStacks; //! List of internal stacks + + AliCollisionGeometry** fCollisionGeometries; //! List of Collision Geometries + AliGenCocktailEventHeader** fHeaders; //! List of Headers + Int_t fCurrentEvent; // Number of current event/stack - Int_t fNumberOfEvents; // Number of events to process AliStack* fActiveStack; //! pointer to the current stack Int_t fActiveEvent; //HBT Processor needs more then one event to do correlations @@ -58,11 +75,20 @@ class AliGenCocktailAfterBurner : public AliGenCocktail //are addressed to this event AliGenerator *fCurrentGenerator; // Current event generator - ClassDef(AliGenCocktailAfterBurner,1) // Particle cocktail generator a la SHAKER + Int_t fNBgEvents; //Nuber of backgrouns events + //(events that are generated only temporarly) + //needed by some afterburners that works better with higher statistics + //this generates such a artificial one + private: + AliGenCocktailAfterBurner(const AliGenCocktailAfterBurner& in); + AliGenCocktailAfterBurner & operator=(const AliGenCocktailAfterBurner & rhs); + + ClassDef(AliGenCocktailAfterBurner,2) // Particle cocktail generator a la SHAKER + //background events added }; inline AliGenerator* - AliGenCocktailAfterBurner::GetCurrentGenerator() + AliGenCocktailAfterBurner::GetCurrentGenerator() const { return fCurrentGenerator; }