msl 1.3.0
Loading...
Searching...
No Matches
RFPulse.h
Go to the documentation of this file.
1// Copyright 2025 Julien Lamy, ICube, Université de Strasbourg-CNRS.
2// Part of msl, distributed under the terms of the MIT license.
3
4#ifndef _efa76599_8b39_4e49_97b6_fb90a37aa668
5#define _efa76599_8b39_4e49_97b6_fb90a37aa668
6
8
9namespace msl
10{
11
13class RFPulse: public RealTimeEvents
14{
15public:
17 enum Type
18 {
19 Undefined,
20 Excitation,
21 Refocussing,
22 Store
23 };
24
25 RFPulse() = default;
26 RFPulse(RFPulse const &) = default;
27 RFPulse(RFPulse &&) = default;
28 RFPulse & operator=(RFPulse const &) = default;
29 RFPulse & operator=(RFPulse &&) = default;
30 virtual ~RFPulse() = default;
31
33 virtual Type type() const = 0;
34
36 virtual RFPulse & setType(Type type) = 0;
37
39 virtual double flipAngle() const = 0;
40
42 virtual RFPulse & setFlipAngle(double flipAngle) = 0;
43
45 virtual double initialPhase() const = 0;
46
48 virtual RFPulse & setInitialPhase(double initialPhase) = 0;
49
51 virtual double additionalPhase() const = 0;
52
54 virtual RFPulse & setAdditionalPhase(double additionalPhase) = 0;
55
57 virtual RFPulse & setStartTime(long startTime) = 0;
58
60 virtual long duration() const = 0;
61
63 virtual RFPulse & setDuration(long duration) = 0;
64
66 long endTime() const override;
67
69 virtual long samples() const = 0;
70
72 virtual RFPulse & setSamples(long samples) = 0;
73
75 virtual std::string ident() const = 0;
76
78 virtual RFPulse & setIdent(std::string const & ident) = 0;
79
81 virtual double gamma() const = 0;
82
84 virtual long peakTime() const = 0;
85};
86
87}
88
89#endif // _efa76599_8b39_4e49_97b6_fb90a37aa668
Base class for RF pulses.
Definition RFPulse.h:14
virtual RFPulse & setFlipAngle(double flipAngle)=0
Set the flip angle (deg).
virtual double additionalPhase() const =0
Return the additional phase of the RF pulse (deg).
virtual double initialPhase() const =0
Return the initial phase of the RF pulse (deg).
long endTime() const override
Return the end time of the RF pulse (µs).
Type
Type of pulse, i.e. its role in the sequence.
Definition RFPulse.h:18
virtual Type type() const =0
Return the type of the RF pulse.
virtual RFPulse & setIdent(std::string const &ident)=0
Set the user-defined name of the RF pulse.
virtual RFPulse & setDuration(long duration)=0
Set the duration of the RF pulse (µs).
virtual double flipAngle() const =0
Return the flip angle (deg).
virtual double gamma() const =0
Return the gyromagnetic ratio of the current nucleus (MHz/T).
virtual long peakTime() const =0
Return the time of the RF peak amplitude (µs).
virtual long samples() const =0
Return the number of discrete samples of the RF pulse.
virtual long duration() const =0
Return the duration of the RF pulse (µs).
virtual std::string ident() const =0
Return the user-defined name of the RF pulse.
virtual RFPulse & setInitialPhase(double initialPhase)=0
Set the initial phase of the RF pulse (deg).
virtual RFPulse & setStartTime(long startTime)=0
Set the start time of the RF pulse (µs).
virtual RFPulse & setSamples(long samples)=0
Set the number of discrete samples of the RF pulse.
virtual RFPulse & setType(Type type)=0
Set the type of the RF pulse.
virtual RFPulse & setAdditionalPhase(double additionalPhase)=0
Set the additional phase of the RF pulse (deg).
RealTimeEvents()
No-op constructor.
virtual long startTime() const =0
Return the start time of the events.
Top-level namespace of the msl library.
Definition acceleration.h:17