STIR  6.2.0
ForwardProjectorByBinUsingProjMatrixByBin.h
Go to the documentation of this file.
1 //
2 //
3 #ifndef _ForwardProjectorByBinUsingProjMatrixByBin_
4 #define _ForwardProjectorByBinUsingProjMatrixByBin_
5 
19 /*
20  Copyright (C) 2000 PARAPET partners
21  Copyright (C) 2000- 2009, Hammersmith Imanet Ltd
22  This file is part of STIR.
23 
24  SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
25 
26  See STIR/LICENSE.txt for details
27 */
28 
32 #include "stir/shared_ptr.h"
33 
34 START_NAMESPACE_STIR
35 
36 template <typename elemT>
37 class RelatedViewgrams;
38 
48  : public RegisteredParsingObject<ForwardProjectorByBinUsingProjMatrixByBin, ForwardProjectorByBin>
49 {
50 public:
52  static const char* const registered_name;
53 
55 
56  ForwardProjectorByBinUsingProjMatrixByBin(const shared_ptr<ProjMatrixByBin>& proj_matrix_ptr);
57 
59 
61  void set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
62  const shared_ptr<const DiscretisedDensity<3, float>>& density_info_ptr // TODO should be Info only
63  ) override;
64 
65  const DataSymmetriesForViewSegmentNumbers* get_symmetries_used() const override;
66 
67 private:
68  shared_ptr<ProjMatrixByBin> proj_matrix_ptr;
69 
70  void actual_forward_project(RelatedViewgrams<float>&,
71  const DiscretisedDensity<3, float>& image,
72  const int min_axial_pos_num,
73  const int max_axial_pos_num,
74  const int min_tangential_pos_num,
75  const int max_tangential_pos_num) override;
76 
77 #if 0 // disabled as currently not used. needs to be written in the new style anyway
78  void actual_forward_project(Bin&, const DiscretisedDensity<3,float>&);
79 #endif
80 
81  void set_defaults() override;
82  void initialise_keymap() override;
83  bool post_processing() override;
84 };
85 
86 END_NAMESPACE_STIR
87 
88 #endif
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
static const char *const registered_name
Name which will be used when parsing a ForwardProjectorByBin object.
Definition: ForwardProjectorByBinUsingProjMatrixByBin.h:52
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
Base class for forward projectors which work on &#39;large&#39; collections of bins: given the whole image...
Declaration of class stir::RegisteredParsingObject.
This implements the ForwardProjectorByBin interface, given any ProjMatrixByBin objectIt stores a shar...
Definition: ForwardProjectorByBinUsingProjMatrixByBin.h:47