STIR  6.2.0
BackProjectorByBinUsingProjMatrixByBin.h
Go to the documentation of this file.
1 #ifndef _BackProjectorByBinUsingProjMatrixByBin_
2 #define _BackProjectorByBinUsingProjMatrixByBin_
3 
16 /*
17  Copyright (C) 2000 PARAPET partners
18  Copyright (C) 2000- 2009, Hammersmith Imanet Ltd
19  This file is part of STIR.
20 
21  SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
22 
23  See STIR/LICENSE.txt for details
24 */
25 
29 #include "stir/shared_ptr.h"
30 //#include "stir/DataSymmetriesForBins.h"
31 //#include "stir/RelatedViewgrams.h"
32 
33 class Viewgrams;
34 template <typename elemT>
35 class RelatedViewgrams;
36 class ProjDataInfoCylindricalArcCorr;
37 
38 START_NAMESPACE_STIR
39 
46  : public RegisteredParsingObject<BackProjectorByBinUsingProjMatrixByBin, BackProjectorByBin>
47 {
48 public:
50  static const char* const registered_name;
51 
53 
54  BackProjectorByBinUsingProjMatrixByBin(const shared_ptr<ProjMatrixByBin>& proj_matrix_ptr);
55 
57 
59  void set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
60  const shared_ptr<const DiscretisedDensity<3, float>>& density_info_ptr // TODO should be Info only
61  ) override;
62 
63  const DataSymmetriesForViewSegmentNumbers* get_symmetries_used() const override;
64 
65  void actual_back_project(DiscretisedDensity<3, float>& image,
67  const int min_axial_pos_num,
68  const int max_axial_pos_num,
69  const int min_tangential_pos_num,
70  const int max_tangential_pos_num) override;
71 
72  shared_ptr<ProjMatrixByBin>& get_proj_matrix_sptr() { return proj_matrix_ptr; }
73 
74  BackProjectorByBinUsingProjMatrixByBin* clone() const override;
75 
76 protected:
77  shared_ptr<ProjMatrixByBin> proj_matrix_ptr;
78 
79  // currently not exposed, but leaving this ine for the future
80  void actual_back_project(DiscretisedDensity<3, float>& image, const Bin& bin);
81 
82 private:
83  void set_defaults() override;
84  void initialise_keymap() override;
85  bool post_processing() override;
86 };
87 
88 END_NAMESPACE_STIR
89 
90 //#include "stir/recon_buildblock/BackProjectorByBinUsingProjMatrixByBin.inl"
91 
92 #endif
static const char *const registered_name
Name which will be used when parsing a BackProjectorByBin object.
Definition: BackProjectorByBinUsingProjMatrixByBin.h:50
This implements the BackProjectorByBin interface, given any ProjMatrixByBin object.
Definition: BackProjectorByBinUsingProjMatrixByBin.h:45
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.
Declaration of class stir::RegisteredParsingObject.