STIR  6.2.0
ProjMatrixByDenselUsingRayTracing.h
Go to the documentation of this file.
1 //
2 //
12 /*
13  Copyright (C) 2000- 2002, IRSL
14  See STIR/LICENSE.txt for details
15 */
16 #ifndef __ProjMatrixByDenselUsingRayTracing__
17 #define __ProjMatrixByDenselUsingRayTracing__
18 
22 
23 START_NAMESPACE_STIR
24 
25 template <int num_dimensions, typename elemT>
26 class DiscretisedDensity;
27 class DataSymmetriesForDensels_PET_CartesianGrid;
28 
55  : public RegisteredParsingObject<ProjMatrixByDenselUsingRayTracing, ProjMatrixByDenselOnCartesianGridUsingElement>
56 {
58 
59 public:
61  static const char* const registered_name;
62 
65 
67 
69  void set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
70  const shared_ptr<const DiscretisedDensity<3, float>>& density_info_ptr // TODO should be Info only
71  ) override;
72 
73  const DataSymmetriesForDensels* get_symmetries_ptr() const override;
74 
75  float get_element(const Bin&, const CartesianCoordinate3D<float>&) const override;
76 
77 private:
78  shared_ptr<DataSymmetriesForDensels_PET_CartesianGrid> symmetries_ptr;
79 #if 0
80  bool restrict_to_cylindrical_FOV;
82 #endif
83  int num_tangential_LORs;
86  bool use_actual_detector_boundaries;
87 
88  // explicitly list necessary members for image details (should use an Info object instead)
89  // ideally these should be const, but I have some trouble initialising them in that case
94 
95  float xhalfsize;
96  float yhalfsize;
97  float zhalfsize;
98 
99  void set_defaults() override;
100  void initialise_keymap() override;
101  bool post_processing() override;
102 };
103 
104 END_NAMESPACE_STIR
105 
106 #endif
ProjMatrixByDenselOnCartesianGridUsingElement&#39;s definition.
A class for encoding/finding symmetries common to the geometry of the projection data and the discret...
Definition: DataSymmetriesForDensels.h:50
Computes projection matrix elements for VoxelsOnCartesianGrid images by using a Length of Intersectio...
Definition: ProjMatrixByDenselUsingRayTracing.h:54
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
Computes projection matrix elements for VoxelsOnCartesianGrid images by using a Length of Intersectio...
Definition: ProjMatrixByDenselOnCartesianGridUsingElement.h:54
static const char *const registered_name
Name which will be used when parsing a ProjMatrixByDensel object.
Definition: ProjMatrixByDenselUsingRayTracing.h:61
defines the stir::CartesianCoordinate3D<coordT> class
Declaration of class stir::RegisteredParsingObject.