]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenPythia.h
Have to create Digits trees and branches by hand in the case of multiple event files.
[u/mrichter/AliRoot.git] / EVGEN / AliGenPythia.h
index ff5df9ff254fc775ad63dda4198ce910ad698f8f..3e5ec381f653e199fbb6fd8709d9b9670fdcdc1d 100644 (file)
@@ -5,23 +5,21 @@
 
 /* $Id$ */
 
-/////////////////////////////////////////////////////////
-//  Manager and hits classes for set:MUON version 0    //
-/////////////////////////////////////////////////////////
+
 #include "AliGenerator.h"
-#include "TNamed.h"
-#include "TF1.h"
-#include "TArrayF.h"
-#include "TTree.h"
-#include "AliPythia.h"
-#include "TArrayI.h"
-#include "TParticle.h"
+#include "GenTypeDefs.h"
+#include <TArrayI.h>    
+
+class AliDecayer;
+class AliPythia;
+class TParticle;
 
 class AliGenPythia : public AliGenerator
 {
  public:
     AliGenPythia();
     AliGenPythia(Int_t npart);
+    AliGenPythia(const AliGenPythia &Pythia);
     virtual ~AliGenPythia();
     virtual void    Generate();
     virtual void    Init();
@@ -36,11 +34,14 @@ class AliGenPythia : public AliGenerator
     virtual void    SetEnergyCMS(Float_t energy=5500) {fEnergyCMS=energy;}
     // force decay type
     virtual void    SetForceDecay(Decay_t decay=semimuonic) {fForceDecay=decay;}
+    // treat protons as inside nuclei
+    virtual void    SetNuclei(Int_t a1, Int_t a2);
     // get cross section of process
     virtual Float_t GetXsection() {return fXsection;}
     // Check PDG code
     virtual Int_t CheckPDGCode(Int_t pdgcode);
-
+    // Assignment Operator
+    AliGenPythia & operator=(const AliGenPythia & rhs);
  protected:
     Process_t   fProcess;       // Process type
     StrucFunc_t fStrucFunc;     // Structure Function
@@ -51,10 +52,13 @@ class AliGenPythia : public AliGenerator
     TArrayI     fParentSelect;  // Parent particles to be selected 
     TArrayI     fChildSelect;   // Decay products to be selected
     Float_t     fXsection;      // Cross-section
-    AliPythia   *fPythia;       // Pythia 
+    AliPythia   *fPythia;       //! Pythia 
     Float_t     fPtHardMin;     // lower pT-hard cut 
     Float_t     fPtHardMax;     // higher pT-hard cut
-
+    Int_t       fNucA1;         // mass number nucleus side 1
+    Int_t       fNucA2;         // mass number nucleus side 2
+    
+    AliDecayer  *fDecayer;      // pointer to the decayer instance
  private:
     // check if particle is selected as parent particle
     Bool_t ParentSelected(Int_t ip);
@@ -65,7 +69,7 @@ class AliGenPythia : public AliGenerator
     // adjust the weight from kinematic cuts
     void   AdjustWeights();
 
-    ClassDef(AliGenPythia,1)
+    ClassDef(AliGenPythia,1) // AliGenerator interface to Pythia
 };
 #endif