ROOT logo
#ifndef ALIPYTHIA_H
#define ALIPYTHIA_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

#include <TPythia6.h>
#include <AliRndm.h>
#include <AliStructFuncType.h>
#include "PythiaProcesses.h"
#include "AliOmegaDalitz.h"
#include "AliDecayerExodus.h"
class AliFastGlauber;
class AliQuenchingWeights;

class AliPythia : public TPythia6, public AliRndm
{

 public:
    virtual ~AliPythia(){;}
    // convert to compressed code and print result (for debugging only)
    virtual Int_t CheckedLuComp(Int_t kf);
    // Pythia initialisation for selected processes
    virtual void ProcInit
	(Process_t process, Float_t energy, StrucFunc_t strucfunc, Int_t itune = -1);
    // treat protons as inside nuclei
    virtual void  SetNuclei(Int_t a1, Int_t a2, Int_t pdf);
    // Set colliding nuclei ("p","n",...)
    virtual void  SetCollisionSystem(TString projectile, TString target) { fProjectile = projectile; fTarget = target; }
    // Print particle properties
    virtual void PrintParticles();
    virtual void ResetDecayTable();
    virtual void SetDecayTable();
    virtual void SetWeightPower(Double_t pow); // use weighted cross sections
    virtual void Pyevnw();
    virtual void Pycell(Int_t& nclus);
    virtual void Pyclus(Int_t& nclus);
    virtual void Pyshow(Int_t ip1, Int_t ip2, Double_t qmax);
    virtual void Pyshowq(Int_t ip1, Int_t ip2, Double_t qmax);
    virtual void Pyrobo(Int_t imi, Int_t ima, Double_t the, Double_t phi, Double_t bex, Double_t bey, Double_t bez);
    virtual void Pytune(Int_t itune);
    virtual void Py2ent(Int_t idx, Int_t pdg1, Int_t pdg2, Double_t p);
    virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k, Int_t iECMethod, Float_t zmax = 0.97, Int_t ngmax = 30);
    virtual void SetPyquenParameters(Double_t t0, Double_t tau0, Int_t nf, Int_t iengl, Int_t iangl);
    virtual void Pyquen(Double_t a, Int_t ibf, Double_t b);
    virtual void Qpygin0();
    virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4]);
    // return instance of the singleton
    static  AliPythia* Instance();
    virtual void Quench();
    void DalitzDecays();
    // Dalitz and resonance decays from EXODUS
    void PizeroDalitz();
    void EtaDalitz();
    void RhoDirect();
    void OmegaDalitz();
    void OmegaDirect();
    void EtaprimeDalitz();
    void PhiDalitz();
    void PhiDirect();
    void JPsiDirect();
    // Assignment Operator
    AliPythia & operator=(const AliPythia & rhs);
    void Copy(TObject&) const;
 protected:
    Process_t             fProcess;           // Process type
    Float_t               fEcms;              // Centre of mass energy
    StrucFunc_t           fStrucFunc;         // Structure function
    TString               fProjectile;        // Projectile
    TString               fTarget;            // Target
    Int_t                 fDefMDCY[501];      //  ! Default decay switches per particle
    Int_t                 fDefMDME[2001];     //  ! Default decay switches per mode
    Double_t              fZQuench[4];        //  ! Quenching fractions for this even
    Double_t              fXJet;              //  ! Jet production point X
    Double_t              fYJet;              //  ! Jet production point Y
    Int_t                 fNGmax;             //    Maximum number of radiated gluons in quenching
    Float_t               fZmax;              //    Maximum energy loss in quenching
    AliFastGlauber*       fGlauber;           //  ! The Glauber model
    AliQuenchingWeights*  fQuenchingWeights;  //  ! The Quenching Weights model
    Int_t                 fItune;             //  ! Pythia tune 
    AliOmegaDalitz        fOmegaDalitz;       //  ! omega dalitz decayer
    AliDecayerExodus      fExodus;            // ! EXODUS decayer
    static AliPythia*     fgAliPythia;        // Pointer to single instance
 private: 
    AliPythia();
    AliPythia(const AliPythia& pythia);
    void ConfigHeavyFlavor();
    void AtlasTuning();
    void AtlasTuningMC09();
    ClassDef(AliPythia,1) //ALICE UI to PYTHIA
};

#endif





 AliPythia.h:1
 AliPythia.h:2
 AliPythia.h:3
 AliPythia.h:4
 AliPythia.h:5
 AliPythia.h:6
 AliPythia.h:7
 AliPythia.h:8
 AliPythia.h:9
 AliPythia.h:10
 AliPythia.h:11
 AliPythia.h:12
 AliPythia.h:13
 AliPythia.h:14
 AliPythia.h:15
 AliPythia.h:16
 AliPythia.h:17
 AliPythia.h:18
 AliPythia.h:19
 AliPythia.h:20
 AliPythia.h:21
 AliPythia.h:22
 AliPythia.h:23
 AliPythia.h:24
 AliPythia.h:25
 AliPythia.h:26
 AliPythia.h:27
 AliPythia.h:28
 AliPythia.h:29
 AliPythia.h:30
 AliPythia.h:31
 AliPythia.h:32
 AliPythia.h:33
 AliPythia.h:34
 AliPythia.h:35
 AliPythia.h:36
 AliPythia.h:37
 AliPythia.h:38
 AliPythia.h:39
 AliPythia.h:40
 AliPythia.h:41
 AliPythia.h:42
 AliPythia.h:43
 AliPythia.h:44
 AliPythia.h:45
 AliPythia.h:46
 AliPythia.h:47
 AliPythia.h:48
 AliPythia.h:49
 AliPythia.h:50
 AliPythia.h:51
 AliPythia.h:52
 AliPythia.h:53
 AliPythia.h:54
 AliPythia.h:55
 AliPythia.h:56
 AliPythia.h:57
 AliPythia.h:58
 AliPythia.h:59
 AliPythia.h:60
 AliPythia.h:61
 AliPythia.h:62
 AliPythia.h:63
 AliPythia.h:64
 AliPythia.h:65
 AliPythia.h:66
 AliPythia.h:67
 AliPythia.h:68
 AliPythia.h:69
 AliPythia.h:70
 AliPythia.h:71
 AliPythia.h:72
 AliPythia.h:73
 AliPythia.h:74
 AliPythia.h:75
 AliPythia.h:76
 AliPythia.h:77
 AliPythia.h:78
 AliPythia.h:79
 AliPythia.h:80
 AliPythia.h:81
 AliPythia.h:82
 AliPythia.h:83
 AliPythia.h:84
 AliPythia.h:85
 AliPythia.h:86
 AliPythia.h:87
 AliPythia.h:88
 AliPythia.h:89
 AliPythia.h:90
 AliPythia.h:91
 AliPythia.h:92
 AliPythia.h:93
 AliPythia.h:94
 AliPythia.h:95
 AliPythia.h:96
 AliPythia.h:97
 AliPythia.h:98
 AliPythia.h:99