Potku, analysis software for ToF-ERDA with integrated MCERD

banana_logo_small.pngIntroduction – what is Potku?

Potku (Finnish: kick, recoil) is an open source analysis software used for creating depth profiles from time-of-flight elastic recoil detection analysis measurement data. With the Potku 2.0 update, it now also includes MCERD for Monte-Carlo simulations of scattered and recoiled particles. The software has a graphical user interface, implemented with Python 3.10 (2023), PyQt and Matplotlib. For the analysis itself, a back-end of standalone command line programs written in C are used. Some of the analysis components can also be used independently of the GUI, if necessary.

The Accelerator Based Materials Physics group at the Accelerator Laboratory is the current maintainer and developer of the software, but Potku began its life as a student project within the Department of Mathematical Information Technology, where the user interface was developed as a part of a student software project course (2013). The Potku ToF-ERD slab-analysis code is originally written by Kai Arstila with later physics contributions from Jaakko Julin. Users are encouraged to participate in the development of the software. During the year 2018, new student project called "Monisiro" developed original Potku further. It now contains full MCERD functionality. This addition extends the possible user base of the Potku program from ToF-ERD laboratories to all laboratories having RBS or ERDA setups and even further. In the beginning on 2024 Potku 2.2.5. version achieved a major update with lots of architectural changes which also improve the user friendliness of the Potku software.

Must for the users: Sign up for the Potku community e-mail list here! (opens new window) (no spam through this list!).

Release versions, with older ones in the another directory can be found from here.

Install/run info for Mac here (txt info) - also windows users nowadays require administrative access to the potku.exe - unfortunately.

Explanation of Potku data (e.g. for data export purposes) can be found here. 
Tutorials for Potku usage can be found from .ppt intro, Webinar1 (slab analysis) and from  Webinar2 (MCERD). 

References for Potku at the moment are: Potku publication and the original MCERD publication

 

Below one can read short update info without the need to visit the github.

5.3.2024 News - Major Release Potku 2.2.5

Major release after almost 2-3 years and 1000s of hours of coding: Potku 2.2.5 (build date 18.12.2023).

Potku can be now found directly from https://github.com/JYU-IBA/potku for all platforms (Win, Mac, Linux).

A streamlined development pipeline has been created on GitHub, where Potku’s new versions are released.
Get Potku future updates directly from the page: https://github.com/JYU-IBA/potku or from this page release versions.

This new version breaks backwards compatibility, i.e. after opening a request in this version, it no longer works in previous versions. This is (mainly) due to the energy detector option for the simulation and modification of the configuration files.

Potku also now follows semantic version numbering and this process is automated in GitHub.

New features:
- On the MCERD side users can choose between an automatically calculated reference density value and a manually entered value to use in simulations.
- Cut/selection files can now be modified after creation by adding, deleting and dragging points of an element selection. Also single element from the cut files can be imported to existing cut files.
- Copying and pasting element selections is now possible via context menu.
- Element selections can be selected from legend.
- Single cut files can now be imported to the ToF-E histogram.
- Energy detector added as a new detector type in detector settings. This is the energy after the last of the “foils”.
- Added ability to remove external files when comparing simulated energy spectra to experimental data.
- For each recoil element in MCERD, the simulation type can be chosen between recoil and scatter. Thus one can add Ti as a recoil or Ti* as like Br beam scattered from Ti.
- Timestamped data between ToF and E detector, if they coincidence with the kinematic correction. can now be semi-automated to be used to find the kinematic correction values (eg. timedifference to ToF vs E) and export them as a third column to the Tof-E .asc data file. This fully enables and partially automates the kinematic correction option in Potku.

Enhancements/bug fixes:
- Performance of cut/selection file windows has been improved. This is now faster and generated as “image”.
- Fixed ratio tool functioning in MCERD.
- Fixed sum spectrum plotting of energy spectra.
- On MCERD side deleting a main recoil element now also properly deletes any associated secondary recoils.
- Python version upgraded to 3.10.
- Potku’s version and date of the version is displayed in the title of Potku’s main window.
- Enabling measurement-specific settings copies over all request-wide settings as a basis for the specific settings, now including also efficiency files.
- Changing the color of a recoil in MCERD now works as intended.
- “Efficiency files used”- text now actually checks that was some file with non-zero numbers found.
- Previously failing unit tests have been fixed.
- Tons of small bugfixes.
- Tons of code architecture improved.

