]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenCocktailAfterBurner.h
Shadowed variable corrected.
[u/mrichter/AliRoot.git] / EVGEN / AliGenCocktailAfterBurner.h
index 3a0e78d1462f0b70fbc7613d8f4f86da952bf1ab..1df0de3bdaeb12002d531457a44dbb96adeeadf5 100644 (file)
@@ -7,49 +7,69 @@
 
 // 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 <TMCProcess.h>
+
+#include "AliGenCocktail.h"
+#include "AliRun.h"
 
 class AliGenCocktailEntry;
 class AliStack;
 
+// ANDREAS MORSCH ------------------------------------- (
+class AliCollisionGeometry;
+// ANDREAS MORSCH ------------------------------------- )
+
 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;}
+
+// ANDREAS MORSCH ------------------------------------- (
+    AliCollisionGeometry* GetCollisionGeometry(Int_t n) const;
+// ANDREAS MORSCH ------------------------------------- )
+    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 gAlice->GetEventsPerRun() + fNBgEvents;}
+    void          SetNBgEvents(Int_t nbg=0){fNBgEvents = nbg;}
+
+    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
+
+// ANDREAS MORSCH ------------------------------------- (
+    AliCollisionGeometry** fCollisionGeometries; //! List of Collision Geometries
+// ANDREAS MORSCH ------------------------------------- )
+    
     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 +78,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;
 }