diff --git a/documentation/STIR-UsersGuide.tex b/documentation/STIR-UsersGuide.tex index 9d0f029a77..74d30c42da 100644 --- a/documentation/STIR-UsersGuide.tex +++ b/documentation/STIR-UsersGuide.tex @@ -2872,6 +2872,9 @@ \subsubsection{Displaying STIR configuration and version information} (Equivalent functions in C++/Python are \texttt{get\_STIR\_config\_dir}, \texttt{get\_STIR\_doc\_dir} and \texttt{get\_STIR\_examples\_dir}). +\textbf{stir\_list\_registries} is a utility that list possible values of various +registries, which can be useful to know what to use in a .par file. + \subsubsection{ Displaying and performing operations on data} diff --git a/documentation/release_6.0.htm b/documentation/release_6.0.htm index a1e186d639..ce23dc537c 100644 --- a/documentation/release_6.0.htm +++ b/documentation/release_6.0.htm @@ -132,7 +132,11 @@

General

list_lm_events now has an additional option --event-bin which lists the bin assigned for the event (according to the "native" projection data, i.e. without any mashing).
In addition, the --event-LOR option now also works for SPECT (it was disabled by accident). - + +
  • + stir_list_registries is a new utility that list possible values of various + registries, which can be useful to know what to use in a .par file. +
  • Python (and MATLAB)

    diff --git a/src/recon_buildblock/recon_buildblock_registries.cxx b/src/recon_buildblock/recon_buildblock_registries.cxx index 3bdc5d25b9..48c8309c84 100644 --- a/src/recon_buildblock/recon_buildblock_registries.cxx +++ b/src/recon_buildblock/recon_buildblock_registries.cxx @@ -129,6 +129,9 @@ static OSMAPOSLReconstruction >::RegisterIt dummy603 static KOSMAPOSLReconstruction >::RegisterIt dummyK ; static OSSPSReconstruction >::RegisterIt dummy604; +static OSMAPOSLReconstruction::RegisterIt dummyOSMAPOSLPVC; +static OSSPSReconstruction::RegisterIt dummyOSSPSPVC; + #ifdef STIR_WITH_NiftyPET_PROJECTOR static ForwardProjectorByBinNiftyPET::RegisterIt gpu_fwd; static BackProjectorByBinNiftyPET::RegisterIt gpu_bck; diff --git a/src/utilities/CMakeLists.txt b/src/utilities/CMakeLists.txt index 5e5d3a8c0b..d279c024f7 100644 --- a/src/utilities/CMakeLists.txt +++ b/src/utilities/CMakeLists.txt @@ -58,6 +58,7 @@ set(${dir_EXE_SOURCES} conv_interfile_to_gipl.cxx shift_image.cxx stir_config.cxx + stir_list_registries.cxx shift_image_origin.cxx warp_and_accumulate_gated_images.cxx warp_image.cxx diff --git a/src/utilities/stir_list_registries.cxx b/src/utilities/stir_list_registries.cxx new file mode 100644 index 0000000000..dc5ecfd901 --- /dev/null +++ b/src/utilities/stir_list_registries.cxx @@ -0,0 +1,71 @@ +/*! + + Copyright (C) 2024 University College London + This file is part of STIR. + + SPDX-License-Identifier: Apache-2.0 + + See STIR/LICENSE.txt for details + \file + \ingroup utilities + \brief Prints all registered names for many registries + + \author Kris Thielemans + */ + +#include "stir/DiscretisedDensity.h" +#include "stir/modelling/ParametricDiscretisedDensity.h" +#include "stir/DynamicDiscretisedDensity.h" +#include "stir/DataProcessor.h" +#include "stir/recon_buildblock/ForwardProjectorByBin.h" +#include "stir/recon_buildblock/BackProjectorByBin.h" +#include "stir/recon_buildblock/ProjectorByBinPair.h" +#include "stir/recon_buildblock/ProjMatrixByBin.h" +#include "stir/recon_buildblock/GeneralisedObjectiveFunction.h" +#include "stir/recon_buildblock/GeneralisedPrior.h" +#include "stir/recon_buildblock/Reconstruction.h" +#include "stir/recon_buildblock/BinNormalisation.h" +#include +#include + +USING_NAMESPACE_STIR + +int +main(int argc, char *argv[]) +{ + std::cout << "------------ ProjectorByBinPair --------------\n"; + ProjectorByBinPair::list_registered_names(std::cout); + std::cout << "------------ ForwardProjectorByBin --------------\n"; + ForwardProjectorByBin::list_registered_names(std::cout); + std::cout << "------------ BackProjectorByBin --------------\n"; + BackProjectorByBin::list_registered_names(std::cout); + std::cout << "------------ ProjMatrixByBin --------------\n"; + ProjMatrixByBin::list_registered_names(std::cout); + std::cout << "------------ BinNormalisation --------------\n"; + BinNormalisation::list_registered_names(std::cout); + + std::cout << "--------------------------------------------------------------------------\n"; + + std::cout << "------------ DataProcessor> --------------\n"; + DataProcessor >::list_registered_names(std::cout); + std::cout << "------------ GeneralisedObjectiveFunction> --------------\n"; + GeneralisedObjectiveFunction>::list_registered_names(std::cout); + std::cout << "------------ GeneralisedPrior> --------------\n"; + GeneralisedPrior>::list_registered_names(std::cout); + std::cout << "------------ Reconstruction> --------------\n"; + Reconstruction>::list_registered_names(std::cout); + + std::cout << "--------------------------------------------------------------------------\n"; + + std::cout << "------------ DataProcessor --------------\n"; + DataProcessor::list_registered_names(std::cout); + std::cout << "------------ GeneralisedObjectiveFunction --------------\n"; + GeneralisedObjectiveFunction::list_registered_names(std::cout); + std::cout << "------------ GeneralisedPrior --------------\n"; + GeneralisedPrior::list_registered_names(std::cout); + std::cout << "------------ Reconstruction --------------\n"; + Reconstruction::list_registered_names(std::cout); + + + return EXIT_SUCCESS; +}