StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Hijing.h
1 #ifndef __Hijing_h__
2 #define __Hijing_h__
3 
4 #include "StarCallf77.h"
5 #include <string>
6 using namespace std;
7 
9 //
10 // Wrappers for FORTRAN routines
11 //
13 
15 void Hijset( float efrm, string frame, string proj, string targ, int ap, int zp, int at, int zt );
16 void Hijset( );
17 
19 void Hijing( string frame, float bmin, float bmax );
20 
22 float Ulmass( int jetsetid );
23 
25 int Lucomp( int jetsetid );
26 
27 
29 //
30 // Interfaces to COMMON blocks
31 //
33 
34 #define address_of_himain1 F77_NAME( address_of_himain1, ADDRESS_OF_HIMAIN1 )
35 struct HiMain1_t {
36  /* memory layout */
37  int natt;
38  float eatt;
39  int jatt;
40  int nwounded_yell;
41  int nwounded_blue;
42  int n0, n01, n10, n11;
43  /* access fuctions */
44 };
45 extern "C" HiMain1_t *address_of_himain1();
46 
47 #define address_of_himain2 F77_NAME( address_of_himain2, ADDRESS_OF_HIMAIN2 )
48 
52 struct HiMain2_t {
53  /* memory layout */
54  int _katt[4][130000];
55  float _patt[4][130000];
56  float _vatt[4][130000];
57  /* access functions */
58 
62  int &katt(int i, int j){ return _katt[j-1][i-1]; }
66  float &patt(int i, int j){ return _patt[j-1][i-1]; }
70  float &vatt(int i, int j){ return _vatt[j-1][i-1]; }
71 };
72 extern "C" HiMain2_t *address_of_himain2();
73 
74 #define address_of_hiparnt F77_NAME( address_of_hiparnt, ADDRESS_OF_HIPARNT )
75 
79 struct HiParnt_t
80 {
81  /* memory layout */
82  float _hipr1[100];
83  int _ihpr2[50];
84  float _hint1[100];
85  int _ihnt2[50];
86  /* access functions */
90  float &hipr1(int i){ return _hipr1[i-1]; }
94  int &ihpr2(int i){ return _ihpr2[i-1]; }
98  float &hint1(int i){ return _hint1[i-1]; }
102  int &ihnt2(int i){ return _ihnt2[i-1]; }
103 
104 };
105 extern "C" HiParnt_t *address_of_hiparnt();
106 
107 // COMMON/LUDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)
108 #define address_of_ludat3 F77_NAME( address_of_ludat3, ADDRESS_OF_LUDAT3 )
109 
113 struct Ludat3_t {
114  /* memory layout */
115  int _mdcy[3][500];
116  int _mdme[2][2000];
117  float _brat[2000];
118  int _kfdp[5][2000];
119  /* access functions */
120 
124  int &mdcy(int i, int j){ return _mdcy[j-1][i-1]; }
128  int &mdme(int i, int j){ return _mdme[j-1][i-1]; }
132  float &brat( int i ){ return _brat[i-1]; }
136  int &kfdp( int i, int j ){ return _kfdp[j-1][i-1]; }
137 };
138 
139 extern "C" Ludat3_t *address_of_ludat3();
140 
141 
142 
143 #endif
HIJING /HIPARNT/ common block/.
Definition: Hijing.h:79
int & mdme(int i, int j)
Definition: Hijing.h:128
int & ihpr2(int i)
Definition: Hijing.h:94
PYTHIA /LUDAT3/ common block, controls configuration of pythia.
Definition: Hijing.h:113
int & kfdp(int i, int j)
Definition: Hijing.h:136
float & hipr1(int i)
Definition: Hijing.h:90
HIJING /HIMAIN2/ common block.
Definition: Hijing.h:52
float & hint1(int i)
Definition: Hijing.h:98
int & ihnt2(int i)
Definition: Hijing.h:102
int & katt(int i, int j)
Definition: Hijing.h:62
float & vatt(int i, int j)
Definition: Hijing.h:70
float & brat(int i)
Definition: Hijing.h:132
float & patt(int i, int j)
Definition: Hijing.h:66
int & mdcy(int i, int j)
Definition: Hijing.h:124