00001 // @(#)root/pythia8:$Name$:$Id: TPythia8.h 25459 2008-09-19 08:28:00Z brun $ 00002 // Author: Andreas Morsch 27/10/2007 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef PYTHIA_TPythia8 00013 #define PYTHIA_TPythia8 00014 00015 //////////////////////////////////////////////////////////////////////////////// 00016 // // 00017 // TPythia8 // 00018 // // 00019 // TPythia is an interface class to C++ version of Pythia 8.1 // 00020 // event generators, written by T.Sjostrand. // 00021 //////////////////////////////////////////////////////////////////////////////// 00022 /* 00023 *------------------------------------------------------------------------------------* 00024 | | 00025 | *------------------------------------------------------------------------------* | 00026 | | | | 00027 | | | | 00028 | | PPP Y Y TTTTT H H III A Welcome to the Lund Monte Carlo! | | 00029 | | P P Y Y T H H I A A This is PYTHIA version 8.100 | | 00030 | | PPP Y T HHHHH I AAAAA Last date of change: 20 Oct 2007 | | 00031 | | P Y T H H I A A | | 00032 | | P Y T H H III A A Now is 27 Oct 2007 at 18:26:53 | | 00033 | | | | 00034 | | Main author: Torbjorn Sjostrand; CERN/PH, CH-1211 Geneva, Switzerland, | | 00035 | | and Department of Theoretical Physics, Lund University, Lund, Sweden; | | 00036 | | phone: + 41 - 22 - 767 82 27; e-mail: torbjorn@thep.lu.se | | 00037 | | Author: Stephen Mrenna; Computing Division, Simulations Group, | | 00038 | | Fermi National Accelerator Laboratory, MS 234, Batavia, IL 60510, USA; | | 00039 | | phone: + 1 - 630 - 840 - 2556; e-mail: mrenna@fnal.gov | | 00040 | | Author: Peter Skands; CERN/PH, CH-1211 Geneva, Switzerland, | | 00041 | | and Theoretical Physics Department, | | 00042 | | Fermi National Accelerator Laboratory, MS 106, Batavia, IL 60510, USA; | | 00043 | | phone: + 41 - 22 - 767 24 59; e-mail: skands@fnal.gov | | 00044 | | | | 00045 | | The main program reference is the 'Brief Introduction to PYTHIA 8.1', | | 00046 | | T. Sjostrand, S. Mrenna and P. Skands, arXiv:0710.3820 | | 00047 | | | | 00048 | | The main physics reference is the 'PYTHIA 6.4 Physics and Manual', | | 00049 | | T. Sjostrand, S. Mrenna and P. Skands, JHEP05 (2006) 026 [hep-ph/0603175]. | | 00050 | | | | 00051 | | An archive of program versions and documentation is found on the web: | | 00052 | | http://www.thep.lu.se/~torbjorn/Pythia.html | | 00053 | | | | 00054 | | This program is released under the GNU General Public Licence version 2. | | 00055 | | Please respect the MCnet Guidelines for Event Generator Authors and Users. | | 00056 | | | | 00057 | | Disclaimer: this program comes without any guarantees. | | 00058 | | Beware of errors and use common sense when interpreting results. | | 00059 | | | | 00060 | | Copyright (C) 2007 Torbjorn Sjostrand | | 00061 | | | | 00062 | | | | 00063 | *------------------------------------------------------------------------------* | 00064 | | 00065 *------------------------------------------------------------------------------------* 00066 */ 00067 00068 #include "TGenerator.h" 00069 #include "Pythia.h" 00070 00071 00072 class Pythia; 00073 class TClonesArray; 00074 class TObjArray; 00075 00076 class TPythia8 : public TGenerator 00077 { 00078 private: 00079 void AddParticlesToPdgDataBase(); 00080 protected: 00081 static TPythia8 *fgInstance; //! singleton instance 00082 Pythia8::Pythia *fPythia; //! The pythia8 instance 00083 Int_t fNumberOfParticles; //! Number of particles 00084 public: 00085 TPythia8(); 00086 TPythia8(const char *xmlDir); 00087 virtual ~TPythia8(); 00088 static TPythia8 *Instance(); 00089 Pythia8::Pythia *Pythia8() {return fPythia;} 00090 00091 // Interface 00092 virtual void GenerateEvent(); 00093 virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option=""); 00094 virtual TObjArray *ImportParticles(Option_t *option=""); 00095 00096 // Others 00097 void ReadString(const char* string) const; 00098 void ReadConfigFile(const char* string) const; 00099 Bool_t Initialize(Int_t idAin, Int_t idBin, Double_t ecms); 00100 void PrintStatistics() const; 00101 void EventListing() const; 00102 Int_t GetN() const; 00103 00104 ClassDef(TPythia8, 1) // Interface class of Pythia8 00105 }; 00106 00107 #endif