STIR 6.4.0
PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2005- 2011, Hammersmith Imanet Ltd
5 This file is part of STIR.
6
7 SPDX-License-Identifier: Apache-2.0
8
9 See STIR/LICENSE.txt for details
10*/
19
20#ifndef __stir_recon_buildblock_PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion_H__
21#define __stir_recon_buildblock_PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion_H__
22
25#include "stir/GatedProjData.h"
27#include "stir/DataProcessor.h"
31
32START_NAMESPACE_STIR
33class GatedProjData;
34
39template <typename TargetT>
40class PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion
41 : public RegisteredParsingObject<
42 PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion<TargetT>,
43 GeneralisedObjectiveFunction<TargetT>,
44 SumOfGeneralisedObjectiveFunctions<PoissonLogLikelihoodWithLinearModelForMeanAndProjData<TargetT>,
45 TargetT,
46 PoissonLogLikelihoodWithLinearModelForMean<TargetT>>>
47{
48private:
49 typedef RegisteredParsingObject<
50 PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion<TargetT>,
51 GeneralisedObjectiveFunction<TargetT>,
52 SumOfGeneralisedObjectiveFunctions<PoissonLogLikelihoodWithLinearModelForMeanAndProjData<TargetT>,
53 TargetT,
54 PoissonLogLikelihoodWithLinearModelForMean<TargetT>>>
55 base_type;
56
57public:
59 static const char* const registered_name;
60
63
72 void set_proj_data_sptr(const shared_ptr<GatedProjData>&);
73 void set_max_segment_num_to_process(const int);
74 void set_zero_seg0_end_planes(const bool);
75 void set_additive_proj_data_sptr(const shared_ptr<GatedProjData>&);
76 void set_projector_pair_sptr(const shared_ptr<ProjectorByBinPair>&);
77 void set_frame_num(const int);
78 void set_frame_definitions(const TimeFrameDefinitions&);
80
81 virtual TargetT* construct_target_ptr() const;
82
83 virtual void
84 compute_sub_gradient_without_penalty_plus_sensitivity(TargetT& gradient, const TargetT& target, const int subset_num);
85
86protected:
87 virtual Succeeded set_up_before_sensitivity(shared_ptr<TargetT> const& target_sptr);
88
89 virtual void add_subset_sensitivity(TargetT& sensitivity, const int subset_num) const;
90
92 std::string _input_filename;
93
95
97
98 /**********************/
99 // image stuff
100 // TODO to be replaced with single class or so (TargetT obviously)
102
104 int output_image_size_xy; // KT 10122001 appended _xy
105
107
109 int output_image_size_z; // KT 10122001 new
110
112 double zoom;
113
115 double Xoffset;
116
118 double Yoffset;
119
120 // KT 20/06/2001 new
122 double Zoffset;
123 /********************************/
124
126 shared_ptr<ProjectorByBinPair> projector_pair_ptr;
127
130
133
134 // TODO doc
135 int frame_num;
136 std::string frame_definition_filename;
137 TimeFrameDefinitions frame_defs;
139
140private:
141 virtual void set_defaults();
142 virtual void initialise_keymap();
143 virtual bool post_processing();
144
145 shared_ptr<GatedProjData> _gated_proj_data_sptr;
146 shared_ptr<GatedProjData> _gated_additive_proj_data_sptr;
147
148 shared_ptr<DataSymmetriesForViewSegmentNumbers> symmetries_sptr;
149
151};
152
153END_NAMESPACE_STIR
154
155//#include "stir/recon_buildblock/PoissonLogLikelihoodWithLinearModelForMean.inl"
156
157#endif
Declaration of class stir::BinNormalisation.
Declaration of class stir::DataProcessor.
Declaration of class stir::GatedProjData.
Declaration of class stir::PoissonLogLikelihoodWithLinearModelForMeanAndProjData.
Declares class stir::ProjectorByBinPair.
Declaration of class stir::RegisteredParsingObject.
Declaration of class stir::SumOfGeneralisedObjectiveFunctions.
Declaration of class stir::TimeFrameDefinitions.
std::string _additive_projection_data_filename
name of file in which loglikelihood measurements are stored
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:132
virtual void compute_sub_gradient_without_penalty_plus_sensitivity(TargetT &gradient, const TargetT &target, const int subset_num)
This should compute the subset gradient of the (unregularised) objective function plus the subset sen...
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.cxx:441
int output_image_size_xy
the output image size in x and y direction
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:104
bool zero_seg0_end_planes
signals whether to zero the data in the end planes of the projection data
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:129
Succeeded set_up_before_sensitivity(shared_ptr< const TargetT > const &target_sptr) override
set-up specifics for the derived class
int output_image_size_z
the output image size in z direction
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:109
void set_additive_proj_data_sptr(const shared_ptr< ExamData > &) override
set_additive_proj_data_sptr
PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion()
Default constructor calls set_defaults()
void set_defaults() override
Sets defaults before parsing.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.cxx:60
virtual void add_subset_sensitivity(TargetT &sensitivity, const int subset_num) const
Add subset sensitivity to existing data.
void initialise_keymap() override
sets parsing keys
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.cxx:107
std::string _input_filename
Filename with input projection data.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:139
shared_ptr< GatedProjData > _gated_proj_data_sptr
points to the object for the total input projection data
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:145
double Yoffset
offset in the y-direction
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:118
double Zoffset
offset in the z-direction
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:122
shared_ptr< ProjectorByBinPair > projector_pair_ptr
Stores the projectors that are used for the computations.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:126
virtual TargetT * construct_target_ptr() const
Creates a suitable target as determined by the parameters.
double Xoffset
offset in the x-direction
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:115
bool post_processing() override
This will be called at the end of the parsing.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.cxx:178
double zoom
the zoom factor
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:112
int max_segment_num_to_process
the maximum absolute ring difference number to use in the reconstruction
Definition PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion.h:96
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
Class used for storing time frame durations.
Definition TimeFrameDefinitions.h:39
A templated class for vectors, but with indices starting not from 0.
Definition VectorWithOffset.h:65