STIR  6.2.0
InputStreamFromROOTFileForECATPET.h
Go to the documentation of this file.
1 
9 /*
10  Copyright (C) 2016, 2021, UCL
11  Copyright (C) 2018 University of Hull
12  This file is part of STIR.
13 
14  SPDX-License-Identifier: Apache-2.0
15 
16  See STIR/LICENSE.txt for details
17 */
18 #ifndef __stir_IO_InputStreamFromROOTFileForECATPET_H__
19 #define __stir_IO_InputStreamFromROOTFileForECATPET_H__
20 
23 
24 START_NAMESPACE_STIR
25 
68  : public RegisteredParsingObject<InputStreamFromROOTFileForECATPET, InputStreamFromROOTFile, InputStreamFromROOTFile>
69 {
70 private:
72 
73 public:
75  static const char* const registered_name;
76 
79 
80 #if 0 // not used, so commented out
81  InputStreamFromROOTFileForECATPET(std::string filename,
82  std::string chain_name,
83  int crystal_repeater_x, int crystal_repeater_y, int crystal_repeater_z,
84  int blocks_repeater_y, int blocks_repeater_z,
85  bool exclude_scattered, bool exclude_randoms,
86  float low_energy_window, float up_energy_window,
87  int offset_dets);
88 #endif
89 
91  {}
92 
93  Succeeded get_next_record(CListRecordROOT& record) override;
94 
96  virtual std::string method_info() const;
98  Succeeded set_up(const std::string& header_path) override;
99 
101  inline int get_num_rings() const override;
103  inline int get_num_dets_per_ring() const override;
105  inline int get_num_axial_blocks_per_bucket_v() const override;
107  inline int get_num_transaxial_blocks_per_bucket_v() const override;
109  inline int get_num_axial_crystals_per_singles_unit() const override;
111  inline int get_num_trans_crystals_per_singles_unit() const override;
112 
113  inline void set_block_repeater_y(int);
114  inline void set_block_repeater_z(int);
115 
116 protected:
117  void set_defaults() override;
118  void initialise_keymap() override;
119  bool post_processing() override;
120 
122 
123  TBranch* br_crystalID1 = nullptr;
124  TBranch* br_crystalID2 = nullptr;
125  TBranch* br_blockID1 = nullptr;
126  TBranch* br_blockID2 = nullptr;
128 
130 
131  std::int32_t blockID1, blockID2;
132  std::int32_t crystalID1, crystalID2;
134 
135  int block_repeater_y;
136  int block_repeater_z;
137 
142 
143 private:
144  bool check_all_required_keywords_are_set(std::string& ret) const;
145 };
146 END_NAMESPACE_STIR
147 #include "stir/IO/InputStreamFromROOTFileForECATPET.inl"
148 #endif
A class for a general element of a listmode file for a Siemens scanner using the ROOT files...
Definition: CListRecordROOT.h:97
Declaration of class stir::InputStreamFromROOTFileForECATPET.
Definition: InputStreamFromROOTFileForECATPET.h:67
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
int half_block
In GATE, inside a block, the indeces start from the lower unit counting upwards. Therefore in order t...
Definition: InputStreamFromROOTFileForECATPET.h:141
Declaration of class stir::InputStreamFromROOTFile.
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
Declaration of class stir::RegisteredParsingObject.
static const char *const registered_name
Name which will be used when parsing a OSMAPOSLReconstruction object.
Definition: InputStreamFromROOTFileForECATPET.h:75