Setter for calling Generate n-times
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Apr 2013 14:47:25 +0000 (14:47 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Apr 2013 14:47:25 +0000 (14:47 +0000)
EVGEN/AliGenCocktail.cxx
EVGEN/AliGenCocktail.h
EVGEN/AliGenCocktailEntry.cxx
EVGEN/AliGenCocktailEntry.h

index ec044f9..2ac18c3 100644 (file)
@@ -64,7 +64,7 @@ AliGenCocktail::~AliGenCocktail()
 }
 
 void AliGenCocktail::
-AddGenerator(AliGenerator *Generator, const char* Name, Float_t RateExp, TFormula* formula)
+AddGenerator(AliGenerator *Generator, const char* Name, Float_t RateExp, TFormula* formula, Int_t ntimes)
 {
 //
 // Add a generator to the list 
@@ -102,7 +102,8 @@ AddGenerator(AliGenerator *Generator, const char* Name, Float_t RateExp, TFormul
 
     AliGenCocktailEntry *entry = 
        new AliGenCocktailEntry(Generator, Name, RateExp);
-    if (formula) entry->SetFormula(formula);    
+    if (formula) entry->SetFormula(formula);  
+    entry->SetNTimes(ntimes);
      fEntries->Add(entry);
      fNGenerators++;
      flnk1 = 0;
@@ -186,7 +187,7 @@ AddGenerator(AliGenerator *Generator, const char* Name, Float_t RateExp, TFormul
        // Loop over generators and generate events
        Int_t igen   = 0;
        while((entry = (AliGenCocktailEntry*)next())) {
-          Int_t ntimes = 1;
+          Int_t ntimes = entry->NTimes();
          if (fUsePerEventRate && (gRandom->Rndm() > entry->Rate())) continue;
          
          igen++;
index d9601f0..03e957f 100644 (file)
@@ -35,7 +35,7 @@ class AliGenCocktail : public AliGenerator
     //
     // Add a new generator to the list
     virtual void AddGenerator
-      (AliGenerator *Generator, const char* Name, Float_t RateExp, TFormula* formula = 0);
+      (AliGenerator *Generator, const char* Name, Float_t RateExp, TFormula* formula = 0, Int_t ntimes = 1);
     virtual TList* Entries() {return fEntries;}
     // Iterators
     AliGenCocktailEntry*  FirstGenerator();
index 9f13f29..ea80a09 100644 (file)
@@ -35,6 +35,7 @@ AliGenCocktailEntry::AliGenCocktailEntry():
     fFirst(-1),
     fLast(-1),
     fRate(0),
+    fNTimes(1),
     fKineBias(1),
     fBias(1),
     fFormula(0)
@@ -51,6 +52,7 @@ AliGenCocktailEntry:: AliGenCocktailEntry
   fFirst(-1),
   fLast(-1),
   fRate(RateExp),
+  fNTimes(1),
   fKineBias(1),
   fBias(1),
   fFormula(0)
@@ -65,6 +67,7 @@ AliGenCocktailEntry::AliGenCocktailEntry(const AliGenCocktailEntry &entry):
     fFirst(-1),
     fLast(-1),
     fRate(0),
+    fNTimes(1),
     fKineBias(1),
     fBias(1),
     fFormula(0)
index 17b3e09..9a24126 100644 (file)
@@ -25,11 +25,13 @@ class AliGenCocktailEntry : public TNamed
     AliGenerator* Generator() {return fGenerator;}
     void SetGenerator(AliGenerator* generator){fGenerator=generator;}
     void SetFormula(TFormula* formula) {fFormula = formula;}
+    void SetNTimes(Int_t ntimes) {fNTimes = ntimes;}
     void SetFirst(Int_t first) {fFirst=first;}
     void SetLast (Int_t last ) {fLast =last;}
     Int_t GetFirst() const {return fFirst;}
     Int_t GetLast () const {return fLast;}
     Float_t Rate()   const {return fRate;}
+    Int_t NTimes()   const {return fNTimes;}
     Int_t   Bin()    const {return Int_t(fRate);}
     void  PrintInfo() const;
     TFormula* Formula() const {return fFormula;}
@@ -40,12 +42,13 @@ class AliGenCocktailEntry : public TNamed
     Int_t fFirst;               // First index in list of primaries
     Int_t fLast;                // Last index in list of primaries
     Float_t fRate;              // Rate per event
+    Int_t   fNTimes;            // Generate is called N times
     Float_t fKineBias;          // Bias due to kinematic selecion
     Float_t fBias;              // Bias
     TFormula* fFormula;         // Formula to calculate number of signals per event    
     void Copy(TObject&) const;
  private:
-    ClassDef(AliGenCocktailEntry, 2) // Generator entry of AliGenCocktail
+    ClassDef(AliGenCocktailEntry, 3) // Generator entry of AliGenCocktail
 };
 #endif