STIR 6.4.0
ProjectorByBinPair.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2000- 2007, 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*/
20#ifndef __stir_recon_buildblock_ProjectorByBinPair_h_
21#define __stir_recon_buildblock_ProjectorByBinPair_h_
22
26#include "stir/ParsingObject.h"
27#include "stir/shared_ptr.h"
28
29START_NAMESPACE_STIR
30
31template <int num_dimensions, class elemT>
32class DiscretisedDensity;
33class ProjDataInfo;
34
44class ProjectorByBinPair : public RegisteredObject<ProjectorByBinPair>
45{
46public:
49
50 ~ProjectorByBinPair() override {}
51
53
60 virtual Succeeded set_up(const shared_ptr<const ProjDataInfo>&,
61 const shared_ptr<const DiscretisedDensity<3, float>>& // TODO should be Info only
62 );
63
64 // ForwardProjectorByBin const *
65 const shared_ptr<ForwardProjectorByBin> get_forward_projector_sptr() const;
66
67 // BackProjectorByBin const *
68 const shared_ptr<BackProjectorByBin> get_back_projector_sptr() const;
69
71
79 {
80 return get_back_projector_sptr()->get_symmetries_used();
81 }
82
83protected:
84 shared_ptr<ForwardProjectorByBin> forward_projector_sptr;
85 shared_ptr<BackProjectorByBin> back_projector_sptr;
86
88
92 virtual void check(const ProjDataInfo& proj_data_info, const DiscretisedDensity<3, float>& density_info) const;
93 bool _already_set_up;
94
95private:
96 shared_ptr<const ProjDataInfo> _proj_data_info_sptr;
98
99 shared_ptr<const DiscretisedDensity<3, float>> _density_info_sptr;
100};
101
102END_NAMESPACE_STIR
103
104#endif // __stir_recon_buildblock_ProjectorByBinPair_h_
Declares class stir::BackProjectorByBin.
Base class for forward projectors which work on 'large' collections of bins: given the whole image,...
Declaration of class stir::ParsingObject.
Declaration of class stiir::RegisteredObject.
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
An (abstract base) class that contains information on the projection data.
Definition ProjDataInfo.h:70
virtual Succeeded set_up(const shared_ptr< const ProjDataInfo > &, const shared_ptr< const DiscretisedDensity< 3, float > > &)
Stores all necessary geometric info.
Definition ProjectorByBinPair.cxx:37
ProjectorByBinPair()
Default constructor.
Definition ProjectorByBinPair.cxx:32
const DataSymmetriesForViewSegmentNumbers * get_symmetries_used() const
Provide access to the (minimal) symmetries used by the projectors.
Definition ProjectorByBinPair.h:78
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...