STIR  6.3.0
ProjDataInfoBlocksOnCylindricalNoArcCorr.h
Go to the documentation of this file.
1 
2 /*
3  Copyright (C) 2000- 2011-06-24, Hammersmith Imanet Ltd
4  Copyright (C) 2011-07-01 - 2011, Kris Thielemans
5  Copyright (C) 2017, ETH Zurich, Institute of Particle Physics and Astrophysics
6  This file is part of STIR.
7 
8  SPDX-License-Identifier: Apache-2.0
9 
10  See STIR/LICENSE.txt for details
11 */
12 
23 #ifndef __stir_ProjDataInfoBlocksOnCylindricalNoArcCorr_H__
24 #define __stir_ProjDataInfoBlocksOnCylindricalNoArcCorr_H__
25 
27 #include "stir/VectorWithOffset.h"
29 
30 START_NAMESPACE_STIR
31 
32 class Succeeded;
33 class ProjDataInfoTests;
34 class BlocksTests;
35 
47 {
48 private:
50 #ifdef STIR_COMPILING_SWIG_WRAPPER
51  // SWIG needs this typedef to be public
52 public:
53 #endif
55 
56 public:
59 
61  ProjDataInfoBlocksOnCylindricalNoArcCorr(const shared_ptr<Scanner> scanner_ptr,
62  const VectorWithOffset<int>& num_axial_pos_per_segment,
63  const VectorWithOffset<int>& min_ring_diff_v,
64  const VectorWithOffset<int>& max_ring_diff_v,
65  const int num_views,
66  const int num_tangential_poss);
67 
68  ProjDataInfo* clone() const override;
69 
70  bool operator==(const self_type&) const;
71 
72  std::string parameter_info() const override;
73 
74 private:
76 
77  Succeeded find_scanner_coordinates_given_cartesian_coordinates(int& det1,
78  int& det2,
79  int& ring1,
80  int& ring2,
82  const CartesianCoordinate3D<float>& c2) const;
83 
84  void find_bin_given_cartesian_coordinates_of_detection(Bin& bin,
85  const CartesianCoordinate3D<float>& coord_1,
86  const CartesianCoordinate3D<float>& coord_2) const;
88  // give test classes access to the private members
89  friend class ProjDataInfoTests;
90  friend class BlocksTests;
91 
92 private:
93  bool blindly_equals(const root_type* const) const override;
94 };
95 
96 END_NAMESPACE_STIR
97 
98 #endif
Projection data info for data for a scanner with discrete detectors.
Definition: ProjDataInfoGenericNoArcCorr.h:70
Test class for Blocks.
Definition: test_blocks_on_cylindrical_projectors.cxx:65
Projection data info for data from a scanner with discrete dtectors organised by blocks.
Definition: ProjDataInfoBlocksOnCylindricalNoArcCorr.h:46
A class for storing coordinates and value of a single projection bin.
Definition: Bin.h:48
Test class for ProjDataInfo.
Definition: test_proj_data_info.cxx:99
defines the stir::VectorWithOffset class
Declaration of class stir::ProjDataInfoGenericNoArcCorr.
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
defines the stir::CartesianCoordinate3D<coordT> class