Previous PagePrevious Page
cribbon 14
  • 12 Oct 2011 00:15:47

In order to simulate RI beam yield and optimum experimental conditions for CRIB, in 2008 Marco Mazzocco applied the approach used in MOCADI_FUSION to CRIB. In the last two years, I have worked with, modified, and added to this approach. In the year after that, see my ASCII art in the right column of this webpage.

Why not use other existing software?

At CRIB, we use many tools, including LISE++, the CRIB Optimizer, and CASCADE for performing RI beam development. cribbon is not meant to replace these tools, but supplement the features they lack for our experiments.

Most of the other tools focus on macroscopic features, whereas cribbon focuses on microscopic features. So, while my code might not be very useful for things like particle identification, it can tell you the specific effects of changing small parameters in the primary beam. How does the primary beam's width, exact energy, and incident angle affect the secondary beam transmission? LISE++ is mainly developed for RIB production at higher energies, so it does not allow one to really treat canonical nuclear reaction mechanisms. The energy losses calculated by other programs are basically for single-ion cases, rather than incorporating realistic straggling effects. Coupling finite beam parameters with energy straggling means solving for individual particle kinematics one-by-one. cribbon is also modeling the beam optics in an extremely realistic way, including all the apeture sizes, exact distances between components, and basing its magnetic field settings on the code actually used at CRIB.

If you want to do something like particle ID, use one of the existing tools. But if you want to know how much changing the primary beam energy by 0.5 MeV/u or the production target thickness by 50 Torr will affect your production and transmission, you should try out this approach instead.

It won't give you cross sections, total yields, or charge-state fractions. However, what it will do is give you the CRIB transmission yield for your chosen conditions. Since the cross section is basically constant over a small range of energy, this can be called constant. Thus to get a full realistic yield, calculate it as you would with the cross section, target thickness, beam intensity, and then multiply by the charge-state fraction and the transmission efficiency. (A transmission efficiency is the number of particles that arrive at F3 divided by the number you started with—something like 10% is reasonable.)


There is a lot of excellent software existing for nuclear physics. For this reason, my program relies on a lot of other software to be installed on your computer, letting cribbon do only the specific work needed for CRIB experiments, as well as automating the interfacing of these different programs.

1. ROOT — A data analysis framework from CERN. For full support with cribbon, I suggest you install from source code ROOT version 5.24 using a gcc-4.2 version compiler. (This is for the best functioning of MOCADI…see below.) Gentoo users should enable the examples USE flag for KaliVeda support.

2. KaliVeda — Some useful ROOT libraries. You need to have the ROOT example files installed so it can access Makefile.arch. Present release of cribbon is deprecated, and requires a 1.7 version release or earlier release of KaliVeda. Versions 1.8 re-implement the KV2Body classes in an excellent manner, but I haven't updated the beam model to use them yet. Sorry! At that time, I will also put a brief page on how to effectively and quickly install KaliVeda. Yes, I just checked, and their install instructions are still a terrible presentation pdf file. I'll get right on's like 5 lines on Linux shell code. How can people write such good code and such bad documentation?! Luckily, it leaves a place in the world for me!

3. enewz — A future release of cribbon will autobuild these tools. My Makefile skills are getting better, don't worry. In fact, this is the last thing I need to fix in this regard...

4. SRIM — Stopping ranges of ions in matter. Using wine this can be run in Linux if you like. I have some additional notes for use in Linux and with cribbon in particular.



Download cribbon

All the rest of the software is included with cribbon.

Download the latest release: cribbon v 0.1

You need to be running this in Linux. Besides my shell scripts, the only versions of MOCADI I know about are Linux binaries. In principle, everything else can run in other operating systems.

Getting everything working

Install all the above dependencies first. Make sure they all work!

After you compile enewz, you will need to copy the file libenewzlib.a from the enewz installation to cribbon/makebeam

You will need to manually copy the files from GIOSY to cribbon/gicosy

You will need to manually copy the files from MOCADI to cribbon/mocadi

Then you just need to issue the make command, and it should prepare all the programs you need.

Using cribbon

The only parameters you must define are in makebeam/reaction.txt which is fully commented.

Otherwise, you are just calling cribbon1 and cribbon2. You should process the files by SRIM in between, since I don't automate that.

Calling cribbon1 without any parameters will tell you what to do.

Check the README files in each directory to see what's going on.

the shell scripts

cribbon1 and cribbon2 are just bash shell scripts I wrote. They call the programs in the correct order, passing the correct parameters and files when needed. They also save an archive of all the work in a directory of the RIB ion, with subdirectories based on the case (each time you run it). In effect, these shell scripts are just how I would run the beam model for you if I was at the computer. That seemed a lot easier than trying to explain all the details on my website.

Later I'll try to update this page with more details of how to run the model manually, since that can be very useful.

call executables, PATH, wha?

If you're not much a person to touch the command line, you can be confused by what I mean when I say "call cribbon1" or something.

In Linux, there is no need for a .exe extention like in Windows for executable status. This is part of any file's mode (which is altered by the chmod command). Anyway, if you ran ls in a directory, generally speaking the executables will show up in a default color of yellow. But how to execute an executable!?

If the file is located in a directory that is part of your PATH, just typing the name of the executable will do it. I guess the confusing part is that the PATH is not altered for your working directory. In other words, you're in a directory, you see the executable, you type its name, and the operating system is confused.

The point is to call it explicitly. This in principle works for any case (you give the full path to an executable, and it will run). The trick is using ./ which is just the current directory. So running cribbon1 without any parameters looks like this for me:

daid@flux ~/physics/cribbon % ./cribbon1
cribbon1 version 0.1
Model RIB production for CRIB
Copyright 2009, 2010 daid kahl -
Usage: ./cribbon1 -n particles -e energy -p pressure -z charge-state
Description of options:
: is number of beam particles to process
: is the primary beam energy in MeV
-p : is the cryogenic target pressure in units defined in makebeam
-z : is the charge-state of the RI beam

        (__)               __(^^)              /   /    (__)      / PhD  \  (oO)     /|  /---^^---/     / | /| daid  ||    *  || ||------||
Next page