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 // * 20 // * * 21 // * Parts of this code which have been devel 21 // * Parts of this code which have been developed by Abdel-Waged * 22 // * et al under contract (31-465) to the King 22 // * et al under contract (31-465) to the King Abdul-Aziz City for * 23 // * Science and Technology (KACST), the Natio 23 // * Science and Technology (KACST), the National Centre of * 24 // * Mathematics and Physics (NCMP), Saudi Ara 24 // * Mathematics and Physics (NCMP), Saudi Arabia. * 25 // * 25 // * * 26 // * By using, copying, modifying or distri 26 // * By using, copying, modifying or distributing the software (or * 27 // * any work based on the software) you ag 27 // * any work based on the software) you agree to acknowledge its * 28 // * use in resulting scientific publicati 28 // * use in resulting scientific publications, and indicate your * 29 // * acceptance of all terms of the Geant4 Sof 29 // * acceptance of all terms of the Geant4 Software license. * 30 // ******************************************* 30 // ******************************************************************** 31 // 31 // 32 /// \file hadronic/Hadr02/include/G4UrQMD1_3In 32 /// \file hadronic/Hadr02/include/G4UrQMD1_3Interface.hh 33 /// \brief Definition of the G4UrQMD1_3Interfa 33 /// \brief Definition of the G4UrQMD1_3Interface class 34 // 34 // 35 // << 36 << 37 #ifndef G4UrQMD1_3Interface_hh 35 #ifndef G4UrQMD1_3Interface_hh 38 #define G4UrQMD1_3Interface_hh 36 #define G4UrQMD1_3Interface_hh 39 37 40 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 38 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 41 // 39 // 42 // MODULE: G4UrQMD1_3Model.hh 40 // MODULE: G4UrQMD1_3Model.hh 43 // 41 // 44 // Version: 0.B 42 // Version: 0.B 45 // Date: 20/12/12 43 // Date: 20/12/12 46 // Author: Kh. Abdel-Waged and Nuha 44 // Author: Kh. Abdel-Waged and Nuha Felemban 47 // Revised by: V.V. Uzhinskii 45 // Revised by: V.V. Uzhinskii 48 // SPONSERED BY 46 // SPONSERED BY 49 // Customer: KAUST/NCMP 47 // Customer: KAUST/NCMP 50 // Contract: 31-465 48 // Contract: 31-465 51 // 49 // 52 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 50 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 53 // 51 // 54 // 52 // 55 // Class Description 53 // Class Description 56 // 54 // 57 // 55 // 58 // Class Description - End 56 // Class Description - End 59 // 57 // 60 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 58 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61 ////////////////////////////////////////////// 59 /////////////////////////////////////////////////////////////////////////////// 62 << 63 #include "G4SystemOfUnits.hh" << 64 #include "globals.hh" 60 #include "globals.hh" 65 << 66 // coms 61 // coms 67 // 62 // 68 const G4int nmax = 500; << 63 const G4int nmax = 500; 69 const G4int nspl = 500; << 64 const G4int nspl = 500; 70 const G4int smax = 500; << 65 const G4int smax = 500; 71 // comres 66 // comres 72 const G4int minnuc = 1; << 67 const G4int minnuc=1; 73 const G4int minmes = 100; << 68 const G4int minmes=100; 74 const G4int maxmes = 132; << 69 const G4int maxmes=132; 75 const G4int numnuc = 16; << 70 const G4int numnuc=16; 76 const G4int numdel = 10; << 71 const G4int numdel=10; 77 const G4int maxnuc = minnuc + numnuc - 1; << 72 const G4int maxnuc=minnuc+numnuc-1; 78 const G4int mindel = minnuc + maxnuc; << 73 const G4int mindel=minnuc+maxnuc; 79 const G4int maxdel = mindel + numdel - 1; << 74 const G4int maxdel=mindel+numdel-1; 80 const G4int minres = minnuc + 1; << 75 const G4int minres=minnuc+1; 81 const G4int maxres = maxdel; << 76 const G4int maxres=maxdel; 82 const G4int numlam = 13; << 77 const G4int numlam=13; 83 const G4int numsig = 9; << 78 const G4int numsig=9; 84 const G4int numcas = 6; << 79 const G4int numcas=6; 85 const G4int numome = 1; << 80 const G4int numome=1; 86 const G4int minlam = mindel + numdel; << 81 const G4int minlam=mindel+numdel; 87 const G4int maxlam = minlam + numlam - 1; << 82 const G4int maxlam=minlam+numlam-1; 88 const G4int minsig = minlam + numlam; << 83 const G4int minsig=minlam+numlam; 89 const G4int maxsig = minsig + numsig - 1; << 84 const G4int maxsig=minsig+numsig-1; 90 const G4int mincas = minsig + numsig; << 85 const G4int mincas=minsig+numsig; 91 const G4int maxcas = mincas + numcas - 1; << 86 const G4int maxcas=mincas+numcas-1; 92 const G4int minome = mincas + numcas; << 87 const G4int minome=mincas+numcas; 93 const G4int maxome = minome + numome - 1; << 88 const G4int maxome=minome+numome-1; 94 const G4int minbar = minnuc; << 89 const G4int minbar=minnuc; 95 const G4int maxbar = maxome; << 90 const G4int maxbar=maxome; 96 const G4int offmeson = minmes; << 91 const G4int offmeson=minmes; 97 const G4int maxmeson = maxmes; << 92 const G4int maxmeson=maxmes; 98 const G4int maxbra = 11; << 93 const G4int maxbra=11; 99 const G4int maxbrm = 25; << 94 const G4int maxbrm=25; 100 const G4int maxbrs1 = 10; << 95 const G4int maxbrs1=10; 101 const G4int maxbrs2 = 3; << 96 const G4int maxbrs2=3; 102 const G4int nsigs = 10; << 97 const G4int nsigs = 10; 103 const G4int itblsz = 100; << 98 const G4int itblsz= 100; 104 const G4int maxreac = 13; << 99 const G4int maxreac = 13; 105 const G4int maxpsig = 12; << 100 const G4int maxpsig = 12; 106 // << 101 // 107 // comwid << 102 //comwid 108 // << 103 // 109 const G4int widnsp = 120; << 104 const G4int widnsp=120; 110 const G4double mintab = 0.10; << 105 const G4double mintab=0.10; 111 const G4double maxtab1 = 5.0; << 106 const G4double maxtab1=5.0; 112 const G4double maxtab2 = 50.0; << 107 const G4double maxtab2=50.0; 113 const G4int tabver = 9; << 108 const G4int tabver=9; 114 // 109 // 115 // options 110 // options 116 // 111 // 117 const G4int numcto = 400; << 112 const G4int numcto=400; 118 const G4int numctp = 400; << 113 const G4int numctp=400; 119 const G4int maxstables = 20; << 114 const G4int maxstables=20; 120 // 115 // 121 // colltab (collision tables) 116 // colltab (collision tables) 122 // 117 // 123 const G4int ncollmax = 100; 118 const G4int ncollmax = 100; 124 // << 119 // 125 // inputs 120 // inputs 126 // 121 // 127 const G4int aamax = 300; << 122 const G4int aamax=300; 128 // 123 // 129 // newpart (new created particles) 124 // newpart (new created particles) 130 // 125 // 131 const G4int mprt = 200; << 126 const G4int mprt=200; 132 const G4int oprt = 2; << 127 const G4int oprt=2; 133 // 128 // 134 // boxinc 129 // boxinc 135 // 130 // 136 const G4int bptmax = 20; << 131 const G4int bptmax=20; 137 // 132 // 138 133 139 // This next line is required as the default v 134 // This next line is required as the default version of FORTRAN LOGICAL is 140 // four bytes long, whereas storage for G4bool 135 // four bytes long, whereas storage for G4bool is one byte. 141 // 136 // 142 // comnorm 137 // comnorm 143 const G4int n = 400; 138 const G4int n = 400; 144 // 139 // 145 // comstr 140 // comstr 146 const G4int njspin = 8; << 141 const G4int njspin=8; 147 // 142 // 148 // iso << 143 //iso 149 const G4int jmax = 7; << 144 const G4int jmax=7; 150 145 151 // This next line is required as the default v 146 // This next line is required as the default version of FORTRAN LOGICAL is 152 // four bytes long, whereas storage for G4bool 147 // four bytes long, whereas storage for G4bool is one byte. 153 // 148 // 154 149 155 typedef G4int ftnlogical; 150 typedef G4int ftnlogical; 156 151 157 //....oooOO0OOooo........oooOO0OOooo........oo << 158 // 152 // 159 // Standard common block for UrQMD 153 // Standard common block for UrQMD 160 // Common options for coms.f 154 // Common options for coms.f 161 // 20 commons 155 // 20 commons 162 // 156 // 163 // 157 // 164 struct ccurqmd13urqmdparams 158 struct ccurqmd13urqmdparams 165 { 159 { 166 G4int u_at, u_zt, u_ap, u_zp; << 160 G4int u_at,u_zt,u_ap,u_zp; 167 G4double u_elab, u_imp; << 161 G4double u_elab,u_imp; 168 G4int u_sptar, u_spproj; << 162 G4int u_sptar,u_spproj; 169 }; 163 }; 170 164 171 //....oooOO0OOooo........oooOO0OOooo........oo << 172 << 173 struct ccurqmd13sys 165 struct ccurqmd13sys 174 { 166 { 175 G4int npart, nbar, nmes, ctag, nsteps, uid << 167 176 nhardres, nsoftres, ndecres, nelcoll, nb << 168 G4int npart, nbar, nmes, ctag,nsteps,uid_cnt, >> 169 ranseed,event,ap,at,zp,zt,eos,dectag, >> 170 nhardres, nsoftres, ndecres, nelcoll, nblcoll; 177 }; 171 }; 178 172 179 //....oooOO0OOooo........oooOO0OOooo........oo << 180 173 181 struct ccurqmd13rsys 174 struct ccurqmd13rsys 182 { 175 { 183 G4double time, acttime, bdist, bimp, bmin, << 176 G4double time,acttime,bdist,bimp,bmin,ebeam,ecm; 184 }; 177 }; 185 178 186 struct ccurqmd13comseed 179 struct ccurqmd13comseed 187 { 180 { 188 ftnlogical firstseed; << 181 ftnlogical >> 182 firstseed; 189 }; 183 }; 190 184 191 //....oooOO0OOooo........oooOO0OOooo........oo << 185 192 186 193 struct ccurqmd13logic 187 struct ccurqmd13logic 194 { 188 { 195 ftnlogical lsct[nmax], logSky, logYuk, log << 189 ftnlogical 196 }; << 190 lsct[nmax], logSky, logYuk, logCb, logPau; 197 191 198 //....oooOO0OOooo........oooOO0OOooo........oo << 192 }; 199 193 200 struct ccurqmd13mdprop 194 struct ccurqmd13mdprop 201 { 195 { 202 G4double r0_t[nmax], rx_t[nmax], ry_t[nmax << 196 G4double >> 197 r0_t[nmax], rx_t[nmax], ry_t[nmax], rz_t[nmax]; 203 }; 198 }; 204 199 205 //....oooOO0OOooo........oooOO0OOooo........oo << 206 200 207 struct ccurqmd13cuts 201 struct ccurqmd13cuts 208 { 202 { 209 G4double cutmax, cutPau, cutCb, cutYuk, cu << 203 G4double >> 204 cutmax, cutPau, cutCb, cutYuk, cutSky, cutdww; 210 }; 205 }; 211 206 212 //....oooOO0OOooo........oooOO0OOooo........oo << 213 207 214 struct ccurqmd13spdata 208 struct ccurqmd13spdata 215 { 209 { 216 G4double spx[nspl], spPauy[nspl], outPau[n << 210 G4double 217 outYuk[nspl], spSkyy[nspl], outSky[nspl] << 211 spx[nspl], spPauy[nspl], outPau[nspl], >> 212 spCby[nspl], outCb[nspl], >> 213 spYuky[nspl], outYuk[nspl], >> 214 spSkyy[nspl], outSky[nspl], >> 215 spdwwy[nspl], outdww[nspl]; 218 }; 216 }; 219 217 220 //....oooOO0OOooo........oooOO0OOooo........oo << 221 218 222 struct ccurqmd13isys 219 struct ccurqmd13isys 223 { 220 { 224 G4int spin[nmax], ncoll[nmax], charge[nmax << 221 225 origin[nmax], strid[nmax], uid[nmax]; << 222 G4int spin[nmax],ncoll[nmax],charge[nmax],ityp[nmax], >> 223 lstcoll[nmax], >> 224 iso3[nmax],origin[nmax],strid[nmax],uid[nmax]; 226 }; 225 }; 227 226 228 //....oooOO0OOooo........oooOO0OOooo........oo << 229 227 230 struct ccurqmd13coor 228 struct ccurqmd13coor 231 { 229 { 232 G4double r0[nmax], rx[nmax], ry[nmax], rz[ << 230 G4double 233 fmass[nmax], rww[nmax], dectime[nmax]; << 231 r0[nmax], rx[nmax], ry[nmax], rz[nmax], >> 232 p0[nmax], px[nmax], py[nmax], pz[nmax], >> 233 fmass[nmax], rww[nmax],dectime[nmax]; 234 }; 234 }; 235 235 236 //....oooOO0OOooo........oooOO0OOooo........oo << 237 << 238 struct ccurqmd13frag 236 struct ccurqmd13frag 239 { 237 { 240 G4double tform[nmax], xtotfac[nmax]; << 238 G4double >> 239 tform[nmax], xtotfac[nmax]; 241 }; 240 }; 242 241 243 //....oooOO0OOooo........oooOO0OOooo........oo << 244 << 245 struct ccurqmd13aios 242 struct ccurqmd13aios 246 { 243 { 247 G4double airx[nmax], airy[nmax], airz[nmax << 244 G4double 248 aory[4][nmax], aorz[4][nmax], aopx[4][nm << 245 airx[nmax], airy[nmax], airz[nmax], >> 246 aipx[nmax], aipy[nmax], aipz[nmax], >> 247 aorx [4][nmax], aory[4][nmax], aorz[4][nmax], >> 248 aopx[4][nmax], aopy[4][nmax], aopz[4][nmax]; 249 }; 249 }; 250 250 251 //....oooOO0OOooo........oooOO0OOooo........oo << 252 251 253 struct ccurqmd13pots 252 struct ccurqmd13pots 254 { 253 { 255 G4double Cb0, Yuk0, Pau0, Sky20, Sky30, ga << 256 da, db, dtimestep; << 257 }; << 258 254 259 //....oooOO0OOooo........oooOO0OOooo........oo << 255 G4double >> 256 Cb0, Yuk0, Pau0, Sky20, Sky30, gamSky, >> 257 gamYuk, drPau, dpPau, gw, sgw, delr, fdel, >> 258 dt,da, db,dtimestep; >> 259 }; 260 260 261 struct ccurqmd13scoor 261 struct ccurqmd13scoor 262 { 262 { 263 G4double r0s[smax], rxs[smax], rys[smax], << 264 sfmass[smax]; << 265 }; << 266 263 267 //....oooOO0OOooo........oooOO0OOooo........oo << 264 G4double >> 265 r0s[smax], rxs[smax], rys[smax], rzs[smax], >> 266 p0s[smax], pxs[smax], pys[smax], pzs[smax], >> 267 sfmass[smax]; >> 268 }; 268 269 269 struct ccurqmd13sisys 270 struct ccurqmd13sisys 270 { 271 { 271 G4int sspin[smax], scharge[smax], sityp[sm << 272 G4int >> 273 sspin[smax], scharge[smax], sityp[smax], siso3[smax], >> 274 suid[smax]; 272 }; 275 }; 273 276 274 //....oooOO0OOooo........oooOO0OOooo........oo << 275 277 276 struct ccurqmd13ssys 278 struct ccurqmd13ssys 277 { 279 { 278 G4int nspec; << 280 G4int nspec; 279 }; 281 }; 280 282 281 //....oooOO0OOooo........oooOO0OOooo........oo << 282 << 283 struct ccurqmd13rtdelay 283 struct ccurqmd13rtdelay 284 { 284 { 285 G4double p0td[nmax][2], pxtd[nmax][2], pyt << 285 G4double >> 286 p0td[nmax][2],pxtd[nmax][2],pytd[nmax][2],pztd[nmax][2], >> 287 fmasstd[nmax][2]; 286 }; 288 }; 287 289 288 //....oooOO0OOooo........oooOO0OOooo........oo << 289 290 290 struct ccurqmd13itdelay 291 struct ccurqmd13itdelay 291 { 292 { 292 G4int ityptd[nmax][2], iso3td[nmax][2]; << 293 G4int >> 294 ityptd[nmax][2],iso3td[nmax][2]; 293 }; 295 }; 294 296 295 //....oooOO0OOooo........oooOO0OOooo........oo << 296 << 297 struct ccurqmd13svinfo 297 struct ccurqmd13svinfo 298 { 298 { 299 G4int itypt[2], uidt[2], origint[2], iso3t << 299 G4int >> 300 itypt[2],uidt[2],origint[2],iso3t[2]; 300 }; 301 }; 301 302 302 //....oooOO0OOooo........oooOO0OOooo........oo << 303 303 304 struct ccurqmd13ffermi 304 struct ccurqmd13ffermi 305 { 305 { 306 G4double ffermpx[nmax], ffermpy[nmax], ffe << 306 G4double >> 307 ffermpx[nmax], ffermpy[nmax], ffermpz[nmax]; 307 }; 308 }; 308 309 309 //....oooOO0OOooo........oooOO0OOooo........oo << 310 << 311 struct ccurqmd13peq 310 struct ccurqmd13peq 312 { 311 { 313 G4double peq1, peq2; << 312 G4double peq1, peq2; 314 }; 313 }; 315 314 316 //....oooOO0OOooo........oooOO0OOooo........oo << 317 // 315 // 318 // Definition for Collision Term 316 // Definition for Collision Term 319 // Commons comres 317 // Commons comres 320 // 4 commons 318 // 4 commons 321 // 319 // 322 320 323 struct ccurqmd13versioning 321 struct ccurqmd13versioning 324 { 322 { 325 char versiontag[45]; << 323 char versiontag[45]; 326 }; 324 }; 327 325 328 //....oooOO0OOooo........oooOO0OOooo........oo << 329 326 330 struct ccurqmd13resonances 327 struct ccurqmd13resonances 331 { 328 { 332 G4double massres[maxbar - minbar + 1], wid << 333 G4double massmes[maxmes - minmes + 1]; << 334 G4double widmes[maxmes - minmes + 1]; << 335 G4double mmesmn[maxmes - minmes + 1]; << 336 G4double branres[maxdel - minnuc][maxbra + << 337 G4double branmes[maxmes - minmes][maxbrm + << 338 << 339 G4double branbs1[maxsig - minlam][maxbrs1 << 340 G4double branbs2[maxcas - mincas][maxbrs2 << 341 << 342 G4int bs1type[maxbrs1 + 1][4], bs2type[max << 343 G4int lbs1[maxsig - minlam][maxbrs1 + 1]; << 344 G4int lbs2[maxcas - mincas][maxbrs2 + 1]; << 345 G4int lbm[maxmes - minmes][maxbrm + 1]; << 346 << 347 G4int jres[maxbar - minbar + 1]; << 348 G4int jmes[maxmes - minmes + 1]; << 349 G4int lbr[maxdel - minnuc][maxbra + 1]; << 350 G4int brtype[maxbra + 1][4]; << 351 G4int pares[maxbar - minbar + 1], pames[ma << 352 G4int bmtype[maxbrm + 1][4]; << 353 G4int isores[maxbar - minbar + 1], isomes[ << 354 G4int strres[maxbar - minbar + 1], strmes[ << 355 G4int mlt2it[maxmes - minmes]; << 356 }; << 357 329 358 //....oooOO0OOooo........oooOO0OOooo........oo << 330 G4double massres[maxbar-minbar+1],widres[maxbar-minbar+1]; >> 331 G4double massmes[maxmes-minmes+1]; >> 332 G4double widmes[maxmes-minmes+1]; >> 333 G4double mmesmn[maxmes-minmes+1]; >> 334 G4double branres[maxdel-minnuc][maxbra+1]; >> 335 G4double branmes[maxmes-minmes][maxbrm+1]; >> 336 >> 337 G4double branbs1[maxsig-minlam][maxbrs1+1]; >> 338 G4double branbs2[maxcas-mincas][maxbrs2+1]; >> 339 >> 340 G4int bs1type[maxbrs1+1][4],bs2type[maxbrs2+1][4]; >> 341 G4int lbs1[maxsig-minlam][maxbrs1+1]; >> 342 G4int lbs2[maxcas-mincas][maxbrs2+1]; >> 343 G4int lbm[maxmes-minmes][maxbrm+1]; >> 344 >> 345 G4int jres[maxbar-minbar+1]; >> 346 G4int jmes[maxmes-minmes+1]; >> 347 G4int lbr[maxdel-minnuc][maxbra+1]; >> 348 G4int brtype[maxbra+1][4]; >> 349 G4int pares[maxbar-minbar+1],pames[maxmes-minmes+1]; >> 350 G4int bmtype[maxbrm+1][4]; >> 351 G4int isores[maxbar-minbar+1], isomes[maxmes-minmes+1]; >> 352 G4int strres[maxbar-minbar+1],strmes[maxmes-minmes+1]; >> 353 G4int mlt2it[maxmes-minmes]; >> 354 }; 359 355 360 struct ccurqmd13sigtabi 356 struct ccurqmd13sigtabi 361 { 357 { 362 G4int sigmaln[maxreac][2][maxpsig]; << 358 G4int sigmaln[maxreac][2][maxpsig]; 363 G4int sigmainf[20][nsigs]; << 359 G4int sigmainf[20][nsigs]; 364 }; 360 }; 365 361 366 //....oooOO0OOooo........oooOO0OOooo........oo << 367 362 368 struct ccurqmd13sigtabr << 363 struct ccurqmd13sigtabr 369 { 364 { 370 G4double sigmas[itblsz][nsigs], sigmascal[ << 371 }; << 372 365 373 //....oooOO0OOooo........oooOO0OOooo........oo << 366 G4double sigmas[itblsz][nsigs],sigmascal[5][nsigs]; >> 367 }; 374 368 375 // comwid << 369 //comwid 376 struct ccurqmd13decaywidth 370 struct ccurqmd13decaywidth 377 { 371 { 378 G4double tabx[widnsp]; << 372 G4double tabx [widnsp]; 379 G4double fbtaby[2][maxbar - minbar + 1][wi << 373 G4double fbtaby [2][maxbar-minbar+1][widnsp]; 380 G4double pbtaby[maxbra + 1][maxbar - minba << 374 G4double pbtaby[maxbra+1][maxbar-minbar+1][2][widnsp]; 381 G4double fmtaby[2][maxmes - minmes + 1][wi << 375 G4double fmtaby [2][maxmes-minmes+1][widnsp]; 382 G4double pmtaby[maxbrm + 1][maxmes - minme << 376 G4double pmtaby [maxbrm+1][maxmes-minmes+1][2][widnsp]; 383 G4int wtabflg; << 377 G4int wtabflg; >> 378 384 }; 379 }; 385 380 386 //....oooOO0OOooo........oooOO0OOooo........oo << 387 381 388 struct ccurqmd13brwignorm 382 struct ccurqmd13brwignorm 389 { 383 { 390 G4double bwbarnorm[maxbar - minbar + 1]; << 384 G4double bwbarnorm[maxbar-minbar+1]; 391 G4double bwmesnorm[maxmes - minmes + 1]; << 385 G4double bwmesnorm[maxmes-minmes+1]; 392 }; 386 }; 393 387 394 //....oooOO0OOooo........oooOO0OOooo........oo << 395 388 396 struct ccurqmd13xsections 389 struct ccurqmd13xsections 397 { 390 { 398 G4double tabxnd[widnsp]; << 391 G4double tabxnd [widnsp]; 399 G4double frrtaby[maxdel - 1][2][2][widnsp] << 392 G4double frrtaby[maxdel-1][2][2][widnsp]; 400 }; 393 }; 401 394 402 //....oooOO0OOooo........oooOO0OOooo........oo << 403 395 404 struct ccurqmd13tabnames 396 struct ccurqmd13tabnames 405 { 397 { 406 char tabname[77]; << 398 char tabname[77]; 407 }; 399 }; 408 << 400 //----------------- 409 //....oooOO0OOooo........oooOO0OOooo........oo << 410 // 401 // 411 // options 402 // options 412 // 403 // 413 struct ccurqmd13options 404 struct ccurqmd13options 414 { 405 { 415 G4int CTOption[numcto]; << 406 G4int CTOption[numcto]; 416 G4double CTParam[numctp]; << 407 >> 408 G4double CTParam[numctp]; 417 }; 409 }; 418 410 419 //....oooOO0OOooo........oooOO0OOooo........oo << 420 411 421 struct ccurqmd13optstrings 412 struct ccurqmd13optstrings 422 { 413 { 423 char ctodc[numcto][2]; << 414 char ctodc[numcto][2]; 424 char ctpdc[numctp][2]; << 415 char ctpdc[numctp][2]; 425 }; 416 }; 426 417 427 //....oooOO0OOooo........oooOO0OOooo........oo << 428 << 429 struct ccurqmd13loptions 418 struct ccurqmd13loptions 430 { 419 { 431 ftnlogical fixedseed, bf13, bf14, bf15, bf << 420 ftnlogical >> 421 fixedseed,bf13,bf14,bf15,bf16,bf17,bf18,bf19, >> 422 bf20; 432 }; 423 }; 433 424 434 //....oooOO0OOooo........oooOO0OOooo........oo << 435 << 436 struct ccurqmd13stables 425 struct ccurqmd13stables 437 { 426 { 438 G4int nstable; << 427 G4int nstable; 439 G4int stabvec[maxstables]; << 428 G4int stabvec[maxstables]; 440 }; 429 }; 441 430 442 //....oooOO0OOooo........oooOO0OOooo........oo << 443 // 431 // 444 // colltab << 432 //colltab 445 // 433 // 446 struct ccurqmd13colltab 434 struct ccurqmd13colltab 447 { 435 { 448 G4double cttime[ncollmax + 1], ctsqrts[nco << 436 G4double 449 G4int cti1[ncollmax], cti2[ncollmax]; << 437 cttime[ncollmax+1],ctsqrts[ncollmax], 450 G4int nct, actcol; << 438 ctsigtot[ncollmax],tmin; 451 ftnlogical ctvalid[ncollmax]; << 439 G4int 452 G4int ctsav[ncollmax]; << 440 cti1[ncollmax],cti2[ncollmax]; 453 G4int nsav, apt; << 441 G4int 454 G4double ctcolfluc[ncollmax]; << 442 nct,actcol; >> 443 ftnlogical >> 444 ctvalid[ncollmax]; >> 445 G4int >> 446 ctsav[ncollmax]; >> 447 G4int >> 448 nsav,apt; >> 449 G4double >> 450 ctcolfluc[ncollmax]; 455 }; 451 }; 456 452 457 //....oooOO0OOooo........oooOO0OOooo........oo << 458 // 453 // 459 // inputs 454 // inputs 460 // 455 // 461 struct ccurqmd13inputs 456 struct ccurqmd13inputs 462 { 457 { 463 G4int nevents, spityp[2], prspflg; << 458 G4int nevents,spityp[2],prspflg; 464 G4int trspflg, spiso3[2], outsteps, bflag, << 459 G4int trspflg,spiso3[2],outsteps,bflag,srtflag,efuncflag; 465 G4int nsrt, firstev, npb; << 460 G4int nsrt,firstev,npb; 466 }; 461 }; 467 462 468 //....oooOO0OOooo........oooOO0OOooo........oo << 469 << 470 struct ccurqmd13input2 463 struct ccurqmd13input2 471 { 464 { 472 G4double srtmin, srtmax, pbeam, betann, be << 465 G4double srtmin,srtmax,pbeam,betann,betatar,betapro; 473 G4double pbmin, pbmax; << 466 G4double pbmin,pbmax; 474 }; 467 }; 475 468 476 //....oooOO0OOooo........oooOO0OOooo........oo << 477 << 478 struct ccurqmd13protarints 469 struct ccurqmd13protarints 479 { 470 { 480 G4int pt_iso3[2][aamax], pt_ityp[2][aamax] << 481 G4int pt_charge[2][aamax], pt_aa[2], pt_ui << 482 }; << 483 471 484 //....oooOO0OOooo........oooOO0OOooo........oo << 472 G4int pt_iso3[2][aamax],pt_ityp[2][aamax],pt_spin[2][aamax]; >> 473 >> 474 G4int pt_charge[2][aamax],pt_aa[2],pt_uid[2][aamax]; >> 475 }; 485 476 486 struct ccurqmd13protarreals 477 struct ccurqmd13protarreals 487 { 478 { 488 G4double pt_r0[2][aamax], pt_rx[2][aamax], << 479 G4double pt_r0[2][aamax],pt_rx[2][aamax],pt_ry[2][aamax], 489 pt_dectime[2][aamax]; << 480 pt_rz[2][aamax],pt_fmass[2][aamax],pt_dectime[2][aamax]; 490 G4double pt_p0[2][aamax], pt_px[2][aamax], << 481 G4double pt_p0[2][aamax],pt_px[2][aamax],pt_py[2][aamax], 491 G4double pt_rho[2][aamax]; << 482 pt_pz[2][aamax]; 492 G4double pt_pmax[2][aamax]; << 483 G4double pt_rho[2][aamax]; >> 484 G4double pt_pmax[2][aamax]; 493 }; 485 }; 494 << 495 //....oooOO0OOooo........oooOO0OOooo........oo << 496 << 497 // newpart 486 // newpart 498 struct ccurqmd13inewpart 487 struct ccurqmd13inewpart 499 { 488 { 500 G4int itypnew[mprt], i3new[mprt], itot[mpr << 489 G4int itypnew[mprt],i3new[mprt],itot[mprt],inew[mprt],nexit; 501 G4int iline, strcount, pslot[oprt], nstrin << 490 G4int iline,strcount,pslot[oprt],nstring1, nstring2, 502 iso3old[oprt]; << 491 sidnew[mprt],itypold[oprt],iso3old[oprt]; 503 }; 492 }; 504 493 505 //....oooOO0OOooo........oooOO0OOooo........oo << 506 << 507 struct ccurqmd13rnewpart 494 struct ccurqmd13rnewpart 508 { 495 { 509 G4double pnew[mprt][5], xnew[mprt][4], bet << 496 G4double pnew[mprt][5],xnew[mprt][4],betax,betay,betaz, 510 pznn, pnn, mstring[2], pnnout, xtotfacol << 497 pold[oprt][5],p0nn,pxnn,pynn,pznn,pnn, mstring[2], 511 }; << 498 pnnout,xtotfacold[oprt]; 512 499 513 //....oooOO0OOooo........oooOO0OOooo........oo << 500 }; 514 501 515 struct ccurqmd13fnewpart 502 struct ccurqmd13fnewpart 516 { 503 { 517 G4double leadfac[mprt]; << 504 G4double leadfac[mprt]; 518 }; 505 }; 519 << 520 //....oooOO0OOooo........oooOO0OOooo........oo << 521 // 506 // 522 // boxinc 507 // boxinc 523 // 508 // 524 struct ccurqmd13boxic 509 struct ccurqmd13boxic 525 { 510 { 526 G4int cbox; << 511 G4int cbox; 527 G4int boxflag; << 512 G4int boxflag; 528 G4int mbox; << 513 G4int mbox; 529 G4int bptityp[bptmax], bptiso3[bptmax], bp << 514 G4int bptityp[bptmax],bptiso3[bptmax],bptpart[bptmax]; 530 G4int edensflag, para, solid, mbflag, mtes << 515 G4int edensflag,para,solid, mbflag,mtest; 531 }; 516 }; 532 517 533 //....oooOO0OOooo........oooOO0OOooo........oo << 534 << 535 struct ccurqmd13boxrc 518 struct ccurqmd13boxrc 536 { 519 { 537 G4double bptpmax[bptmax]; << 520 G4double bptpmax[bptmax]; 538 G4double edens; << 521 G4double edens; 539 G4double lbox; << 522 G4double lbox; 540 G4double lboxhalbe; << 523 G4double lboxhalbe; 541 G4double lboxd; << 524 G4double lboxd; 542 G4double mbp0, mbpx, mbpy, mbpz; << 525 G4double mbp0, mbpx, mbpy, mbpz; 543 }; 526 }; 544 << 545 //....oooOO0OOooo........oooOO0OOooo........oo << 546 // comnorm 527 // comnorm 547 struct ccurqmd13normsplin 528 struct ccurqmd13normsplin 548 { 529 { 549 G4double x_norm[n][4], y_norm[n][4]; << 530 G4double x_norm[n][4],y_norm[n][4]; 550 G4double y2a[n][4], y2b[n][4], dx; << 531 G4double y2a[n][4],y2b[n][4], dx; 551 }; 532 }; 552 << 553 //....oooOO0OOooo........oooOO0OOooo........oo << 554 // comstr 533 // comstr 555 struct ccurqmd13FRGSPA 534 struct ccurqmd13FRGSPA 556 { 535 { 557 G4double pjspns, pmix1s[njspin][3], pmix2s << 536 G4double >> 537 pjspns, pmix1s[njspin][3], pmix2s[njspin][3] >> 538 , pbars, parqls, parrs; 558 }; 539 }; 559 << 560 //....oooOO0OOooo........oooOO0OOooo........oo << 561 << 562 struct ccurqmd13FRGCPA 540 struct ccurqmd13FRGCPA 563 { 541 { 564 G4double pjspnc, pmix1c[njspin][3], pmix2c << 542 G4double >> 543 pjspnc, pmix1c[njspin][3], pmix2c[njspin][3], pbarc; 565 }; 544 }; 566 545 567 //....oooOO0OOooo........oooOO0OOooo........oo << 568 << 569 struct ccurqmd13coparm 546 struct ccurqmd13coparm 570 { 547 { 571 G4double parm[njspin]; << 548 G4double parm[njspin]; 572 }; 549 }; 573 550 574 //....oooOO0OOooo........oooOO0OOooo........oo << 575 << 576 struct ccurqmd13const 551 struct ccurqmd13const 577 { 552 { 578 G4double pi; << 553 G4double pi; 579 }; 554 }; 580 << 581 //....oooOO0OOooo........oooOO0OOooo........oo << 582 //// freezeout 555 //// freezeout 583 // 556 // 584 struct ccurqmd13frcoor 557 struct ccurqmd13frcoor 585 { 558 { 586 G4double frr0[nmax], frrx[nmax], frry[nmax << 559 G4double frr0[nmax], frrx[nmax], frry[nmax], frrz[nmax], 587 frpz[nmax]; << 560 frp0[nmax], frpx[nmax], frpy[nmax], frpz[nmax]; 588 }; 561 }; 589 562 590 //....oooOO0OOooo........oooOO0OOooo........oo << 591 // input 563 // input 592 struct ccurqmd13values 564 struct ccurqmd13values 593 { 565 { 594 G4double valint[1]; << 566 G4double valint[1]; 595 }; 567 }; 596 568 597 //....oooOO0OOooo........oooOO0OOooo........oo << 598 // cascinit 569 // cascinit 599 struct ccurqmd13ini 570 struct ccurqmd13ini 600 { 571 { 601 ftnlogical bcorr; << 572 ftnlogical bcorr; 602 }; 573 }; 603 574 604 //....oooOO0OOooo........oooOO0OOooo........oo << 575 605 // iso 576 // iso 606 struct ccurqmd13factorials 577 struct ccurqmd13factorials 607 { 578 { 608 G4double logfak[101]; << 579 G4double logfak[101]; 609 }; 580 }; 610 << 611 //....oooOO0OOooo........oooOO0OOooo........oo << 612 struct ccurqmd13cgks 581 struct ccurqmd13cgks 613 { 582 { 614 G4double cgktab[jmax + 1][2 * jmax + 1][2 << 583 >> 584 G4double cgktab[jmax+1][2*jmax+1][2*jmax+1][jmax+1][jmax+1]; 615 }; 585 }; 616 586 617 //....oooOO0OOooo........oooOO0OOooo........oo << 618 // UrQMD 587 // UrQMD 619 // 588 // 620 struct ccurqmd13energies 589 struct ccurqmd13energies 621 { 590 { 622 G4double ekinbar, ekinmes, esky2, esky3, e << 591 G4double ekinbar, ekinmes, esky2, esky3, >> 592 eyuk, ecb, epau; 623 }; 593 }; 624 594 625 //....oooOO0OOooo........oooOO0OOooo........oo << 595 >> 596 626 // urqmd 597 // urqmd 627 extern "C" 598 extern "C" 628 { 599 { 629 extern int time_(); << 600 extern int time_ (); 630 extern void loginit_(); << 601 extern void loginit_(); 631 extern void sseed_(int*); << 602 extern void sseed_ (int*); 632 extern void uinit_(int*); << 603 extern void uinit_ (int*); 633 extern void urqmd_(); << 604 extern void urqmd_ (); 634 extern int pdgid_(int*, int*); // ityp << 605 extern int pdgid_ (int*, int*); //ityp 635 << 606 636 extern void g4urqmdblockdata_(); << 607 extern void g4urqmdblockdata_ (); 637 << 608 638 // urqmdparams << 609 // urqmdparams 639 extern struct ccurqmd13urqmdparams urqmdpara << 610 extern struct ccurqmd13urqmdparams urqmdparams_; 640 // coms << 611 //coms 641 extern struct ccurqmd13sys sys_; << 612 extern struct ccurqmd13sys sys_; 642 extern struct ccurqmd13rsys rsys_; << 613 extern struct ccurqmd13rsys rsys_; 643 extern struct ccurqmd13comseed comseed_; << 614 extern struct ccurqmd13comseed comseed_; 644 extern struct ccurqmd13logic logic_; << 615 extern struct ccurqmd13logic logic_; 645 extern struct ccurqmd13mdprop mdprop_; << 616 extern struct ccurqmd13mdprop mdprop_; 646 extern struct ccurqmd13cuts cuts_; << 617 extern struct ccurqmd13cuts cuts_; 647 extern struct ccurqmd13spdata spdata_; << 618 extern struct ccurqmd13spdata spdata_; 648 extern struct ccurqmd13isys isys_; << 619 extern struct ccurqmd13isys isys_; 649 extern struct ccurqmd13coor coor_; << 620 extern struct ccurqmd13coor coor_; 650 extern struct ccurqmd13frag frag_; << 621 extern struct ccurqmd13frag frag_; 651 extern struct ccurqmd13aios aios_; << 622 extern struct ccurqmd13aios aios_; 652 extern struct ccurqmd13pots pots_; << 623 extern struct ccurqmd13pots pots_; 653 extern struct ccurqmd13scoor scoor_; << 624 extern struct ccurqmd13scoor scoor_; 654 extern struct ccurqmd13sisys sisys_; << 625 extern struct ccurqmd13sisys sisys_; 655 extern struct ccurqmd13ssys ssys_; << 626 extern struct ccurqmd13ssys ssys_; 656 extern struct ccurqmd13rtdelay rtdelay_; << 627 extern struct ccurqmd13rtdelay rtdelay_; 657 extern struct ccurqmd13itdelay itdelay_; << 628 extern struct ccurqmd13itdelay itdelay_; 658 extern struct ccurqmd13svinfo svinfo_; << 629 extern struct ccurqmd13svinfo svinfo_; 659 extern struct ccurqmd13ffermi ffermi_; << 630 extern struct ccurqmd13ffermi ffermi_; 660 extern struct ccurqmd13peq peq_; << 631 extern struct ccurqmd13peq peq_; 661 // comres << 632 //comres 662 extern struct ccurqmd13versioning versioning << 633 extern struct ccurqmd13versioning versioning_; 663 extern struct ccurqmd13resonances resonances << 634 extern struct ccurqmd13resonances resonances_; 664 extern struct ccurqmd13sigtabi sigtabi_; << 635 extern struct ccurqmd13sigtabi sigtabi_; 665 extern struct ccurqmd13sigtabr sigtabr_; << 636 extern struct ccurqmd13sigtabr sigtabr_; 666 << 637 667 // comwid << 638 //comwid 668 extern struct ccurqmd13decaywidth decaywidth << 639 extern struct ccurqmd13decaywidth decaywidth_; 669 extern struct ccurqmd13brwignorm brwignorm_; << 640 extern struct ccurqmd13brwignorm brwignorm_; 670 extern struct ccurqmd13xsections xsections_; << 641 extern struct ccurqmd13xsections xsections_; 671 extern struct ccurqmd13tabnames tabnames_; << 642 extern struct ccurqmd13tabnames tabnames_; 672 // options << 643 //options 673 extern struct ccurqmd13options options_; << 644 extern struct ccurqmd13options options_; 674 extern struct ccurqmd13optstrings optstrings << 645 extern struct ccurqmd13optstrings optstrings_; 675 extern struct ccurqmd13loptions loptions_; << 646 extern struct ccurqmd13loptions loptions_; 676 extern struct ccurqmd13stables stables_; << 647 extern struct ccurqmd13stables stables_; 677 // colltab << 648 //colltab 678 extern struct ccurqmd13colltab colltab_; << 649 extern struct ccurqmd13colltab colltab_; 679 // inputs << 650 //inputs 680 extern struct ccurqmd13inputs inputs_; << 651 extern struct ccurqmd13inputs inputs_; 681 extern struct ccurqmd13input2 input2_; << 652 extern struct ccurqmd13input2 input2_; 682 extern struct ccurqmd13protarints protarints << 653 extern struct ccurqmd13protarints protarints_; 683 extern struct ccurqmd13protarreals protarrea << 654 extern struct ccurqmd13protarreals protarreals_; 684 // newpart << 655 //newpart 685 extern struct ccurqmd13inewpart inewpart_; << 656 extern struct ccurqmd13inewpart inewpart_; 686 extern struct ccurqmd13rnewpart rnewpart_; << 657 extern struct ccurqmd13rnewpart rnewpart_; 687 extern struct ccurqmd13fnewpart fnewpart_; << 658 extern struct ccurqmd13fnewpart fnewpart_; 688 // bocinc << 659 //bocinc 689 extern struct ccurqmd13boxic boxic_; << 660 extern struct ccurqmd13boxic boxic_; 690 extern struct ccurqmd13boxrc boxrc_; << 661 extern struct ccurqmd13boxrc boxrc_; 691 // comnorm << 662 // comnorm 692 struct ccurqmd13normsplin normsplin_; << 663 struct ccurqmd13normsplin normsplin_; 693 // comstr << 664 //comstr 694 struct ccurqmd13FRGSPA FRGSPA_; << 665 struct ccurqmd13FRGSPA FRGSPA_; 695 struct ccurqmd13FRGCPA FRGCPA_; << 666 struct ccurqmd13FRGCPA FRGCPA_; 696 struct ccurqmd13coparm coparm_; << 667 struct ccurqmd13coparm coparm_; 697 struct ccurqmd13const const_; << 668 struct ccurqmd13const const_; 698 // freezeout << 669 // freezeout 699 struct ccurqmd13frcoor frcoor_; << 670 struct ccurqmd13frcoor frcoor_; 700 // urqmd << 671 //urqmd 701 extern struct ccurqmd13energies energies_; << 672 extern struct ccurqmd13energies energies_; 702 // input << 673 //input 703 extern struct ccurqmd13values values_; << 674 extern struct ccurqmd13values values_; 704 // cascinit << 675 // cascinit 705 extern struct ccurqmd13ini ini_; << 676 extern struct ccurqmd13ini ini_; 706 // iso << 677 //iso 707 extern struct ccurqmd13factorials factorials << 678 extern struct ccurqmd13factorials factorials_; 708 extern struct ccurqmd13cgks cgks_; << 679 extern struct ccurqmd13cgks cgks_; 709 } << 710 680 711 //....oooOO0OOooo........oooOO0OOooo........oo << 681 } >> 682 712 #endif 683 #endif 713 684