27#ifndef __stir_OSMAPOSL_OSMAPOSLReconstruction_h__
28# define __stir_OSMAPOSL_OSMAPOSLReconstruction_h__
35template <
typename TargetT>
36class PoissonLogLikelihoodWithLinearModelForMean;
74template <
typename TargetT>
76 :
public RegisteredParsingObject<OSMAPOSLReconstruction<TargetT>, Reconstruction<TargetT>, IterativeReconstruction<TargetT>>
102 std::string method_info()
const override;
117 void set_inter_update_filter_interval(
const int);
123 void set_maximum_relative_change(
const double);
126 void set_minimum_relative_change(
const double);
128 void set_enforce_initial_positivity(
const bool);
131 void set_write_update_image(
const int);
134 void set_MAP_model(
const std::string&);
138 void ask_parameters()
override;
141 Succeeded set_up(shared_ptr<TargetT>
const& target_image_ptr)
override;
144 void update_estimate(TargetT& current_image_estimate)
override;
186 compute_sub_gradient_without_penalty_plus_sensitivity(TargetT& gradient,
const TargetT& current_estimate,
const int subset_num);
188 virtual const TargetT& get_subset_sensitivity(
const int subset_num);
190 virtual void apply_multiplicative_update(TargetT& current_image_estimate,
const TargetT& multiplicative_update_image);
193 friend void do_sensitivity(
const char*
const par_filename);
202 unique_ptr<TargetT> multiplicative_update_image_ptr;
declares the stir::IterativeReconstruction class
Declaration of class stir::RegisteredParsingObject.
Base class that defines an interface for classes that do data processing.
Definition DataProcessor.h:47
base class for iterative reconstruction objects
Definition IterativeReconstruction.h:82
std::string MAP_model
should be either additive or multiplicative
Definition OSMAPOSLReconstruction.h:177
static const char *const registered_name
Name which will be used when parsing a OSMAPOSLReconstruction object.
Definition OSMAPOSLReconstruction.h:85
bool post_processing() override
used to check acceptable parameter ranges, etc...
Definition OSMAPOSLReconstruction.cxx:160
bool enforce_initial_positivity
operations prior to the iterations
Definition OSMAPOSLReconstruction.h:151
bool do_rim_truncation
determines wether voxels outside a circular FOV will be set to 0 or not
Definition OSMAPOSLReconstruction.h:157
double minimum_relative_change
restrict updates (smaller relative updates will be thresholded)
Definition OSMAPOSLReconstruction.h:171
shared_ptr< DataProcessor< TargetT > > inter_update_filter_ptr
inter-update filter object
Definition OSMAPOSLReconstruction.h:163
double maximum_relative_change
restrict updates (larger relative updates will be thresholded)
Definition OSMAPOSLReconstruction.h:168
OSMAPOSLReconstruction()
Default constructor (calling set_defaults())
Definition OSMAPOSLReconstruction.cxx:229
int write_update_image
boolean value to determine if the update images have to be written to disk
Definition OSMAPOSLReconstruction.h:174
void initialise_keymap() override
Initialise all keywords.
Definition OSMAPOSLReconstruction.cxx:108
OSMAPOSLReconstruction & get_parameters()
accessor for the external parameters
Definition OSMAPOSLReconstruction.h:96
int inter_update_filter_interval
subiteration interval at which to apply inter-update filters
Definition OSMAPOSLReconstruction.h:160
void set_defaults() override
Set defaults before parsing.
Definition OSMAPOSLReconstruction.cxx:94
const OSMAPOSLReconstruction & get_parameters() const
accessor for the external parameters
Definition OSMAPOSLReconstruction.h:99
base class for all ReconstructionsAs there is not a lot of commonality between different reconstructi...
Definition Reconstruction.h:70
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44