STIR 6.4.0
PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2003- 2007, Hammersmith Imanet Ltd
5 Copyright (C) 2018, 2022 University College London
6 Copyright (C) 2021, University of Pennsylvania
7 This file is part of STIR.
8
9 SPDX-License-Identifier: Apache-2.0
10
11 See STIR/LICENSE.txt for details
12*/
23
24#ifndef __stir_recon_buildblock_PoissonLogLikelihoodWithLinearModelForMeanAndListModeData_H__
25#define __stir_recon_buildblock_PoissonLogLikelihoodWithLinearModelForMeanAndListModeData_H__
26
27//#include "stir/RegisteredParsingObject.h"
32
33START_NAMESPACE_STIR
34
63template <typename TargetT>
64class PoissonLogLikelihoodWithLinearModelForMeanAndListModeData : public PoissonLogLikelihoodWithLinearModelForMean<TargetT>
65{
66private:
68
69public:
70 PoissonLogLikelihoodWithLinearModelForMeanAndListModeData();
71
72 // virtual TargetT * construct_target_ptr();
73
74 Succeeded set_up_before_sensitivity(shared_ptr<const TargetT> const& target_sptr) override;
75
77
84
85 void set_normalisation_sptr(const shared_ptr<BinNormalisation>&) override;
86 void set_additive_proj_data_sptr(const shared_ptr<ExamData>&) override;
87
88 void set_input_data(const shared_ptr<ExamData>&) override;
89 const ListModeData& get_input_data() const override;
91
97
99
112
116 virtual void set_cache_path(const std::string& cache_path);
118 virtual std::string get_cache_path() const;
119
121
124 virtual std::string get_cache_filename(unsigned int icache) const;
125
127
128 void set_recompute_cache(bool);
129 bool get_recompute_cache() const;
130
132
138 void set_skip_lm_input_file(const bool arg);
139
141
146 virtual void set_cache_max_size(const unsigned long int arg);
147
149 virtual unsigned long int get_cache_max_size() const;
150
152protected:
153 std::string frame_defs_filename;
154
157
158 shared_ptr<ProjData> additive_proj_data_sptr;
163
164 shared_ptr<BinNormalisation> normalisation_sptr;
165
167 shared_ptr<ListModeData> list_mode_data_sptr;
168
169 unsigned int current_frame_num;
170
175
177
178 void set_defaults() override;
180
181 void initialise_keymap() override;
182
183 bool post_processing() override;
184
186
187 virtual void start_new_time_frame(const unsigned int new_frame_num);
188
189 ParseAndCreateFrom<TargetT, ListModeData> target_parameter_parser;
190
194 unsigned long int cache_size;
205 std::string cache_path;
209
210 shared_ptr<ProjDataInfo> proj_data_info_sptr;
211
212private:
214
215 int max_segment_num_to_process;
216};
217
218END_NAMESPACE_STIR
219
220//#include "stir/recon_buildblock/PoissonLogLikelihoodWithLinearModelForMean.inl"
221
222#endif
Declaration of class stir::ListModeData.
Definition of the stir::ParseAndCreateFrom class.
Declaration of class stir::PoissonLogLikelihoodWithLinearModelForMean.
Declaration of class stir::TimeFrameDefinitions.
The base class for reading list mode data.
Definition ListModeData.h:123
template for adding keywords to a parser and creating an object
Definition ParseAndCreateFrom.h:53
virtual void start_new_time_frame(const unsigned int new_frame_num)
will be called when a new time frame starts
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:276
std::string additive_projection_data_filename
filename for additive data (only used when parsing)
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:160
shared_ptr< ListModeData > list_mode_data_sptr
Listmode pointer.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:167
virtual void set_cache_path(const std::string &cache_path)
Set the directory where data will be cached.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:188
virtual unsigned long int get_cache_max_size() const
Get maximum size (in bytes) of cache.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:181
void set_max_segment_num_to_process(int)
set maximum segment_number (in listmode data) to process
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:145
void set_input_data(const shared_ptr< ExamData > &) override
set_input_data
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:130
void set_skip_lm_input_file(const bool arg)
Skip reading of listmode file entirely, only read from cache (broken!)
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:195
bool skip_lm_input_file
This flag is set when we don't set an input lm filename and rely only on the cache file.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:203
std::string cache_path
Path to read/write the cached listmode file.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:205
unsigned long int cache_size
This is the number of records to be cached. If this parameter is more than zero, then the flag cache_...
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:194
void initialise_keymap() override
sets keys
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:74
shared_ptr< ProjDataInfo > proj_data_info_sptr
ProjDataInfo.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:210
const ListModeData & get_input_data() const override
get input data
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:237
std::string list_mode_filename
Filename with input projection data.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:156
void set_defaults() override
sets any default values
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:48
bool post_processing() override
This will be called at the end of the parsing.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:92
long int num_events_to_use
This is part of some functionality I transfer from LmToProjData.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:172
void set_recompute_cache(bool)
Set if existing cache files should be used or not.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:160
virtual std::string get_cache_filename(unsigned int icache) const
Get the filename for a cache file.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:227
void set_normalisation_sptr(const shared_ptr< BinNormalisation > &) override
set_normalisation_sptr
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:267
virtual void set_cache_max_size(const unsigned long int arg)
Set maximum size (in bytes) of cache in memory.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:174
TimeFrameDefinitions frame_defs
time frame definitions
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:83
bool reduce_memory_usage
If true, the additive sinogram will not be read in memory.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:162
bool has_add
The data set has additive corrections.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:207
Succeeded set_up_before_sensitivity(shared_ptr< const TargetT > const &target_sptr) override
set-up specifics for the derived class
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:281
bool do_time_frame
Reconstruct based on time frames.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:174
bool cache_lm_file
This flag is true when cache_size is more than zero.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:196
void set_additive_proj_data_sptr(const shared_ptr< ExamData > &) override
set_additive_proj_data_sptr
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:246
virtual std::string get_cache_path() const
Get the directory where data will be cached.
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:217
bool recompute_cache
On the first cached run, the cache will be written in the cache_path. If recompute_cache is set to ze...
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.h:201
int get_max_segment_num_to_process() const
get maximum segment_number (from listmode data) to process
Definition PoissonLogLikelihoodWithLinearModelForMeanAndListModeData.cxx:153
a base class for LogLikelihood of independent Poisson variables where the mean values are linear comb...
Definition PoissonLogLikelihoodWithLinearModelForMean.h:112
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