Rachel GUI

From GOSIA

Jump to: navigation, search
(Tutorial videos and run-time help: fixed link to manual page)
(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.]]
-
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.  It is currently undergoing beta-testing.  The GUI ''optionally'' uses a modified Gosia version based on release 20081208.10, called 20081208.10.a.  This modified Gosia source code is distributed with the Rachel package.  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, but is ''not'' Windows compatible.
+
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)].
-
A 64-bit processor is essential, because Gosia runs fastest and most accurately on 64-bit machinesThe release-candidate version, expected in the summer of 2011, will have many structural changes in the code, allowing more automation, more general particle detector options and fewer user prompts for standard operations.  It is expected that the release candidate will make more use of push-button control panels and less input and output to the terminal.
+
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 setupRachel 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.
-
[[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.  For collective systems, where the matrix definition often includes several hundred lines of matrix elements, rotor parameters can be given to reduce the input definition considerably.  This also eliminates the need for the user to re-index the reduced matrix elements by hand as changes are made to the matrix.
+
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==
==How to get the Rachel package==
-
Version 2.0.7.beta is a bug-fix version that is completely compatible with version 2.0.4.beta and has the same backward-compatibility for session files older than 2.0.4.beta.  Refer to the [[gui_release_notes | release notes]] for the change in this version.
+
Get the latest release version from the [[Gosia#Downloads | Downloads section on the Main Page]].
-
The Rachel tar archive of version 2.0.7.beta is available on a [http://www.pas.rochester.edu/~hayes/beta_rachel/rachel.2.0.7.beta.tar temporary download site].  This includes an ''extended'' version of Gosia that makes use of file number 99 for amplitude vs. time data [[File:Amplitudes.png|thumb|right|Excitation amplitude as a function of the time-like variable 'w' generated by Gosia via the Rachel GUI.]] and collision function output for optional plotting functions in the GUIExcept for these two functions, the GUI can be run with the current version of Gosia, 20081208.10.
+
==Version notes==
 +
 
 +
The [[Gui_release_notes | version notes page]] gives a history of Rachel updatesKnown issues are given for each version, as well as the current version.
==Installation notes==
==Installation notes==
Line 19: Line 23:
===General===
===General===
-
Rachel has been installed successfully on the following systems.  You can view or submit detailed installation notes for these or other systems.  (Please link them to a separate Wiki page.)
+
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:
If the default python environment set in the rachel.py executable is not appropriate, the following error will appear:
Line 55: Line 74:
* 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.
* 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==
-
As of version 2.0.0.beta, the GUI preserves backward-compatibility of the saved session files, so that users can upgrade the GUI without having to rebuild the session.
+
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==
-
==Beta version capabilities==
+
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 68: 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 76: 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 including
+
* 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
Line 87: Line 141:
* 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.]]
* 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
-
* Saving the entire session to a file
 
* Undo/Redo of most functions and crash recovery
* Undo/Redo of most functions and crash recovery
Line 99: Line 152:
==Upgrade strategy==
==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 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.''
+
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.
-
This voting plan has not been implemented yet.  In the meantime, a page of [[rachel_desired_upgrades | desired upgrades]] has been created.
 
-
 
 
===Planned upgrades===
===Planned upgrades===
-
There are currently several planned upgrades that will likely be incorporated in the first [rachel release candidate] version.  The upgrade plan and priorities will be changed based on user feedback and bug reports.  An will be created early in the upgrade process so that users can rank or add their desired upgrades to steer the software development.
+
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.   
-
# Stopping power calculations for Z>92. (Currently, <tt>rachel</tt> uses the Zeigler tables, which are limited to Z<93.)
+
# More accurate stopping power calculations for low-Z beams.
# Improved graphics including
# Improved graphics including
## a transition from matplotlib graphics to pyGtk in the level scheme window
## a transition from matplotlib graphics to pyGtk in the level scheme window
## clickable objects in the level scheme diagram
## clickable objects in the level scheme diagram
-
# Addition of Ge clusters with libraries of array geometries (Gammasphere, Agata, etc.)
+
# Addition of Ge clusters with libraries of array geometries (Gammasphere, Agata, Miniball etc.)
# Plot functions to visualize fit conflicts in the data
# Plot functions to visualize fit conflicts in the data
-
# Improved coding structure for Ge detectors.  This will reduce the burden on the user by automatically updating the data set as the level scheme and matrix change.
+
# 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 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.  In the first release candidate, 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>.
+
# 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>.
-
==Tutorial videos and run-time help==
+
==Videos, manual and run-time help==
-
The Rachel manual has been incorporated into the [[Gosia_Manual | Gosia manual]].  Tutorial videos generated with a pre-beta version are now available.  While the GUI control panel and some user input and output formats
+
===Quick advertising and demos===
-
have changed slightly, most of these changes should be obvious during operation. 
+
-
Run-time help is available using the Help button. Users are encouraged to submit suggestions for additional help data.
+
[http://www.pas.rochester.edu/~hayes/beta_rachel/main_ad.html The Rachel advertising video]
-
===The basics===
+
[http://www.pas.rochester.edu/~hayes/beta_rachel/calculation_in_2_minutes.html Fast setup of Gosia calculations]
-
''Note that some of narration in the later tutorials is outdated.  Prompts in the GUI terminal window should clarify these changes.''
+
===Help with Rachel on this Wiki===
-
# To install Rachel and get it running for the first time, watch [http://www.pas.rochester.edu/~hayes/beta_rachel/rachel_installation.html Rachel Installation].
+
Use the search function to the left, or start here.
-
# A short video on [http://www.pas.rochester.edu/~hayes/beta_rachel/undo_redo.html the undo/redo buttons].
+
 
-
# How to [http://www.pas.rochester.edu/~hayes/beta_rachel/crash_recovery.html recover data from a crashed session].
+
[[rachel_selected_topics | Selected help topics for Rachel]]
-
# First steps: [http://www.pas.rochester.edu/~hayes/beta_rachel/reading_level_schemes.html Reading level schemes.]
+
 
-
# How to [http://www.pas.rochester.edu/~hayes/beta_rachel/add_matrix_non_collective.html add individual matrix elements]This is most applicable to small, non-collective systems, such as the one in the sample file example2levels.txt file distributed with Rachel.  
+
===Tutorial videos===
-
# How to [http://www.pas.rochester.edu/~hayes/beta_rachel/add_matrix_collective.html add matrix elements systematically], i.e., for collective nuclei with rotational bands.
+
 
-
# How to [http://www.pas.rochester.edu/~hayes/beta_rachel/setting_up_calculations.html define experiments, Ge detectors and calculate predicted yields]. This video will show how to define experimental detector setup, data partitions and make instant plots as wellUse the files fitting_example_levels.txt and fitting_example_matrix.txt included in the example files to quickly set up for this video. (The previous videos show how to load a level scheme and define or load a matrix.)  Note also that the current beta version 2.0.5 ''does'' allow arbitrary particle detector shapes to be defined.  The video narration has not been updated for all of the new detector options, and some prompts will be different from those in the video.
+
[[rachel_1.0_tutorial_videos | New Tutorial videos]] are being produced for version 1.0These will be much shorter and more focused than the old videos.
-
# A [http://www.pas.rochester.edu/~hayes/beta_rachel/basic_fit_example.html very basic example of fitting] including a correlated error calculation. The entire video is about 30 minutes long. You can follow along using the GUI on your system and the example files shown in the video, which are included with your Rachel distribution in the .../example_files/ subdirectory.
+
 
-
# More advanced selection of fit parameters are shown in this video on [http://www.pas.rochester.edu/~hayes/beta_rachel/experiment_planning_2.html experiment planning].
+
You can still watch [[rachel_beta_tutorial_videos | beta-version tutorial videos]], but there have been many changesGeneral 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 will look like the following:
+
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>
<pre>
-
Experiment 1 Detector 1
+
Experiment 1
-
                                  Raw                Sim. Measured              
+
Target excitation by Z,A = 54,136 at 517 MeV. Mean scattering angle = 45.0 deg.
-
Band       Spin   Band   Spin   Counts    Error   eps Counts       Error  
+
Detector 1
-
-------------------------------------------------------------------------------
+
Single crystal at theta, phi = 45.0, 45.0 deg. Solid angle = 0.06 sr.
-
      t    24.0    gsb    22.0         17       4  0.118     179     45
+
This simulation does not include random gaussian scatter.  Counts represent the cross sections calculated by Gosia.     
-
      t    24.0       t    22.0         18       4 0.151      121      29
+
      Transition             |  Gammas incident      |                    Fraction of |        Observed Counts       
-
  four    22.0   four    20.0         14       4  0.166       63     17
+
                              |  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>
</pre>
-
The "raw counts" are estimated from a typical efficiency curve for Gammasphere, and the estimated absolute efficiency <math>\epsilon</math> is given as "Sim. eps" for each transition.  Possion counting errors are based on the raw counts, while additional error on the ''total'' (simulated) efficiency-corrected counts may be added by the user.
+
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===
-
# [http://www.pas.rochester.edu/~hayes/beta_rachel/accuracy_testing.html Testing the accuracy] of your Gosia calculations and the applicability of Gosia to a planned experiment.
+
For troubleshooting help, refer to the [[rachel_troubleshooting | troubleshooting]] page, or use the search box at the left.
-
# Semiclassical Coulomb excitation codes have inherent adiabaticity and eccentricity limits. [http://www.pas.rochester.edu/~hayes/beta_rachel/adiabaticity_limit.html This video] shows how to test for these limits with an experiment that would ''not'' be appropriate for Gosia.
+
-
# [http://www.pas.rochester.edu/~hayes/beta_rachel/experiment_planning.html Generating simulated data]. The errors in the simulated data are based on Poisson statistics and the expected number of days, beam current, etc. to estimate your ability to observe desired gamma-ray yields and to fit matrix elements to the observed yields. The present beta version applies ''optionally'' a quasi-gaussian random scatter of the predicted yield data [http://www.pas.rochester.edu/~hayes/beta_rachel/experiment_planning_2.html as demonstrated in this video] to better aid in predicting expected precision of fitted matrix elements. Watch this supplemental video to see how this works. You should also watch the [http://www.pas.rochester.edu/~hayes/beta_rachel/accuracy_testing.html accuracy testing video] to see if Gosia would be an appropriate analysis tool for your planned experiment.
+
==Bug reports==
==Bug reports==

Latest revision as of 13:07, 17 May 2013

Personal tools