/* $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();
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
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);
// adjust the weight from kinematic cuts
void AdjustWeights();
- ClassDef(AliGenPythia,1)
+ ClassDef(AliGenPythia,1) // AliGenerator interface to Pythia
};
#endif