ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4HIJING_Interface.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4HIJING_Interface.hh
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 #ifndef G4HIJING_Interface_hh
27 #define G4HIJING_Interface_hh
28 
29 //
30 // MODULE: G4HIJING_Model.hh
31 //
32 // Version: 1.B
33 // Date: 10/09/2013
34 // Author: Khaled Abdel-Waged
35 // Institute: Umm Al-Qura University
36 // Country: SAUDI ARABIA
37 //
38 
39 // First: 1-COMMON BLOCK FOR OPTIONS AND PARAMETERS
40 //-----
41 // HIPARNT
42 // input parameters
43 // HIPR1, HIPR2 for event options
44 // HINT1, HINT2 of current event
45 //---------------------------------
47 {
48 
49 float hipr1[100];
51 float hint1[100];
53 
54 };
55 
56 //****************************************************************************
57 // Second: 5-COMMON BLOCKS FOR EVENT INFORMATION
58 //----------------------------------------------------------------------------
59 
60 //
61 // HIMAIN1-> Global information of the events are defined
62 //
64 {
66 float eatt;
68 };
69 //-----------
70 // HIMAIN2->information of produced stable and undecayed particles
71 //-------
73 {
74 G4int katt[4][130000];
75 float patt[4][130000];
76 };
77 //--------
78 // HIJJET1-> information about produced partons which
79 // are connected with the valence quarks, diquarks,...
80 //--------
82 {
83 G4int npj[300], kfpj[500][300];
84 float pjpx[500][300],pjpy[500][300], pjpz[500][300],pjpe[500][300];
85 float pjpm[500][300];
86 G4int ntj[300], kftj[500][300];
87 float pjtx[500][300], pjty[500][300], pjtz[500][300];
88 float pjte[500][300], pjtm[500][300];
89 };
90 //--------
91 // HIJJET1-> information about produced partons which
92 // will form string systems without being connected with
93 // valence quarks, diquarks,...
94 // ------
96 {
97 G4int nsg, njsg[900], iasg[3][900], k1sg[100][900];
98 G4int k2sg[100][900];
99 float pxsg[100][900], pysg[100][900], pzsg[100][900];
100 float pesg[100][900], pmsg[100][900];
101 };
102 
103 //------
104 // HISTRNG
105 // contain information about the projectile and target nucleons
106 //-----
108 {
109 G4int nfp[15][300];
110 float pp[15][300];
111 G4int nft[15][300];
112 float pt[15][300];
113 };
114 //****************************************************************************
115 // third: 2-COMMON BLOCKS which contain specific information
116 //----------------------------------------------------------------------------
117 
119 {
120 G4int ndr, iadr[2][900], kfdr[900];
121 float pdr[5][900];
122 };
123 
125 {
126 float yp[300][3], yt[300][3];
127 };
128 //---------------------------------------------------------
129 // fourth: 5-Other common blocks
130 // --------------------------------------------------------
131 
132 
134 {
135 float xl, xu, acc;
137 };
138 
139 
140 
141 
143 {
145 };
146 
147 
148 
150 {
151 float nseed;
152 };
153 
154 
155 
157 {
158 float hidat0[10][10],hidat[10];
159 };
160 
161 
163 {
165 float atco[20][200], atxs[200+1];
166 };
167 
168 // hijing
169 
170 extern "C"
171 {
172 // initialize HIJING for specified event type,
173 // collision frame and energy
174 
175 //extern void hijset_ (float*,
177 // G4int*, G4int*, G4int*, G4int*);
178 
179 extern void hijset_ (float*);
180 
181 // to generate a complete event as specified by sybroutine HIJSET
182 
183 //extern void hijing_ (const char*,
184 // float*, float*);
185 
186 extern void hijing_ (float*,float*);
187 
188 extern float ulmass_ (G4int*);
189 
190 
191 
192 // reset all relevant common blocks and variables and initialize HIJING
193 // for each event
194 
195 extern void hijini_ ();
196 
197 // calculate cross sections for minijet production, cross section of
198 // the triggered processes, elastic, inelastic, total cross section..
199 extern void hijcrs_ ();
200 
201 //
202 // initialize program for generating hard scattering
203 //as specified by parameters and options
204 
205 extern void jetini_ (G4int*, G4int*, G4int*);
206 //
207 
208 // re-initiate PYTHIA for the triggered hard processe
209 // or simulate one hard scattering among the multiple jet production
210 //per NN-collision
211 
212 extern void hijhrd_ (G4int*, G4int*, G4int*, G4int*, G4int*);
213 
214 //
215 //generate soft interaction for each binary NN-collision
216 
217 extern void hijsft_ (G4int*, G4int*, G4int*);
218 
219 // rearrange gluon jets in a string system according to their rapidities
220 
221 extern void hijsrt_ (G4int*, G4int*);
222 
223 // perform jet quenching by allowing final state interaction of produced jet
224 // inside excited strings
225 
226 extern void quench_ (G4int*, G4int*);
227 
228 //
229 // arrange produced partons together with the valence quarks and diquarks
230 
231 extern void hijfrg_ (G4int*, G4int*, G4int*);
232 
233 // perform soft radiation according to the Lund dipole approx.
234 
235 extern void attrad_ (G4int*);
236 
237 // generate flavor codes of the valence quark (diquark)
238 //inside a given nucleon (hadron).
239 
240 extern void attflv_ (G4int*, G4int*, G4int*);
241 
242 // perform elastic scattering and possible elastic NN cascading
243 
244 extern void hijcsc_ (G4int*, G4int*);
245 
246 // three parameter Wood-Sax distribution
247 
248 extern void hijwds_ (G4int*, G4int*, float*);
249 
250 // gives profile function of 2 colliding nuclei at a given impact parameter
251 
252 extern float profile_ (float*);
253 
254 // transform the produced particles from c.m to lab frame
255 
256 extern void hiboost_ ();
257 
258 //----------------------------------------
259 // the default values of the parametrs and options to initialize
260 // the event record common blocks
261 
262 extern void g4hijingblockdata_ ();
263 // ----------------------
264 // random generator
265 
266 extern void rlu_ (G4int*);
267 
268 //-----------------------------------------
269 extern struct cchijinghiparnt hiparnt_;
270 
271 extern struct cchijinghimain1 himain1_;
272 extern struct cchijinghimain2 himain2_;
273 
274 extern struct cchijinghijjet1 hijjet1_;
275 extern struct cchijinghijjet2 hijjet2_;
276 
277 extern struct cchijinghistrng histrng_;
278 
279 extern struct cchijinghijjet4 hijjet4_;
280 
281 extern struct cchijinghijcrdn hijcrdn_;
282 
283 extern struct cchijingbveg1 bveg1_;
284 
285 extern struct cchijingseedvax seedvax_;
286 
287 extern struct cchijingranseed ranseed_;
288 
289 extern struct cchijinghijdat hijdat_;
290 
291 extern struct cchijinghipyint hipyint_;
292 
293 }
294 
295 #endif
296