Loading...
Searching...
No Matches
Pythia6.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27/// \file eventgenerator/pythia/decayer6/include/Pythia6.hh
28/// \brief Definition of the Pythia6 class
29
30//
31// ----------------------------------------------------------------------------
32
33// ******************************************************************************
34// ******************************************************************************
35// ** **
36// ** **
37// ** *......* Welcome to the Lund Monte Carlo! **
38// ** *:::!!:::::::::::* **
39// ** *::::::!!::::::::::::::* PPP Y Y TTTTT H H III A **
40// ** *::::::::!!::::::::::::::::* P P Y Y T H H I A A **
41// ** *:::::::::!!:::::::::::::::::* PPP Y T HHHHH I AAAAA **
42// ** *:::::::::!!:::::::::::::::::* P Y T H H I A A **
43// ** *::::::::!!::::::::::::::::*! P Y T H H III A A **
44// ** *::::::!!::::::::::::::* !! **
45// ** !! *:::!!:::::::::::* !! This is PYTHIA version 6.418 **
46// ** !! !* -><- * !! Last date of change: 9 Jun 2008 **
47// ** !! !! !! **
48// ** !! !! !! Now is 0 Jan 2000 at 0:00:00 **
49// ** !! !! **
50// ** !! lh !! Disclaimer: this program comes **
51// ** !! !! without any guarantees. Beware **
52// ** !! hh !! of errors and use common sense **
53// ** !! ll !! when interpreting results. **
54// ** !! !! **
55// ** !! Copyright T. Sjostrand (2008) **
56// ** **
57// ** An archive of program versions and documentation is found on the web: **
58// ** http://www.thep.lu.se/~torbjorn/Pythia.html **
59// ** **
60// ** When you cite this program, the official reference is to the 6.4 manual: **
61// ** T. Sjostrand, S. Mrenna and P. Skands, JHEP05 (2006) 026 **
62// ** (LU TP 06-13, FERMILAB-PUB-06-052-CD-T) [hep-ph/0603175]. **
63// ** **
64// ** Also remember that the program, to a large extent, represents original **
65// ** physics research. Other publications of special relevance to your **
66// ** studies may therefore deserve separate mention. **
67// ** **
68// ** Main author: Torbjorn Sjostrand; Department of Theoretical Physics, **
69// ** Lund University, Solvegatan 14A, S-223 62 Lund, Sweden; **
70// ** phone: + 46 - 46 - 222 48 16; e-mail: torbjorn@thep.lu.se **
71// ** Author: Stephen Mrenna; Computing Division, GDS Group, **
72// ** Fermi National Accelerator Laboratory, MS 234, Batavia, IL 60510, USA; **
73// ** phone: + 1 - 630 - 840 - 2556; e-mail: mrenna@fnal.gov **
74// ** Author: Peter Skands; Theoretical Physics Department, **
75// ** Fermi National Accelerator Laboratory, MS 106, Batavia, IL 60510, USA; **
76// ** and CERN/PH, CH-1211 Geneva, Switzerland; **
77// ** phone: + 41 - 22 - 767 24 59; e-mail: skands@fnal.gov **
78// ** **
79// ** **
80// ******************************************************************************
81
82#ifndef PYTHIA_Pythia6
83#define PYTHIA_Pythia6
84
85#include <vector>
86
87int const KNDCAY = 8000; //should be 4000 for pythia61
88
89/// PYJETS common-block
91{
92 int N;
93 int NPAD;
94 int K[5][4000];
95 double P[5][4000];
96 double V[5][4000];
97};
98
99/// PYDAT1 common-block
101{
102 int MSTU[200];
103 double PARU[200];
104 int MSTJ[200];
105 double PARJ[200];
106};
107
108/// PYDAT3 common-block
110{
111 int MDCY[3][500];
112 int MDME[2][KNDCAY];
113 double BRAT[KNDCAY];
114 int KFDP[5][KNDCAY];
115};
116
117/// Structure for Pythia6 particle properties
119{
121 int ks, int kf, int parent, int firstChild, int lastChild,
122 float px, float py, float pz, float energy, float mass,
123 float vx, float vy, float vz, float time, float lifetime)
124 : fKS(ks), fKF(kf),
125 fParent(parent), fFirstChild(firstChild), fLastChild(lastChild),
126 fPx(px), fPy(py), fPz(pz), fEnergy(energy), fMass(mass),
127 fVx(vx), fVy(vy), fVz(vz), fTime(time), fLifetime(lifetime) {}
128
129 int fKS; // status of particle ( LUJETS K[1] )
130 int fKF; // KF flavour code ( LUJETS K[2] )
131 int fParent; // parrent's id ( LUJETS K[3] )
132 int fFirstChild; // id of first child ( LUJETS K[4] )
133 int fLastChild; // id of last child ( LUJETS K[5] )
134
135 float fPx; // X momenta [GeV/c] ( LUJETS P[1] )
136 float fPy; // Y momenta [GeV/c] ( LUJETS P[2] )
137 float fPz; // Z momenta [GeV/c] ( LUJETS P[3] )
138 float fEnergy; // Energy [GeV] ( LUJETS P[4] )
139 float fMass; // Mass [Gev/c^2] ( LUJETS P[5] )
140
141 float fVx; // X vertex [mm] ( LUJETS V[1] )
142 float fVy; // Y vertex [mm] ( LUJETS V[2] )
143 float fVz; // Z vertex [mm] ( LUJETS V[3] )
144 float fTime; // time of procuction [mm/c]( LUJETS V[4] )
145 float fLifetime; // proper lifetime [mm/c] ( LUJETS V[5] )
146};
147
148typedef std::vector<Pythia6Particle*> ParticleVector;
149
150/// The C++ interface class to Pythia6
151///
152/// According to TPythia6 class from Root:
153/// (The TPythia6 class is an interface class to F77 routines in Pythia6 //
154/// CERNLIB event generators, written by T.Sjostrand.)
155/// http://root.cern.ch/
156/// see http://root.cern.ch/root/License.html
157///
158/// The complete Pythia6 documentation can be found at:
159/// http://home.thep.lu.se/~torbjorn/pythiaaux/recent.html
160///
161
162class Pythia6
163{
164 public:
165
166 // ****** constructors and destructor
167 Pythia6();
168 virtual ~Pythia6();
169
170 static Pythia6 *Instance();
171
172 // ****** TPYTHIA routines
173 //
174 int Pycomp(int kf);
175 void Py1ent(int line, int kf, double pe, double theta, double phi);
177 int ImportParticles(ParticleVector* particles, const char* option="");
178
179 // ****** /PYDAT1/
180 //
181 void SetMSTJ(int i, int m ) { fPydat1->MSTJ[i-1] = m; }
182
183 // ****** /PYDAT3/
184 //
185 int GetMDCY(int i, int j) { return fPydat3->MDCY[j-1][i-1]; }
186 int GetKFDP(int i, int j) { return fPydat3->KFDP[j-1][i-1]; }
187 void SetMDCY(int i, int j, int m) { fPydat3->MDCY[j-1][i-1] = m; }
188 void SetMDME(int i, int j, int m) { fPydat3->MDME[j-1][i-1] = m; }
189
190 private:
192
197};
198
199#endif
200
std::vector< Pythia6Particle * > ParticleVector
Definition Pythia6.hh:148
int const KNDCAY
Definition Pythia6.hh:87
The C++ interface class to Pythia6.
int GetKFDP(int i, int j)
Definition Pythia6.hh:186
void SetMDCY(int i, int j, int m)
Definition Pythia6.hh:187
static Pythia6 * Instance()
Definition Pythia6.cc:124
ParticleVector * ImportParticles()
int GetMDCY(int i, int j)
Definition Pythia6.hh:185
ParticleVector * fParticles
Definition Pythia6.hh:193
virtual ~Pythia6()
Definition Pythia6.cc:168
Pydat3_t * fPydat3
Definition Pythia6.hh:196
Pythia6()
Definition Pythia6.cc:135
int Pycomp(int kf)
Definition Pythia6.cc:183
void SetMSTJ(int i, int m)
Definition Pythia6.hh:181
static Pythia6 * fgInstance
Definition Pythia6.hh:191
Pydat1_t * fPydat1
Definition Pythia6.hh:195
void SetMDME(int i, int j, int m)
Definition Pythia6.hh:188
void Py1ent(int line, int kf, double pe, double theta, double phi)
Definition Pythia6.cc:192
Pyjets_t * fPyjets
Definition Pythia6.hh:194
PYDAT1 common-block.
Definition Pythia6.hh:101
double PARJ[200]
Definition Pythia6.hh:105
int MSTU[200]
Definition Pythia6.hh:102
double PARU[200]
Definition Pythia6.hh:103
int MSTJ[200]
Definition Pythia6.hh:104
PYDAT3 common-block.
Definition Pythia6.hh:110
int KFDP[5][KNDCAY]
Definition Pythia6.hh:114
double BRAT[KNDCAY]
Definition Pythia6.hh:113
int MDME[2][KNDCAY]
Definition Pythia6.hh:112
int MDCY[3][500]
Definition Pythia6.hh:111
PYJETS common-block.
Definition Pythia6.hh:91
int K[5][4000]
Definition Pythia6.hh:94
double P[5][4000]
Definition Pythia6.hh:95
double V[5][4000]
Definition Pythia6.hh:96
int N
Definition Pythia6.hh:92
int NPAD
Definition Pythia6.hh:93
Structure for Pythia6 particle properties.
Definition Pythia6.hh:119
Pythia6Particle(int ks, int kf, int parent, int firstChild, int lastChild, float px, float py, float pz, float energy, float mass, float vx, float vy, float vz, float time, float lifetime)
Definition Pythia6.hh:120

Applications | User Support | Publications | Collaboration