source: HiSusy/trunk/hepmc/x86_64-slc5-gcc41-opt/include/HepMC/PythiaWrapper6_4_WIN32.h @ 1

Last change on this file since 1 was 1, checked in by zerwas, 11 years ago

first import of structure, PYTHIA8 and DELPHES

File size: 4.1 KB
Line 
1//--------------------------------------------------------------------------
2#ifdef  _WIN32  // This version is for Windows MS Visual C++ only.
3#ifndef PYTHIA_WRAPPER_6_H
4#define PYTHIA_WRAPPER_6_H
5
6//////////////////////////////////////////////////////////////////////////
7// Matt.Dobbs@Cern.CH, November 2000
8// Version 6.200 update October 2001
9// Wrapper for FORTRAN version of Pythia
10// The _WIN32 version is provided by Witold Pokorski
11//       <Witold.Pokorski@Cern.CH>, 2002-01-22, and is the version
12//       which should be used when compiling on Windows MS Visual C++.
13// This wrapper is NOT intended as a part of HepMC - it is only supplied
14// for your convenience.
15//////////////////////////////////////////////////////////////////////////
16//
17// A simple example of calling Pythia from C++ using this header file is
18// given in test/test_PythiaWrapper.cxx
19//
20// Note the pyhepc routine is used by Pythia to fill
21// the HEPEVT common block uses double precision and 4000 entries.
22//
23
24#include <ctype.h>
25#include <string.h>
26
27//--------------------------------------------------------------------------
28// Initialization routine
29
30
31extern "C" {
32    void INITPYDATA(void);
33}
34#define initpydata INITPYDATA
35
36
37//--------------------------------------------------------------------------
38// PYTHIA Common Block Declarations
39
40const int pyjets_maxn =4000;
41struct PYJETS_DEF {
42        int n, npad, k[5][pyjets_maxn];
43        double p[5][pyjets_maxn], v[5][pyjets_maxn];
44};
45
46struct PYDAT1_DEF{
47        int mstu[200];
48        double paru[200];
49        int mstj[200];
50        double parj[200];
51};
52
53struct PYDAT2_DEF{
54        int kchg[4][500];
55        double pmas[4][500], parf[2000], vckm[4][4]; 
56};
57
58struct PYDAT3_DEF{
59        int mdcy[3][500], mdme[2][8000];
60        double brat[8000];
61        int kfdp[5][8000];
62};
63
64struct PYDATR_DEF{
65        int mrpy[6];
66        double rrpy[100];
67    };
68
69struct PYSUBS_DEF{
70        int msel, mselpd, msub[500], kfin[81][2];
71        double ckin[200];
72};
73
74struct PYPARS_DEF{
75        int mstp[200];
76        double parp[200];
77        int msti[200];
78        double pari[200];
79};
80
81struct PYINT1_DEF{
82        int mint[400];
83        double vint[400];
84};
85
86struct PYINT2_DEF{
87        int iset[500], kfpr[2][500];
88        double coef[20][500];
89        int icol[2][4][40];       // was [320] was [40][4][2]
90};
91
92struct PYINT5_DEF{
93        int ngenpd, ngen[3][501];
94        double xsec[3][501];
95};
96
97
98extern "C" PYSUBS_DEF PYSUBS;
99extern "C" PYJETS_DEF PYJETS;
100extern "C" PYDAT1_DEF PYDAT1;
101extern "C" PYDAT2_DEF PYDAT2;
102extern "C" PYPARS_DEF PYPARS;
103extern "C" PYDATR_DEF PYDATR;
104extern "C" PYDAT3_DEF PYDAT3;
105extern "C" PYINT1_DEF PYINT1;
106extern "C" PYINT2_DEF PYINT2;
107extern "C" PYINT5_DEF PYINT5;
108
109
110#define pysubs PYSUBS
111#define pyjets PYJETS
112#define pydat1 PYDAT1
113#define pydat2 PYDAT2
114#define pypars PYPARS
115#define pydatr PYDATR
116#define pydat3 PYDAT3
117#define pyint1 PYINT1
118#define pyint2 PYINT2
119#define pyint5 PYINT5
120
121
122
123//--------------------------------------------------------------------------
124// PYTHIA routines declaration
125
126
127extern "C" {
128        void __stdcall PYHEPC(int*);
129        void __stdcall PYINIT(const char*,int,const char*,int,const char*,int,double*);
130        void __stdcall PYLIST(int*);
131        void __stdcall PYSTAT(int*);
132        void __stdcall PYEVNT();
133        void __stdcall UPINIT();
134        void __stdcall UPEVNT();
135}
136
137//--------------------------------------------------------------------------
138// PYTHIA block data
139// ( with gcc it works to initialize the block data by calling
140//   "pydata();" at beginning, but this fails for f77, so the fortran routine
141//   initpydata.f is supplied ... call it instead for platform independent
142//   behaviour )
143
144
145extern "C" {
146    void __stdcall PYDATA(void);
147}
148
149inline void call_pyhepc( int mode ){ PYHEPC( &mode ); }
150inline void call_pyinit( const char* frame, const char* beam, const char* target,
151                  double win ) 
152{ PYINIT( frame,strlen(frame),beam,strlen(beam),target,strlen(target),&win); }
153inline void call_pylist( int mode ){ PYLIST( &mode ); }
154inline void call_pystat( int mode ){ PYSTAT( &mode ); }
155inline void call_pyevnt(){ PYEVNT(); }
156inline void call_upinit(){ UPINIT(); }
157inline void call_upevnt(){ UPEVNT(); }
158
159
160
161
162#endif  // PYTHIA_WRAPPER_6_H
163#endif  // _WIN32
164//--------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.