# Summary of changes in STIR release 1.2 (dated 01/04/2004)

Version 1.2 is really a maintenance/bug fix release, but includes some new functionality that is still a bit experimental.

Nearly all work on this update was by Kris Thielemans and Sanida Mustafovic.
Thanks to Frédéric Schoenahl and Oliver Nix for helping to fix some bugs, and to Pablo Aguiar, Frédéric Lamare, Frédéric Schoenahl and Χαραλαμπος Τσουμπας (Charalampos Tsoumpas) for testing.
Also many thanks to Mérence Sibomana for updating the LLN ecat matrix library to iron out some problems with STIR.

## Summary for endusers (also to be read by developers)

### Bugs removed that affect users

- converting to ECAT6 sinograms: subheader.sampling_distance was set in mm instead of cm
- converting to ECAT7 sinograms: mhead.bin_size was written in mm but should have been cm. As a consequence, the recon_zoom factor for images was set 10 times too large.
- GE Advance parameters are sligthly adjusted to be the same as the VOLPET info [Roman Krais]
- ifheaders_for_ecat7 wrote filenames as f#g#b#d#, but it should have been f#g#d#b#. This has now been corrected. Note that the data was alright, only that the filename didn't follow the usual ECAT matrix order. Also, we found a bug that caused a crash when writing out a warning that the file is not ok :-/

### Code changes that influence your results

- the forward projector using Ray Tracing has changed to be more numerically stable, and gives now the same results as the projection matrix using Ray Tracing. It is also faster on non-brain dead compilers. However, all this means it gives marginally different results from the previous version (mainly for non-zero pixels at the edge of the FOV).

### New functionality of existing utilities

- stir_math: - added option of thresholding the data, and adding scalars
- SSRB: added trimming option
- "Ray Tracing" projection matrix: added facilities for disabling symmetries in segment, s and z

### New utilities

(but beware for some of these, as their syntax/interface might change in the next release):

- utilities zoom_image, create_projdata_template, generate_image, list_ROI_values
- list mode (re)binner: go from list mode data to projection data (aka sinograms).

### Installation procedure changes

- completely revised the makefiles. Please read the User's guide (or the mailing list). Some important changes:
  - the optional file STIR/local/Makefile_common should now be called STIR/local/config.mk. You can probably just rename your existing file (if you have one).
  - the variable `INSTALL_DIR` is now renamed `INSTALL_EXE_DIR` (or you might prefer to use `INSTALL_PREFIX`
  - `make install-all` will put executables, libstir.a, include files, and some associated files in various locations.
  - `make uninstall` and `make uninstall-all` remove the installed files.
  - The optional files `local/Makefile_bblibs` and `local/Makefile` are now ignored. Please read the developers guide for more info on how to add your own files to your local version of STIR.

### Documentation changes

- doxygen documentation has improved
- STIR_UsersGuide has been updated
- STIR_developers_overview has been marginally updated (and some typos removed)

### recon_test_pack changes

- more checks (please please download it and run!)

## What's new for developers (aside from what should be obvious from the above):

### New libraries

- listmode: preliminary version of library for reading and processing list mode data. Support included for ECAT 966 and 962 (but this might be broken at this point due to moving files around etc). Note that this library is still somewhat unstable. Please feel free to discuss it on the developers list.
- Shape: geometric shapes
- evaluation: ROIs

### Code changes

- a bit more tests
- put in fixes for new compilers such as gcc 3.3 and VC 7.0
- doxygen documentation looks better because of more grouping, corrections and of course a new version of doxygen
- some bug-fixes (mainly those mentioned on the mailing lists, but a few more)
- merged Reconstruction*Parameters classes into Reconstruction* classes
- added convenience functions to ForwardProjectorByBin and BackProjectorByBin that handle all projdata at once.
- BinNormalisation functions now include time-info to allow for dead-time corrections (but we don't have any implemented in the distribution).
- ProjDataInfoCylindrical*.cxx: added more functions such as get_all_ring_pairs_for_segment_axial_pos_num, and make sure that the set_* functions also reset the internal lookup tables [bug fix].
- updated to boost 1.31