27 #ifndef __stir_INTERFILEHEADER_H__ 28 #define __stir_INTERFILEHEADER_H__ 59 shared_ptr<ExamInfo> exam_info_sptr;
62 std::string imaging_modality_as_string;
63 void set_imaging_modality();
67 shared_ptr<const ExamInfo> get_exam_info_sptr()
const;
69 const ExamInfo& get_exam_info()
const;
71 std::string version_of_keys;
73 std::string siemens_mi_version;
85 virtual void set_version_specific_keys();
99 bool post_processing()
override;
104 ASCIIlist_type number_format_values;
105 ASCIIlist_type byte_order_values;
106 ASCIIlist_type patient_orientation_values;
107 ASCIIlist_type patient_rotation_values;
111 int number_format_index;
112 int byte_order_index;
113 int patient_orientation_index;
114 int patient_rotation_index;
116 void set_type_of_data();
120 std::vector<double> image_relative_start_times;
121 std::vector<double> image_durations;
126 std::vector<std::string> radionuclide_name;
127 std::vector<float> radionuclide_half_life;
128 std::vector<float> radionuclide_branching_ratio;
130 float calibration_factor;
134 double lln_quantification_units;
138 void set_version_specific_keys()
override;
139 virtual void read_matrix_info();
140 virtual void read_num_energy_windows();
141 void read_frames_info();
149 ASCIIlist_type type_of_data_values;
150 int type_of_data_index;
152 ASCIIlist_type PET_data_type_values;
153 int PET_data_type_index;
155 ASCIIlist_type process_status_values;
156 int process_status_index;
160 std::string data_file_name;
170 int num_energy_windows;
171 std::vector<std::string> matrix_labels;
172 std::vector<std::vector<int>> matrix_size;
173 std::vector<float> pixel_sizes;
174 std::vector<std::vector<double>> image_scaling_factors;
175 std::vector<unsigned long> data_offset_each_dataset;
191 unsigned long data_offset;
193 float bed_position_horizontal;
194 float bed_position_vertical;
208 std::vector<double> first_pixel_offsets;
209 int num_image_data_types;
210 std::vector<std::string> index_nesting_level;
211 std::vector<std::string> image_data_type_description;
214 void read_matrix_info()
override;
216 bool post_processing()
override;
218 void read_image_data_types();
238 bool post_processing()
override;
241 std::vector<int> segment_sequence;
242 std::vector<int> min_ring_difference;
243 std::vector<int> max_ring_difference;
244 std::vector<int> num_rings_per_segment;
245 std::vector<int> timing_poss_sequence;
247 std::vector<std::string> applied_corrections;
254 ProjDataFromStream::StorageOrder storage_order;
255 shared_ptr<ProjDataInfo> data_info_sptr;
258 void resize_segments_and_set();
259 int find_storage_order();
264 int num_detectors_per_ring;
266 double transaxial_FOV_diameter_in_cm;
267 double inner_ring_diameter_in_cm;
268 double average_depth_of_interaction_in_cm;
269 double distance_between_rings_in_cm;
270 double default_bin_size_in_cm;
272 double view_offset_in_degrees;
273 int max_num_non_arccorrected_bins;
274 int default_num_arccorrected_bins;
276 int num_axial_blocks_per_bucket;
277 int num_transaxial_blocks_per_bucket;
278 int num_axial_crystals_per_block;
279 int num_transaxial_crystals_per_block;
280 int num_axial_crystals_per_singles_unit;
281 int num_transaxial_crystals_per_singles_unit;
282 int num_detector_layers;
285 float energy_resolution;
287 float reference_energy;
289 int max_num_timing_poss;
290 float size_of_timing_pos;
291 float timing_resolution;
297 std::string scanner_geometry;
298 float axial_distance_between_crystals_in_cm;
299 float transaxial_distance_between_crystals_in_cm;
300 float axial_distance_between_blocks_in_cm;
301 float transaxial_distance_between_blocks_in_cm;
306 std::string crystal_map;
310 double effective_central_bin_size_in_cm;
311 bool is_arccorrected;
316 #endif // __stir_INTERFILEHEADER_H__ This file declares the stir::ByteOrder class.
A simple structure to hold 2 strings (date and time)
Definition: date_time_functions.h:72
This file declares the class stir::ExamInfo.
A class to parse Interfile headers.
Definition: KeyParser.h:161
Declaration of class stir::KeyParser.
Declaration of class stir::ProjDataFromStream.
This class provides member functions to find out what byte-order your machine is and to swap numbers...
Definition: ByteOrder.h:99
Functions for date-time conversions.
This file declares the class stir::NumericInfo.
provides names for some numeric types and methods for finding their properties.
Definition: NumericType.h:54
a class for storing information about 1 exam (or scan)
Definition: ExamInfo.h:41