RionID (Ring-stored ion IDentification) Usage Guide
RionID is a Python code that simulates the time-of-flight/revolution-frequency spectrum of particles stored in a storage ring. Here is a guide on how to use RionID (for more details please check dfreiref.github.io/rionid/):
Code Structure
The RionID code consists of three main modules:
-
prerionid: Handles preprocessing of Schottky data and file monitoring.__main__.md: Entry point for preprocessing tasks.datacrunch.md: Multithreaded file processing system.e0018.md: Batch processing of IQ files.psdata.md: Schottky data processing.watcher.md: Directory monitoring for file changes.
-
rionid: Core simulation and data handling logic.__main__.md: Entry point for simulation tasks.creategui.md: Visualization using ROOT.importdata.md: Handles experimental data and simulations.inputtools.md: Utility functions for file input/output.pypeaks.md: Peak detection and fitting.pyqtgraphgui.md: Visualization using PyQtGraph.
-
rionidgui: Graphical user interface for interacting with the simulation.__main__.md: Entry point for the GUI.gui.md: Main GUI window.gui_controller.md: Manages the simulation workflow.parameter_gui.md: GUI for configuring simulation parameters.
Installation
-
Download and install Barion from @Xaratustrah, LISEreader from @gwgwhc, and PyROOT.
-
Download or clone the
RionIDrepository:git clone https://github.com/DFreireF/rionid.git -
Then in the cloned directory:
pip install .
Usage
Navigate to the directory containing the RionID code in your terminal.
Run python __main__.py [arguments], replacing [arguments] with the desired arguments (detailed below).
Arguments
The following arguments are available for use with RionID:
Main Arguments
datafile(required): Name of the input file with data. Can also be a list of files in a txt file.alphap: Momentum compaction factor of the ring.refion: Reference ion with format NucleonsNameChargestate := AAXX+CC. Example: 72Ge+35, 1H+1, 238U+92...filep: Read list of particles to simulate. LISE file or something else.
Secondary Arguments
harmonics: Harmonics to simulate.
Arguments for Each Mode (Exclusive)
brho: Brho value of the reference nucleus at ESR (isochronous mode).kenergy: Kinetic energy of reference nucleus at ESR (isochronous mode).gamma: Lorentz factor gamma of the reference particle.fref: Revolution frequency of the reference particle (standard mode).
Arguments for Visualization
ndivs: Number of divisions in the display.amplitude: Display of SRF data options. 0 -> constant height, else -> scaled.
Actions
log: Set the logging level.show: Show display. If not, save root file and close display.outdir: Output directory.correct: Correct simulated spectrum following a polynomial fit with parameters given here.
Example Usage: Dummy example
python -m rionid datafile.txt -f 11.2452 -r 209Bi+83 -psim datafile.psim -b 5.5 -d 8 -am 1 -s -o output_folder -c 1 2 3
This command would run RionID on the datafile.txt input file, using the standard mode with a reference frequency of 11.2452, a reference ion of 209Bi+83, a particle input file of datafile.psim, a brho value of 5.5, and displaying the data with 8 divisions, scaled amplitude, and showing the display. The output files would be saved in the output_folder directory, and the simulated spectrum would be corrected using the polynomial fit parameters 1, 2, and 3.
Tutorial
Tutorial for introducing yourself to Schottky data analysis by G. Hudson-Chang @gwgwhc.
Acknowledgements
We acknowledge Dr. RuiJiu Chen (@chenruijiu) for providing a C++ code for the simulation of time-of-flight, which we used as inspiration for the backbone of this code.
We acknowledge Dr. Shahab Sanjari (@xaratustrah) for guiding our software coding, especially in the initial stages.