diff --git a/CITATION.cff b/CITATION.cff index 77d74b039..2a473843d 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -8,12 +8,12 @@ message: >- metadata from this file. type: software authors: - - family-names: Mustafovic - given-names: Sanida - affiliation: Imperial College London (UK) - family-names: Efthimiou given-names: Nikos orcid: 'https://orcid.org/0000-0003-1947-5033' + - family-names: Mustafovic + given-names: Sanida + affiliation: Imperial College London (UK) - family-names: Brown given-names: Richard orcid: 'https://orcid.org/0000-0001-6989-9200' @@ -21,31 +21,34 @@ authors: - family-names: Twyman Skelly given-names: Robert affiliation: University College London and Prescient Imaging - - family-names: Tsoumpas - given-names: Charalampos - family-names: Deidda given-names: Daniel orcid: 'https://orcid.org/0000-0002-2766-4339' affiliation: National Physics Laboratory (UK) + - family-names: Tsoumpas + given-names: Charalampos - family-names: Falcon given-names: Carles - - family-names: Borgeaud - given-names: Tim - affiliation: Hammersmith Imanet Ltd - - family-names: Khateri - given-names: Parisa - affiliation: ETH Zuerich - family-names: Jehl given-names: Markus affiliation: Positrigo - - family-names: Wadhwa - given-names: Palak - affiliation: University of Leeds (UK) - family-names: Strugari given-names: Matthew affiliation: Dalhousie University (Canada) + - family-names: Khateri + given-names: Parisa + affiliation: ETH Zuerich - family-names: Beisel given-names: Tobias + - family-names: Wadhwa + given-names: Palak + affiliation: University of Leeds (UK) + - family-names: Borgeaud + given-names: Tim + affiliation: Hammersmith Imanet Ltd + - family-names: Emond + given-names: Elise + affiliation: University College London - family-names: Jacobson given-names: Matthew - family-names: Gillman @@ -57,26 +60,24 @@ authors: - family-names: Zverovich given-names: Alexey affiliation: Brunel University (UK) - - family-names: Emond - given-names: Elise - affiliation: University College London - - family-names: Biguri - given-names: Ander - orcid: 'https://orcid.org/0000-0002-2636-3032' - affiliation: University College London - family-names: Fuster Marti given-names: Berta affiliation: University of Barcelona (Spain) - family-names: Labbe given-names: Claire + - family-names: Biguri + given-names: Ander + orcid: 'https://orcid.org/0000-0002-2636-3032' + affiliation: University College London - family-names: Fischer given-names: Jannis orcid: 'https://orcid.org/0000-0002-8329-0220' - family-names: Roethlisberger given-names: Michael affiliation: ETH Zuerich - - family-names: Aguiar - given-names: Pablo + - family-names: Bertolli + given-names: Ottavia + affiliation: University College London - family-names: Brusaferri given-names: Ludovica affiliation: University College London @@ -88,35 +89,34 @@ authors: given-names: Benjamin orcid: 'https://orcid.org/0000-0002-9784-1177' affiliation: University College London - - family-names: Bertolli - given-names: Ottavia - affiliation: University College London + - family-names: Aguiar + given-names: Pablo - family-names: Niknejad given-names: Tahereh - - family-names: Dikaios - given-names: Nikos - family-names: Sadki given-names: Mustapha affiliation: Brunel University (UK) - - family-names: Fardell - given-names: Gemma - orcid: 'https://orcid.org/0000-0003-2388-5211' - affiliation: UK Research & Innovation + - family-names: Schmidtlein + given-names: C Ross - family-names: Kerrouche given-names: Nacer affiliation: Hammersmith Imanet Ltd - - family-names: Ovtchinnikov - given-names: Evgueni - orcid: 'https://orcid.org/0000-0002-9359-6514' + - family-names: Dikaios + given-names: Nikos + - family-names: Fardell + given-names: Gemma + orcid: 'https://orcid.org/0000-0003-2388-5211' affiliation: UK Research & Innovation - family-names: Ehrhardt given-names: Matthias J. orcid: 'https://orcid.org/0000-0001-8523-353X' - - family-names: Schmidtlein - given-names: C Ross - family-names: Valente given-names: Patrick affiliation: Brunel University (UK) + - family-names: Ovtchinnikov + given-names: Evgueni + orcid: 'https://orcid.org/0000-0002-9359-6514' + affiliation: UK Research & Innovation - family-names: Schramm given-names: Georg affiliation: Katholieke Universiteit Leuven (Belgium) @@ -127,6 +127,9 @@ authors: - family-names: Belluzzo given-names: Damiano affiliation: Hospedale San Raffaele Milano (Italy) + - family-names: Jurjew + given-names: Nicole + affiliation: University College London - family-names: Ching given-names: Daniel - family-names: Hague @@ -137,24 +140,24 @@ authors: affiliation: University of Leeds (UK) - family-names: Chen given-names: Gefei - - family-names: Dao - given-names: Viet Anh - affiliation: University of Leeds (UK) - - family-names: Mikhaylova - given-names: Ekaterina - affiliation: Positrigo - family-names: Porter given-names: Sam David affiliation: University College London, National Physics Laboratory (UK) + - family-names: Mikhaylova + given-names: Ekaterina + affiliation: Positrigo + - family-names: Dao + given-names: Viet Anh + affiliation: University of Leeds (UK) - family-names: da Costa-Luis given-names: Casper O. orcid: 'https://orcid.org/0000-0002-7211-1557' - - family-names: Rashidnasab - given-names: Alaleh - affiliation: University College London - family-names: Whitehead given-names: Alexander C. affiliation: University College London + - family-names: Rashidnasab + given-names: Alaleh + affiliation: University College London - family-names: Gillen given-names: Rebecca affiliation: University College London diff --git a/documentation/STIR-UsersGuide.tex b/documentation/STIR-UsersGuide.tex index 74d30c42d..fd404074a 100644 --- a/documentation/STIR-UsersGuide.tex +++ b/documentation/STIR-UsersGuide.tex @@ -44,7 +44,7 @@ \\[3cm] \textbf{{\huge User's Guide\\ - Version 5.2}} + Version 6.0}} \end{center} \end{spacing} @@ -1466,6 +1466,10 @@ \subsubsection{ \texttt{boost::format} is used, so the pattern can be more flexible.} to allow constructing different filenames for each subset. +\item[use time-of-flight sensitivities] +Defaults to 0, i.e. off. By default, the sensitivity calculation will be non-TOF. However, +this fails when using a TOF proj-data, as used by Siemens for the Vision 600 etc. In this case, +you will need to set this parameter to 1. \item[Projector pair type] Specifies the back/forward projector pair to be used in the reconstruction. @@ -5714,25 +5718,28 @@ \section{Using STIR in an external C++ project \label{sec:ExternalProjectC++}} STIR exports its CMake settings. Therefore, an external project can do \begin{verbatim} -find_package(STIR 5.2 CONFIG) +find_package(STIR 6.0 REQUIRED CONFIG) add_library(my_lib file1.cxx file2.cxx) # my_lib uses STIR functionality target_link_libraries(my_lib PUBLIC ${STIR_LIBRARIES}) add_executable(my_exe my_exe.cxx ${STIR_REGISTRIES}) -target_link_libraries(my_exe PUBLIC my_lib) +target_link_libraries(my_exe PUBLIC my_lib)) \end{verbatim} In addition, if your CMake is older than 3.12, you need to add \begin{verbatim} include_directories("${STIR_INCLUDE_DIRS}") \end{verbatim} -to your CMake file to get the source code files listed in \texttt{STIR\_REGISTRIES} to compile. -For more recent CMake, this should not be necessary (as \texttt{STIR\_REGISTRIES} is set to +to your CMakeLists.txt file to get the source code files listed in \texttt{STIR\_REGISTRIES} to compile. +(For more recent CMake, this should not be necessary (as \texttt{STIR\_REGISTRIES} is set to a list of compiled files). +A fully working example is provided in the \texttt{examples/C++} folder, see also the +\url{https://github.com/UCL/STIR/tree/master/examples/C\%2B\%2B/using_installed_STIR}{using\_installed\_STIR folder on GitHub}. + Note that if CMake did not find the STIR files, you can point it to where they are installed. For example, if you installed STIR with \texttt{CMAKE\_INSTALL\_PREFIX=\$HOME/install}, set -\texttt{STIR\_DIR=\$HOME/install/lib/cmake}. +\texttt{CMAKE\_PREFIX\_PATH=\$HOME/install} or \texttt{STIR\_DIR=\$HOME/install/lib/cmake/STIR-6.0}. \footnote{This uses CMake Config mode for \texttt{find\_package}. There is no need for a \texttt{FindSTIR.cmake}} \section{ diff --git a/documentation/STIR-developers-overview.tex b/documentation/STIR-developers-overview.tex index 5746a292f..85e07a3ce 100644 --- a/documentation/STIR-developers-overview.tex +++ b/documentation/STIR-developers-overview.tex @@ -16,7 +16,7 @@ \textbf{{\huge STIR \\ Overview for developers}}\\ \textbf{Kris Thielemans}\\ -\textbf{\textit{version 5.2}} +\textbf{\textit{version 6.0}} \end{center} @@ -274,7 +274,7 @@ \subsection{ Pointers to an object called \textit{something\_ptr}. Currently there is no naming distinction between shared pointers etc. This is probably a bad idea. For new code, we recommend to use \textit{something\_sptr} -for shared pointers, and \textit{something\_aptr} for auto\_ptrs (see +for shared pointers, and \textit{something\_uptr} for unique\_ptrs (see section \ref{sect:sharedptr}). \end{itemize} @@ -314,7 +314,7 @@ \subsection{ hence unnecessary rebuilds when modifying one \textit{.h} file), we avoid including \textit{.h} files for 'supporting' classes as much as possible. Instead, we only declare the classes needed, e.g. \textit{class -Bin;} instead of \textit{\#include stir/Bin.h.} +Bin;} instead of \textit{\#include ``stir/Bin.h''.} @@ -394,8 +394,8 @@ \subsection{ \subsection{C++ conventions} STIR uses C++-14 and is compatible with C++-20 to the best of our knowledge. For legacy reasons, we have some preprocessor -macros (see \textit{stir/common.h}) that were used isolate work-arounds for older -compilers. Ideally, all these \#ifdefs should disappear at a +macros (see \textit{stir/common.h}) to define the stir namespace (see below). +These should disappear at a later development stage of the library. We use \texttt{override} for virtual functions in derived classes. This is clearer, @@ -524,7 +524,7 @@ \subsubsection{ generally use \texttt{shared\_ptr} instead. This is somewhat unfortunate as these two smart pointers are generally quite different concepts. -\texttt{shared\_ptr} is a wrapper around the \texttt{std} (or boost\footnote{Boost smart pointer are probably no longer supported, and will no longer be from STIR 6.0.}) smart pointer class which +\texttt{shared\_ptr} is a wrapper around the \texttt{std} (or boost\footnote{Boost smart pointer are probably no longer supported, and will no longer be from STIR 6.1.}) smart pointer class which is suitable when there are (potentially) more than one pointer pointing to the same object. It keeps a reference count such that the object is (only) deleted when the last shared pointer @@ -561,10 +561,10 @@ \subsubsection{ We provide the convenience function \textit{stir::is\_null\_ptr()} to test if a pointer is `null', i.e. does not point to anything. \textit{is\_null\_ptr} -works with ordinary pointers, shared\_ptrs and auto\_ptrs. Use +works with ordinary pointers, shared\_ptrs and unique\_ptrs. Use it to avoid that your code depends on what type of (smart) pointer you are using. Note however that since C++-11, it is more convenient to use the -automatic converstion to \texttt{bool}. +automatic conversion to \texttt{bool}. \subsection{Generic functionality of STIR classes} This is a (very incomplete) section describing some functionality that diff --git a/documentation/STIR-general-overview.tex b/documentation/STIR-general-overview.tex index 7a6a4ed5d..e7074cd4a 100644 --- a/documentation/STIR-general-overview.tex +++ b/documentation/STIR-general-overview.tex @@ -17,7 +17,7 @@ \textbf{{\huge STIR \\ General Overview}}\\ \textbf{Kris Thielemans}\\ -\textbf{\textit{version 5.2}} +\textbf{\textit{version 6.0}} \end{spacing} @@ -90,7 +90,7 @@ \section{ processors, but also on massively parallel computers, or on clusters of workstations. \\ STIR is portable on all systems supporting the GNU C++ compiler, CLang++, Intel C++, -or MS Visual C++ (or hopefully any C++-11 compliant compiler). +or MS Visual C++ (or hopefully any C++-14 compliant compiler). The library is fully documented.\\ The object-oriented features make this library very modular and flexible. This means that it is relatively easy to add new algorithms, @@ -273,8 +273,9 @@ \subsection{ for small weights of the prior term, however becomes unstable for larger values. -As prior we currently only distribute the ``quadratic penalty'', i.e. a -Gibbs prior with a qudratic potential function, and a generalisation of the +As prior we currently distribute the ``quadratic penalty'', i.e. a +Gibbs prior with a qudratic potential function, the more edge-preserving +``log-cosh penalty'', the ``relative difference prior'' and a generalisation of the Median Root prior (MRP) [Ale97]. In the MRP case, the assumption is that the desired image is locally monotonic, and that the most probable value of the pixel is close to the local median. @@ -310,7 +311,7 @@ \subsection{Other} With respect to dynamic and gated imaging techniques, we have direct estimation of Patlak parameters [Tso08] (using Parametric OSMAPOSL or OSSPS). -We plan to release motion compensated image reconstruction [Thi06] as +We include motion compensated image reconstruction as implemented by Tsoumpas et al [Tso11]. \section{ diff --git a/documentation/release_6.0.htm b/documentation/release_6.0.htm index 61ba0b89f..ca7a983b4 100644 --- a/documentation/release_6.0.htm +++ b/documentation/release_6.0.htm @@ -10,7 +10,7 @@
This version is 99% backwards compatible with STIR 5.x for the user (see below). Developers might need to make code changes as detailed below. Note though that the locations of installed files have changed. - Developers of other software that uses STIR via CMake will need to adapt (see below). + Developers of other software that uses STIR via CMake will therefore need to adapt (see below).
@@ -18,8 +18,8 @@
Of course, there is also the usual code-cleanup and - improvements to the documentation. +
This version has a major code-cleanup related to removing old compiler work-arounds,
+ consistent use of override
and white-space enforcement.
Overall code management and assistance was Kris Thielemans (UCL and ASC). Other main contributors @@ -33,7 +33,10 @@