STIR  6.2.0
ProjDataRebinning.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2003- 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 */
11 #ifndef __stir_recon_buildblock_ProjDataRebinning_H__
12 #define __stir_recon_buildblock_ProjDataRebinning_H__
13 
22 /* Modification history
23  */
24 
25 #include "stir/RegisteredObject.h"
26 #include "stir/TimedObject.h"
27 #include "stir/ParsingObject.h"
28 #include "stir/ProjData.h"
29 #include "stir/shared_ptr.h"
30 #include "stir/error.h"
31 #include <string>
32 
33 START_NAMESPACE_STIR
34 
35 class Succeeded;
36 
71 class ProjDataRebinning : public TimedObject, public RegisteredObject<ProjDataRebinning>
72 {
73 public:
75  ~ProjDataRebinning() override;
76 
78  virtual std::string method_info() const = 0;
79 
81 
86  virtual Succeeded rebin() = 0;
87 
93  void set_max_segment_num_to_process(int ns);
94  int get_max_segment_num_to_process() const;
96 
99  void set_output_filename_prefix(const std::string& s);
100  std::string get_output_filename_prefix() const;
102 
104 
105  void set_input_proj_data_sptr(const shared_ptr<ProjData>&);
106  // KTTODO I'm not enthousiastic about the next function
107  // why would you need this?
108  shared_ptr<ProjData> get_proj_data_sptr();
109 
110  // TODO needed at all?
111  // KTTODO: yes, and change parameters
113  virtual Succeeded set_up();
114 
115  // parameters
116 protected:
120  std::string input_filename;
122 
124 
125 protected:
126 #if 0
127 
137  void initialise(const std::string& parameter_filename);
138 #endif
139 
141  bool post_processing() override;
142  void set_defaults() override;
143  void initialise_keymap() override;
144 
145 protected: // members
146  shared_ptr<ProjData> proj_data_sptr;
147 };
148 
149 END_NAMESPACE_STIR
150 
151 #endif
int max_segment_num_to_process
the maximum absolute segment number to use in the reconstruction
Definition: ProjDataRebinning.h:123
std::string output_filename_prefix
file name for output projdata (should be without extension)
Definition: ProjDataRebinning.h:118
base class for all rebinning algorithms for 3D PET dataTODO describe what rebinning is and why you ne...
Definition: ProjDataRebinning.h:71
Declaration of class stir::ParsingObject.
std::string input_filename
file name for input projdata
Definition: ProjDataRebinning.h:120
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
Declaration of class stir::ProjData.
Declaration of stir::error()
base class for all objects which need timers. At the moment, there&#39;s only a CPU timer.
Definition: TimedObject.h:35
Declaration of class stiir::RegisteredObject.
declares the stir::TimedObject class
Helper class to provide registry mechanisms to a Base classSuppose you have a hierarchy of classes wi...
Definition: RegisteredObject.h:95
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43