Rachel GUI
From GOSIA
m (testing links) |
(Changed installation to include forking the git repo.) |
||
Line 3: | Line 3: | ||
[[File:Guisnapshot.png|thumb|right|A snapshot of the alpha version GUI.]] | [[File:Guisnapshot.png|thumb|right|A snapshot of the alpha version GUI.]] | ||
- | + | For a demo of Rachel's capabilities, watch [http://youtu.be/moVVC-GODzQ The Rachel Video on Youtube], or [http://www.pas.rochester.edu/~hayes/beta_rachel/main_ad.html Download the mp4 (9MB)]. | |
- | + | The Rachel interface facilitates [http://www.pas.rochester.edu/~hayes/beta_rachel/calculation_in_2_minutes.html fast setup of Gosia calculations] and data analysis using push-button controls with guided input and 'plain language' warnings during setup. Rachel is written in Python 2.6 and is expected to be Python 2.7 compliant. It runs under Linux and Unix (OS X) machines. A Windows version is not planned. | |
- | + | A 64-bit processor is essential, because Gosia runs fastest and most accurately on 64-bit machines. Versions 1.* have many structural changes in the code, allowing more automation, more general particle detector options and fewer user prompts for standard operations. | |
- | == | + | [[File:Typicalgosiainput.png|thumb|right|Excerpt of a typical Gosia input for a collective system.]]While gosia.20081208 incorporates the [[OP,BRIC]] command to read internal conversion data from BrIcc data files, removing the burden of entering ICC interpolation data by the user, the GUI allows the greatest possible automation by prompts for pre-defined or user-defined germanium detector crystals or arrays, calculation of Zeigler stopping power data, optimum meshpoint selection for yield calculations, transformation of rectilinear detector definition to laboratory-frame spherical-polar interpolation coordinates, etc. For standard problems, the burden on the user is reduced to entering nuclear level and matrix data for simulations (including optional data-set simulation) and real experimental data for fitting of matrix elements. For collective systems, where the matrix definition often includes several hundred lines of matrix elements, rotor parameters can be given to reduce the setup time for the initial guesses of matrix element values. This also eliminates the need for the user to re-index the reduced matrix elements by hand as changes are made to the matrix or level scheme. |
+ | |||
+ | ==How to get the Rachel package== | ||
+ | |||
+ | Get the latest release version from the [[Gosia#Downloads | Downloads section on the Main Page]]. | ||
+ | |||
+ | ==Version notes== | ||
+ | |||
+ | The [[Gui_release_notes | version notes page]] gives a history of Rachel updates. Known issues are given for each version, as well as the current version. | ||
+ | |||
+ | ==Installation notes== | ||
+ | |||
+ | ===General=== | ||
+ | |||
+ | A script was added by Mitch Allmond that compiles and sets up Rachel, Gosia and Elast in one step. First, un-tar the distribution, or pull the git repo from the [[Gosia#Downloads | Downloads section on the Main Page]]. Please fork it and make pull requests if you have anything to contribute. | ||
+ | |||
+ | <pre> | ||
+ | % tar -xvf rachel_distribution_1.3.0.tar | ||
+ | </pre> | ||
+ | |||
+ | or similar for the correct version number. Move into the new Rachel directory and run compile-all.sh: | ||
+ | |||
+ | <pre> | ||
+ | % cd rachel_distribution_1.3.0 | ||
+ | % ./compile-all.sh | ||
+ | </pre> | ||
+ | |||
+ | You will be prompted if any previous setup information needs to be overwritten. | ||
+ | |||
+ | Rachel has been installed successfully on a number of Linux and OS X systems. Most problems are related to the level scheme graphics. Refer to [http://matplotlib.sourceforge.net/faq/installing_faq.html#backends matplotlib backends] for remedies. You can view or submit detailed installation notes for any particular operating system. (Please link them to a separate Wiki page.) | ||
+ | |||
+ | If the default python environment set in the rachel.py executable is not appropriate, the following error will appear: | ||
+ | |||
+ | <pre> | ||
+ | % [path].rachel.py | ||
+ | /usr/bin/env: python2.6: No such file or directory | ||
+ | % | ||
+ | </pre> | ||
+ | |||
+ | The correct Python environment can be invoked by typing instead: | ||
+ | |||
+ | <pre> | ||
+ | % [python] [path].rachel.py | ||
+ | </pre> | ||
+ | |||
+ | where [python] is the Python executable with the correct path and [path] is the path to the rachel.py executable where the user installed it. | ||
+ | |||
+ | ===Installation notes for other Linux/Unix systems=== | ||
+ | |||
+ | * [[rachel_installation_ubuntu | Ubuntu]] | ||
+ | * [[rachel_installation_open_suse | OpenSuse]] | ||
+ | * [[rachel_installation_fedora | Fedora]] | ||
+ | * [[rachel_installation_mac_os_x | Mac OS X]] | ||
+ | |||
+ | The final tests that all necessary libraries and codes are installed are usually the following: | ||
+ | |||
+ | * Load a level scheme and see that the level scheme window is drawn properly. Rarely, after loading a level scheme with no errors (e.g. using one of the example files included in the Rachel distribution), the user must click "Examine fig. window" once to create the level scheme window. On most systems, with the correct libraries installed, the level scheme display pops up when a valid level scheme is loaded with no errors. If the GUI starts and can load and draw the level diagram without errors, then it is unlikely that there are any missing libraries. Also note that on some systems the matplotlib back-end must be changed. This is done by editing the <tt>~/.matplotlib/matplotlibrc</tt> file so that the back-end line reads | ||
+ | |||
+ | <pre> | ||
+ | backend : [backend] | ||
+ | </pre> | ||
+ | |||
+ | where <tt>[backend]</tt> may be one of several back-ends described here: [http://matplotlib.sourceforge.net/faq/installing_faq.html#backends matplotlib backends]. Usually <tt>TkAgg</tt> works except on Mac OS X. Refer to [[rachel_installation_mac_os_x | Mac OS X]]. | ||
+ | |||
+ | * After running a calculation ("integration"), test the yield-plotting feature using the "Plot yields" button. If there is an error finding gnuplot, install gnuplot on the system so that it is in the user's path, i.e., that it can be invoked by typing "gnuplot" at the terminal prompt. | ||
- | |||
==GUI version backward compatibility== | ==GUI version backward compatibility== | ||
- | + | In the beta versions, the GUI preserves backward-compatibility of the saved session files, so that users can upgrade the GUI without having to rebuild the session. | |
- | + | When changing to version 1.0 or later, users will have to rebuild their sessions, because of major changes in the internal structure that cannot be automatically upgraded. This can be aided by the export/import tools for the level and matrix data. Subsequent versions will have the automatic upgrading reinstated. | |
+ | ==Graphics Issues== | ||
+ | |||
+ | If you do not see a level scheme diagram after loading a level scheme or a saved session, click "Examine fig. window" once. The level scheme should then appear. | ||
+ | |||
+ | If it does not, or if the level scheme window buttons (zoom, pan, etc.) do not work, you may need to change the graphics back-end. The matplotlib graphics library used for the level scheme and particle detector layout comes with several choices of back-ends. | ||
+ | |||
+ | *On OS X machines, "macosx" may work best. | ||
+ | *On Ubuntu, GTKAgg works best, but the user must click "Examine fig. window" 'once' after loading a level scheme or saved session. | ||
+ | |||
+ | The back-end is in the matplotlibrc file in the .matplotlib directory, or will be, after you start Rachel for the first time. | ||
+ | |||
+ | <pre> | ||
+ | hayes@Sobchak:~$ cd .matplotlib/ | ||
+ | hayes@Sobchak:~/.matplotlib$ ll | ||
+ | total 116K | ||
+ | drwxr-xr-x 3 hayes hayes 4.0K Nov 5 12:30 ./ | ||
+ | drwxr-xr-x 125 hayes hayes 12K Nov 5 12:53 ../ | ||
+ | -rw-r--r-- 1 hayes hayes 92K Oct 27 13:13 fontList.cache | ||
+ | -rw-r--r-- 1 hayes hayes 17 Aug 19 02:09 matplotlibrc | ||
+ | drwxrwxr-x 2 hayes hayes 4.0K Oct 27 13:13 tex.cache/ | ||
+ | hayes@Sobchak:~/.matplotlib$ cat matplotlibrc | ||
+ | backend : GTKAgg | ||
+ | hayes@Sobchak:~/.matplotlib$ | ||
+ | </pre> | ||
+ | |||
+ | Change the backend line as desired. The choices are found | ||
+ | |||
+ | |||
+ | ==Capabilities of version 1== | ||
+ | |||
+ | Note that there are major simplifications in the Ge detector array setup and data loading. | ||
+ | |||
+ | * Human-readable data files that are robust for changes in the experimental setup and level scheme | ||
* Azimuthally symmetric particle detection | * Azimuthally symmetric particle detection | ||
* Partitioning particle-detector data by azimuthal angle | * Partitioning particle-detector data by azimuthal angle | ||
Line 25: | Line 121: | ||
* Normal or inverse kinematics experiments | * Normal or inverse kinematics experiments | ||
* A user-expandable library of standard Ge crystals e.g. Gammasphere | * A user-expandable library of standard Ge crystals e.g. Gammasphere | ||
+ | * A user-expandable library of detector arrays (Tigress, Miniball, Gammasphere...) | ||
* Data from summed 4pi arrays | * Data from summed 4pi arrays | ||
* Efficiency-corrected gamma-ray data only | * Efficiency-corrected gamma-ray data only | ||
Line 33: | Line 130: | ||
* Accuracy testing to determine if Gosia will be appropriate for a planned experiment | * Accuracy testing to determine if Gosia will be appropriate for a planned experiment | ||
* Fitting and correlated error estimations | * Fitting and correlated error estimations | ||
- | * Reading level schemes and gamma-ray data from Radware AGS files and [[Rachel format | + | * Reading level schemes and gamma-ray data from Radware AGS files and [[Rachel_yield_data_files | Rachel text format]] including |
** Branching ratio data | ** Branching ratio data | ||
** Previously measured EM matrix elements, including the measured phases | ** Previously measured EM matrix elements, including the measured phases | ||
** Lifetime data for ''excited states'' (not the ground state lifetime) | ** Lifetime data for ''excited states'' (not the ground state lifetime) | ||
** Mixing ratios | ** Mixing ratios | ||
- | * Instantly generating plots of experimental vs. predicted yields via gnuplot [[File:plottingexample.png|thumb|right|A plot of yield vs. spin in a rotational band generated | + | * Several supported data file formats |
+ | ** [Radware] AGS format | ||
+ | ** [[Rachel format nuclear data files]] | ||
+ | ** Gosia format (experimental yield and fitted matrix element data) | ||
+ | * Instantly generating plots of experimental vs. predicted yields via gnuplot [[File:plottingexample.png|thumb|right|A zoomed view of a plot of yield vs. spin in a rotational band generated from the Gosia output and experimental data.]] | ||
* Automated generation of stopping power and internal conversion input for Gosia | * Automated generation of stopping power and internal conversion input for Gosia | ||
- | * Push-button controls | + | * Push-button controls, optional pop-up guidance and guided prompts |
* A searchable help function | * A searchable help function | ||
- | + | * Undo/Redo of most functions and crash recovery | |
- | * Undo/Redo of most functions | + | |
- | + | ||
Using Rachel, the user will be able to build a level scheme from either a hand-written text file and/or a Radware AGS file, define the experimental setup and import relative-efficiency-corrected gamma-ray data from Rachel-format text and/or AGS files. The matrix and fit parameters can be defined by push-buttons and prompts or imported from a Rachel-format matrix file. Gosia will then be run by push-button GUI controls. Most prompts will be preceded by help information, suggestions, or warnings. | Using Rachel, the user will be able to build a level scheme from either a hand-written text file and/or a Radware AGS file, define the experimental setup and import relative-efficiency-corrected gamma-ray data from Rachel-format text and/or AGS files. The matrix and fit parameters can be defined by push-buttons and prompts or imported from a Rachel-format matrix file. Gosia will then be run by push-button GUI controls. Most prompts will be preceded by help information, suggestions, or warnings. | ||
Line 50: | Line 150: | ||
For experiments that fit the capabilities above, the user can view the Gosia inputs to learn the format, but will not be required to type any input code. Experienced Gosia users can export a GUI-generated input skeleton file and abandon the GUI to use the more advanced capabilities of Gosia. | For experiments that fit the capabilities above, the user can view the Gosia inputs to learn the format, but will not be required to type any input code. Experienced Gosia users can export a GUI-generated input skeleton file and abandon the GUI to use the more advanced capabilities of Gosia. | ||
- | == | + | ==Upgrade strategy== |
- | + | Upgrades are being made to incorporate all of the capabilities of Gosia, with a focus on the most commonly used features. Prioritization of the upgrades eventually will be directed primarily by [[software upgrade voting|votes]] cast by the user community. Users are encouraged to submit requested upgrades to handle present features of Gosia that are not already included, ''as well as new functions that Gosia does not handle, but which could be incorporated via the GUI.'' | |
- | + | ||
- | + | This voting plan has not been implemented yet. Users are encouraged to suggest desired upgrades through the Forum or the [[rachel_desired_upgrades | desired upgrades]] page to steer the software development. | |
- | === | + | ===Planned upgrades=== |
- | + | There are a number of planned upgrades, many of which have already been added to versions 1.0 and later. The upgrade plan and priorities will be changed based on user feedback and bug reports. | |
- | # | + | |
- | # | + | # More accurate stopping power calculations for low-Z beams. |
- | # | + | # Improved graphics including |
- | # | + | ## a transition from matplotlib graphics to pyGtk in the level scheme window |
- | + | ## clickable objects in the level scheme diagram | |
- | + | # Addition of Ge clusters with libraries of array geometries (Gammasphere, Agata, Miniball etc.) | |
- | + | # Plot functions to visualize fit conflicts in the data | |
- | + | # Improved object structure for Ge detectors. This will reduce the burden on the user by automatically updating the data set passed to Gosia as the level scheme and matrix change. | |
+ | # Optional setting of symbolic matrix definitions, whereas now the matrix is stored numerically. This will allow greater user control by allowing tuning of model parameters, e.g. <gam|E2|gsb> = M1 + a*M2, where 'a' can be adjusted by the user. | ||
+ | # Optional simple distributed processing of some functions. This will allow the user to set a maximum number of independent processes to speed up separable calculations (integrated yields, corrected yields and experiment simulations) by issuing a separate call to Gosia for each process<ref>True distributed computing is not handled by the current version of Gosia</ref>. | ||
+ | |||
+ | ==Videos, manual and run-time help== | ||
+ | |||
+ | ===Quick advertising and demos=== | ||
+ | |||
+ | [http://www.pas.rochester.edu/~hayes/beta_rachel/main_ad.html The Rachel advertising video] | ||
+ | |||
+ | [http://www.pas.rochester.edu/~hayes/beta_rachel/calculation_in_2_minutes.html Fast setup of Gosia calculations] | ||
+ | |||
+ | ===Help with Rachel on this Wiki=== | ||
+ | |||
+ | Use the search function to the left, or start here. | ||
+ | |||
+ | [[rachel_selected_topics | Selected help topics for Rachel]] | ||
+ | |||
+ | ===Tutorial videos=== | ||
+ | |||
+ | [[rachel_1.0_tutorial_videos | New Tutorial videos]] are being produced for version 1.0. These will be much shorter and more focused than the old videos. | ||
+ | |||
+ | You can still watch [[rachel_beta_tutorial_videos | beta-version tutorial videos]], but there have been many changes. General procedures are similar. These old videos contain more topics per video, so some are quite long. | ||
+ | |||
+ | ===The manual=== | ||
+ | |||
+ | The Rachel manual has been incorporated into the [[Gosia_Manual | Gosia manual]]. | ||
+ | |||
+ | ===Other help resources=== | ||
+ | |||
+ | Run-time help is available using the Help button. Users are encouraged to submit suggestions for additional help data. | ||
===Experiment planning and accuracy testing tools=== | ===Experiment planning and accuracy testing tools=== | ||
- | + | The simulation tools have been improved since the recording of these video tutorials. The user will find extra prompts for the details of the planned beam run, and estimated absolute measured counts will be calculated and displayed. The display format looks like the following: | |
- | + | ||
- | + | <pre> | |
+ | Experiment 1 | ||
+ | Target excitation by Z,A = 54,136 at 517 MeV. Mean scattering angle = 45.0 deg. | ||
+ | Detector 1 | ||
+ | Single crystal at theta, phi = 45.0, 45.0 deg. Solid angle = 0.06 sr. | ||
+ | This simulation does not include random gaussian scatter. Counts represent the cross sections calculated by Gosia. | ||
+ | Transition | Gammas incident | Fraction of | Observed Counts | ||
+ | | on Ge detectors | Gamma Incident | | ||
+ | Initial Final | | Energy **Detector Gammas | | ||
+ | Band Spin Band Spin | Counts *Error | (keV) Efficiency Detected | Rate(Hz) Counts ***Error | ||
+ | ------------------------------------------------------------------------------------------------------------------------- | ||
+ | gsb 1.5 gsb 0.5 4.662e+06 2.332e+05 100.0 0.00049 0.09962 1.075e+00 4.644e+05 6.815e+02 | ||
+ | gsb 2.5 gsb 0.5 1.570e+07 7.848e+05 200.0 0.00179 0.36853 1.339e+01 5.784e+06 2.405e+03 | ||
+ | a 2.5 gsb 0.5 1.079e+04 5.647e+02 250.0 0.00189 0.38907 9.719e-03 4.199e+03 6.480e+01 | ||
+ | a 2.5 gsb 1.5 9.816e+02 7.705e+01 150.0 0.00135 0.27823 6.322e-04 2.731e+02 1.653e+01 | ||
+ | a 2.5 b 3.5 4.689e+05 2.376e+04 75.0 0.00015 0.0312 3.387e-02 1.463e+04 1.210e+02 | ||
+ | </pre> | ||
+ | |||
+ | The "Observed Counts" are calculated using the efficiency curve from the detector library or a detector created by the user. The "Detector Efficiency" <math>\epsilon</math> is the usual definition. Possion counting errors are based on the observed counts, while additional error on the ''total'' efficiency-corrected counts may be added by the user. | ||
+ | |||
+ | Refer to the page [[Rachel_simulated_yield_output | Rachel simulated yield output]] for more information about simulations with the GUI. | ||
+ | |||
+ | ===Troubleshooting=== | ||
+ | |||
+ | For troubleshooting help, refer to the [[rachel_troubleshooting | troubleshooting]] page, or use the search box at the left. | ||
==Bug reports== | ==Bug reports== | ||
- | Users are encouraged to submit bug reports via the [ | + | Check the [[gui_release_notes | release notes]] page for a history of bugs and bug-fix versions. |
+ | |||
+ | Users are encouraged to submit bug reports via the [http://www-user.pas.rochester.edu/~gosia/phpBB3/ Gosia forum]. The operation that revealed the bug should be reported, and the session file saved before this operation should be included if possible. | ||
+ | |||
+ | ==Links== | ||
+ | |||
+ | [http://www.pas.rochester.edu/~hayes/beta_rachel/main_ad.html The Rachel advertising video] | ||
+ | |||
+ | ==Notes== | ||
+ | |||
+ | <references/> |