![]() |
|
|||
File indexing completed on 2025-02-23 09:21:10
0001 // 0002 // ******************************************************************** 0003 // * License and Disclaimer * 0004 // * * 0005 // * The Geant4 software is copyright of the Copyright Holders of * 0006 // * the Geant4 Collaboration. It is provided under the terms and * 0007 // * conditions of the Geant4 Software License, included in the file * 0008 // * LICENSE and available at http://cern.ch/geant4/license . These * 0009 // * include a list of copyright holders. * 0010 // * * 0011 // * Neither the authors of this software system, nor their employing * 0012 // * institutes,nor the agencies providing financial support for this * 0013 // * work make any representation or warranty, express or implied, * 0014 // * regarding this software system or assume any liability for its * 0015 // * use. Please see the license in the file LICENSE and URL above * 0016 // * for the full disclaimer and the limitation of liability. * 0017 // * * 0018 // * This code implementation is the result of the scientific and * 0019 // * technical work of the GEANT4 collaboration. * 0020 // * By using, copying, modifying or distributing the software (or * 0021 // * any work based on the software) you agree to acknowledge its * 0022 // * use in resulting scientific publications, and indicate your * 0023 // * acceptance of all terms of the Geant4 Software license. * 0024 // ******************************************************************** 0025 // 0026 // 0027 /// \file eventgenerator/pythia/decayer6/include/Pythia6.hh 0028 /// \brief Definition of the Pythia6 class 0029 0030 // 0031 // ---------------------------------------------------------------------------- 0032 0033 // ****************************************************************************** 0034 // ****************************************************************************** 0035 // ** ** 0036 // ** ** 0037 // ** *......* Welcome to the Lund Monte Carlo! ** 0038 // ** *:::!!:::::::::::* ** 0039 // ** *::::::!!::::::::::::::* PPP Y Y TTTTT H H III A ** 0040 // ** *::::::::!!::::::::::::::::* P P Y Y T H H I A A ** 0041 // ** *:::::::::!!:::::::::::::::::* PPP Y T HHHHH I AAAAA ** 0042 // ** *:::::::::!!:::::::::::::::::* P Y T H H I A A ** 0043 // ** *::::::::!!::::::::::::::::*! P Y T H H III A A ** 0044 // ** *::::::!!::::::::::::::* !! ** 0045 // ** !! *:::!!:::::::::::* !! This is PYTHIA version 6.418 ** 0046 // ** !! !* -><- * !! Last date of change: 9 Jun 2008 ** 0047 // ** !! !! !! ** 0048 // ** !! !! !! Now is 0 Jan 2000 at 0:00:00 ** 0049 // ** !! !! ** 0050 // ** !! lh !! Disclaimer: this program comes ** 0051 // ** !! !! without any guarantees. Beware ** 0052 // ** !! hh !! of errors and use common sense ** 0053 // ** !! ll !! when interpreting results. ** 0054 // ** !! !! ** 0055 // ** !! Copyright T. Sjostrand (2008) ** 0056 // ** ** 0057 // ** An archive of program versions and documentation is found on the web: ** 0058 // ** http://www.thep.lu.se/~torbjorn/Pythia.html ** 0059 // ** ** 0060 // ** When you cite this program, the official reference is to the 6.4 manual: ** 0061 // ** T. Sjostrand, S. Mrenna and P. Skands, JHEP05 (2006) 026 ** 0062 // ** (LU TP 06-13, FERMILAB-PUB-06-052-CD-T) [hep-ph/0603175]. ** 0063 // ** ** 0064 // ** Also remember that the program, to a large extent, represents original ** 0065 // ** physics research. Other publications of special relevance to your ** 0066 // ** studies may therefore deserve separate mention. ** 0067 // ** ** 0068 // ** Main author: Torbjorn Sjostrand; Department of Theoretical Physics, ** 0069 // ** Lund University, Solvegatan 14A, S-223 62 Lund, Sweden; ** 0070 // ** phone: + 46 - 46 - 222 48 16; e-mail: torbjorn@thep.lu.se ** 0071 // ** Author: Stephen Mrenna; Computing Division, GDS Group, ** 0072 // ** Fermi National Accelerator Laboratory, MS 234, Batavia, IL 60510, USA; ** 0073 // ** phone: + 1 - 630 - 840 - 2556; e-mail: mrenna@fnal.gov ** 0074 // ** Author: Peter Skands; Theoretical Physics Department, ** 0075 // ** Fermi National Accelerator Laboratory, MS 106, Batavia, IL 60510, USA; ** 0076 // ** and CERN/PH, CH-1211 Geneva, Switzerland; ** 0077 // ** phone: + 41 - 22 - 767 24 59; e-mail: skands@fnal.gov ** 0078 // ** ** 0079 // ** ** 0080 // ****************************************************************************** 0081 0082 #ifndef PYTHIA_Pythia6 0083 #define PYTHIA_Pythia6 0084 0085 #include <vector> 0086 0087 int const KNDCAY = 8000; // should be 4000 for pythia61 0088 0089 /// PYJETS common-block 0090 struct Pyjets_t 0091 { 0092 int N; 0093 int NPAD; 0094 int K[5][4000]; 0095 double P[5][4000]; 0096 double V[5][4000]; 0097 }; 0098 0099 /// PYDAT1 common-block 0100 struct Pydat1_t 0101 { 0102 int MSTU[200]; 0103 double PARU[200]; 0104 int MSTJ[200]; 0105 double PARJ[200]; 0106 }; 0107 0108 /// PYDAT3 common-block 0109 struct Pydat3_t 0110 { 0111 int MDCY[3][500]; 0112 int MDME[2][KNDCAY]; 0113 double BRAT[KNDCAY]; 0114 int KFDP[5][KNDCAY]; 0115 }; 0116 0117 /// Structure for Pythia6 particle properties 0118 struct Pythia6Particle 0119 { 0120 Pythia6Particle(int ks, int kf, int parent, int firstChild, int lastChild, float px, float py, 0121 float pz, float energy, float mass, float vx, float vy, float vz, float time, 0122 float lifetime) 0123 : fKS(ks), 0124 fKF(kf), 0125 fParent(parent), 0126 fFirstChild(firstChild), 0127 fLastChild(lastChild), 0128 fPx(px), 0129 fPy(py), 0130 fPz(pz), 0131 fEnergy(energy), 0132 fMass(mass), 0133 fVx(vx), 0134 fVy(vy), 0135 fVz(vz), 0136 fTime(time), 0137 fLifetime(lifetime) 0138 {} 0139 0140 int fKS; // status of particle ( LUJETS K[1] ) 0141 int fKF; // KF flavour code ( LUJETS K[2] ) 0142 int fParent; // parrent's id ( LUJETS K[3] ) 0143 int fFirstChild; // id of first child ( LUJETS K[4] ) 0144 int fLastChild; // id of last child ( LUJETS K[5] ) 0145 0146 float fPx; // X momenta [GeV/c] ( LUJETS P[1] ) 0147 float fPy; // Y momenta [GeV/c] ( LUJETS P[2] ) 0148 float fPz; // Z momenta [GeV/c] ( LUJETS P[3] ) 0149 float fEnergy; // Energy [GeV] ( LUJETS P[4] ) 0150 float fMass; // Mass [Gev/c^2] ( LUJETS P[5] ) 0151 0152 float fVx; // X vertex [mm] ( LUJETS V[1] ) 0153 float fVy; // Y vertex [mm] ( LUJETS V[2] ) 0154 float fVz; // Z vertex [mm] ( LUJETS V[3] ) 0155 float fTime; // time of procuction [mm/c]( LUJETS V[4] ) 0156 float fLifetime; // proper lifetime [mm/c] ( LUJETS V[5] ) 0157 }; 0158 0159 typedef std::vector<Pythia6Particle*> ParticleVector; 0160 0161 /// The C++ interface class to Pythia6 0162 /// 0163 /// According to TPythia6 class from Root: 0164 /// (The TPythia6 class is an interface class to F77 routines in Pythia6 // 0165 /// CERNLIB event generators, written by T.Sjostrand.) 0166 /// http://root.cern.ch/ 0167 /// see http://root.cern.ch/root/License.html 0168 /// 0169 /// The complete Pythia6 documentation can be found at: 0170 /// http://home.thep.lu.se/~torbjorn/pythiaaux/recent.html 0171 /// 0172 0173 class Pythia6 0174 { 0175 public: 0176 // ****** constructors and destructor 0177 Pythia6(); 0178 virtual ~Pythia6(); 0179 0180 static Pythia6* Instance(); 0181 0182 // ****** TPYTHIA routines 0183 // 0184 int Pycomp(int kf); 0185 void Py1ent(int line, int kf, double pe, double theta, double phi); 0186 ParticleVector* ImportParticles(); 0187 int ImportParticles(ParticleVector* particles, const char* option = ""); 0188 0189 // ****** /PYDAT1/ 0190 // 0191 void SetMSTJ(int i, int m) { fPydat1->MSTJ[i - 1] = m; } 0192 0193 // ****** /PYDAT3/ 0194 // 0195 int GetMDCY(int i, int j) { return fPydat3->MDCY[j - 1][i - 1]; } 0196 int GetKFDP(int i, int j) { return fPydat3->KFDP[j - 1][i - 1]; } 0197 void SetMDCY(int i, int j, int m) { fPydat3->MDCY[j - 1][i - 1] = m; } 0198 void SetMDME(int i, int j, int m) { fPydat3->MDME[j - 1][i - 1] = m; } 0199 0200 private: 0201 static Pythia6* fgInstance; 0202 0203 ParticleVector* fParticles; 0204 Pyjets_t* fPyjets; 0205 Pydat1_t* fPydat1; 0206 Pydat3_t* fPydat3; 0207 }; 0208 0209 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |