23#ifndef __stir_recon_buildblock_PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData_H__
24#define __stir_recon_buildblock_PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData_H__
48template <
typename TargetT>
49class PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData
51 GeneralisedObjectiveFunction<TargetT>,
52 PoissonLogLikelihoodWithLinearModelForMean<TargetT>>
66 PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData();
74 std::unique_ptr<ExamInfo> get_exam_info_uptr_for_target()
const override;
88 const int subset_num)
const override;
91 const TargetT& current_image_estimate,
93 const int subset_num)
const override;
102 const shared_ptr<DynamicProjData>& get_dyn_proj_data_sptr()
const;
103 const int get_max_segment_num_to_process()
const;
104 const bool get_zero_seg0_end_planes()
const;
106 const shared_ptr<DynamicProjData>& get_additive_dyn_proj_data_sptr()
const;
108 const shared_ptr<ProjectorByBinPair>& get_projector_pair_sptr()
const;
110 const shared_ptr<BinNormalisation>& get_normalisation_sptr()
const;
120 void set_recompute_sensitivity(
const bool);
121 void set_sensitivity_sptr(
const shared_ptr<TargetT>&);
165 const TargetT& current_estimate,
166 const int subset_num,
167 const bool add_sensitivity)
override;
Declaration of class stir::DynamicDiscretisedDensity.
Declaration of class stir::DynamicProjData.
Declaration of class stir::KineticParameters.
Declaration of class stir::ParametricDiscretisedDensity.
Definition of the stir::ParseAndCreateFrom class for stir::ParametricDiscretisedDensity.
Implementation of functions of class stir::PatlakPlot.
Declaration of class stir::RegisteredParsingObject.
defines the stir::VectorWithOffset class
Abstract base class for implementing bin-wise normalisation of data.
Definition BinNormalisation.h:52
Class of multiple image frames, one for each time frame Each time frame is a DiscretisedDensity<3,...
Definition DynamicDiscretisedDensity.h:46
Dynamic projection data.
Definition DynamicProjData.h:37
A base class for 'generalised' objective functions, i.e. objective functions for which at least a 'gr...
Definition GeneralisedObjectiveFunction.h:84
template for adding keywords to a parser and creating an object
Definition ParseAndCreateFrom.h:53
bool actual_subsets_are_approximately_balanced(std::string &warning_message) const override
Implementation of function that checks subset balancing.
int set_num_subsets(const int num_subsets) override
Attempts to change the number of subsets.
std::string _additive_dyn_proj_data_filename
name of file in which additive projection data are stored
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:146
void add_subset_sensitivity(TargetT &sensitivity, const int subset_num) const override
Add subset sensitivity to existing data.
void set_additive_proj_data_sptr(const shared_ptr< ExamData > &) override
set_additive_proj_data_sptr
shared_ptr< PatlakPlot > _patlak_plot_sptr
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:158
std::string _input_filename
Filename with input projection data.
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:132
static const char *const registered_name
Name which will be used when parsing a GeneralisedObjectiveFunction object.
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:64
Succeeded set_up_before_sensitivity(shared_ptr< const TargetT > const &target_sptr) override
set-up specifics for the derived class
Succeeded actual_accumulate_sub_Hessian_times_input_without_penalty(TargetT &output, const TargetT ¤t_image_estimate, const TargetT &input, const int subset_num) const override
Implementation of the function computes the sub-Hessian and multiplies by a vector.
shared_ptr< ProjectorByBinPair > _projector_pair_ptr
Stores the projectors that are used for the computations.
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:153
shared_ptr< BinNormalisation > _normalisation_sptr
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:151
void set_normalisation_sptr(const shared_ptr< BinNormalisation > &) override
set_normalisation_sptr
shared_ptr< DynamicProjData > _additive_dyn_proj_data_sptr
points to the additive projection data
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:149
bool post_processing() override
This will be called at the end of the parsing.
void actual_compute_subset_gradient_without_penalty(TargetT &gradient, const TargetT ¤t_estimate, const int subset_num, const bool add_sensitivity) override
computes the subset gradient of the objective function without the penalty (optional: add subset sens...
shared_ptr< DynamicProjData > _dyn_proj_data_sptr
points to the object for the total input projection data
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:135
int _max_segment_num_to_process
the maximum absolute ring difference number to use in the reconstruction
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:139
bool _zero_seg0_end_planes
signals whether to zero the data in the end planes of the projection data
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:155
DynamicDiscretisedDensity _dyn_image_template
dynamic image template
Definition PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:160
void initialise_keymap() override
sets parsing keys
Succeeded actual_add_multiplication_with_approximate_sub_Hessian_without_penalty(TargetT &output, const TargetT &input, const int subset_num) const override
Implementation of the function that multiplies the approximate sub-Hessian with a vector.
const DynamicProjData & get_input_data() const override
get input data
void set_defaults() override
Sets defaults for parsing.
double actual_compute_objective_function_without_penalty(const TargetT ¤t_estimate, const int subset_num) override
Implementation of function that computes the objective function for the current subset.
TargetT * construct_target_ptr() const override
Returns a pointer to a newly allocated target object (with 0 data).
void set_input_data(const shared_ptr< ExamData > &) override
set_input_data
Abstract base class for all projector pairs.
Definition ProjectorByBinPair.h:45
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
A templated class for vectors, but with indices starting not from 0.
Definition VectorWithOffset.h:65