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

/* $Id: AliPythia.h,v 1.22 2007/10/09 08:43:24 morsch Exp $ */

#include <TPythia6.h>
#include "AliPythiaBase.h"


class AliFastGlauber;
class AliQuenchingWeights;
class AliStack;

class AliPythia6 : public TPythia6, public AliPythiaBase
{

 public:
    virtual ~AliPythia6(){;}
    virtual Int_t Version() {return (6);}
    // 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 tune);
    virtual void  GenerateEvent()   {Pyevnt();}
    virtual void  GenerateMIEvent() {Pyevnw();}
    virtual void  HadronizeEvent()  {Pyexec();}
    virtual Int_t GetNumberOfParticles() {return GetN();}
    virtual void  SetNumberOfParticles(Int_t i) {SetN(i);}
    virtual void  EditEventList(Int_t i) {Pyedit(i);}
    virtual void  PrintStatistics();
    virtual void  EventListing();    
    virtual Int_t GetParticles(TClonesArray *particles) {return ImportParticles(particles, "All");}
    // Treat protons as inside nuclei
    virtual void  SetNuclei(Int_t a1, Int_t a2);
    // Set colliding nuclei ("p","n",...)
    virtual void  SetCollisionSystem(TString projectile, TString target) { fProjectile = projectile; fTarget = target; }
    // Print particle properties
    virtual void PrintParticles();
    // Reset the decay table
    virtual void ResetDecayTable();
    //
    // Common Physics Configuration
    virtual void SetWeightPower(Double_t pow); // use pT,hard dependent weight instead of p_T,hard bins
    virtual void SetPtHardRange(Float_t ptmin, Float_t ptmax);
    virtual void SetYHardRange(Float_t ymin, Float_t ymax);
    virtual void SetFragmentation(Int_t flag);
    virtual void SetInitialAndFinalStateRadiation(Int_t flag1, Int_t flag2);
    virtual void SetIntrinsicKt(Float_t kt);
    virtual void SwitchHFOff();
    virtual void SetPycellParameters(Float_t etamax, Int_t neta, Int_t nphi,
				     Float_t thresh, Float_t etseed, Float_t minet, Float_t r);
    virtual void ModifiedSplitting();
    virtual void SwitchHadronisationOff();
    virtual void SwitchHadronisationOn();
    //
    // Common Getters
    virtual void    GetXandQ(Float_t& x1, Float_t& x2, Float_t& q);
    virtual Float_t GetXSection();
    virtual Int_t   ProcessCode();
    virtual Float_t GetPtHard();
    //
    //
    virtual void SetDecayTable();
    virtual void Pyevnw();
    virtual void Pyjoin(Int_t& npart, Int_t* ipart);
    virtual void Pycell(Int_t& nclus);
    virtual void Pyclus(Int_t& nclus);
    virtual void GetJet(Int_t i, Float_t& px, Float_t& py, Float_t& pz, Float_t& e);
    virtual void LoadEvent(AliStack* stack, Int_t flag, Int_t reHadr);
    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 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  AliPythia6* Instance();
    virtual void Quench();
    // Assignment Operator
    AliPythia6 & operator=(const AliPythia6 & 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
    static AliPythia6*    fgAliPythia;        //  Pointer to single instance
 private: 
    AliPythia6();
    AliPythia6(const AliPythia6& pythia);
    void ConfigHeavyFlavor();
    void AtlasTuning();
    void AtlasTuningMC09();
    ClassDef(AliPythia6,1) //ALICE UI to PYTHIA
};

#endif





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