Usage and features

There is different ways Potku can be used: pure simulation mode in MCERD or ToF-ERDA slab data analysis, or in combination of two. In addition user can export other type of spectra (RBS, ERDA) to the MCERD.

In the Tof-ERDA slab analysis-side, the user is expected to provide a list of time-of-flight–energy events in ascii or some supported binary format. The software is also bundled with a coincidence tool, which can extract these events from time-stamped list mode data. Some details such as the geometry and beam must be provided and user needs to manually identify elements/isotopes from the ToF-E–spectra.

Potku can then be used to

  • perform time-of-flight calibration
  • perform kinematic calibration
  • study composition changes over the length of the measurement
  • create energy spectra from time-of-flight spectra (to export measurement to other software
  • create depth profiles
  • MCERD simulations and compare the measured ToF-ERDA data to simulated data
  • Automatically fit the simulated composition profile to match the experimental profiles

In a simulation mode, user needs to configure parameters for MCERD, design a target structure, recoil element distribution and run the simulations. These simulations and recoil element distribution can then be

  • compared to existing ToF-ERDA, ERDA or RBS data
  • modified in a fast way without the need for new simulations
  • can be normalized easily to fit the experimental data
  • can be used to show the uncertaintly of the measurement eg, showing simulated values for eg. 1, 2 and 3 at. % concentrations.

See a presentation for more detail look at the features and usage of Potku 2.0. (Doesn't yet include guide for the automatic MCERD fitting)

Potku-screenshot.png

 

Development

The development versions are hosted at GitHub at JYU-IBA/potku (since late 2023 automatic vesion numbering helps to identify and refer-to different Potku versions).

Potku composes of these of these parts:

1. ePotku, the www-based potku (coming after summer 2020.. or after 2025...)
2. Potku aka https://github.com/JYU-IBA/potku/
3. MCERD (mcerd + get_espe) https://github.com/JYU-IBA/mcerd
4. JIBAL (Jyväskylä ion beam analysis library) https://github.com/JYU-IBA/jibal (links to MCERD etc).

The GitHub site acts as a hub for development.
The latest stable release can be downloaded from the downloads section or from the GitHub branches. Please see the requirements before installing! If you install Potku from GitHub you must compile the C programs using the provided scripts. The files available for download also contain the executables.


Requirements, comments, file downloads:

Downloads:

  • Most recent RELEASE versions are here (no install needed -versions for Mac, Win and linux).
  • Example data -folder for Potku 2.0: a sample Request is here.
  • Example efficiency files are also provided, mac versions filename extension might need to be changed a bit. In the first column is the energy (in MeV) and in second column is the efficiency (1.00 - 0.00). Filename is associated with the isotope, and shoud start with element symbol + isotope number e.g.   H1.eff, H2.eff, or Li6.eff,  and element files such as H.eff, Li.eff  when using element cut files (elemental cut and .eff files was separated from isotope files in July 2020 release)
  • Guide / presentation for the usage of MCERD and Potku 2.0 is here.

Note: Parts of the analysis code use hard-coded defaults, which might not be optimal for your data. The program is still approaching a mature state, so expect small bugs. The known bugs listed are fixed in the latest master-branch version found from the repository. Bug reports are welcome. 

Older version changes

Older version changes are seen from here. Or more preferably from github.

Licence

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version. See LICENCE file inside package for detailed information.

Several of icons used in Potku are a part of Reinhardt Icon Set which is under LGPL licence. See LICENCE.txt and README.txt files in ui_icons/reinhardt directory for detailed information.
Documentation

A preliminary manual is included in the distribution.

Example - getting started with Potku

Some sample data is included in the distribution. A complete data set is available from the sample data section.

Version history

2019-05-28

Automatic fitting tool added to MCERD.

 

2018-12-21

Multiple bugs corrected for Potku 2.0

 

2018-09-01

Potku 2.0, first public release of the new potku with integrated MCERD

 

2016-11-29

Potku 1.1 - Windows installers provided, minor bugfixes relating to PyQT

2013-12-03

Bugfix release, v.0.8.2

2013-09-11

First public release, v0.8