Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 #ifndef G4HIJING_Interface_hh 26 #ifndef G4HIJING_Interface_hh 27 #define G4HIJING_Interface_hh 27 #define G4HIJING_Interface_hh 28 28 29 // 29 // 30 // MODULE: G4HIJING_Model.hh 30 // MODULE: G4HIJING_Model.hh 31 // 31 // 32 // Version: 1.B 32 // Version: 1.B 33 // Date: 10/09/2013 33 // Date: 10/09/2013 34 // Author: Khaled Abdel-Waged << 34 // Author: Khaled Abdel-Waged 35 // Institute: Umm Al-Qura University 35 // Institute: Umm Al-Qura University 36 // Country: SAUDI ARABIA << 36 // Country: SAUDI ARABIA 37 // 37 // 38 38 39 // First: 1-COMMON BLOCK FOR OPTIONS AND PARAM 39 // First: 1-COMMON BLOCK FOR OPTIONS AND PARAMETERS 40 //----- 40 //----- 41 // HIPARNT 41 // HIPARNT 42 // input parameters << 42 // input parameters 43 // HIPR1, HIPR2 for event options 43 // HIPR1, HIPR2 for event options 44 // HINT1, HINT2 of current event 44 // HINT1, HINT2 of current event 45 //--------------------------------- 45 //--------------------------------- 46 struct cchijinghiparnt 46 struct cchijinghiparnt 47 { 47 { 48 float hipr1[100]; << 48 49 G4int ihpr2[50]; << 49 float hipr1[100]; 50 float hint1[100]; << 50 G4int ihpr2[50]; 51 G4int ihnt2[50]; << 51 float hint1[100]; >> 52 G4int ihnt2[50]; >> 53 52 }; 54 }; 53 55 54 //******************************************** 56 //**************************************************************************** 55 // Second: 5-COMMON BLOCKS FOR EVENT INFORMATI 57 // Second: 5-COMMON BLOCKS FOR EVENT INFORMATION 56 //-------------------------------------------- 58 //---------------------------------------------------------------------------- 57 59 58 // 60 // 59 // HIMAIN1-> Global information of the events 61 // HIMAIN1-> Global information of the events are defined 60 // 62 // 61 struct cchijinghimain1 63 struct cchijinghimain1 62 { 64 { 63 G4int natt; << 65 G4int natt; 64 float eatt; << 66 float eatt; 65 G4int jatt, nt, np, n0, n01, n10, n11; << 67 G4int jatt, nt, np,n0,n01,n10,n11; 66 }; 68 }; 67 //----------- 69 //----------- 68 // HIMAIN2->information of produced stable and 70 // HIMAIN2->information of produced stable and undecayed particles 69 //------- 71 //------- 70 struct cchijinghimain2 72 struct cchijinghimain2 71 { 73 { 72 G4int katt[4][130000]; << 74 G4int katt[4][130000]; 73 float patt[4][130000]; << 75 float patt[4][130000]; 74 }; 76 }; 75 //-------- 77 //-------- 76 // HIJJET1-> information about produced parton << 78 // HIJJET1-> information about produced partons which 77 // are connected with the valence qu 79 // are connected with the valence quarks, diquarks,... 78 //-------- 80 //-------- 79 struct cchijinghijjet1 81 struct cchijinghijjet1 80 { 82 { 81 G4int npj[300], kfpj[500][300]; << 83 G4int npj[300], kfpj[500][300]; 82 float pjpx[500][300], pjpy[500][300], pjpz << 84 float pjpx[500][300],pjpy[500][300], pjpz[500][300],pjpe[500][300]; 83 float pjpm[500][300]; << 85 float pjpm[500][300]; 84 G4int ntj[300], kftj[500][300]; << 86 G4int ntj[300], kftj[500][300]; 85 float pjtx[500][300], pjty[500][300], pjtz << 87 float pjtx[500][300], pjty[500][300], pjtz[500][300]; 86 float pjte[500][300], pjtm[500][300]; << 88 float pjte[500][300], pjtm[500][300]; 87 }; 89 }; 88 //-------- 90 //-------- 89 // HIJJET1-> information about produced parton << 91 // HIJJET1-> information about produced partons which 90 // will form string systems without 92 // will form string systems without being connected with 91 // valence quarks, diquarks,... 93 // valence quarks, diquarks,... 92 // ------ 94 // ------ 93 struct cchijinghijjet2 95 struct cchijinghijjet2 94 { 96 { 95 G4int nsg, njsg[900], iasg[3][900], k1sg[1 << 97 G4int nsg, njsg[900], iasg[3][900], k1sg[100][900]; 96 G4int k2sg[100][900]; << 98 G4int k2sg[100][900]; 97 float pxsg[100][900], pysg[100][900], pzsg << 99 float pxsg[100][900], pysg[100][900], pzsg[100][900]; 98 float pesg[100][900], pmsg[100][900]; << 100 float pesg[100][900], pmsg[100][900]; 99 }; 101 }; 100 102 101 //------ 103 //------ 102 // HISTRNG 104 // HISTRNG 103 // contain information about the projectile an 105 // contain information about the projectile and target nucleons 104 //----- 106 //----- 105 struct cchijinghistrng 107 struct cchijinghistrng 106 { 108 { 107 G4int nfp[15][300]; << 109 G4int nfp[15][300]; 108 float pp[15][300]; << 110 float pp[15][300]; 109 G4int nft[15][300]; << 111 G4int nft[15][300]; 110 float pt[15][300]; << 112 float pt[15][300]; 111 }; 113 }; 112 //******************************************** 114 //**************************************************************************** 113 // third: 2-COMMON BLOCKS which contain specif 115 // third: 2-COMMON BLOCKS which contain specific information 114 //-------------------------------------------- 116 //---------------------------------------------------------------------------- 115 117 116 struct cchijinghijjet4 118 struct cchijinghijjet4 117 { 119 { 118 G4int ndr, iadr[2][900], kfdr[900]; << 120 G4int ndr, iadr[2][900], kfdr[900]; 119 float pdr[5][900]; << 121 float pdr[5][900]; 120 }; 122 }; 121 123 122 struct cchijinghijcrdn 124 struct cchijinghijcrdn 123 { 125 { 124 float yp[300][3], yt[300][3]; << 126 float yp[300][3], yt[300][3]; 125 }; 127 }; 126 //-------------------------------------------- 128 //--------------------------------------------------------- 127 // fourth: 5-Other common blocks 129 // fourth: 5-Other common blocks 128 // ------------------------------------------- 130 // -------------------------------------------------------- 129 131 >> 132 130 struct cchijingbveg1 133 struct cchijingbveg1 131 { 134 { 132 float xl, xu, acc; << 135 float xl, xu, acc; 133 G4int ndim, ncall, itmx, nprn; << 136 G4int ndim, ncall, itmx, nprn; 134 }; 137 }; 135 138 >> 139 >> 140 >> 141 136 struct cchijingseedvax 142 struct cchijingseedvax 137 { 143 { 138 G4int num1; << 144 G4int num1; 139 }; 145 }; 140 146 >> 147 >> 148 141 struct cchijingranseed 149 struct cchijingranseed 142 { 150 { 143 float nseed; << 151 float nseed; 144 }; 152 }; 145 153 >> 154 >> 155 146 struct cchijinghijdat 156 struct cchijinghijdat 147 { 157 { 148 float hidat0[10][10], hidat[10]; << 158 float hidat0[10][10],hidat[10]; 149 }; 159 }; 150 160 >> 161 151 struct cchijinghipyint 162 struct cchijinghipyint 152 { 163 { 153 G4int mint4, mint5; << 164 G4int mint4, mint5; 154 float atco[20][200], atxs[200 + 1]; << 165 float atco[20][200], atxs[200+1]; 155 }; 166 }; 156 167 157 // hijing 168 // hijing 158 169 159 extern "C" 170 extern "C" 160 { 171 { 161 // initialize HIJING for specified event typ << 172 // initialize HIJING for specified event type, 162 // collision frame and energy << 173 // collision frame and energy >> 174 >> 175 //extern void hijset_ (float*, >> 176 //// const char*, const char*,const char*, >> 177 // G4int*, G4int*, G4int*, G4int*); 163 178 164 // extern void hijset_ (float*, << 179 extern void hijset_ (float*); 165 //// const char*, const << 166 // G4int*, G4int*, G4int << 167 180 168 extern void hijset_(float*); << 181 // to generate a complete event as specified by sybroutine HIJSET 169 182 170 // to generate a complete event as specified << 183 //extern void hijing_ (const char*, >> 184 // float*, float*); 171 185 172 // extern void hijing_ (const char*, << 186 extern void hijing_ (float*,float*); 173 // float*, float*); << 174 187 175 extern void hijing_(float*, float*); << 188 extern float ulmass_ (G4int*); 176 189 177 extern float ulmass_(G4int*); << 178 190 179 // reset all relevant common blocks and vari << 180 // for each event << 181 191 182 extern void hijini_(); << 192 // reset all relevant common blocks and variables and initialize HIJING >> 193 // for each event 183 194 184 // calculate cross sections for minijet prod << 195 extern void hijini_ (); 185 // the triggered processes, elastic, inelast << 186 extern void hijcrs_(); << 187 196 188 // << 197 // calculate cross sections for minijet production, cross section of 189 // initialize program for generating hard sc << 198 // the triggered processes, elastic, inelastic, total cross section.. 190 // as specified by parameters and options << 199 extern void hijcrs_ (); 191 200 192 extern void jetini_(G4int*, G4int*, G4int*); << 201 // 193 // << 202 // initialize program for generating hard scattering >> 203 //as specified by parameters and options 194 204 195 // re-initiate PYTHIA for the triggered hard << 205 extern void jetini_ (G4int*, G4int*, G4int*); 196 // or simulate one hard scattering among the << 206 // 197 // per NN-collision << 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 198 211 199 extern void hijhrd_(G4int*, G4int*, G4int*, << 212 extern void hijhrd_ (G4int*, G4int*, G4int*, G4int*, G4int*); 200 213 201 // << 214 // 202 // generate soft interaction for each binary << 215 //generate soft interaction for each binary NN-collision 203 216 204 extern void hijsft_(G4int*, G4int*, G4int*); << 217 extern void hijsft_ (G4int*, G4int*, G4int*); 205 218 206 // rearrange gluon jets in a string system a << 219 // rearrange gluon jets in a string system according to their rapidities 207 220 208 extern void hijsrt_(G4int*, G4int*); << 221 extern void hijsrt_ (G4int*, G4int*); 209 222 210 // perform jet quenching by allowing final s << 223 // perform jet quenching by allowing final state interaction of produced jet 211 // inside excited strings << 224 // inside excited strings 212 225 213 extern void quench_(G4int*, G4int*); << 226 extern void quench_ (G4int*, G4int*); 214 227 215 // << 228 // 216 // arrange produced partons together with th << 229 // arrange produced partons together with the valence quarks and diquarks 217 230 218 extern void hijfrg_(G4int*, G4int*, G4int*); << 231 extern void hijfrg_ (G4int*, G4int*, G4int*); 219 232 220 // perform soft radiation according to the L << 233 // perform soft radiation according to the Lund dipole approx. 221 234 222 extern void attrad_(G4int*); << 235 extern void attrad_ (G4int*); 223 236 224 // generate flavor codes of the valence quar << 237 // generate flavor codes of the valence quark (diquark) 225 // inside a given nucleon (hadron). << 238 //inside a given nucleon (hadron). 226 239 227 extern void attflv_(G4int*, G4int*, G4int*); << 240 extern void attflv_ (G4int*, G4int*, G4int*); 228 241 229 // perform elastic scattering and possible e << 242 // perform elastic scattering and possible elastic NN cascading 230 243 231 extern void hijcsc_(G4int*, G4int*); << 244 extern void hijcsc_ (G4int*, G4int*); 232 245 233 // three parameter Wood-Sax distribution << 246 // three parameter Wood-Sax distribution 234 247 235 extern void hijwds_(G4int*, G4int*, float*); << 248 extern void hijwds_ (G4int*, G4int*, float*); 236 249 237 // gives profile function of 2 colliding nuc << 250 // gives profile function of 2 colliding nuclei at a given impact parameter 238 251 239 extern float profile_(float*); << 252 extern float profile_ (float*); 240 253 241 // transform the produced particles from c.m << 254 // transform the produced particles from c.m to lab frame 242 255 243 extern void hiboost_(); << 256 extern void hiboost_ (); 244 257 245 //---------------------------------------- << 258 //---------------------------------------- 246 // the default values of the parametrs and o << 259 // the default values of the parametrs and options to initialize 247 // the event record common blocks << 260 // the event record common blocks 248 261 249 extern void g4hijingblockdata_(); << 262 extern void g4hijingblockdata_ (); 250 // ---------------------- << 263 // ---------------------- 251 // random generator << 264 // random generator 252 265 253 extern void rlu_(G4int*); << 266 extern void rlu_ (G4int*); 254 267 255 //----------------------------------------- << 268 //----------------------------------------- 256 extern struct cchijinghiparnt hiparnt_; << 269 extern struct cchijinghiparnt hiparnt_; 257 270 258 extern struct cchijinghimain1 himain1_; << 271 extern struct cchijinghimain1 himain1_; 259 extern struct cchijinghimain2 himain2_; << 272 extern struct cchijinghimain2 himain2_; 260 273 261 extern struct cchijinghijjet1 hijjet1_; << 274 extern struct cchijinghijjet1 hijjet1_; 262 extern struct cchijinghijjet2 hijjet2_; << 275 extern struct cchijinghijjet2 hijjet2_; 263 276 264 extern struct cchijinghistrng histrng_; << 277 extern struct cchijinghistrng histrng_; 265 278 266 extern struct cchijinghijjet4 hijjet4_; << 279 extern struct cchijinghijjet4 hijjet4_; 267 280 268 extern struct cchijinghijcrdn hijcrdn_; << 281 extern struct cchijinghijcrdn hijcrdn_; 269 282 270 extern struct cchijingbveg1 bveg1_; << 283 extern struct cchijingbveg1 bveg1_; 271 284 272 extern struct cchijingseedvax seedvax_; << 285 extern struct cchijingseedvax seedvax_; 273 286 274 extern struct cchijingranseed ranseed_; << 287 extern struct cchijingranseed ranseed_; 275 288 276 extern struct cchijinghijdat hijdat_; << 289 extern struct cchijinghijdat hijdat_; >> 290 >> 291 extern struct cchijinghipyint hipyint_; 277 292 278 extern struct cchijinghipyint hipyint_; << 279 } 293 } 280 294 281 #endif 295 #endif >> 296 282 297