STIR  6.2.0
BinNormalisationWithCalibration.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2020-2021, University College London
5  Copyright (C) 2020, National Physical Laboratory
6  This file is part of STIR.
7 
8  SPDX-License-Identifier: Apache-2.0
9 
10  See STIR/LICENSE.txt for details
11 */
22 #ifndef __stir_recon_buildblock_BinNormalisationWithCalibration_H__
23 #define __stir_recon_buildblock_BinNormalisationWithCalibration_H__
24 
26 #include "stir/Bin.h"
27 #include "stir/Radionuclide.h"
28 #include "stir/shared_ptr.h"
31 
32 START_NAMESPACE_STIR
33 
43 {
44 private:
46 
47 public:
50 
51  Succeeded set_up(const shared_ptr<const ExamInfo>& exam_info_sptr, const shared_ptr<const ProjDataInfo>&) override;
53  float get_calib_decay_branching_ratio_factor(const Bin&) const; // TODO find a better name
54  float get_calibration_factor() const override;
55  float get_branching_ratio() const;
56 
57  void set_calibration_factor(const float);
58  void set_radionuclide(const Radionuclide&);
59 
60  // needs to be implemented by derived class
61  virtual float get_uncalibrated_bin_efficiency(const Bin&) const = 0;
62 
64 
66  float get_bin_efficiency(const Bin& bin) const final
67  {
68  return this->get_uncalibrated_bin_efficiency(bin) / this->_calib_decay_branching_ratio;
69  }
70 
71 protected:
72  // parsing stuff
73  void set_defaults() override;
74  void initialise_keymap() override;
75  bool post_processing() override;
76 
77 private:
78  // provide facility to switch off things?
79  // need to be added to the parsing keywords
80  // bool use_calibration_factor; // default to true
81  float calibration_factor;
82  Radionuclide radionuclide;
84 
85  float _calib_decay_branching_ratio;
86 };
87 
88 END_NAMESPACE_STIR
89 
90 #endif
Definition: BinNormalisationWithCalibration.h:42
Declaration of class stir::Radionuclide.
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
Simple functions to compute the decay correction factor.
Declaration of class stir::BinNormalisation.
A class for storing radionuclide information.
Definition: Radionuclide.h:33
Abstract base class for implementing bin-wise normalisation of data.
Definition: BinNormalisation.h:51
float get_bin_efficiency(const Bin &bin) const final
return efficiency for 1 bin
Definition: BinNormalisationWithCalibration.h:66
A class for storing coordinates and value of a single projection bin.
Definition: Bin.h:48
Declaration of class stir::Bin.
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.