23 #ifndef __stir_recon_buildblock_PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData_H__ 24 #define __stir_recon_buildblock_PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData_H__ 48 template <
typename TargetT>
51 GeneralisedObjectiveFunction<TargetT>,
52 PoissonLogLikelihoodWithLinearModelForMean<TargetT>>
72 TargetT* construct_target_ptr()
const override;
74 std::unique_ptr<ExamInfo> get_exam_info_uptr_for_target()
const override;
77 double actual_compute_objective_function_without_penalty(
const TargetT& current_estimate,
const int subset_num)
override;
79 Succeeded set_up_before_sensitivity(shared_ptr<const TargetT>
const& target_sptr)
override;
84 void add_subset_sensitivity(TargetT& sensitivity,
const int subset_num)
const override;
86 Succeeded actual_add_multiplication_with_approximate_sub_Hessian_without_penalty(TargetT& output,
88 const int subset_num)
const override;
90 Succeeded actual_accumulate_sub_Hessian_times_input_without_penalty(TargetT& output,
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>&);
122 int set_num_subsets(
const int num_subsets)
override;
124 void set_normalisation_sptr(
const shared_ptr<BinNormalisation>&)
override;
125 void set_additive_proj_data_sptr(
const shared_ptr<ExamData>&)
override;
127 void set_input_data(
const shared_ptr<ExamData>&)
override;
162 bool actual_subsets_are_approximately_balanced(std::string& warning_message)
const override;
164 void actual_compute_subset_gradient_without_penalty(TargetT& gradient,
165 const TargetT& current_estimate,
166 const int subset_num,
167 const bool add_sensitivity)
override;
173 void set_defaults()
override;
174 void initialise_keymap()
override;
175 bool post_processing()
override;
shared_ptr< PatlakPlot > _patlak_plot_sptr
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:158
A templated class for vectors, but with indices starting not from 0.
Definition: ArrayFilter1DUsingConvolution.h:31
a base class for LogLikelihood of independent Poisson variables where the mean values are linear comb...
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:49
A base class for 'generalised' objective functions, i.e. objective functions for which at least a 'gr...
Definition: GeneralisedObjectiveFunction.h:83
std::string _input_filename
Filename with input projection data.
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:132
DynamicDiscretisedDensity _dyn_image_template
dynamic image template
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:160
shared_ptr< BinNormalisation > _normalisation_sptr
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:151
Abstract base class for all projector pairs.
Definition: ProjectorByBinPair.h:44
int _max_segment_num_to_process
the maximum absolute ring difference number to use in the reconstruction
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:139
template for adding keywords to a parser and creating an object
Definition: ParseAndCreateFrom.h:52
Declaration of class stir::DynamicDiscretisedDensity.
Class of multiple image frames, one for each time frame Each time frame is a DiscretisedDensity<3,float>
Definition: DynamicDiscretisedDensity.h:45
Dynamic projection data.
Definition: DynamicProjData.h:36
shared_ptr< DynamicProjData > _additive_dyn_proj_data_sptr
points to the additive projection data
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:149
Abstract base class for implementing bin-wise normalisation of data.
Definition: BinNormalisation.h:51
defines the stir::VectorWithOffset class
Declaration of class stir::ParametricDiscretisedDensity.
bool _zero_seg0_end_planes
signals whether to zero the data in the end planes of the projection data
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:155
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
std::string _additive_dyn_proj_data_filename
name of file in which additive projection data are stored
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:146
static const char *const registered_name
Name which will be used when parsing a GeneralisedObjectiveFunction object.
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:64
Declaration of class stir::DynamicProjData.
shared_ptr< DynamicProjData > _dyn_proj_data_sptr
points to the object for the total input projection data
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:135
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
Declaration of class stir::KineticParameters.
Declaration of class stir::RegisteredParsingObject.
Implementation of functions of class stir::PatlakPlot.
shared_ptr< ProjectorByBinPair > _projector_pair_ptr
Stores the projectors that are used for the computations.
Definition: PoissonLogLikelihoodWithLinearKineticModelAndDynamicProjectionData.h:153
Definition of the stir::ParseAndCreateFrom class for stir::ParametricDiscretisedDensity.