Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • RootHistoManager: use of this, through PSEnv::Env::rhmgr() has been deprecated in favor of PSEnv::Env::hmgr() for some time now. With this release it has now been removed so users will need to use hmgr() (see the section API Changes Details). (PSAS-131) 

Bugs fixed 

  • PSCalib: GeometryObject - delete and make new array pointers only if array size is changing (PSAS-11)
  • ImgAlgos:   PixCoordsProducer - move calls of savePixCoordsInCalibStore(env) in checkCalibPars(...) (PSAS-11)

Known Issues

  • When reading small data files (.smd.xtc) and extracting data that resides in the large file, psana will crash after about 1000 retrievals (PSAS-130). This will be fixed in the next release. In the mean time, one can make a test release and do
    addpkg psddl_pds2psana V00-09-20
    to get the bug fix.

  • TimeTool.Analyze and Setup
    •  do not work on newer data with EvrDataV4 (as opposed to EvrDataV3). Usage of TimeTool will generated warnings about no evr data. This will be fixed in the next release. In the mean time, one can make a test release and do
      addpkg TimeTool V00-02-02
      to get the fix.
    • Crash in MPI jobs. Setting dump=0 should turn off the .root file creation, but the bug is that an empty root file is created. This is fixed in the next release. In the mean time, one can make a test release and do
      addpkg TimeTool V00-02-02
      to get the fix

API Changes Details
Anchor
api_change_details
api_change_details

Below we document details of the two API changes affecting C++ users.

C++ Histograms

Psana provides a histogram mechanism that is available to C++ modules. (This mechanism is not part of the Python interface where one can use numpy or scipy). The API to use this mechanism has changed. The old API implemented the following two methods of PSEnv::Env:

...

Clients of hmgr() need to check that they have a valid pointer before using histogram services, and be cognizant of the change from a reference to a pointer in the return argument of hmgr. Otherwise, there is no change to user code. The histogram service should work as expected. However in the future, we may install psana in computing centers where hmgr() returns null and no histogram service is available for C++ modules.

Automatic Header Includes

Psana used to include certain header files from the root C++ library. These headers in turn included numerous items from the standard C++ library, and used using std statements. For example, a psana C++ module did not need to include <fstream>, it could just use ofstream without qualifying it as std::ofstream. We have since removed these root headers. Consequently users may need to include the appropriate headers from the C++ library in their own code, and make use of the std:: namespace qualifier.