CTL
0.6.1
Computed Tomography Library
|
Public Types | |
enum | { Type = 320 } |
![]() | |
enum | { Type = 300 } |
![]() | |
enum | { Type = 0 } |
![]() | |
enum | { Type = -1, UserType = 65536 } |
Public Member Functions | |
int | type () const override |
virtual EnergyRange | nominalEnergyRange () const override |
XrayTube (const QString &name) | |
XrayTube (const QSizeF &focalSpotSize=QSizeF(0.0, 0.0), const Vector3x1 &focalSpotPosition=Vector3x1(0.0), double tubeVoltage=100.0, double mAs=1.0, const QString &name=defaultName()) | |
XrayTube (const QSizeF &focalSpotSize, double tubeVoltage, double mAs, const QString &name=defaultName()) | |
XrayTube (double tubeVoltage, double mAs, const QString &name=defaultName()) | |
SystemComponent * | clone () const override |
QString | info () const override |
void | fromVariant (const QVariant &variant) override |
QVariant | toVariant () const override |
uint | spectrumDiscretizationHint () const override |
double | tubeVoltage () const |
double | mAs () const |
void | setTubeVoltage (double voltage) |
void | setMilliampereSeconds (double mAs) |
![]() | |
virtual IntervalDataSeries | spectrum (uint nbSamples) const |
Returns the (relative) emitted radiation spectrum sampled with nbSamples bins covering the energy range of [energyRange().start(), energyRange().end()] keV. More... | |
virtual void | setSpectrumModel (AbstractXraySpectrumModel *model) |
EnergyRange | energyRange () const |
float | meanEnergy () const |
double | photonFlux () const |
double | fluxModifier () const |
const QSizeF & | focalSpotSize () const |
const Vector3x1 & | focalSpotPosition () const |
const AbstractXraySpectrumModel * | spectrumModel () const |
void | setFluxModifier (double modifier) |
void | setFocalSpotSize (const QSizeF &size) |
void | setFocalSpotSize (double width, double height) |
void | setFocalSpotPosition (const Vector3x1 &position) |
void | setFocalSpotPosition (double x, double y, double z) |
void | setEnergyRangeRestriction (const EnergyRange &window) |
IntervalDataSeries | spectrum (EnergyRange range, uint nbSamples) const |
bool | hasSpectrumModel () const |
void | setSpectrumModel (std::unique_ptr< AbstractXraySpectrumModel > model) |
std::unique_ptr< GenericSource > | toGeneric () const |
![]() | |
SystemComponent (const QString &name=defaultName()) | |
virtual int | elementalType () const |
const QString & | name () const |
void | rename (QString name) |
![]() | |
virtual | ~SerializationInterface ()=default |
Static Public Member Functions | |
static QString | defaultName () |
![]() | |
static QString | defaultName () |
Protected Attributes | |
double | _tubeVoltage = 100.0 |
double | _mAs = 1.0 |
double | _intensityConstant = 3.2e8 |
![]() | |
QSizeF | _focalSpotSize = QSizeF(0.0, 0.0) |
Size of the focal spot (in mm). | |
Vector3x1 | _focalSpotPosition = Vector3x1(0.0) |
Position of the focal spot (relative to source center). | |
double | _fluxModifier = 1.0 |
Global (multiplicative) modifier for the photon flux. | |
DataModelPtr< AbstractXraySpectrumModel > | _spectrumModel |
Data model for the emitted radiation spectrum. | |
EnergyRange | _restrictedEnergyWindow = { 0.0f, 0.0f } |
Windowed energy range. | |
bool | _hasRestrictedEnergyWindow = false |
Private Member Functions | |
void | updateIntensityConstant () |
Friends | |
template<class > | |
struct | SerializationHelper::RegisterWithSerializationHelper |
Additional Inherited Members | |
![]() | |
static const uint | DEFAULT_SPECTRUM_RESOLUTION_HINT = 10 |
![]() | |
static QString | typeInfoString (const std::type_info &type) |
![]() | |
EnergyRange | |
Alias name for CTL::Range<float>. More... | |
![]() | |
std::unique_ptr< ComponentType > | makeComponent (ConstructorArguments &&... arguments) |
std::unique_ptr< SystemComponent > | makeComponentFromJson (const QJsonObject &object, bool fallbackToGenericType) |
CTL::XrayTube::XrayTube | ( | const QString & | name | ) |
Constructs an XrayTube named name.
This constructor defaults the focal spot size to QSizeF(0.0,0.0) and the focal spot position to Vector3x1(0.0). The tube (acceleration) voltage is set to 100 kV and the emission-current- time-product (used for a single X-ray shot) to 1.0 mAs.
CTL::XrayTube::XrayTube | ( | const QSizeF & | focalSpotSize = QSizeF(0.0, 0.0) , |
const Vector3x1 & | focalSpotPosition = Vector3x1(0.0) , |
||
double | tubeVoltage = 100.0 , |
||
double | mAs = 1.0 , |
||
const QString & | name = defaultName() |
||
) |
Constructs an XrayTube with a focal spot size of focalSpotSize and its focal spot positioned at focalSpotPosition. Sets the tube (acceleration) voltage to tubeVoltage and the emission- current-time-product (used for a single X-ray shot) to mAs. Also sets the component's name to name.
CTL::XrayTube::XrayTube | ( | const QSizeF & | focalSpotSize, |
double | tubeVoltage, | ||
double | mAs, | ||
const QString & | name = defaultName() |
||
) |
Constructs an XrayTube with a focal spot size of focalSpotSize. Sets the tube (acceleration) voltage to tubeVoltage and the emission-current-time-product (used for a single X-ray shot) to mAs. Also sets the component's name to name.
This constructor defaults the focal spot position to Vector3x1(0.0).
CTL::XrayTube::XrayTube | ( | double | tubeVoltage, |
double | mAs, | ||
const QString & | name = defaultName() |
||
) |
Constructs an XrayTube with a tube (acceleration) voltage of tubeVoltage and an emission- current-time-product (used for a single X-ray shot) of mAs. Also sets the component's name to name.
This constructor defaults the focal spot size to QSizeF(0.0,0.0) and the focal spot position to Vector3x1(0.0).
|
overridevirtual |
Constructs a copy of the object and returns a base class pointer to it.
Reimplemented from CTL::SystemComponent.
|
static |
Returns the default name for the component: "X-ray tube".
|
overridevirtual |
Interface to read all member variables from the QVariant variant.
Reimplement this method such that it reads all newly introduced content when sub-classing. A typical reimplementation in sub-classes might look like this:
Reimplemented from CTL::AbstractSource.
|
overridevirtual |
Returns a formatted string with information about the object.
In addition to the information from the base class (SystemComponent), the info string contains the following details:
Reimplemented from CTL::AbstractSource.
double CTL::XrayTube::mAs | ( | ) | const |
Returns the emission-current-time-product (in mAs) for an individual X-ray shot.
|
overridevirtual |
Returns the energy range [in keV] of the radiation emitted by this instance.
This is [0 keV, e * tubeVoltage].
Implements CTL::AbstractSource.
|
overrideprotectedvirtual |
Returns the nominal photon flux (photons/cm² in 1m distance).
This is the product of the emission-current-time-product (mAs) and the intensity constant.
Implements CTL::AbstractSource.
void CTL::XrayTube::setMilliampereSeconds | ( | double | mAs | ) |
Sets the emission-current-time-product [in mAs] (used for a single X-ray shot) to mAs.
void CTL::XrayTube::setTubeVoltage | ( | double | voltage | ) |
Sets the tube (acceleration) voltage to voltage (in kV).
|
overridevirtual |
Returns a hint for a reasonable number of sampling points when querying a spectrum of the XrayTube instance. This returns the number of samples (rounded up) required to cover the full energy range of this instance (see energyRange()) with a resolution of (at least) 10 keV. Returns a minimum of one sample.
Example:
Reimplemented from CTL::AbstractSource.
|
overridevirtual |
Interface to store all member variables in a QVariant.
Stores the object's type-id.
Reimplement this method such that it stores all newly introduced object data when sub-classing. This needs to cover everything that is necessary to fully determine the state of an object. Best practice is to invoke the base class version of this method to take care of all content originating from underlying base classes.
A typical reimplementation in sub-classes might look like this:
Reimplemented from CTL::AbstractSource.
double CTL::XrayTube::tubeVoltage | ( | ) | const |
Returns the tube (acceleration) voltage (in kV).
|
inlineoverridevirtual |
Returns the type-id of the serializable object. Used in deserialization to determine the proper object type.
Add derived classes to the enumeration using the CTL_TYPE_ID macro.
Reimplemented from CTL::AbstractSource.