From 9ed1543d01056ba3beb260151b02ee3c3d915ae0 Mon Sep 17 00:00:00 2001 From: morsch Date: Wed, 13 Sep 2006 10:58:23 +0000 Subject: [PATCH] Updates needed for Fluka version 2006.3 --- TFluka/Fbeamcm.h | 86 +++++++++++++------------- TFluka/Fdblprc.h | 154 +++++++++++++++++++++++++---------------------- TFluka/Fdimpar.h | 63 ++++++++++--------- TFluka/Ffheavy.h | 36 +++++------ TFluka/Fgenstk.h | 38 ++++++------ TFluka/Fpaprop.h | 54 +++++++++-------- 6 files changed, 226 insertions(+), 205 deletions(-) diff --git a/TFluka/Fbeamcm.h b/TFluka/Fbeamcm.h index 5882b20db05..857e2847013 100644 --- a/TFluka/Fbeamcm.h +++ b/TFluka/Fbeamcm.h @@ -72,52 +72,54 @@ extern "C" { //* Lvlcar = logical flag for using a cartesian volume source * //* Lvlcyl = logical flag for using a cylindrical volume source * //* Lvlsph = logical flag for using a spherical volume source * -//* Lsourc = logical flag for a user written source routine * +//* Lsourc = logical flag for a user written source routine * +//* Lrdbea = logical flag for a radioactive isotope beam * 2006.3 //* * //*----------------------------------------------------------------------* typedef struct { - Double_t pbeam; - Double_t dpbeam; - Double_t pbmmax; - Double_t divbm; - Double_t xspot; - Double_t yspot; - Double_t xbeam; - Double_t ybeam; - Double_t zbeam; - Double_t ubeam; - Double_t vbeam; - Double_t wbeam; - Double_t ubmpol; - Double_t vbmpol; - Double_t wbmpol; - Double_t polfra; - Double_t beawei; - Double_t bmaxis[3][3]; - Double_t rvlmin; - Double_t rvlmax; - Double_t dxvlmn; - Double_t dxvlmx; - Double_t dyvlmn; - Double_t dyvlmx; - Double_t dzvlmn; - Double_t dzvlmx; - Int_t ijbeam; - Int_t ijhion; - Int_t ldpgss; - Int_t ldvgss; - Int_t ldxgss; - Int_t ldygss; - Int_t lbeamc; - Int_t lpperp; - Int_t lpfrac; - Int_t lbaxis; - Int_t lflood; - Int_t lvlcar; - Int_t lvlcyl; - Int_t lvlsph; - Int_t lsourc; + Double_t pbeam; + Double_t dpbeam; + Double_t pbmmax; + Double_t divbm; + Double_t xspot; + Double_t yspot; + Double_t xbeam; + Double_t ybeam; + Double_t zbeam; + Double_t ubeam; + Double_t vbeam; + Double_t wbeam; + Double_t ubmpol; + Double_t vbmpol; + Double_t wbmpol; + Double_t polfra; + Double_t beawei; + Double_t bmaxis[3][3]; + Double_t rvlmin; + Double_t rvlmax; + Double_t dxvlmn; + Double_t dxvlmx; + Double_t dyvlmn; + Double_t dyvlmx; + Double_t dzvlmn; + Double_t dzvlmx; + Int_t ijbeam; + Int_t ijhion; + Int_t ldpgss; + Int_t ldvgss; + Int_t ldxgss; + Int_t ldygss; + Int_t lbeamc; + Int_t lpperp; + Int_t lpfrac; + Int_t lbaxis; + Int_t lflood; + Int_t lvlcar; + Int_t lvlcyl; + Int_t lvlsph; + Int_t lsourc; + Int_t lrdbea; // 2006.3 } beamcmCommon; #define BEAMCM COMMON_BLOCK(BEAMCM,beamcm) COMMON_BLOCK_DEF(beamcmCommon,BEAMCM); diff --git a/TFluka/Fdblprc.h b/TFluka/Fdblprc.h index fdbf3b5ea57..37949b916dd 100644 --- a/TFluka/Fdblprc.h +++ b/TFluka/Fdblprc.h @@ -133,6 +133,7 @@ const Double_t rhflmn = 1.0e-10; //* twothi = 2/3 * //* thrfou = 3/4 * //* thrtwo = 3/2 * +//* two2o3 = 2^2/3 * //* pipipi = circumference / diameter * //* twopip = 2 x pipipi * //* pip5o2 = 5/2 x pipipi * @@ -155,55 +156,56 @@ const Double_t rhflmn = 1.0e-10; //* * //*----------------------------------------------------------------------* //* -const Float_t zersng = 0.e+00; -const Double_t zerzer = 0.e+00; -const Double_t oneone = 1.e+00; -const Double_t twotwo = 2.e+00; -const Double_t thrthr = 3.e+00; -const Double_t foufou = 4.e+00; -const Double_t fivfiv = 5.e+00; -const Double_t sixsix = 6.e+00; -const Double_t sevsev = 7.e+00; -const Double_t eigeig = 8.e+00; -const Double_t aninen = 9.e+00; -const Double_t tenten = 10.e+00; -const Double_t eleven = 11.e+00; -const Double_t twelve = 12.e+00; -const Double_t fiften = 15.e+00; -const Double_t sixten = 16.e+00; -const Double_t hlfhlf = 0.5e+00; -const Double_t onethi = oneone/thrthr; -const Double_t onefou = oneone/foufou; -const Double_t onefiv = oneone/fivfiv; -const Double_t onesix = oneone/sixsix; -const Double_t onesev = oneone/sevsev; -const Double_t oneeig = oneone/eigeig; -const Double_t twothi = twotwo/thrthr; -const Double_t thrfou = thrthr/foufou; -const Double_t thrtwo = thrthr/twotwo; -const Double_t fouthr = foufou/thrthr; -const Double_t pipipi = 3.141592653589793238462643383279e+00; -const Double_t twopip = 6.283185307179586476925286766559e+00; -const Double_t pip5o2 = 7.853981633974483096156608458199e+00; -const Double_t pipisq = 9.869604401089358618834490999876e+00; -const Double_t pihalf = 1.570796326794896619231321691640e+00; -const Double_t erfa00 = 0.886226925452758013649083741671e+00; -const Double_t sqrtpi = 1.772453850905516027298167483341e+00; -const Double_t sqtwpi = 2.506628274631000502415765284811e+00; -const Double_t eulero = 0.577215664901532860606512e+00; -const Double_t eulexp = 1.781072417990197985236504e+00; -const Double_t eullog = -0.5495393129816448223376619e+00; -const Double_t e1m2eu = 0.8569023337737540831433017e+00; -const Double_t eneper = 2.718281828459045235360287471353e+00; -const Double_t sqrent = 1.648721270700128146848650787814e+00; -const Double_t sqrtwo = 1.414213562373095048801688724210e+00; -const Double_t sqrthr = 1.732050807568877293527446341506e+00; -const Double_t sqrfiv = 2.236067977499789696409173668731e+00; -const Double_t sqrsix = 2.449489742783178098197284074706e+00; -const Double_t sqrsev = 2.645751311064590590501615753639e+00; -const Double_t sqrt12 = 3.464101615137754587054892683012e+00; -const Double_t s2fwhm = 2.354820045030949e+00; -const Double_t twolog = 0.693147180559945309417232121458e+00; + const Float_t zersng = 0.e+00; + const Double_t zerzer = 0.e+00; + const Double_t oneone = 1.e+00; + const Double_t twotwo = 2.e+00; + const Double_t thrthr = 3.e+00; + const Double_t foufou = 4.e+00; + const Double_t fivfiv = 5.e+00; + const Double_t sixsix = 6.e+00; + const Double_t sevsev = 7.e+00; + const Double_t eigeig = 8.e+00; + const Double_t aninen = 9.e+00; + const Double_t tenten = 10.e+00; + const Double_t eleven = 11.e+00; + const Double_t twelve = 12.e+00; + const Double_t fiften = 15.e+00; + const Double_t sixten = 16.e+00; + const Double_t hlfhlf = 0.5e+00; + const Double_t onethi = oneone/thrthr; + const Double_t onefou = oneone/foufou; + const Double_t onefiv = oneone/fivfiv; + const Double_t onesix = oneone/sixsix; + const Double_t onesev = oneone/sevsev; + const Double_t oneeig = oneone/eigeig; + const Double_t twothi = twotwo/thrthr; + const Double_t thrfou = thrthr/foufou; + const Double_t thrtwo = thrthr/twotwo; + const Double_t fouthr = foufou/thrthr; + const Double_t pipipi = 3.141592653589793238462643383279e+00; + const Double_t two2o3 = 1.587401051968199e+00; // 2006.3 + const Double_t twopip = 6.283185307179586476925286766559e+00; + const Double_t pip5o2 = 7.853981633974483096156608458199e+00; + const Double_t pipisq = 9.869604401089358618834490999876e+00; + const Double_t pihalf = 1.570796326794896619231321691640e+00; + const Double_t erfa00 = 0.886226925452758013649083741671e+00; + const Double_t sqrtpi = 1.772453850905516027298167483341e+00; + const Double_t sqtwpi = 2.506628274631000502415765284811e+00; + const Double_t eulero = 0.577215664901532860606512e+00; + const Double_t eulexp = 1.781072417990197985236504e+00; + const Double_t eullog = -0.5495393129816448223376619e+00; + const Double_t e1m2eu = 0.8569023337737540831433017e+00; + const Double_t eneper = 2.718281828459045235360287471353e+00; + const Double_t sqrent = 1.648721270700128146848650787814e+00; + const Double_t sqrtwo = 1.414213562373095048801688724210e+00; + const Double_t sqrthr = 1.732050807568877293527446341506e+00; + const Double_t sqrfiv = 2.236067977499789696409173668731e+00; + const Double_t sqrsix = 2.449489742783178098197284074706e+00; + const Double_t sqrsev = 2.645751311064590590501615753639e+00; + const Double_t sqrt12 = 3.464101615137754587054892683012e+00; + const Double_t s2fwhm = 2.354820045030949e+00; + const Double_t twolog = 0.693147180559945309417232121458e+00; //* //*======================================================================* //*======================================================================* @@ -222,11 +224,15 @@ const Double_t twolog = 0.693147180559945309417232121458e+00; //* plckbr = reduced planck constant (erg s) * //* elccgs = elementary charge (cgs unit) * //* elcmks = elementary charge (mks unit) * +//* epsil0 = vacuum dielectric constant (MKS unit) * //* amugrm = atomic mass unit (g) * //* ammumu = muon mass (amu) * //* amprmu = proton mass (amu) * //* amnemu = neutron mass (amu) * -//* * +//* * //* Note: * +//* e[MKS]^2/ (4 pi epsilon0 hbar[MKS] c[MKS]) = alpha = 1/137 * +//* e[CGS]^2/ (hbar[CGS] c[CGS]) = alpha = 1/137 * +//* with c[MKs] = 10^-2 c[CGS], hbar[MKS] = 10^-7 hbar[CGS] * //* derived constants: * //* * //* alpfsc = fine structure constant = e^2/(hbar c) (cgs units) * @@ -292,17 +298,18 @@ const Double_t twolog = 0.693147180559945309417232121458e+00; //* * //*----------------------------------------------------------------------* //* -const Double_t clight = 2.99792458e+10; -const Double_t avogad = 6.0221367e+23; -const Double_t boltzm = 1.380658e-23; -const Double_t amelgr = 9.1093897e-28; -const Double_t plckbr = 1.05457266e-27; -const Double_t elccgs = 4.8032068e-10; -const Double_t elcmks = 1.60217733e-19; -const Double_t amugrm = 1.6605402e-24; -const Double_t ammumu = 0.113428913e+00; -const Double_t amprmu = 1.007276470e+00; -const Double_t amnemu = 1.008664904e+00; + const Double_t clight = 2.99792458e+10; + const Double_t avogad = 6.0221367e+23; + const Double_t boltzm = 1.380658e-23; + const Double_t amelgr = 9.1093897e-28; + const Double_t plckbr = 1.05457266e-27; + const Double_t elccgs = 4.8032068e-10; + const Double_t elcmks = 1.60217733e-19; + const Double_t epsil0 = 8.854187817e-12; // 2006.3 + const Double_t amugrm = 1.6605402e-24; + const Double_t ammumu = 0.113428913e+00; + const Double_t amprmu = 1.007276470e+00; + const Double_t amnemu = 1.008664904e+00; //* const Double_t alpfsc = 1.e+00 / 137.035989561e+00 //* const Double_t fscto2 = alpfsc * alpfsc //* const Double_t fscto3 = fscto2 * alpfsc @@ -374,18 +381,19 @@ const Double_t amemev = gevmev * amelct; //* typedef struct { - Int_t lfluka; - Int_t lgbias; - Int_t lgbana; - Int_t lflgeo; - Int_t loflts; - Int_t lusrin; - Int_t lnmgeo; - Int_t lnminp; - Int_t lfrfmt; - Int_t lfdrtr; - Int_t kflgeo; - Int_t kfldnr; + Int_t lfluka; + Int_t lgbias; + Int_t lgbana; + Int_t lflgeo; + Int_t loflts; + Int_t lusrin; + Int_t lusrgl; // 2006.3 + Int_t lnmgeo; + Int_t lnminp; + Int_t lfrfmt; + Int_t lfdrtr; + Int_t kflgeo; + Int_t kfldnr; } globalCommon; #define GLOBAL COMMON_BLOCK(GLOBAL,global) COMMON_BLOCK_DEF(globalCommon,GLOBAL); diff --git a/TFluka/Fdimpar.h b/TFluka/Fdimpar.h index 9891f33e4cf..9bd5abd927a 100644 --- a/TFluka/Fdimpar.h +++ b/TFluka/Fdimpar.h @@ -53,41 +53,46 @@ extern "C" { //* * //*----------------------------------------------------------------------* -const Int_t mxxrgn = 10000; -const Int_t mxxmdf = 510; -const Int_t mxxmde = 502; -const Int_t mfstck = 6500; -const Int_t mestck = 100; -const Int_t mostck = 2000; -const Int_t mxprsn = 100; -const Int_t mxpdpm = 800; -const Int_t mxpscs = 4999; -const Int_t mxoutu = 50; -const Int_t nallwp = 64; -const Int_t nelemx = 80; -const Int_t mpdpdx = 18; -const Int_t mxhttr = 260; -const Int_t icomax = 1000; -const Int_t ichmax = icomax+mxxmdf; -const Int_t nstbis = 304; -const Int_t nqstis = 46; -const Int_t ntstis = nstbis + nqstis; + const Int_t mxxrgn = 10000; +// const Int_t mxxmdf = 510; +// const Int_t mxxmde = 502; + const Int_t mxxmdf = 710; // 2006.3 + const Int_t mxxmde = 702; // 2006.3 + const Int_t mfstck = 6500; + const Int_t mestck = 100; + const Int_t mostck = 2000; + const Int_t mxprsn = 100; + const Int_t mxpdpm = 800; + const Int_t mxpscs = 4999; + const Int_t mxoutu = 50; + const Int_t nallwp = 64; + const Int_t nelemx = 80; + const Int_t mpdpdx = 18; + const Int_t mxhttr = 260; + const Int_t mxseax = 20; // 2006.3 + const Int_t mxhtnc = mxseax + 1; // 2006.3 +// const Int_t icomax = 1000; + const Int_t icomax = 2400; // 2006.3 + const Int_t ichmax = icomax+mxxmdf; + const Int_t nstbis = 304; + const Int_t nqstis = 46; + const Int_t ntstis = nstbis + nqstis; //* till 3-aug-99: //* const Int_t mxpabl = 110; -const Int_t mxpabl = 120; -const Int_t idmaxp = 450; -const Int_t idmxdc = 2000; -const Int_t mxmcin = 410; -const Int_t ihypmx = 4; + const Int_t mxpabl = 120; + const Int_t idmaxp = 450; + const Int_t idmxdc = 2000; + const Int_t mxmcin = 410; + const Int_t ihypmx = 4; //* till 19-jul-2000: //* const Int_t mkbmx1 = 9; //* const Int_t mkbmx2 = 3; -const Int_t mkbmx1 = 11; -const Int_t mkbmx2 = 11; -const Int_t mxirrd = 20; -const Int_t mxtrdc = 50; -const Int_t nktl = 17; + const Int_t mkbmx1 = 11; + const Int_t mkbmx2 = 11; + const Int_t mxirrd = 20; + const Int_t mxtrdc = 50; + const Int_t nktl = 17; } #endif diff --git a/TFluka/Ffheavy.h b/TFluka/Ffheavy.h index 5f219e8f684..4fb3cb8653e 100644 --- a/TFluka/Ffheavy.h +++ b/TFluka/Ffheavy.h @@ -47,6 +47,7 @@ extern "C" { //* ihheav(kp) = number of hyperons of the kp-type heavy particle * //* khheav(jp,kp) = id of the jp_th hyperon of the kp-type heavy * //* particle * +//* infhea(ip) = possible extra infos for the ip_th secondary * 2006.3 //* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * //* !!! there is now the possibility to produce up to 6 "heavy" !!!! * //* !!! fragments besides the residual nucleus recorded in !!!! * @@ -60,23 +61,24 @@ const Int_t mxheav = 100; const Int_t kxheav = 30; typedef struct { - Double_t cxheav[mxheav]; - Double_t cyheav[mxheav]; - Double_t czheav[mxheav]; - Double_t tkheav[mxheav]; - Double_t pheavy[mxheav]; - Double_t wheavy[mxheav]; - Double_t agheav[mxheav]; - Double_t bhheav[kxheav][ihypmx]; - Double_t amheav[kxheav]; - Double_t amnhea[kxheav]; - Int_t kheavy[mxheav]; - Int_t icheav[kxheav]; - Int_t ibheav[kxheav]; - Int_t imheav[kxheav]; - Int_t ihheav[kxheav]; - Int_t khheav[kxheav][ihypmx]; - Int_t npheav; + Double_t cxheav[mxheav]; + Double_t cyheav[mxheav]; + Double_t czheav[mxheav]; + Double_t tkheav[mxheav]; + Double_t pheavy[mxheav]; + Double_t wheavy[mxheav]; + Double_t agheav[mxheav]; + Double_t bhheav[kxheav][ihypmx]; + Double_t amheav[kxheav]; + Double_t amnhea[kxheav]; + Int_t kheavy[mxheav]; + Int_t infhea[mxheav]; // 2006.3 + Int_t icheav[kxheav]; + Int_t ibheav[kxheav]; + Int_t imheav[kxheav]; + Int_t ihheav[kxheav]; + Int_t khheav[kxheav][ihypmx]; + Int_t npheav; } fheavyCommon; #define FHEAVY COMMON_BLOCK(FHEAVY,fheavy) COMMON_BLOCK_DEF(fheavyCommon,FHEAVY); diff --git a/TFluka/Fgenstk.h b/TFluka/Fgenstk.h index 3a253537dda..3362f8b04ed 100644 --- a/TFluka/Fgenstk.h +++ b/TFluka/Fgenstk.h @@ -51,6 +51,7 @@ //* 4-He) fragments after evaporation * //* Tvbind = approximate energy wasted in nuclear binding * //* effects (not yet operational) * +//* Infext (ip) = possible extra infos for the ip_th secondary * 2006.3 //* * //*----------------------------------------------------------------------* @@ -59,24 +60,25 @@ const Int_t mxp = mxpscs; //* typedef struct { - Double_t cxr[mxp]; - Double_t cyr[mxp]; - Double_t czr[mxp]; - Double_t cxrpol[mxp]; - Double_t cyrpol[mxp]; - Double_t czrpol[mxp]; - Double_t tki[mxp]; - Double_t plr[mxp]; - Double_t wei[mxp]; - Double_t agesec[mxp]; - Double_t tv; - Double_t tvcms; - Double_t tvrecl; - Double_t tvheav; - Double_t tvbind; - Int_t kpart[mxp]; - Int_t np0; - Int_t np; + Double_t cxr[mxp]; + Double_t cyr[mxp]; + Double_t czr[mxp]; + Double_t cxrpol[mxp]; + Double_t cyrpol[mxp]; + Double_t czrpol[mxp]; + Double_t tki[mxp]; + Double_t plr[mxp]; + Double_t wei[mxp]; + Double_t agesec[mxp]; + Double_t tv; + Double_t tvcms; + Double_t tvrecl; + Double_t tvheav; + Double_t tvbind; + Int_t kpart[mxp]; + Int_t infext[mxpscs]; + Int_t np0; + Int_t np; } genstkCommon; #define GENSTK COMMON_BLOCK(GENSTK,genstk) COMMON_BLOCK_DEF(genstkCommon,GENSTK); diff --git a/TFluka/Fpaprop.h b/TFluka/Fpaprop.h index 16f189fa233..dc2d809ed41 100644 --- a/TFluka/Fpaprop.h +++ b/TFluka/Fpaprop.h @@ -32,7 +32,7 @@ extern "C" { //* ichrge(i) = electric charge of the i_th particle * //* ibarch(i) = baryonic charge of the i_th particle * //* iscore(j) = id for the j_th scored distribution * - //* genpar(k) = name of the k_th generalized particle type * + //* gnname(k) = name of the k_th generalized particle type * 2006.3 //* ijdisc(i) = flag for discarding the i_th particle type * //* tmnlf (i) = mean (not half!) life of the i_th particle (s) * //* biasdc(i) = decay biasing factor for the i_th particle * @@ -57,34 +57,36 @@ extern "C" { //*----------------------------------------------------------------------* -const Int_t mxgnpr = 33; -typedef struct { - Double_t am[nallwp+7]; //(-6:NALLWP) - Double_t amdisc[nallwp+7]; //(-6:NALLWP) - Double_t tmnlf[nallwp+7]; //(-6:NALLWP) - Double_t biasdc[nallwp+7]; //(-6:NALLWP) - Double_t biasin[nallwp+7]; //(-6:NALLWP) - Int_t ichrge[nallwp+7]; //(-6:NALLWP) - Int_t ibarch[nallwp+7]; //(-6:NALLWP) - Int_t ijdisc[nallwp+7]; //(-6:NALLWP) - Int_t jspinp[nallwp+7]; //(-6:NALLWP) - Int_t iparty[nallwp+7]; //(-6:NALLWP) - Int_t iparid[nallwp+7]; //(-6:NALLWP) - Int_t lhadro[nallwp+7]; //(-6:NALLWP) - Int_t lbsdcy[nallwp+7]; //(-6:NALLWP) - Int_t iscore[12]; - Int_t lprbsd; - Int_t lprbsi; - Int_t lsclwf; - Int_t lscnbl; -} papropCommon; +// const Int_t mxgnpr = 33; // 2006.3 + const Int_t mxgnpr = 35; + typedef struct { + Double_t am[nallwp+7]; //(-6:NALLWP) + Double_t amdisc[nallwp+7]; //(-6:NALLWP) + Double_t tmnlf[nallwp+7]; //(-6:NALLWP) + Double_t biasdc[nallwp+7]; //(-6:NALLWP) + Double_t biasin[nallwp+7]; //(-6:NALLWP) + Int_t ichrge[nallwp+7]; //(-6:NALLWP) + Int_t ibarch[nallwp+7]; //(-6:NALLWP) + Int_t ijdisc[nallwp+7]; //(-6:NALLWP) + Int_t jspinp[nallwp+7]; //(-6:NALLWP) + Int_t iparty[nallwp+7]; //(-6:NALLWP) + Int_t iparid[nallwp+7]; //(-6:NALLWP) + Int_t lhadro[nallwp+7]; //(-6:NALLWP) + Int_t lbsdcy[nallwp+7]; //(-6:NALLWP) + Int_t iscore[12]; + Int_t lprbsd; + Int_t lprbsi; + Int_t lsclwf; + Int_t lscnbl; + } papropCommon; #define PAPROP COMMON_BLOCK(PAPROP,paprop) COMMON_BLOCK_DEF(papropCommon,PAPROP); -typedef struct { - Char_t btype[nallwp+7][8]; //(-6:NALLWP) - Char_t genpar[mxgnpr][8]; //(30) -} chpprpCommon; + typedef struct { + Char_t btype[nallwp+7][8]; //(-6:NALLWP) +// Char_t genpar[mxgnpr][8]; // 2006.3 + Char_t gnname[mxgnpr][8]; // 2006.3 + } chpprpCommon; #define CHPPRP COMMON_BLOCK(CHPPRP,chpprp) COMMON_BLOCK_DEF(chpprpCommon,CHPPRP); } -- 2.43.5