//* 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 *
//* *
//*----------------------------------------------------------------------*
Int_t lvlcar;
Int_t lvlcyl;
Int_t lvlsph;
- Int_t lsourc;
-
+ Int_t lsourc;
} beamcmCommon;
#define BEAMCM COMMON_BLOCK(BEAMCM,beamcm)
COMMON_BLOCK_DEF(beamcmCommon,BEAMCM);
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 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;
//*
//*======================================================================*
//*======================================================================*
//* Ihypmx = maximum number of hyperons in a hypernucleus *
//* Mkbmx1 = dimension for KWB real spare array in Fluka Stack *
//* Mkbmx2 = dimension for KWB int. spare array in Fluka Stack *
+//* Mxirrd = maximum number of irradiation sub-intervals *
+//* Mxtrdc = maximum number of decay (cooling) times *
+//* Nktl = overall dimension parameter for EMF bremsstrahlung *
//* *
//*----------------------------------------------------------------------*
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 nqstis = 46;
+const Int_t ntstis = nstbis + nqstis;
//* till 3-aug-99:
//* const Int_t mxpabl = 110;
//* 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 mxirrd = 20;
+const Int_t mxtrdc = 50;
+const Int_t nktl = 17;
}
#endif
//* *
//*----------------------------------------------------------------------*
//*
+ // COMMON / EMFRGN / ELETHR (MXXRGN), PHOTHR (MXXRGN),
+ // & EMREJE, EMSAMP, EMSNGL,
+ // & MEDEMF (MXXRGN), IRAYLR (MXXRGN), NRGEMF,
+ // & NOSCAT, NOLLDA
+ // OLD EFMRGN:
// COMMON / EFMRGN / RHOR (MXXRGN), ECUT (MXXRGN), PCUT (MXXRGN),
// & EMREJE, EMSAMP, EMSNGL, VACDST,
// & MEDEMF (MXXRGN), IRAYLR (MXXRGN), NRGEMF,
Int_t llensc;
Int_t loppsc;
Int_t leldis;
- Int_t lrdcay;
+ Int_t lrdcay;
Int_t ntrcks;
} evtflgCommon;
#define EVTFLG COMMON_BLOCK(EVTFLG,evtflg)
//* description of the common block(s) and variable(s) *
//* *
//* /Flkstk/ stack for the primaries *
-//* Wt = particle statistical weight *
-//* Pmom = particle (laboratory) momentum (GeV/c) *
-//* Tke = particle (laboratory) kinetic energy (GeV) *
-//* Xa = particle position x-coordinate *
-//* Ya = particle position y-coordinate *
-//* Za = particle position z-coordinate *
-//* Tx = particle direction x-coordinate *
-//* Ty = particle direction y-coordinate *
-//* Tz = particle direction z-coordinate *
+//* Wtflk = particle statistical weight *
+//* Pmoflk = particle (laboratory) momentum (GeV/c) *
+//* Tkeflk = particle (laboratory) kinetic energy (GeV) *
+//* Xflk = particle position x-coordinate *
+//* Yflk = particle position y-coordinate *
+//* Zflk = particle position z-coordinate *
+//* Txflk = particle direction x-coordinate *
+//* Tyflk = particle direction y-coordinate *
+//* Tzflk = particle direction z-coordinate *
//* Txpol = x direction cosine of the particle polarization *
//* Typol = y direction cosine of the particle polarization *
//* Tzpol = z direction cosine of the particle polarization *
//* Lfrphn = flag for forced photonuclear interaction *
//* Raddly = delay (s) in production wrt the nominal primary "0" *
//* time for particle produced in radioactive decays *
-//* (i.e. those coming from decays of daughter isotopes) *
+//* (i.e. those coming from decays of daughter isotopes), *
+//* when in analogue mode, flag for position in the *
+//* activr array when in non-analogue mode *
//* Cmpath = cumulative path travelled by the particle since it *
//* was produced (cm) *
//* Sparek = spare real variables available for K.W.Burn *
//* Ispark = spare integer variables available for K.W.Burn *
-//* Ilo = particle identity (Paprop numbering) *
+//* Iloflk = particle identity (Paprop numbering) *
//* Igroup = energy group for low energy neutrons *
-//* Lo = particle generation *
+//* Loflk = particle generation *
//* Louse = user flag *
-//* Nreg = particle region number *
+//* Nrgflk = particle region number *
//* Nlattc = particle lattice cell number *
//* Nhspnt = pointer to the history object (Geant4 geometry) *
//* Nevent = number of the event which created the particle *
//* Numpar = particle number *
//* Lraddc = flag for particles generated in radioactive decays *
//* Nparma = largest particle number ever reached *
-//* Mstack = stack size *
-//* Lstmax = highest value of the stack pointer ever reached *
+//* Nstmax = highest value of the stack pointer ever reached *
//* in the run *
-//* Lstack = stack pointer *
-//* Lstaol = stack pointer of the last processed particle *
+//* Npflka = Fluka stack pointer *
+//* Nstaol = stack pointer of the last processed particle *
//* Igroun = energy group number of the last processed particle *
//* if it is a low energy neutron *
//*----------------------------------------------------------------------*
//*
typedef struct {
- Double_t xflk[mfstck+1]; //(0:MFSTCK)
- Double_t yflk[mfstck+1]; //(0:MFSTCK)
- Double_t zflk[mfstck+1]; //(0:MFSTCK)
- Double_t txflk[mfstck+1]; //(0:MFSTCK)
- Double_t tyflk[mfstck+1]; //(0:MFSTCK)
- Double_t tzflk[mfstck+1]; //(0:MFSTCK)
+ Double_t xflk[mfstck+1]; //(0:MFSTCK)
+ Double_t yflk[mfstck+1]; //(0:MFSTCK)
+ Double_t zflk[mfstck+1]; //(0:MFSTCK)
+ Double_t txflk[mfstck+1]; //(0:MFSTCK)
+ Double_t tyflk[mfstck+1]; //(0:MFSTCK)
+ Double_t tzflk[mfstck+1]; //(0:MFSTCK)
Double_t txpol[mfstck+1]; //(0:MFSTCK)
Double_t typol[mfstck+1]; //(0:MFSTCK)
Double_t tzpol[mfstck+1]; //(0:MFSTCK)
Double_t txnor[mfstck+1]; //(0:MFSTCK)
Double_t tynor[mfstck+1]; //(0:MFSTCK)
Double_t tznor[mfstck+1]; //(0:MFSTCK)
- Double_t wtflk[mfstck+1]; //(0:MFSTCK)
- Double_t pmoflk[mfstck+1]; //(0:MFSTCK)
- Double_t tkeflk[mfstck+1]; //(0:MFSTCK)
+ Double_t wtflk[mfstck+1]; //(0:MFSTCK)
+ Double_t pmoflk[mfstck+1]; //(0:MFSTCK)
+ Double_t tkeflk[mfstck+1]; //(0:MFSTCK)
Double_t dfnear[mfstck+1]; //(0:MFSTCK)
Double_t agestk[mfstck+1]; //(0:MFSTCK)
Double_t aknshr[mfstck+1]; //(0:MFSTCK)
Double_t frcphn[mfstck+1]; //(0:MFSTCK)
Double_t sparek[mfstck+1][mkbmx1]; //(MKBMX1,0:MFSTCK)
Int_t ispark[mfstck+1][mkbmx2]; //(MKBMX2,0:MFSTCK)
- Int_t iloflk[mfstck+1]; //(0:MFSTCK)
+ Int_t iloflk[mfstck+1]; //(0:MFSTCK)
Int_t igroup[mfstck+1]; //(0:MFSTCK)
- Int_t loflk[mfstck+1]; //(0:MFSTCK)
+ Int_t loflk[mfstck+1]; //(0:MFSTCK)
Int_t louse[mfstck+1]; //(0:MFSTCK)
- Int_t nrgflk[mfstck+1]; //(0:MFSTCK)
+ Int_t nrgflk[mfstck+1]; //(0:MFSTCK)
Int_t nlattc[mfstck+1]; //(0:MFSTCK)
Int_t nhspnt[mfstck+1]; //(0:MFSTCK)
Int_t nevent[mfstck+1]; //(0:MFSTCK)
Double_t tvrecl;
Double_t tvheav;
Double_t tvbind;
- Int_t kpart[mxp];
+ Int_t kpart[mxp];
Int_t np0;
Int_t np;
} genstkCommon;
//* iscore(j) = id for the j_th scored distribution *
//* genpar(k) = name of the k_th generalized particle type *
//* ijdisc(i) = flag for discarding the i_th particle type *
- //* thalf (i) = mean (not half!) life of the i_th particle (s) *
+ //* tmnlf (i) = mean (not half!) life of the i_th particle (s) *
//* biasdc(i) = decay biasing factor for the i_th particle *
//* biasin(i) = inelastic interaction biasing factor for the i_th *
//* particle *
-#ifndef FSTARS_H
-#define FSTARS_H 1
+#ifndef FSUMCOU_H
+#define FSUMCOU_H 1
#include "cfortran.h"
#include "Rtypes.h"
#include "Fdimpar.h"
extern "C" {
-//*$ create stars.add
-//*copy stars
-//*
-//*=== stars ============================================================*
+//*=== Sumcou ===========================================================*
//*
//*----------------------------------------------------------------------*
//* *
-//* stars common for fluka: *
+//* All additions wrt the original one are: *
+//* Copyright (C) 2005-2005 by Alfredo Ferrari & Paola Sala *
+//* All Rights Reserved. *
+//* *
+//* *
+//* SUMmary COUnters common for FLUKA9x/200x: *
//* *
-//* version for fluka90/99/... of the original one of fluka86 *
+//* (New version of the original STARS comon) *
//* *
//* *
-//* created on 15 may 1990 by alfredo ferrari & paola sala *
-//* infn - milan *
+//* Created on 15 may 1990 by Alfredo Ferrari & Paola Sala *
+//* Infn - Milan *
//* *
-//* last change on 07-oct-99 by alfredo ferrari *
+//* Last change on 09-jul-05 by Alfredo Ferrari *
//* *
//* *
-//* description of the common variable(s): *
+//* Variable description: *
//* *
-//* ntstar = total number of stars generated (modulo 1000000000) *
-//* neulow = total number of low energy neutron interactions *
+//* Ntstar = total number of stars generated (modulo 1000000000) *
+//* Neulow = total number of low energy neutron interactions *
//* (modulo 1000000000) *
-//* numdec = total number of decays (modulo 1000000000) *
-//* mtstar = total number of stars generated / 100000000 *
-//* meulow = total number of low energy neutron interactions *
+//* Numdec = total number of decays (modulo 1000000000) *
+//* Numoph = total number of optical photons generated *
+//* (modulo 1000000000) *
+//* Mtstar = total number of stars generated / 100000000 *
+//* Meulow = total number of low energy neutron interactions *
//* / 1000000000 *
-//* mumdec = total number of decays (modulo 1000000000) *
-//* wstars = total weight of the stars generated *
-//* wneulw = total weight of the low energy neutron interactions *
-//* westar = weight of the stars generated by *
+//* Mumdec = total number of decays / 1000000000 *
+//* Mumoph = total number of optical photons generated /1000000000*
+//* Wneulw(k,j) = total weight of the low energy neutron interactions *
+//* Woptph(k,j) = total weight of generated optical photons *
+//* Westar(k,j) = weight of the stars generated by *
//* different particle types *
-//* westop = total weight of the particles stopped *
-//* wstop = weight of particles of different types stopped *
-//* weisec = total weight of the secondaries created *
-//* weifis = total weight of high energy fissions *
-//* weipri = total weight of the primaries handled *
-//* edi = deposited energy *
-//* edi(1) = by ionisation *
-//* edi(2) = by pi-zeros and/or em cascade *
-//* edi(3) = by nuclear excitation (or nuclear recoil *
+//* Westop(k,j) = weight of particles of different types stopped *
+//* Wedaug(k,j) = weight of the decay products *
+//* Wekill(k,j) = weight of the time-killed particles *
+//* Wedecy(k,j) = weight of the particles decayed *
+//* Weifis(k,j) = weight of high energy fissions generated by particles*
+//* of different kind *
+//* Deccts(k,j) = decay c tau scoring *
+//* Wdecct(k,j) = weight of the particles decayed for which a c tau *
+//* scoring is done *
+//* Weprdc(k,j) = weight of produced particles of different kind *
+//* Wlwnsc(k,j) = weight of the low energy neutrons interaction secon- *
+//* daries *
+//* Wophsc(k,j) = weight of optical photons production/interaction *
+//* secondaries *
+//* Weipri = total weight of the primaries handled *
+//* Edpsco(i,j) = energy deposition scoring (j = 1: prompt particles, *
+//* j = 2: decay particles) *
+//* Edpsco(1,j) = by ionisation *
+//* Edpsco(2,j) = by pi-zeros and/or EM cascade *
+//* Edpsco(3,j) = by nuclear excitation (or nuclear recoil *
//* and heavies if the evaporation module is *
//* activated) *
-//* edi(4) = by stopped particles *
-//* edi(5) = energy leaving the system *
-//* edi(6) = energy carried by discarded particles *
-//* edi(7) = by residual excitation energy (only if the *
+//* Edpsco(4,j) = by stopped particles *
+//* Edpsco(5,j) = energy leaving the system *
+//* Edpsco(6,j) = energy carried by discarded particles *
+//* Edpsco(7,j) = by residual excitation energy (only if the *
//* evaporation module is activated) *
-//* edi(8) = by low energy neutrons (kerma due to low *
+//* Edpsco(8,j) = by low energy neutrons (kerma due to low *
//* energy neutrons transport is in effect) *
-//* edi(9) = energy carried by time killed particles *
-//* edi(10)= energy wasted for nuclear binding energy *
-//* effects for e > 50 mev *
-//* edi(11)= energy wasted for nuclear binding energy *
+//* Edpsco(9,j) = energy carried by time killed particles *
+//* Edpsco(10,j)= energy wasted for nuclear binding energy *
+//* effects for (low energy neutrons excluded) *
+//* Edpsco(11,j)= energy wasted for nuclear binding energy *
//* effects for low energy neutrons *
-//* wdec = weight of the particles decayed *
-//* wdau = weight of the decay-products *
-//* wtkll = weight of the time-killed particles *
-//* wtdec = total weight of the particles decayed *
-//* wtdau = total weight of the decay products *
-//* wttkll = total weight of the time killed particles *
-//* wlwnsc = weight of the low energy neutrons interaction secon- *
-//* daries *
-//* wdecct = weight of the particles decayed for which a c tau *
-//* scoring is done *
-//* deccts = decay c tau scoring *
+//* *
//*----------------------------------------------------------------------*
//*
Double_t edpsco[2][11];
Double_t woptph;
Double_t wneulw;
- Double_t weipri;
+ Double_t weipri;
Int_t numdec;
Int_t ntstar;
Int_t neulow;
snext += extra;
saf = gGeoManager->GetSafeDistance();
saf -= extra;
- if (saf>snext) printf("ERROR: saf=%f .GT. snext=%f\n", saf,snext);
if (saf<0) saf=0.0;
else saf -= saf*3.0e-09;
// saf *= 0.3;
#include "Fdimpar.h" //(DIMPAR) fluka parameters
#include "Fsourcm.h" //(EPISOR) fluka common
#include "Fflkstk.h" //(FLKSTK) fluka common
-#include "Fsumcou.h" //(SUMCOU) fluka common
+#include "Fsumcou.h" //(SUMCOU) fluka common
#include "Fpaprop.h" //(PAPROP) fluka common
#include "Fltclcm.h" //(LTCLCM) fluka common
#include "Fopphst.h" //(OPPHST) fluka common