21 #ifndef __stir_recon_buildblock_PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion_H__ 22 #define __stir_recon_buildblock_PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion_H__ 53 template <
typename TargetT>
56 GeneralisedObjectiveFunction<TargetT>,
57 PoissonLogLikelihoodWithLinearModelForMean<TargetT>>
79 TargetT* construct_target_ptr()
const override;
81 void actual_compute_subset_gradient_without_penalty(TargetT& gradient,
82 const TargetT& current_estimate,
84 const bool add_sensitivity)
override;
86 double actual_compute_objective_function_without_penalty(
const TargetT& current_estimate,
const int subset_num)
override;
88 Succeeded set_up_before_sensitivity(shared_ptr<const TargetT>
const& target_sptr)
override;
91 void add_subset_sensitivity(TargetT& sensitivity,
const int subset_num)
const override;
93 Succeeded actual_add_multiplication_with_approximate_sub_Hessian_without_penalty(TargetT& output,
95 const int subset_num)
const override;
96 Succeeded actual_accumulate_sub_Hessian_times_input_without_penalty(TargetT& output,
97 const TargetT& current_image_estimate,
99 const int subset_num)
const override;
108 const GatedProjData& get_gated_proj_data()
const;
109 const shared_ptr<GatedProjData>& get_gated_proj_data_sptr()
const;
110 const int get_max_segment_num_to_process()
const;
111 const bool get_zero_seg0_end_planes()
const;
112 const GatedProjData& get_additive_gated_proj_data()
const;
113 const shared_ptr<GatedProjData>& get_additive_gated_proj_data_sptr()
const;
114 const GatedProjData& get_normalisation_gated_proj_data()
const;
115 const shared_ptr<GatedProjData>& get_normalisation_gated_proj_data_sptr()
const;
117 const shared_ptr<ProjectorByBinPair>& get_projector_pair_sptr()
const;
127 void set_recompute_sensitivity(
const bool);
128 void set_sensitivity_sptr(
const shared_ptr<TargetT>&);
129 int set_num_subsets(
const int num_subsets)
override;
131 void set_normalisation_sptr(
const shared_ptr<BinNormalisation>&)
override;
132 void set_additive_proj_data_sptr(
const shared_ptr<ExamData>&)
override;
134 void set_input_data(
const shared_ptr<ExamData>&)
override;
135 const GatedProjData& get_input_data()
const override;
140 std::string _motion_vectors_filename_prefix;
141 std::string _reverse_motion_vectors_filename_prefix;
142 std::string _gate_definitions_filename;
165 shared_ptr<GatedProjData> _normalisation_gated_proj_data_sptr;
180 bool actual_subsets_are_approximately_balanced(std::string& warning_message)
const override;
183 void set_defaults()
override;
184 void initialise_keymap()
override;
185 bool post_processing()
override;
Definition of the stir::ParseAndCreateFrom class.
A templated class for vectors, but with indices starting not from 0.
Definition: ArrayFilter1DUsingConvolution.h:31
A base class for 'generalised' objective functions, i.e. objective functions for which at least a 'gr...
Definition: GeneralisedObjectiveFunction.h:83
Abstract base class for all projector pairs.
Definition: ProjectorByBinPair.h:44
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
Declaration of class stiir::RegisteredObject.
Declaration of class stir::GatedProjData.
defines the stir::VectorWithOffset class
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
Class used for storing time gate durations.
Definition: TimeGateDefinitions.h:42
Class of multiple image gates.
Definition: GatedDiscretisedDensity.h:34
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::RegisteredParsingObject.
Implementation of class stir::GatedDiscretisedDensity.