STIR  6.2.0
BackProjectorByBinUsingSquareProjMatrixByBin.h
Go to the documentation of this file.
1 //
2 // $Id: BackProjectorByBinUsingSquareProjMatrixByBin.h
3 //
4 
5 #ifndef _BackProjectorByBinUsingSquareProjMatrixByBin_
6 #define _BackProjectorByBinUsingSquareProjMatrixByBin_
7 
16 /*
17  Copyright (C) 2000- 2001, IRSL
18  SPDX-License-Identifier: Apache-2.0
19  See STIR/LICENSE.txt for details
20 */
21 
25 #include "stir/shared_ptr.h"
26 //#include "stir/recon_buildblock/DataSymmetriesForBins.h"
27 //#include "stir/RelatedViewgrams.h"
28 
29 class Viewgrams;
30 template <typename elemT>
31 class RelatedViewgrams;
32 class ProjDataInfoCylindricalArcCorr;
33 
34 START_NAMESPACE_STIR
35 
42  : public RegisteredParsingObject<BackProjectorByBinUsingSquareProjMatrixByBin, BackProjectorByBin>
43 {
44 public:
45  static const char* const registered_name;
46 
48 
49  BackProjectorByBinUsingSquareProjMatrixByBin(const shared_ptr<ProjMatrixByBin>& proj_matrix_ptr);
50 
51  const DataSymmetriesForViewSegmentNumbers* get_symmetries_used() const override;
52 
53  void set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
54  const shared_ptr<const DiscretisedDensity<3, float>>& density_info_ptr // TODO should be Info only
55  ) override;
56 
57  void actual_back_project(DiscretisedDensity<3, float>& image,
59  const int min_axial_pos_num,
60  const int max_axial_pos_num,
61  const int min_tangential_pos_num,
62  const int max_tangential_pos_num) override;
63 
64  shared_ptr<ProjMatrixByBin>& get_proj_matrix_sptr() { return proj_matrix_ptr; }
65 
66 protected:
67  shared_ptr<ProjMatrixByBin> proj_matrix_ptr;
68 
69  void actual_back_project(DiscretisedDensity<3, float>& image, const Bin& bin);
70 
71 private:
72  void set_defaults() override;
73  void initialise_keymap() override;
74 };
75 
76 END_NAMESPACE_STIR
77 
78 //#include "stir/BackProjectorByBinUsingSquareProjMatrixByBin.inl"
79 
80 #endif
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
A class for encoding/finding symmetries. Works only on ViewSegmentNumbers (instead of Bin)...
Definition: DataSymmetriesForViewSegmentNumbers.h:49
declaration of stir::ProjMatrixByBin and its helpers classes
A class for storing coordinates and value of a single projection bin.
Definition: Bin.h:48
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
Declares class stir::BackProjectorByBin.
This implements the BackProjectorByBin interface, given any ProjMatrixByBin object.
Definition: BackProjectorByBinUsingSquareProjMatrixByBin.h:41
Declaration of class stir::RegisteredParsingObject.