Changes in the interfaces:

This release contains some non-backward compatible changes in the psana interfaces.

psana C++ API to Event:

Most of psana modules will always return the constant version of ndarray. It means that the following code:

shared_ptr< ndarray<T,N> > shp = evt.get(src, key);

needs to be migrated to:

 shared_ptr< ndarray<const T,N> > shp = evt.get(src, key);

The list of calibration modules which are now producing the const version of ndarray:

  • ImgAlgos.AndorImageProducer
  • ImgAlgos.CameraImageProducer
  • ImgAlgos.PnccdImageProducer
  • ImgAlgos.PnccdNDArrProducer
  • ImgAlgos.PrincetonImageProducer
  • ImgAlgos.ImgCalib
  • ImgAlgos.NDArrCalib
  • CSPadPixCoords.CSPadImageProducer
  • CSPadPixCoords.CSPadNDArrProducer
  • CSPadPixCoords.CSPad2x2ImageProducer
  • CSPadPixCoords.CSPad2x2NDArrProducer

psana Python API to Event:

The Python interface to DAQ datatypes has been made consistent with the C++ interface - methods of DAQ datatypes that return numpy arrays now return read-only arrays. Users that were modifying the data in place now need to make a deep copy, i.e.:

my_array = my_array.copy()

using psana on the monitoring nodes

This release is compatible with the new DAQ shared-memory interface to data streams on the monitoring nodes. The new interface is incompatible with the old one, and it requires to use this release.

New features and improvements:

HDF5 Translator:

Calibration Manager:

  • Improve bookkeeping quality in log files
  • Add group operations in the file manager of the GUI application

psana Python API to Event:

  • Check for ambiguous conversion of a const/non-const pair of ndarrays to one numpy array.

psana C++ API to Event:

  • Print warning to help C++ users get ndarrays of const elements from the Event when they forgot to add the const qualifier.

Bugs fixed:

  • Fix bug with printing event keys that include ndarray's of const items.The bug affected the Python API to the psana event
  • Fixed psana XTC input module to only add one damagemap for the case where indexing tries to fix split events. Previously the code would throw an "identical key" exception.
  • Fixed a memory management problem in the psana calibration modules
  • Fixed problems with Doxygen documentation generation in a number of packages

Known issues:

The Python module scipy.optimized is incompatible with the interactive psana module. The following order of importing modules will result in a crash:

import psana
import scipy.optimize

There is a workaround to that problem - to change the order in which teh modules are being imported. For example, the following code will work:

import scipy.optimize
import psana

The issue is expected to be fixed in the next release.



  • No labels