![]() |
![]() |
stuprf.f SeT User PRoperties for FLUKA particles stuprr.f SeT User PRoperties for Residual nuclei --------------------------------------------------------- These three functions are used to assign a value to one or more stack user variables when the corresponding particle is loaded into one of the stacks (FLKSTK for hadrons/muons, EMFSTK for electrons/photons, OPPHST for optical photons, RDPSTK for residual nuclei). In each of these stacks the user has access to one integer variable, one integer array and one double precision array. Each of them is copied to a correspondent variable or array in COMMON TRACKR at the beginning of transport: Correspondence: FLKSTK EMFSTK OPPHST TRACKR -------------- ----- ------ ------ ------ integer variable: LOUSE LOUEMF LOUOPP --> LLOUSE integer array: ISPARK IESPAK ISPORK --> ISPUSR double precision array: SPAREK ESPARK SPAROK --> SPAUSR The user can access and modify the TRACKR variables via subroutine MGDRAW and its entries ENDRAW, SODRAW and especially USDRAW (see description above). STUPRF, STUPRE and STUPRR can be used to do the reverse, namely to copy TRACKR user variables to those of the relevant stack (see USDRAW above).* STUPRE is called before loading into stack electrons, positrons and photons.No arguments The default version does nothing (the user variables of the parent particle are already set equal to the original projectile by the various electromagnetic interaction routines. Also the region/position etc. are already set inside the stack arrays.* STUPRF is called before loading into stack hadrons, muons, neutrinos,low-energy neutrons, heavy ions and optical photons Argument list: IJ : type of the parent particle MREG : current region XX, YY, ZZ : particle position NPSECN : index in the GENSTK COMMON of the secondary being loaded onto stack NPPRMR : if > 0, the secondary being loaded is actually still the interacting particle (it can happen in some biasing situations) Note that heavy ions in FLUKA carry all the same id-number IJ = -2. The characteristics of primary ions are characterised by option HI-PROPE. To obtain the those of a secondary ion, call the routine USRDCI as follows: CALL USRDCI(IJ,IONA,IONZ,IONM) The three integer values returned are the following ion properties: IONA = mass number of the ion IONZ = atomic number IONM = flag for isomeric state The default version of STUPRF copies to stack the user flags of the parent. If name-based input is being used, the name corresponding to MREG can be obtained via a call to routine GEOR2N: CALL GEOR2N (NUMREG, NAMREG, IERR) where NUMREG (input variable) is the region number, and NAMREG (returned variable) is the corresponding region name (to be declared as CHARACTER*8). IERR is a returned error code: if = 0, the conversion is successful. See example in the description of BXDRAW above.