Re: [fluka-discuss]: Beam definition

From: Jilberto Antonio Zamora Saá <jzamorasaa_at_jinr.ru>
Date: Mon, 31 Dec 2018 11:06:50 -0300

Dear Cesc

I already runned and I got the following output

sirjazs_at_jilberto-Lenovo:~/fluka_work_DIR/test/Beam-Test/ex08$
$FLUPRO/flutil/lfluka -m fluka -o ex08 source.o
$FLUPRO = /home/sirjazs/FLUKA
  now linking
/home/sirjazs/FLUKA
gfortran
ar x /home/sirjazs/FLUKA/libflukahp.a fluka.o
rm: cannot remove 'ex08.map': No such file or directory
gfortran -msse2 -mfpmath=sse -fPIC -O3 -g -mtune=generic
-fexpensive-optimizations -funroll-loops -fstrength-reduce -Wall
-Wuninitialized -Wno-tabs -Wline-truncation -Wno-unused-function
-Wno-unused-parameter -Wno-unused-dummy-argument -Wno-integer-division
-Wno-unused-variable -Wno-conversion -Wunused-label -Waggregate-return
-Wcast-align -Wsystem-headers -ftrapping-math -frange-check -fbackslash
-fdump-core -fbacktrace -ffpe-trap=invalid,zero,overflow
-finit-local-zero -ffixed-form -frecord-marker=4 -funderscoring
-fno-automatic -fd-lines-as-comments -fbounds-check
-I/home/sirjazs/FLUKA/flukapro -v -o ex08 -Xlinker -Map -Xlinker
ex08.map fluka.o source.o -L/home/sirjazs/FLUKA -lflukahp
Driving: gfortran -msse2 -mfpmath=sse -fPIC -O3 -g -mtune=generic
-fexpensive-optimizations -funroll-loops -fstrength-reduce -Wall
-Wuninitialized -Wno-tabs -Wline-truncation -Wno-unused-function
-Wno-unused-parameter -Wno-unused-dummy-argument -Wno-integer-division
-Wno-unused-variable -Wno-conversion -Wunused-label -Waggregate-return
-Wcast-align -Wsystem-headers -ftrapping-math -frange-check -fbackslash
-fdump-core -fbacktrace -ffpe-trap=invalid,zero,overflow
-finit-local-zero -ffixed-form -frecord-marker=4 -funderscoring
-fno-automatic -fd-lines-as-comments -fbounds-check
-I/home/sirjazs/FLUKA/flukapro -v -o ex08 -Xlinker -Map -Xlinker
ex08.map fluka.o source.o -L/home/sirjazs/FLUKA -lflukahp -l gfortran -l
m -shared-libgcc
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
7.4.0-1ubuntu1~16.04~ppa1'
--with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs
--enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++
--prefix=/usr --with-gcc-major-version-only --program-suffix=-7
--program-prefix=x86_64-linux-gnu- --enable-shared
--enable-linker-build-id --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --libdir=/usr/lib
--enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-vtable-verify --enable-libmpx --enable-plugin
--with-system-zlib --with-target-system-zlib --enable-objc-gc=auto
--enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--enable-offload-targets=nvptx-none --without-cuda-driver
--enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~16.04~ppa1)
Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.spec
rename spec lib to liborig
COLLECT_GCC_OPTIONS='-msse2' '-mfpmath=sse' '-fPIC' '-O3' '-g'
'-mtune=generic' '-fexpensive-optimizations' '-funroll-loops' '-Wall'
'-Wuninitialized' '-Wno-tabs' '-Wline-truncation' '-Wno-unused-function'
'-Wno-unused-parameter' '-Wno-unused-dummy-argument'
'-Wno-integer-division' '-Wno-unused-variable' '-Wno-conversion'
'-Wunused-label' '-Waggregate-return' '-Wcast-align' '-Wsystem-headers'
'-ftrapping-math' '-frange-check' '-fbackslash' '-fbacktrace'
'-ffpe-trap=invalid,zero,overflow' '-finit-local-zero' '-ffixed-form'
'-frecord-marker=4' '-funderscoring' '-fno-automatic'
'-fd-lines-as-comments' '-fbounds-check' '-I'
'/home/sirjazs/FLUKA/flukapro' '-v' '-o' 'ex08' '-L/home/sirjazs/FLUKA'
'-shared-libgcc' '-march=x86-64'
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-msse2' '-mfpmath=sse' '-fPIC' '-O3' '-g'
'-mtune=generic' '-fexpensive-optimizations' '-funroll-loops' '-Wall'
'-Wuninitialized' '-Wno-tabs' '-Wline-truncation' '-Wno-unused-function'
'-Wno-unused-parameter' '-Wno-unused-dummy-argument'
'-Wno-integer-division' '-Wno-unused-variable' '-Wno-conversion'
'-Wunused-label' '-Waggregate-return' '-Wcast-align' '-Wsystem-headers'
'-ftrapping-math' '-frange-check' '-fbackslash' '-fbacktrace'
'-ffpe-trap=invalid,zero,overflow' '-finit-local-zero' '-ffixed-form'
'-frecord-marker=4' '-funderscoring' '-fno-automatic'
'-fd-lines-as-comments' '-fbounds-check' '-I'
'/home/sirjazs/FLUKA/flukapro' '-v' '-o' 'ex08' '-L/home/sirjazs/FLUKA'
'-shared-libgcc' '-march=x86-64'
  /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin
/usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so
-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
-plugin-opt=-fresolution=/tmp/ccJuBBpL.res
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc
-plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc
-plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s
-plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m
elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker
/lib64/ld-linux-x86-64.so.2 -z relro -o ex08
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crt1.o
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o
/usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o -L/home/sirjazs/FLUKA
-L/usr/lib/gcc/x86_64-linux-gnu/7
-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu
-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib
-L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu
-L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -Map
ex08.map fluka.o source.o -lflukahp -lgfortran -lm -lgcc_s -lgcc
-lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/usr/lib/gcc/x86_64-linux-gnu/7/crtend.o
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-msse2' '-mfpmath=sse' '-fPIC' '-O3' '-g'
'-mtune=generic' '-fexpensive-optimizations' '-funroll-loops' '-Wall'
'-Wuninitialized' '-Wno-tabs' '-Wline-truncation' '-Wno-unused-function'
'-Wno-unused-parameter' '-Wno-unused-dummy-argument'
'-Wno-integer-division' '-Wno-unused-variable' '-Wno-conversion'
'-Wunused-label' '-Waggregate-return' '-Wcast-align' '-Wsystem-headers'
'-ftrapping-math' '-frange-check' '-fbackslash' '-fbacktrace'
'-ffpe-trap=invalid,zero,overflow' '-finit-local-zero' '-ffixed-form'
'-frecord-marker=4' '-funderscoring' '-fno-automatic'
'-fd-lines-as-comments' '-fbounds-check' '-I'
'/home/sirjazs/FLUKA/flukapro' '-v' '-o' 'ex08' '-L/home/sirjazs/FLUKA'
'-shared-libgcc' '-march=x86-64'


The aforementioned command produces an executable file called "ex08",
however, I do not know what I must do with this executable, can you give
me some directions, please!!!!

By the way, I'm worried by the line

"rm: cannot remove 'ex08.map': No such file or directory"

in the output, is this normal?


regards,
Jilberto
---
*******************************************************************
  Dr. Jilberto Zamora Saa
  Dzhelepov Laboratory of Nuclear Problems
  Joint Institute for Nuclear Research
  141980 Dubna, Moscow region, Russia
  phone: +(496)2162589 (Office)
  phone: +7(915)4671294 (Mobile)
  email: jzamorasaa_at_jinr.ru
