The program is installed in the polar server, under tabor2 account. You can login by tabor2 to copy the whole folder 'DSAM_GUI' to your home directory, and you are ready to run the code. Inside the DSAM_GUI, key in ./goDSAM
, then you will see the GUI. ( If you need the source code to try your own, you are very welcome to email to me.)
If you want to install the program, you have to make sure that you have Python 2.7 or later, in which the PIL (python image library 1.1.7 for PNG files) library is supported. The Ubuntu 14.04 version will be all fine. Also the xmgrace program is needed to generate the png figures. If you don't have the xmgrace program. Type in sudo apt-get install grace
to install it. And there are C++ and Fortran 77 programs to compile in the 'lib'. Go to the 'lib' folder, and then key in make
to compile theses files.
'stp panel' is located at the first tab from the left. Preparing a *.stp file is the first step to DSAM fitting. Generally speaking, creating a stopping power file (.stp) for DSAM fitting is NOT simple. You will need to run 'SRIM' for simulating nuclear and electric stopping power dE/dx (in the unit of MeV/ (mg/cm^2) ), and 'PACE' for simulating the 'relative' reaction cross-section. Additionally, you need to prepare certain information for the target; densities and thickness. This panel guides you to input the information. I already simplified the input and minimized the complexity.
The previous graduate student E.F. Moore wrote the 'Fits' program in Fortran 77 that need a stp file input. The details can be seen at his dissertation and Robert Kaye's dissertation. The following table explains the parameters. (sample)
symbols | Original | DSAM_GUI | note |
TITLE | 31Si in Ta 25 MeV | 31Si in Ta 25 MeV | (up to 30 characters) |
AP | 18 | 18 | atomic mass for projectile (180 ) |
EBMAX | 25 | 25 | max beam energy in MeV |
ZT | 8 | 8 | proton number for target (18O) |
AT | 18 | 18 | atomic mass for target (18O) |
ZB | 73 | 73 | proton number for backing (181Ta) |
AB | 181 | 181 | atomic mass for target (181Ta) |
ZR | 14 | 14 | proton number for recoil (31Si) |
AR | 31 | 31 | atomic mass for recoil (31Si) |
IBALAU | 1 or 2 | (defult=1) |
1 = using Blaugrund's approximation, 2= no nuclear scattering |
DEL | from 0 to 1 | from 0 to 1 | FWHM of recoil energy distribution = ? of max energy |
NTHETR | from 0 to 5 | (defult=1) | number of recoil theta angles, max = 5 |
NPHIR | from 0 to 10 | (defult=1) | number of recoil phi angles, max = 10 |
ANGR | 0 | (defult=0) | not clear to me, but it seems we don't use it. |
PROBR | 1 | (defult=1) | not clear to me, but it seems we don't use it. |
ARES | 1.79 | 1.79 | the FWHM will increase as E increases |
BRES | 0.000853 | 0.000853 | FWHM = ares + bres * E + cres * E^2 |
CRES | 0 | (defult=0) | normally CRES is very small |
SNOP | 1 | (defult=0) | Projectile stopping power normalization |
EMIN | 17 | 17 | Minimum beam energy for stopping power of projectile |
DEP | 1 | 1 | delta E of projection ( energy increment for stp) |
NPP | 9 | (auto) | stp power energy ( E=17, 17+1, ..., 17 +8) < EMax=25 |
STTP[NPP] | 3.511, 3.484, 3.446... | 3.511, 3.484, 3.446... | at 17 MeV, projectile electronic dE/dx = 3.511 in target, at 18 MeV =3.484 |
NUMEL | 100 | (default = 100) | number of target division sections |
TARTH | 0.000159 | 0.000159 | target thickness in 'cm' |
NTP | 20 | (auto) | number of target and backing stp entries (see ESTOP, STP ) |
SNOT[1] | 1 | (default = 1) | target stopping power normalization |
RHOT[1] | 8200 | 8200 | target density (mg/cm^3) mg = milligram = 10^-3 g |
SNOT[1] | 1 | (default) | backing stopping power normalization |
RHOT[1] | 16601 | 16601 | backing density (mg/cm^3) |
FE[1] | 1 | (default=1) | normalization for electronic stopping power only for target |
FN[1] | 1 | (default=1) | normalization for nuclear stopping power only for target |
FE[2] | 1 | (default=1) | normalization for electronic stopping power only for backing |
FN[2] | 1 | (default=1) | normalization for nuclear stopping power only for backing |
NCHOICE | 1 or 2 | (default=2) | 1 = Kalbitzer and Oetzmann, 2 = Bohr's ansatz |
0, 0, 0, 0 | 0, 0, 0, 0 | ESTOP[1][i] >> STP[1][i] >> ESTOP[2][i] >> STP[2][i] | |
0.1, 0.951, 0.1, 0.61 | 0.1, 0.951, 0.1, 0.61 | at 0.1 MeV, elect. stp for recoil in target = 0.951 (MeV/ (mg/cm2) ), in backing = 0.61 | |
0.3, 1.094, 0.3, 0.77 | 0.3, 1.094, 0.3, 0.77 | at 0.3 MeV, stp for recoil at target = 1.094, at backing = 0.77 | |
... | ... | ||
35, 8.009, 35, 6.04 | 35, 8.009, 35, 6.04 | total NPP=20 entries | |
NSIG | 8 | (auto) | number of cross-section entries |
EBX[] | 15, 17.5, 18, ..., 30 | 15, 17.5, 18, ..., 30 | beam energy in MeV |
SIGR[] | 0.06, 0.5, 2, ....10.5 | 0.06, 0.5, 2, ....10.5 | in 15 MeV, reaction 'relative' cross-section = 0.06 |
The next thing is to prepare the line shape of the peak you want to fit. Therefore, you need to sort the γ-γ matrix with an axis setting of all angles vs. a specific angle. For example: ring03.NSM is the histogram from the 30-vs-all γ-γ matrix. ring15.NSM is the histogram from the 150-vs-all γ-γ matrix. You can consider only to fit 30 deg line shape, or to fit a line shape with 30 deg + flip 150 deg, which is flipped in respective to the stopping peak position. In this example, the stopping peak position is at 1439 channel. You can also use the 90-vs-all γ-γ matrix to find the stopping peak position.
Once you generate the NSM files, the next thing is to gather the information for the 'fits' program. The original process is very tedious, such as you have to convert the channel number. It is inconvenient especially when you add forward and flip-backward line shapes. GSAM_GUI can make this process much easier.
rangeL = lower limit of channel number
rangeU = upper limit of channel number
stp_peak = the stopping peak channel number
cmp = compression factor
You have a set of two radio buttons to control the output. You can save and load the setting (default is to lineshape.lsh ). When you hit run, the output will show on the terminal as well as to lineshape.dat by default. Also the output will show on the terminal as well. And you can also edit the lineshape.dat file, such as when you want to certain data points. You can manually set them to '-1'.
The 'fits' panel is the main part you will spend most of the time in DSAM. It provides visualization of feeding patterns and the fitting results. When you open 'DSAM_GUI' the default tab is 'fits' panel.
On the left is the units for feeding patterns.
On the right is for showing feeding patterns or showing fitting results.
On the bottom is the control for the fitting of the state of interest.
By default, the lsh file is set to lineshape.dat.
By default, the stp file is set to current.stp.
Once you change the lineshape.dat in the 'lsh file' panel,
You should reload the latest lineshape.dat file by the '...' button, and the program will parse the lineshape.dat and automatically set the Egamma, compression factor, minTau, and maxTau.
Egamma = γ-ray energy (in keV), we will use the stopping peak channel.
bg = background
angle = the angle for the forward line shape.
minTau = min tau for the state of interest (in fs).
maxTau = max tau for the state of interest (in fs).
I set the step is 10, and then d = (maxTau - minTau)/10. The 'fits' program will fit this state with tau from tau, tau + d, tau +2d, ..., tau + 9d
minPeak = the min stopping peak position in relative channel
maxPeak = the max stopping peak position in relative channel
I set the step is 5, and so when reading lineshape.dat, it will set:
minPeak = stp_peak - 0.5
maxPeak = stp_peak + 0.5
You can manually change them as well.
sftime = side feeding time (in fs) for the state of interest.
you can key in multiple values to fit and separate them by ','. For example: 0, 100, 200
The 'calc' button is for calling 'fits' program,
At the top is a control bar
the spin list is for the levels of feeding pattern (default = 5)
'save' = save the setting ( by default myDSAM.set )
'load' = load the setting ( by default myDSAM.set )
're-initial' = to reset and re-adjust the levels
'show' = to show the feeding.
If you already run the 'calc' button, you can use 'show' button to alternate the plots between feeding patterns and fitting results.
When setting the feeding pattern, check the box to activate the unit. There are four columns representing the four branches. The rows represent levels. The numbering system is a little bit wired, since I have to map it to the origin 'fits' program.
the state of interest is labeled as (1,2), at level = 1
then next are (2,1) and (2,2) at level 2
then next are (3,1) , (3,2), (3,3), (3,4), at level 3
See the following graph from E.F. Moore.
DSAM_GUI makes your work easier by showing the feeding patterns.
'df_pop' = direct feeding relative population (0-100)
'sftime' = side feeding time (in fs. )
'dftime' = side feeding time (in fs. )
you can input multiple value in the entries of'df_pop', 'sftime', and 'dftime', and use ',' to separate them, such as 1,2,3. The DSAM_GUI program will pick up the combination with minimum chi square value to plot. When you have multiple values, the canvas will only show '...'. If sftime = 0, it won't be shown in the canvas. See the following demonstration
Example 1
Example 2
Example 3
When you finish setting up the feeding patterns and lifetimes, hit the 'calc' button. It will show the following plot with the report on the most right windows, serving as your notepad. You can copy or edit the text there. In the following is a summary of line shape file, (sample )
simbols | note | |
title | 1439a | 'DSAM GUI' will prepare it for you |
ICH1 | 1 | 'DSAM GUI' will prepare it for you |
ICH2 | 44 | 'DSAM GUI' will prepare it for you |
ISPECE[] | 729 747 853 -1 -1 | 'DSAM GUI' will prepare it for you |
-1 -1 1408 1651 2314 | You have to manually change to -1 | |
4068 6438 7066 5059 3199 | if you want to ignore some data point. | |
2358 2065 1957 1878 1820 | ||
1709 1648 1536 1418 1230 | ||
6,1,100,0.000,0.050 | I,J,${dfpopIJ},${sftimeIJ},${dftimeIJ} | |
5,1,100,0.000,0.050 | 'DSAM GUI' will prepare it for you | |
4,1,100,0.000,0.050 | 'DSAM GUI' will prepare it for you | |
... | 'DSAM GUI' will prepare it for you | |
1,2,100,0.000,0 | 'DSAM GUI' will prepare it for you | |
1,1,0,0,0 | 'DSAM GUI' will prepare it for you | |
EGAM | 1439 | Gamma-ray energy = Stopping peak channel |
THETA | 40 | Forward angle |
A2 | (default = 0.01) | The A2 and A4 value is from angular distribution |
A4 | (default = 0) | Normally they only have little influence. |
TAULO | =minTau | |
TAUHI | =maxTau | |
DTAU | (auto) | set to only 10 steps |
PKLO | =minPeak | |
PKHI | =maxPeak | |
DPEAK | (auto) | set to only 5 steps |
IBKG | = bg | |
ECAL | (auto) | = cmp (compression factor), retrieve from lineshape.dat |
R | *(default = 3.5) | radius of Ge detector in cm (in this case GAMMASPHERE ) |
H | * (default = 8.5 ) | thickness of Ge detector in cm |
D | * (default = 25 ) | distance between target and detector in cm |
NRAD | (default = 10) | Number of radial elements of the detector |
NANG | (default = 10) | Number of angular elements of the detector |
( for correcting the finite solid angle.) |
The 'fits' program creates the summary document at fort.4 and fort.3. You can further utilize them to do your analysis. Furthermore the lineshape.dat file stores the line shape information. .A_script.sh is a hidden script to perform the 'fits' program. If you wish to have the source code, you are very welcome to contact me.