Added RuleChecker jars in trunk and updated CMake .pkg files
[u/mrichter/AliRoot.git] / PYTHIA8 / AliTPythia8.h
1 #ifndef ALITPYTHIA8_H
2 #define ALITPYTHIA8_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8
9 ////////////////////////////////////////////////////////////////////////////////
10 //                                                                            //
11 // TPythia8                                                                   //
12 //                                                                            //
13 // TPythia is an interface class to C++ version of Pythia 8.1                 //
14 // event generators, written by T.Sjostrand.                                  //
15 ////////////////////////////////////////////////////////////////////////////////
16 /*
17 *------------------------------------------------------------------------------------*
18  |                                                                                    |
19  |  *------------------------------------------------------------------------------*  |
20  |  |                                                                              |  |
21  |  |                                                                              |  |
22  |  |   PPP   Y   Y  TTTTT  H   H  III    A      Welcome to the Lund Monte Carlo!  |  |
23  |  |   P  P   Y Y     T    H   H   I    A A     This is PYTHIA version 8.100      |  |
24  |  |   PPP     Y      T    HHHHH   I   AAAAA    Last date of change: 20 Oct 2007  |  |
25  |  |   P       Y      T    H   H   I   A   A                                      |  |
26  |  |   P       Y      T    H   H  III  A   A    Now is 27 Oct 2007 at 18:26:53    |  |
27  |  |                                                                              |  |
28  |  |   Main author: Torbjorn Sjostrand; CERN/PH, CH-1211 Geneva, Switzerland,     |  |
29  |  |     and Department of Theoretical Physics, Lund University, Lund, Sweden;    |  |
30  |  |     phone: + 41 - 22 - 767 82 27; e-mail: torbjorn@thep.lu.se                |  |
31  |  |   Author: Stephen Mrenna; Computing Division, Simulations Group,             |  |
32  |  |     Fermi National Accelerator Laboratory, MS 234, Batavia, IL 60510, USA;   |  |
33  |  |     phone: + 1 - 630 - 840 - 2556; e-mail: mrenna@fnal.gov                   |  |
34  |  |   Author: Peter Skands; CERN/PH, CH-1211 Geneva, Switzerland,                |  |
35  |  |     and Theoretical Physics Department,                                      |  |
36  |  |     Fermi National Accelerator Laboratory, MS 106, Batavia, IL 60510, USA;   |  |
37  |  |     phone: + 41 - 22 - 767 24 59; e-mail: skands@fnal.gov                    |  |
38  |  |                                                                              |  |
39  |  |   The main program reference is the 'Brief Introduction to PYTHIA 8.1',      |  |
40  |  |   T. Sjostrand, S. Mrenna and P. Skands, arXiv:0710.3820                     |  |
41  |  |                                                                              |  |
42  |  |   The main physics reference is the 'PYTHIA 6.4 Physics and Manual',         |  |
43  |  |   T. Sjostrand, S. Mrenna and P. Skands, JHEP05 (2006) 026 [hep-ph/0603175]. |  |
44  |  |                                                                              |  |
45  |  |   An archive of program versions and documentation is found on the web:      |  |
46  |  |   http://www.thep.lu.se/~torbjorn/Pythia.html                                |  |
47  |  |                                                                              |  |
48  |  |   This program is released under the GNU General Public Licence version 2.   |  |
49  |  |   Please respect the MCnet Guidelines for Event Generator Authors and Users. |  |
50  |  |                                                                              |  |
51  |  |   Disclaimer: this program comes without any guarantees.                     |  |
52  |  |   Beware of errors and use common sense when interpreting results.           |  |
53  |  |                                                                              |  |
54  |  |   Copyright (C) 2007 Torbjorn Sjostrand                                      |  |
55  |  |                                                                              |  |
56  |  |                                                                              |  |
57  |  *------------------------------------------------------------------------------*  |
58  |                                                                                    |
59  *------------------------------------------------------------------------------------*
60 */
61
62 #include "TGenerator.h"
63 #include "Pythia.h"
64
65
66 class TClonesArray;
67 class TObjArray;
68
69 class AliTPythia8 : public TGenerator
70 {
71 public:
72    AliTPythia8();
73    AliTPythia8(const char *xmlDir);
74    virtual ~AliTPythia8();
75    static AliTPythia8     *Instance();
76    Pythia8::Pythia        *Pythia8() {return fPythia;}
77
78    // Interface
79    virtual void            GenerateEvent();
80    virtual Int_t           ImportParticles(TClonesArray *particles, Option_t *option="");
81    virtual TObjArray      *ImportParticles(Option_t *option="");
82
83    // Others
84    void                    ReadString(const char* string) const;
85    void                    ReadConfigFile(const char* string) const;
86    Bool_t                  Initialize(Int_t idAin, Int_t idBin, Double_t ecms);
87    void                    PrintStatistics() const;
88    void                    EventListing() const;
89    Int_t                   GetN() const;
90
91 protected:
92    static  AliTPythia8     *fgInstance;             //! singleton instance
93    Pythia8::Pythia         *fPythia;                //! The pythia8 instance
94    Int_t                    fNumberOfParticles;     //! Number of particles
95 private:
96    void                    AddParticlesToPdgDataBase();
97    ClassDef(AliTPythia8, 1)   // Interface class of Pythia8
98 };
99
100 #endif
101