// @(#)root/pythia8:$Name$:$Id$
// Author: Andreas Morsch   27/10/2007

/*************************************************************************
 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef PYTHIA_TPythia8
#define PYTHIA_TPythia8

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// TPythia8                                                                   //
//                                                                            //
// TPythia is an interface class to C++ version of Pythia 8.1                 //
// event generators, written by T.Sjostrand.                                  //
////////////////////////////////////////////////////////////////////////////////
/*
*------------------------------------------------------------------------------------*
 |                                                                                    |
 |  *------------------------------------------------------------------------------*  |
 |  |                                                                              |  |
 |  |                                                                              |  |
 |  |   PPP   Y   Y  TTTTT  H   H  III    A      Welcome to the Lund Monte Carlo!  |  |
 |  |   P  P   Y Y     T    H   H   I    A A     This is PYTHIA version 8.100      |  |
 |  |   PPP     Y      T    HHHHH   I   AAAAA    Last date of change: 20 Oct 2007  |  |
 |  |   P       Y      T    H   H   I   A   A                                      |  |
 |  |   P       Y      T    H   H  III  A   A    Now is 27 Oct 2007 at 18:26:53    |  |
 |  |                                                                              |  |
 |  |   Main author: Torbjorn Sjostrand; CERN/PH, CH-1211 Geneva, Switzerland,     |  |
 |  |     and Department of Theoretical Physics, Lund University, Lund, Sweden;    |  |
 |  |     phone: + 41 - 22 - 767 82 27; e-mail: torbjorn@thep.lu.se                |  |
 |  |   Author: Stephen Mrenna; Computing Division, Simulations Group,             |  |
 |  |     Fermi National Accelerator Laboratory, MS 234, Batavia, IL 60510, USA;   |  |
 |  |     phone: + 1 - 630 - 840 - 2556; e-mail: mrenna@fnal.gov                   |  |
 |  |   Author: Peter Skands; CERN/PH, CH-1211 Geneva, Switzerland,                |  |
 |  |     and Theoretical Physics Department,                                      |  |
 |  |     Fermi National Accelerator Laboratory, MS 106, Batavia, IL 60510, USA;   |  |
 |  |     phone: + 41 - 22 - 767 24 59; e-mail: skands@fnal.gov                    |  |
 |  |                                                                              |  |
 |  |   The main program reference is the 'Brief Introduction to PYTHIA 8.1',      |  |
 |  |   T. Sjostrand, S. Mrenna and P. Skands, arXiv:0710.3820                     |  |
 |  |                                                                              |  |
 |  |   The main physics reference is the 'PYTHIA 6.4 Physics and Manual',         |  |
 |  |   T. Sjostrand, S. Mrenna and P. Skands, JHEP05 (2006) 026 [hep-ph/0603175]. |  |
 |  |                                                                              |  |
 |  |   An archive of program versions and documentation is found on the web:      |  |
 |  |   http://www.thep.lu.se/~torbjorn/Pythia.html                                |  |
 |  |                                                                              |  |
 |  |   This program is released under the GNU General Public Licence version 2.   |  |
 |  |   Please respect the MCnet Guidelines for Event Generator Authors and Users. |  |
 |  |                                                                              |  |
 |  |   Disclaimer: this program comes without any guarantees.                     |  |
 |  |   Beware of errors and use common sense when interpreting results.           |  |
 |  |                                                                              |  |
 |  |   Copyright (C) 2007 Torbjorn Sjostrand                                      |  |
 |  |                                                                              |  |
 |  |                                                                              |  |
 |  *------------------------------------------------------------------------------*  |
 |                                                                                    |
 *------------------------------------------------------------------------------------*
*/

#include "TGenerator.h"
#include "Pythia8/Pythia.h"


class Pythia;
class TClonesArray;
class TObjArray;

class TPythia8 : public TGenerator
{
private:
   void                    AddParticlesToPdgDataBase();
protected:
   static  TPythia8       *fgInstance;             //! singleton instance
   Pythia8::Pythia        *fPythia;                //! The pythia8 instance
   Int_t                   fNumberOfParticles;     //! Number of particles
public:
   TPythia8();
   TPythia8(const char *xmlDir);
   virtual ~TPythia8();
   static TPythia8        *Instance();
   Pythia8::Pythia        *Pythia8() {return fPythia;}

   // Interface
   virtual void            GenerateEvent();
   virtual Int_t           ImportParticles(TClonesArray *particles, Option_t *option="");
   virtual TObjArray      *ImportParticles(Option_t *option="");

   // Others
   void                    ReadString(const char* string) const;
   void                    ReadConfigFile(const char* string) const;
   Bool_t                  Initialize(Int_t idAin, Int_t idBin, Double_t ecms);
   Bool_t                  Initialize(Int_t idAin, Int_t idBin, Double_t eAin, Double_t eBin);
   void                    ListAll() const;
   void                    ListChanged() const;
   void                    Plist(Int_t id) const;
   void                    PlistAll() const;
   void                    PlistChanged() const;
   void                    PrintStatistics() const;
   void                    EventListing() const;
   Int_t                   GetN() const;

   ClassDef(TPythia8, 1)   // Interface class of Pythia8
};

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