msl 1.3.0
Loading...
Searching...
No Matches
Readout.h
Go to the documentation of this file.
1// Copyright 2025-2026 Julien Lamy, ICube, Université de Strasbourg-CNRS.
2// Part of msl, distributed under the terms of the MIT license.
3
4#ifndef _8f289539_e156_4c56_8e90_43ef51d375eb
5#define _8f289539_e156_4c56_8e90_43ef51d375eb
6
7#include <MrMeasSrv/SeqIF/libRT/sREADOUT.h>
8
9#include "msl/GradientPulse.h"
10#include "msl/GradientSpecs.h"
11#include "msl/NCOPair.h"
12#include "msl/RealTimeEvents.h"
13#include "msl/Vector.h"
14
15namespace msl
16{
17
19class Readout: public RealTimeEvents
20{
21public:
22 Readout();
23 Readout(Readout const &) = default;
24 Readout(Readout &&) = default;
25 Readout & operator=(Readout const &) = default;
26 Readout & operator=(Readout &&) = default;
27 virtual ~Readout() override = default;
28
30 double phase() const;
31
33 Readout & setPhase(double phase);
34
36 long contrast() const;
37
39 Readout & setContrast(long contrast);
40
45 long timeOffset() const;
46
51 Readout & setTimeOffset(long timeOffset);
52
54 Vector3l const & ncoOffset() const;
55
57 Readout & setNCOOffset(Vector3l const & point);
58
61
64
66 long echoTime() const;
67
68 MrProtocolData::SeqExpoRFInfo rfInfo() const override;
69
70 long startTime() const override;
71 long endTime() const override;
72
74 GradientPulse const & gradient() const;
75
77 long adcStartTime() const;
78
80 long adcEndTime() const;
81
87
93
99
105
110 sREADOUT const & adc() const;
111
116 sREADOUT & adc();
117
118protected:
120 double _phase;
121
124
127
130
133
136
139
142
144 sREADOUT _adc;
145};
146
147}
148
149#endif // _8f289539_e156_4c56_8e90_43ef51d375eb
Trapezoidal or arbitrary gradient pulse on three axes.
Definition GradientPulse.h:21
Encapsulation of a pair of NCO objects, setting and resetting the frequency and the phase of the NCO ...
Definition NCOPair.h:26
Readout & setGradientSpecs(GradientSpecs const &gradientSpecs)
Set the gradient specifications constraining the read-out duration.
sREADOUT _adc
Real-time readout object.
Definition Readout.h:144
double phase() const
Return the phase of the NCO during the readout.
long echoTime() const
Return the effective echo time (requires preparation).
sREADOUT const & adc() const
Return a reference to the ADC real-time object, e.g. for updating its meta-data.
Vector3d areaBeforeEcho() const
Return the area of the read-out gradient before the effective echo time.
GradientPulse _gradient
Read-out gradient.
Definition Readout.h:135
double _phase
Phase of the NCO during the readout.
Definition Readout.h:120
long startTime() const override
Return the start time of the events.
Readout & setPhase(double phase)
Set the phase of the NCO during the readout.
Readout & setTimeOffset(long timeOffset)
Set the time offset to get the effective echo time, accounting e.g. for the time of the excitation pu...
NCOPair _nco
NCO before and after this gradient.
Definition Readout.h:138
long timeOffset() const
Return the time offset to get the effective echo time, accounting e.g. for the time of the excitation...
long _contrast
Contrast number.
Definition Readout.h:123
GradientSpecs const & gradientSpecs() const
Return the gradient specifications constraining the read-out duration.
sREADOUT & adc()
Return a reference to the ADC real-time object, e.g. for updating its meta-data.
long adcStartTime() const
Return the start time of the ADC.
Readout & setNCOOffset(Vector3l const &point)
Set NCO k-space offset.
long _timeOffset
Time offset to get the effective echo time.
Definition Readout.h:126
GradientPulse const & gradient() const
Return the read-out gradient.
MrProtocolData::SeqExpoRFInfo rfInfo() const override
Return the RF information for SAR computation.
long endTime() const override
Return the end time of the events.
long contrast() const
Return the contrast number.
Vector3d areaBeforeADC() const
Return the area of the read-out gradient before the start of the ADC.
Vector3d areaAfterADC() const
Return the area of the read-out gradient after the end of the ADC.
Vector3d areaAfterEcho() const
Return the area of the read-out gradient after the effective echo time.
long adcEndTime() const
Return the start time of the ADC.
long _echoTime
Effective echo time.
Definition Readout.h:132
Readout & setContrast(long contrast)
Set the contrast number.
Vector3l _ncoOffset
NCO k-space offset.
Definition Readout.h:141
Vector3l const & ncoOffset() const
Return NCO k-space offset.
GradientSpecs _gradientSpecs
Gradient specifications constraining the read-out duration.
Definition Readout.h:129
RealTimeEvents()
No-op constructor.
Top-level namespace of the msl library.
Definition acceleration.h:17
Vector< 3, double > Vector3d
3D vector of doubles
Definition Vector.h:136
Vector< 3, long > Vector3l
3D vector of longs
Definition Vector.h:139
Specifications of the gradient system.
Definition GradientSpecs.h:14