STIR  6.2.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 
23 #include "stir/RegisteredObject.h"
26 #include "stir/ParsingObject.h"
27 #include "stir/shared_ptr.h"
28 
29 START_NAMESPACE_STIR
30 
31 template <int num_dimensions, class elemT>
32 class DiscretisedDensity;
33 class ProjDataInfo;
34 
44 class ProjectorByBinPair : public RegisteredObject<ProjectorByBinPair>
45 {
46 public:
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 
83 protected:
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 
95 private:
96  shared_ptr<const ProjDataInfo> _proj_data_info_sptr;
98 
99  shared_ptr<const DiscretisedDensity<3, float>> _density_info_sptr;
100 };
101 
102 END_NAMESPACE_STIR
103 
104 #endif // __stir_recon_buildblock_ProjectorByBinPair_h_
const DataSymmetriesForViewSegmentNumbers * get_symmetries_used() const
Provide access to the (minimal) symmetries used by the projectors.
Definition: ProjectorByBinPair.h:78
Declaration of class stir::ParsingObject.
Abstract base class for all projector pairs.
Definition: ProjectorByBinPair.h:44
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 class stiir::RegisteredObject.
Helper class to provide registry mechanisms to a Base classSuppose you have a hierarchy of classes wi...
Definition: RegisteredObject.h:95
Base class for forward projectors which work on &#39;large&#39; collections of bins: given the whole image...
Declares class stir::BackProjectorByBin.
An (abstract base) class that contains information on the projection data.
Definition: ProjDataInfo.h:69
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43