Geant4 Cross Reference |
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 //--------------------------------- 46 struct cchijinghiparnt 47 { 48 float hipr1[100]; 49 G4int ihpr2[50]; 50 float hint1[100]; 51 G4int ihnt2[50]; 52 }; 53 54 //**************************************************************************** 55 // Second: 5-COMMON BLOCKS FOR EVENT INFORMATION 56 //---------------------------------------------------------------------------- 57 58 // 59 // HIMAIN1-> Global information of the events are defined 60 // 61 struct cchijinghimain1 62 { 63 G4int natt; 64 float eatt; 65 G4int jatt, nt, np, n0, n01, n10, n11; 66 }; 67 //----------- 68 // HIMAIN2->information of produced stable and undecayed particles 69 //------- 70 struct cchijinghimain2 71 { 72 G4int katt[4][130000]; 73 float patt[4][130000]; 74 }; 75 //-------- 76 // HIJJET1-> information about produced partons which 77 // are connected with the valence quarks, diquarks,... 78 //-------- 79 struct cchijinghijjet1 80 { 81 G4int npj[300], kfpj[500][300]; 82 float pjpx[500][300], pjpy[500][300], pjpz[500][300], pjpe[500][300]; 83 float pjpm[500][300]; 84 G4int ntj[300], kftj[500][300]; 85 float pjtx[500][300], pjty[500][300], pjtz[500][300]; 86 float pjte[500][300], pjtm[500][300]; 87 }; 88 //-------- 89 // HIJJET1-> information about produced partons which 90 // will form string systems without being connected with 91 // valence quarks, diquarks,... 92 // ------ 93 struct cchijinghijjet2 94 { 95 G4int nsg, njsg[900], iasg[3][900], k1sg[100][900]; 96 G4int k2sg[100][900]; 97 float pxsg[100][900], pysg[100][900], pzsg[100][900]; 98 float pesg[100][900], pmsg[100][900]; 99 }; 100 101 //------ 102 // HISTRNG 103 // contain information about the projectile and target nucleons 104 //----- 105 struct cchijinghistrng 106 { 107 G4int nfp[15][300]; 108 float pp[15][300]; 109 G4int nft[15][300]; 110 float pt[15][300]; 111 }; 112 //**************************************************************************** 113 // third: 2-COMMON BLOCKS which contain specific information 114 //---------------------------------------------------------------------------- 115 116 struct cchijinghijjet4 117 { 118 G4int ndr, iadr[2][900], kfdr[900]; 119 float pdr[5][900]; 120 }; 121 122 struct cchijinghijcrdn 123 { 124 float yp[300][3], yt[300][3]; 125 }; 126 //--------------------------------------------------------- 127 // fourth: 5-Other common blocks 128 // -------------------------------------------------------- 129 130 struct cchijingbveg1 131 { 132 float xl, xu, acc; 133 G4int ndim, ncall, itmx, nprn; 134 }; 135 136 struct cchijingseedvax 137 { 138 G4int num1; 139 }; 140 141 struct cchijingranseed 142 { 143 float nseed; 144 }; 145 146 struct cchijinghijdat 147 { 148 float hidat0[10][10], hidat[10]; 149 }; 150 151 struct cchijinghipyint 152 { 153 G4int mint4, mint5; 154 float atco[20][200], atxs[200 + 1]; 155 }; 156 157 // hijing 158 159 extern "C" 160 { 161 // initialize HIJING for specified event type, 162 // collision frame and energy 163 164 // extern void hijset_ (float*, 165 //// const char*, const char*,const char*, 166 // G4int*, G4int*, G4int*, G4int*); 167 168 extern void hijset_(float*); 169 170 // to generate a complete event as specified by sybroutine HIJSET 171 172 // extern void hijing_ (const char*, 173 // float*, float*); 174 175 extern void hijing_(float*, float*); 176 177 extern float ulmass_(G4int*); 178 179 // reset all relevant common blocks and variables and initialize HIJING 180 // for each event 181 182 extern void hijini_(); 183 184 // calculate cross sections for minijet production, cross section of 185 // the triggered processes, elastic, inelastic, total cross section.. 186 extern void hijcrs_(); 187 188 // 189 // initialize program for generating hard scattering 190 // as specified by parameters and options 191 192 extern void jetini_(G4int*, G4int*, G4int*); 193 // 194 195 // re-initiate PYTHIA for the triggered hard processe 196 // or simulate one hard scattering among the multiple jet production 197 // per NN-collision 198 199 extern void hijhrd_(G4int*, G4int*, G4int*, G4int*, G4int*); 200 201 // 202 // generate soft interaction for each binary NN-collision 203 204 extern void hijsft_(G4int*, G4int*, G4int*); 205 206 // rearrange gluon jets in a string system according to their rapidities 207 208 extern void hijsrt_(G4int*, G4int*); 209 210 // perform jet quenching by allowing final state interaction of produced jet 211 // inside excited strings 212 213 extern void quench_(G4int*, G4int*); 214 215 // 216 // arrange produced partons together with the valence quarks and diquarks 217 218 extern void hijfrg_(G4int*, G4int*, G4int*); 219 220 // perform soft radiation according to the Lund dipole approx. 221 222 extern void attrad_(G4int*); 223 224 // generate flavor codes of the valence quark (diquark) 225 // inside a given nucleon (hadron). 226 227 extern void attflv_(G4int*, G4int*, G4int*); 228 229 // perform elastic scattering and possible elastic NN cascading 230 231 extern void hijcsc_(G4int*, G4int*); 232 233 // three parameter Wood-Sax distribution 234 235 extern void hijwds_(G4int*, G4int*, float*); 236 237 // gives profile function of 2 colliding nuclei at a given impact parameter 238 239 extern float profile_(float*); 240 241 // transform the produced particles from c.m to lab frame 242 243 extern void hiboost_(); 244 245 //---------------------------------------- 246 // the default values of the parametrs and options to initialize 247 // the event record common blocks 248 249 extern void g4hijingblockdata_(); 250 // ---------------------- 251 // random generator 252 253 extern void rlu_(G4int*); 254 255 //----------------------------------------- 256 extern struct cchijinghiparnt hiparnt_; 257 258 extern struct cchijinghimain1 himain1_; 259 extern struct cchijinghimain2 himain2_; 260 261 extern struct cchijinghijjet1 hijjet1_; 262 extern struct cchijinghijjet2 hijjet2_; 263 264 extern struct cchijinghistrng histrng_; 265 266 extern struct cchijinghijjet4 hijjet4_; 267 268 extern struct cchijinghijcrdn hijcrdn_; 269 270 extern struct cchijingbveg1 bveg1_; 271 272 extern struct cchijingseedvax seedvax_; 273 274 extern struct cchijingranseed ranseed_; 275 276 extern struct cchijinghijdat hijdat_; 277 278 extern struct cchijinghipyint hipyint_; 279 } 280 281 #endif 282