STIR 6.4.0
BackProjectorByBinNiftyPET.h
Go to the documentation of this file.
1//
2//
23/*
24 Copyright (C) 2019, University College London
25 This file is part of STIR.
26
27 SPDX-License-Identifier: Apache-2.0
28
29 See STIR/LICENSE.txt for details
30*/
31#ifndef __stir_gpu_BackProjectorByBinNiftyPET_h__
32#define __stir_gpu_BackProjectorByBinNiftyPET_h__
33
37
38START_NAMESPACE_STIR
39
40class DataSymmetriesForViewSegmentNumbers;
41
51class BackProjectorByBinNiftyPET : public RegisteredParsingObject<BackProjectorByBinNiftyPET, BackProjectorByBin>
52{
53public:
55 static const char* const registered_name;
56
59
61
63 virtual void initialise_keymap();
64
66
69 virtual void set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
70 const shared_ptr<const DiscretisedDensity<3, float>>& density_info_sptr // TODO should be Info only
71 );
72
75
77 void back_project(const ProjData&, int subset_num = 0, int num_subsets = 1);
78
80 virtual void get_output(DiscretisedDensity<3, float>&) const;
81
85
87 void set_verbosity(const bool verbosity) { _cuda_verbosity = verbosity; }
88
91 void set_use_truncation(const bool use_truncation) { _use_truncation = use_truncation; }
92
93protected:
94 virtual void actual_back_project(const RelatedViewgrams<float>&,
95 const int min_axial_pos_num,
96 const int max_axial_pos_num,
97 const int min_tangential_pos_num,
98 const int max_tangential_pos_num);
99
100private:
101 shared_ptr<DataSymmetriesForViewSegmentNumbers> _symmetries_sptr;
102 NiftyPETHelper _helper;
103 int _cuda_device;
104 bool _cuda_verbosity;
105 std::vector<float> _np_sino_w_gaps;
106 bool _use_truncation;
107};
108
109END_NAMESPACE_STIR
110
111#endif // __stir_gpu_BackProjectorByBinNiftyPET_h__
Declares class stir::BackProjectorByBin.
Helper class for NiftyPET's GPU implementation.
Declaration of class stir::RegisteredParsingObject.
virtual void start_accumulating_in_new_target()
tell the back projector to start accumulating into a new target. This function has to be called befor...
Definition BackProjectorByBinNiftyPET.cxx:134
void set_verbosity(const bool verbosity)
Set verbosity.
Definition BackProjectorByBinNiftyPET.h:87
virtual void get_output(DiscretisedDensity< 3, float > &) const
Get output.
Definition BackProjectorByBinNiftyPET.cxx:104
BackProjectorByBinNiftyPET()
Default constructor calls reset_timers()
Definition BackProjectorByBinNiftyPET.cxx:36
static const char *const registered_name
Name which will be used when parsing a BackProjectorByBin object.
Definition BackProjectorByBinNiftyPET.h:55
void set_use_truncation(const bool use_truncation)
Set use truncation - truncate before forward projection and after back projection.
Definition BackProjectorByBinNiftyPET.h:91
void back_project(const ProjData &, int subset_num=0, int num_subsets=1)
Back project.
Definition BackProjectorByBinNiftyPET.cxx:93
virtual const DataSymmetriesForViewSegmentNumbers * get_symmetries_used() const
Symmetries not used, so returns TrivialDataSymmetriesForBins.
Definition BackProjectorByBinNiftyPET.cxx:85
virtual void initialise_keymap()
Keymap.
Definition BackProjectorByBinNiftyPET.cxx:48
virtual void set_up(const shared_ptr< const ProjDataInfo > &proj_data_info_ptr, const shared_ptr< const DiscretisedDensity< 3, float > > &density_info_sptr)
Stores all necessary geometric info.
Definition BackProjectorByBinNiftyPET.cxx:57
A class for encoding/finding symmetries. Works only on ViewSegmentNumbers (instead of Bin).
Definition DataSymmetriesForViewSegmentNumbers.h:50
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
Helper class for the wrapped NiftyPET projectors.
Definition NiftyPETHelper.h:61
The (abstract) base class for the projection data.
Definition ProjData.h:105
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
A class for storing viewgrams which are related by symmetry.
Definition RelatedViewgrams.h:41