********************************************************************
El 20-12-2018 8:20 pm, Francesc Salvat-Pujol escribió:
> Dear Jilberto,
> 
> I replicated your situation in a virtual machine. It appears like in
> Ubuntu 16.04 (LTS) there are a few interesting/known things:
> 
>  - /usr/bin/awk points to /etc/alternatives/awk which points to mawk
>  - /bin/sh  points to dash instead of bash
> 
> mawk is lacking features of awk (hence the first awk error you saw),
> and dash is lacking features of bash (hence the second error messages
> you saw).
> 
> The solution below is probably substandard but it seems to work and 
> will
> allow you to get past the errors. Assuming you are running on a laptop
> that you can manage at will:
> 
>  - sudo update-alternatives --config awk
> 
>    This should allow you to select gawk instead of mawk. If you do not
>    see gawk listed, do "sudo apt install gawk"
> 
>  - sudo dpkg-reconfigure dash
> 
>    It will ask if you want dash as default system shell. Tell it "no".
>    This last step is considered potentially "dangerous". In
>      https://wiki.ubuntu.com/DashAsBinSh
>    they are conservative enough and warn there can be a (low) chance
>    that some system script relies on some specific feature of dash vs
>    bash... If you spot anything weird, revert as needed. Keep a healthy
>    backup anyway.
> 
> Cheers,
> 
> Cesc
> 
> On Thu, Dec 20 2018, at 15:56 -0300, Jilberto Antonio Zamora Saá wrote:
>> 
>> Dear Cesc
>> 
>> Yeah, Im using Ubuntu 16.04.
>> 
>> I got the following outputs
>> 
>> sirjazs_at_LENOVO:~$  ls -l $(which awk)
>> lrwxrwxrwx 1 root root 21 nov 16 11:35 /usr/bin/awk ->
>> /etc/alternatives/awk
>> sirjazs_at_LENOVO:~$  ls -l /usr/bin/*awk*
>> lrwxrwxrwx 1 root root     21 nov 16 11:35 /usr/bin/awk ->
>> /etc/alternatives/awk
>> -rwxr-xr-x 1 root root 117768 mar 24  2014 /usr/bin/mawk
>> lrwxrwxrwx 1 root root     22 nov 16 11:35 /usr/bin/nawk ->
>> /etc/alternatives/nawk
>> sirjazs_at_LENOVO:~$  ls -l /bin/*awk*
>> ls: cannot access '/bin/*awk*': No such file or directory
>> 
>> I will update my OS to ubuntu 18.04 and see what happend.
>> 
>> cheers,
>> Jilberto
>> 
>> 
>> 
>> ---
>> *******************************************************************
>> Dr. Jilberto Zamora Saa
>> Dzhelepov Laboratory of Nuclear Problems
>> Joint Institute for Nuclear Research
>> 141980 Dubna, Moscow region, Russia
>> phone: +(496)2162589 (Office)
>> phone: +7(915)4671294 (Mobile)
>> email: jzamorasaa_at_jinr.ru
>> 
>> ********************************************************************
>> 
>> El 20-12-2018 3:47 pm, Francesc Salvat-Pujol escribió:
>>> Hey Jilberto,
>>> 
>>> It could be that your linux distribution is using some interesting
>>> flavor of awk. Just for curiosity: are you running Ubuntu? If so, 
>>> which
>>> version? Could you paste the output of
>>> 
>>> ls -l $(which awk)
>>> ls -l /usr/bin/*awk*
>>> ls -l /bin/*awk*
>>> 
>>> Are you using the latest FLUKA tarball (i.e. downloaded after Nov 22
>>> 2018 from the FLUKA website)? If not, update. In the not-too-distant
>>> past we spotted a similar situation and we protected the scripts
>>> accordingly. Should the problem persist, let us know (and if you are
>>> linking the gfortran version of FLUKA paste also the output of
>>> "gfortran --version").
>>> 
>>> Season greetings,
>>> 
>>> Cesc
>>> 
>>> On Thu, Dec 20 2018, at 13:55 -0300, Jilberto Antonio Zamora Saá 
>>> wrote:
>>>> 
>>>> Dear Francesc
>>>> 
>>>> I have tried to run examples that I found in previous fluka courses,
>>>> however when I tryed to compile the source I got the following
>>>> message:
>>>> 
>>>> sirjazs_at_LENOVO:~/fluka-work/Beam-Test/ex08$ $FLUPRO/flutil/fff
>>>> source.f
>>>> awk: line 0: regular expression compile failed (missing '(')
>>>> )
>>>> /home/sirjazs/FLUKA/flutil/fff: 105: [: -le: unexpected operator
>>>> /home/sirjazs/FLUKA/flutil/fff: 119: /home/sirjazs/FLUKA/flutil/fff:
>>>> [[: not found
>>>> sirjazs_at_LENOVO:~/fluka-work/Beam-Test/ex08$
>>>> 
>>>> 
>>>> the files that I'm using are attached :-)
>>>> 
>>>> 
>>>> Do you have any idea about what it is happening?
>>>> 
>>>> 
>>>> saludos,
>>>> Jilberto
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ---
>>>> *******************************************************************
>>>> Dr. Jilberto Zamora Saa
>>>> Dzhelepov Laboratory of Nuclear Problems
>>>> Joint Institute for Nuclear Research
>>>> 141980 Dubna, Moscow region, Russia
>>>> phone: +(496)2162589 (Office)
>>>> phone: +7(915)4671294 (Mobile)
>>>> email: jzamorasaa_at_jinr.ru
>>>> 
>>>> ********************************************************************
>>>> 
>>>> El 09-11-2018 5:48 pm, Francesc Salvat-Pujol escribió:
>>>>> Hola Jilberto,
>>>>> 
>>>>> For inspiration you may first want to examine a slightly simpler 1D
>>>>> case
>>>>> (sampling from a tabulated energy spectrum), as shown e.g. in
>>>>> 
>>>>> http://www.fluka.org/web_archive/earchive/new-fluka-discuss/6798.html
>>>>> 
>>>>> which contains an example spectrum and a custom source.f routine 
>>>>> that
>>>>> samples from it. Note also the modification of the input file
>>>>> mentioned
>>>>> in the link. If you make a diff (or e.g. vim -d) with the 
>>>>> distributed
>>>>> source.f (under usermvax/ in your FLUKA directory) you will see the
>>>>> modifications. In a nutshell, there is:
>>>>> 
>>>>> - a block that loads a source spectrum from the provided file at
>>>>>  initialization and prepares a cumulative function for sampling
>>>>>  later,
>>>>> 
>>>>> - a block which samples the kinetic energy from the histogram and
>>>>> 
>>>>> - a block which carefully sets the sampled kinetic energy and
>>>>>  calculates the modulus of the linear momentum (of course with the
>>>>>  relativistic expression).
>>>>> 
>>>>> You then compile your custom source.f
>>>>> 
>>>>> $FLUPRO/flutil/fff source.f
>>>>> 
>>>>> If there are no errors, this produces an object file which you then
>>>>> bundle into your custom binary.
>>>>> 
>>>>> $FLUPRO/flutil/lfluka -m fluka -o tuejecutable source.o
>>>>> 
>>>>> Depending on what you do, link with ldpmqmd (see the manual). Run 
>>>>> as
>>>>> usual, but passing "-e tuejecutable" additionally.
>>>>> 
>>>>> If I follow you correctly, you need instead to sample from a
>>>>> tabulated
>>>>> 2D distribution h(E,theta), given in terms of the energy E and a
>>>>> (polar?) angle theta. So it's a slight generalization of the
>>>>> foregoing.
>>>>> Stay alert for the integrals and the sampling of the polar angle 
>>>>> (see
>>>>> below).
>>>>> 
>>>>> I assume that the theta dependency is not trivial, i.e., that
>>>>> you have
>>>>> sufficiently different behaviors in theta at different energies
>>>>> (otherwise the stuff below can be greatly simplified...).
>>>>> 
>>>>> Presumably you have h(E,theta) tabulated on a reasonably dense
>>>>> grid of
>>>>> energies E_i and angles theta_j. On paper, at each tabular energy 
>>>>> you
>>>>> would do an integration on the sphere (azimuthal angle aside), à la
>>>>> 
>>>>> g(E_i) = \int_0^pi d theta  sin(theta)  h(E_i,theta) ,
>>>>> 
>>>>> so that g(E) gives you an energy distribution regardless of angle
>>>>> (treated below). In practice you evaluate it numerically in as
>>>>> reasonable a way as you can, but in any event not forgetting
>>>>> about the
>>>>> solid-angle element. In the same spirit as in the 1D case above, 
>>>>> you
>>>>> may
>>>>> now use the tabulated g(E_i) to generate a cumulative
>>>>> distribution for
>>>>> the sampling of the kinetic energy.
>>>>> 
>>>>> Once you have a sampled kinetic energy Esampled, you look for the
>>>>> "active" tabular interval verifying E_i <= Esampled < E_{i+1}. Use 
>>>>> a
>>>>> homogeneously distributed random number (search in the manual for
>>>>> FLRNDM) to take E_i with probability
>>>>> (E_{i+1}-Esampled)/(E_{i+1}-E_i),
>>>>> and E_{i+1} otherwise (I do not write down exactly how because 
>>>>> every
>>>>> time I get it wrong, but the idea is along these lines...).
>>>>> 
>>>>> At each tabular energy E_i, you can keep the cumulative angular
>>>>> distribution in memory (do not forget the solid-angle element when
>>>>> integrating...) and use it to sample the polar angle in exactly the
>>>>> same
>>>>> spirit as above. It then remains to sample the azimuthal angle.
>>>>> Unless
>>>>> you have something else in mind, you can sample e.g. homogeneously 
>>>>> in
>>>>> [0,2pi). With this you have all you need to set the initial
>>>>> direction in
>>>>> your source.f in terms of the director cosines using the variables
>>>>> TXFLK, TYFLK, TZFLK.
>>>>> 
>>>>>        ===============================================
>>>>>        *************** WARNING... ********************
>>>>>        ===============================================
>>>>> 
>>>>> Things can go wrong when setting up schemes like the above by 
>>>>> hand...
>>>>> Debug and test intensively before running any simulation. Make e.g.
>>>>> a 2D
>>>>> histogram of the sampled energies and angles and convince
>>>>> yourself that
>>>>> you are indeed sampling what was intended.
>>>>> 
>>>>> As a final note, I do not know what degrees of freedom you have in
>>>>> preparing the input 2D source histogram, but any time there's a 
>>>>> polar
>>>>> angle theta involved, a way to sleep well is to tabulate, 
>>>>> integrate,
>>>>> and
>>>>> sample in terms of mu=cos(theta). Doing the change of variables you
>>>>> immediately see e.g.
>>>>> 
>>>>> g(E_i) = \int_{-1}^1  d mu    h(E_i,mu) ,
>>>>> 
>>>>> that is, the term "sin(theta) d theta" in the solid-angle element
>>>>> becomes trivially "d mu" and you can mostly forget about faux pas 
>>>>> :)
>>>>> 
>>>>> Hope this is reasonably helpful/accurate!
>>>>> 
>>>>> Un saludo,
>>>>> 
>>>>> Cesc
>>>>> 
>>>>> PS: scoring-wise, there should be nothing special.
>>>>> 
>>>>> On Fri, Nov 09 2018, at 12:17 -0300, jilberto Zamora Saa wrote:
>>>>>> 
>>>>>> Dear FLUKA experts,
>>>>>> 
>>>>>> How I should do in case I want to define my own beam of particles,
>>>>>> let say, I would like to provide a spectrum of muons which depend
>>>>>> on energy and Zenit angle and then use it to see the fluence in a
>>>>>> detector.
>>>>>> 
>>>>>> any help is welcome
>>>>>> 
>>>>>> regards,
>>>>>> Jilberto
>>>>> 
>>>>> --
>>>>> Francesc Salvat Pujol
>>>>> CERN-EN/STI
>>>>> CH-1211 Geneva 23
>>>>> Switzerland
>>>>> Tel: +41 22 76 64011
>>>>> Fax: +41 22 76 69474
>>> 
>>>> * 
>>>> ..+....1....+....2....+....3....+....4....+....5....+....6....+....7...
>>>> TITLE
>>>> FLUKA Course Exercise
>>>> *
>>>> * use names everywhere and free format for geometry
>>>> DEFAULTS
>>>> NEW-DEFA
>>>> *
>>>> * beam definitions
>>>> BEAM            -3.5 -0.082425      -1.7       0.0       0.0
>>>> 1.0PROTON
>>>> BEAMPOS          0.0       0.0      -0.1       0.0       0.0
>>>> GEOBEGIN
>>>> COMBNAME
>>>>   0    0             Cylindrical Target
>>>> *
>>>> * Bodies
>>>> * ------
>>>> *
>>>> * General definitions:
>>>> *  blackhole to include geometry
>>>> SPH BLK        0.0 0.0 0.0 10000.0
>>>> *  void
>>>> RPP VOI        -1000.0 1000.0 -1000.0 1000.0 -1000.0 1000.0
>>>> *
>>>> * Lead target:
>>>> *  cylinder to contain target
>>>> ZCC TARG       0.0 0.0 5.0
>>>> *  planes limiting the target
>>>> XYP ZTlow      0.0
>>>> XYP ZThigh     10.0
>>>> *  planes segmenting the target
>>>> XYP T1seg      1.0
>>>> XYP T2seg      2.0
>>>> END
>>>> *
>>>> * Regions
>>>> * -------
>>>> *
>>>> * Blackhole
>>>> BLKHOLE      5  +BLK -VOI
>>>> *
>>>> * Target segment 1
>>>> TARGS1       5  +TARG -ZTlow +T1seg
>>>> * Target segment 2
>>>> TARGS2       5  +TARG -T1seg +T2seg
>>>> * Target segment 3
>>>> TARGS3       5  +TARG -T2seg +ZThigh
>>>> *
>>>> * Air around target
>>>> INAIR        5  +VOI -( +TARG -ZTlow +ZThigh )
>>>> END
>>>> GEOEND
>>>> #if 0
>>>> * 
>>>> ..+....1....+....2....+....3....+....4....+....5....+....6....+....7...
>>>> * switch on to debug this geometry
>>>> GEOEND           6.0       0.0      11.0      -6.0       0.0
>>>> -6.0DEBUG
>>>> GEOEND         120.0       1.0     170.0
>>>> &
>>>> #endif
>>>> *
>>>> * material definitions
>>>> MATERIAL                             1.0
>>>> WATER
>>>> COMPOUND         2.0  HYDROGEN       1.0    OXYGEN
>>>> WATER
>>>> MATERIAL                        0.001225
>>>> AIR
>>>> COMPOUND     -0.9256  NITROGEN   -0.2837    OXYGEN  -0.01572
>>>> ARGONAIR
>>>> ASSIGNMA    BLCKHOLE   BLKHOLE
>>>> ASSIGNMA       WATER    TARGS1
>>>> ASSIGNMA    ALUMINUM    TARGS2
>>>> ASSIGNMA        LEAD    TARGS3
>>>> ASSIGNMA         AIR     INAIR
>>>> *
>>>> * 
>>>> ..+....1....+....2....+....3....+....4....+....5....+....6....+....7...
>>>> *
>>>> * scoring
>>>> *
>>>> *  target: energy deposition and fluence
>>>> USRBIN          11.0    ENERGY     -40.0      10.0       0.0
>>>> 15.0TargEne
>>>> USRBIN           0.0       0.0      -5.0     100.0       1.0
>>>> 200.0&
>>>> USRBIN          11.0  HAD-CHAR     -40.0      10.0       0.0
>>>> 15.0TargChH
>>>> USRBIN           0.0       0.0      -5.0     100.0       1.0
>>>> 200.0&
>>>> USRBIN          11.0   NEUTRON     -40.0      10.0       0.0
>>>> 15.0TargN
>>>> USRBIN           0.0       0.0      -5.0     100.0       1.0
>>>> 200.0&
>>>> *
>>>> *  charged hadron fluence at boundaries between target segments
>>>> USRBDX          99.0  HAD-CHAR     -50.0    TARGS1    TARGS2
>>>> 78.5398Sp1ChH
>>>> USRBDX          10.0     0.001      40.0
>>>> &
>>>> USRBDX          99.0  HAD-CHAR     -50.0    TARGS2    TARGS3
>>>> 78.5398Sp2ChH
>>>> USRBDX          10.0     0.001      40.0
>>>> &
>>>> *  charged hadron fluence exiting lead target
>>>> USRBDX          99.0  HAD-CHAR     -50.0    TARGS3     INAIR
>>>> 329.87Sp3ChH
>>>> USRBDX          10.0     0.001      40.0
>>>> &
>>>> *  double-differential charged hadron fluence entering lead target
>>>> USRBDX          99.0  HAD-CHAR     -54.0    TARGS2    TARGS3
>>>> 78.5398Sp2ChHA
>>>> USRBDX          10.0     0.001      40.0
>>>> 3.0&
>>>> *  charged hadron fluence in lead target
>>>> USRTRACK        -1.0  HAD-CHAR     -55.0    TARGS3    628.31
>>>> 40.0TrChH
>>>> USRTRACK        10.0     0.001
>>>> &
>>>> *
>>>> *  charged pion angular distribution exiting lead target
>>>> USRYIELD       124.0   PIONS+-     -57.0    TARGS3     INAIR
>>>> 1.0YieAng
>>>> USRYIELD       180.0       0.0      18.0      10.0       0.0
>>>> 3.0&
>>>> *
>>>> *  residual nuclei in lead target
>>>> RESNUCLE         3.0     -60.0                        TARGS3
>>>> activ
>>>> *
>>>> * Exercise: scoring
>>>> * -----------------
>>>> *
>>>> *  electron spectra, see difference between current and fluence
>>>> scoring
>>>> USRBDX          99.0     E+&E-     -51.0    TARGS2    TARGS3
>>>> 78.5398Sp2El
>>>> USRBDX          10.0     0.001      40.0
>>>> &
>>>> USRBDX          -1.0     E+&E-     -52.0    TARGS2    TARGS3
>>>> 78.5398Sp2ElC
>>>> USRBDX          10.0     0.001      40.0
>>>> &
>>>> *
>>>> *  energy deposition by region, check with values in the output
>>>> USRBIN           2.0    ENERGY      41.0    TARGS3
>>>> TbyReg
>>>> USRBIN        TARGS1                           1.0
>>>> &
>>>> *
>>>> *  energy deposited by electrons only
>>>> USRBIN           2.0    ENERGY       42.    TARGS3
>>>> TbyRegE
>>>> USRBIN        TARGS1                           1.0
>>>> &
>>>> AUXSCORE      USRBIN  ELECTRON             TbyRegE
>>>> RANDOMIZ         1.0
>>>> START         1000.0                                     0.0
>>>> STOP
>>> 
>>>> *$ CREATE SOURCE.FOR
>>>> *COPY SOURCE
>>>> *
>>>> *=== source
>>>> ===========================================================*
>>>> *
>>>>     SUBROUTINE SOURCE ( NOMORE )
>>>> 
>>>>     INCLUDE '(DBLPRC)'
>>>>     INCLUDE '(DIMPAR)'
>>>>     INCLUDE '(IOUNIT)'
>>>> *
>>>> *----------------------------------------------------------------------*
>>>> *
>>>> *
>>>> *     Copyright (C) 1990-2006      by    Alfredo Ferrari & Paola
>>>> Sala  *
>>>> *     All Rights Reserved.
>>>> *
>>>> *
>>>> *
>>>> *
>>>> *
>>>> *     New source for FLUKA9x-FLUKA200x:
>>>> *
>>>> *
>>>> *
>>>> *     Created on 07 january 1990   by    Alfredo Ferrari & Paola
>>>> Sala  *
>>>> *                                                   Infn - Milan
>>>> *
>>>> *
>>>> *
>>>> *     Last change on 03-mar-06     by    Alfredo Ferrari
>>>> *
>>>> *
>>>> *
>>>> *  This is just an example of a possible user written source
>>>> routine.  *
>>>> *  note that the beam card still has some meaning - in the scoring
>>>> the *
>>>> *  maximum momentum used in deciding the binning is taken from the
>>>> *
>>>> *  beam momentum.  Other beam card parameters are obsolete.
>>>> *
>>>> *
>>>> *
>>>> *----------------------------------------------------------------------*
>>>> *
>>>>     INCLUDE '(BEAMCM)'
>>>>     INCLUDE '(FHEAVY)'
>>>>     INCLUDE '(FLKSTK)'
>>>>     INCLUDE '(IOIOCM)'
>>>>     INCLUDE '(LTCLCM)'
>>>>     INCLUDE '(PAPROP)'
>>>>     INCLUDE '(SOURCM)'
>>>>     INCLUDE '(SUMCOU)'
>>>> *
>>>>     LOGICAL LFIRST
>>>> *
>>>> c   defining and saving spectrum arrays
>>>>     DIMENSION ENEPOI(0:1000),ENEPRO(0:1000),ENECUM(0:1000)
>>>>     SAVE ENEPOI, ENEPRO, ENECUM
>>>> c   saving spectrum dimension
>>>>     SAVE IMAX
>>>> *
>>>>     SAVE LFIRST
>>>>     DATA LFIRST / .TRUE. /
>>>> *======================================================================*
>>>> *
>>>> *
>>>> *                 BASIC VERSION
>>>> *
>>>> *
>>>> *
>>>> *======================================================================*
>>>>     NOMORE = 0
>>>> *  
>>>> +-------------------------------------------------------------------*
>>>> *  |  First call initializations:
>>>>     IF ( LFIRST ) THEN
>>>> *  |  *** The following 3 cards are mandatory ***
>>>>        TKESUM = ZERZER
>>>>        LFIRST = .FALSE.
>>>>        LUSSRC = .TRUE.
>>>> *  |  *** User initialization ***
>>>>     END IF
>>>> *  |
>>>> *  
>>>> +-------------------------------------------------------------------*
>>>> *  Push one source particle to the stack. Note that you could as 
>>>> well
>>>> *  push many but this way we reserve a maximum amount of space in 
>>>> the
>>>> *  stack for the secondaries to be generated
>>>> * Npflka is the stack counter: of course any time source is called 
>>>> it
>>>> * must be =0
>>>>     NPFLKA = NPFLKA + 1
>>>> * Wt is the weight of the particle
>>>>     WTFLK  (NPFLKA) = ONEONE
>>>>     WEIPRI = WEIPRI + WTFLK (NPFLKA)
>>>> * Particle type (1=proton.....). Ijbeam is the type set by the BEAM
>>>> * card
>>>> *  
>>>> +-------------------------------------------------------------------*
>>>> *  |  (Radioactive) isotope:
>>>>     IF ( IJBEAM .EQ. -2 .AND. LRDBEA ) THEN
>>>>        IARES  = IPROA
>>>>        IZRES  = IPROZ
>>>>        IISRES = IPROM
>>>>        CALL STISBM ( IARES, IZRES, IISRES )
>>>>        IJHION = IPROZ  * 1000 + IPROA
>>>>        IJHION = IJHION * 100 + KXHEAV
>>>>        IONID  = IJHION
>>>>        CALL DCDION ( IONID )
>>>>        CALL SETION ( IONID )
>>>> *  |
>>>> *  
>>>> +-------------------------------------------------------------------*
>>>> *  |  Heavy ion:
>>>>     ELSE IF ( IJBEAM .EQ. -2 ) THEN
>>>>        IJHION = IPROZ  * 1000 + IPROA
>>>>        IJHION = IJHION * 100 + KXHEAV
>>>>        IONID  = IJHION
>>>>        CALL DCDION ( IONID )
>>>>        CALL SETION ( IONID )
>>>>        ILOFLK (NPFLKA) = IJHION
>>>> *  |  Flag this is prompt radiation
>>>>        LRADDC (NPFLKA) = .FALSE.
>>>> *  |
>>>> *  
>>>> +-------------------------------------------------------------------*
>>>> *  |  Normal hadron:
>>>>     ELSE
>>>>        IONID = IJBEAM
>>>>        ILOFLK (NPFLKA) = IJBEAM
>>>> *  |  Flag this is prompt radiation
>>>>        LRADDC (NPFLKA) = .FALSE.
>>>>     END IF
>>>> *  |
>>>> *  
>>>> +-------------------------------------------------------------------*
>>>> * From this point .....
>>>> * Particle generation (1 for primaries)
>>>>     LOFLK  (NPFLKA) = 1
>>>> * User dependent flag:
>>>>     LOUSE  (NPFLKA) = 0
>>>> * User dependent spare variables:
>>>>     DO 100 ISPR = 1, MKBMX1
>>>>        SPAREK (ISPR,NPFLKA) = ZERZER
>>>> 100  CONTINUE
>>>> * User dependent spare flags:
>>>>     DO 200 ISPR = 1, MKBMX2
>>>>        ISPARK (ISPR,NPFLKA) = 0
>>>> 200  CONTINUE
>>>> * Save the track number of the stack particle:
>>>>     ISPARK (MKBMX2,NPFLKA) = NPFLKA
>>>>     NPARMA = NPARMA + 1
>>>>     NUMPAR (NPFLKA) = NPARMA
>>>>     NEVENT (NPFLKA) = 0
>>>>     DFNEAR (NPFLKA) = +ZERZER
>>>> * ... to this point: don't change anything
>>>> * Particle age (s)
>>>>     AGESTK (NPFLKA) = +ZERZER
>>>>     AKNSHR (NPFLKA) = -TWOTWO
>>>> * Group number for "low" energy neutrons, set to 0 anyway
>>>>     IGROUP (NPFLKA) = 0
>>>> c   sampling uniformly between 30 and 70 MeV
>>>>     XYZ=FLRNDM(XYZ)
>>>>     ESAMPLE=3D-2+XYZ*(4D-2)
>>>> * Kinetic energy of the particle (GeV)
>>>>     TKEFLK (NPFLKA) = ESAMPLE
>>>> * Particle momentum
>>>>     PMOFLK (NPFLKA) = SQRT ( TKEFLK (NPFLKA) * ( TKEFLK (NPFLKA)
>>>>    &                       + TWOTWO * AM (IONID) ) )
>>>> * Cosines (tx,ty,tz)
>>>>     TXFLK  (NPFLKA) = UBEAM
>>>>     TYFLK  (NPFLKA) = VBEAM
>>>>     TZFLK  (NPFLKA) = WBEAM
>>>> *     TZFLK  (NPFLKA) = SQRT ( ONEONE - TXFLK (NPFLKA)**2
>>>> *    &                       - TYFLK (NPFLKA)**2 )
>>>> * Polarization cosines:
>>>>     TXPOL  (NPFLKA) = -TWOTWO
>>>>     TYPOL  (NPFLKA) = +ZERZER
>>>>     TZPOL  (NPFLKA) = +ZERZER
>>>> * Particle coordinates
>>>>     XFLK   (NPFLKA) = XBEAM
>>>>     YFLK   (NPFLKA) = YBEAM
>>>>     ZFLK   (NPFLKA) = ZBEAM
>>>> *  Calculate the total kinetic energy of the primaries: don't change
>>>>     IF ( ILOFLK (NPFLKA) .EQ. -2 .OR. ILOFLK (NPFLKA) .GT. 100000 )
>>>>    &   THEN
>>>>        TKESUM = TKESUM + TKEFLK (NPFLKA) * WTFLK (NPFLKA)
>>>>     ELSE IF ( ILOFLK (NPFLKA) .NE. 0 ) THEN
>>>>        TKESUM = TKESUM + ( TKEFLK (NPFLKA) + AMDISC
>>>> (ILOFLK(NPFLKA)) )
>>>>    &          * WTFLK (NPFLKA)
>>>>     ELSE
>>>>        TKESUM = TKESUM + TKEFLK (NPFLKA) * WTFLK (NPFLKA)
>>>>     END IF
>>>>     RADDLY (NPFLKA) = ZERZER
>>>> *  Here we ask for the region number of the hitting point.
>>>> *     NREG (NPFLKA) = ...
>>>> *  The following line makes the starting region search much more
>>>> *  robust if particles are starting very close to a boundary:
>>>>     CALL GEOCRS ( TXFLK (NPFLKA), TYFLK (NPFLKA), TZFLK (NPFLKA) )
>>>>     CALL GEOREG ( XFLK  (NPFLKA), YFLK  (NPFLKA), ZFLK  (NPFLKA),
>>>>    &              NRGFLK(NPFLKA), IDISC )
>>>> *  Do not change these cards:
>>>>     CALL GEOHSM ( NHSPNT (NPFLKA), 1, -11, MLATTC )
>>>>     NLATTC (NPFLKA) = MLATTC
>>>>     CMPATH (NPFLKA) = ZERZER
>>>>     CALL SOEVSV
>>>>     RETURN
>>>> *=== End of subroutine Source
>>>> =========================================*
>>>>     END
>>> 
>>> 
>>> --
>>> Francesc Salvat Pujol
>>> CERN-EN/STI
>>> CH-1211 Geneva 23
>>> Switzerland
>>> Tel: +41 22 76 64011
>>> Fax: +41 22 76 69474
>> 
>> __________________________________________________________________________
>> You can manage unsubscription from this mailing list at 
>> https://www.fluka.org/fluka.php?id=acc_info
>> 
> 
> --
> Francesc Salvat Pujol
> CERN-EN/STI
> CH-1211 Geneva 23
> Switzerland
> Tel: +41 22 76 64011
> Fax: +41 22 76 69474
> 
> __________________________________________________________________________
> You can manage unsubscription from this mailing list at
> https://www.fluka.org/fluka.php?id=acc_info
__________________________________________________________________________
You can manage unsubscription from this mailing list at https://www.fluka.org/fluka.php?id=acc_info
Received on Mon Dec 31 2018 - 16:31:06 CET

This archive was generated by hypermail 2.3.0 : Mon Dec 31 2018 - 16:31:08 CET