OpenMS
Loading...
Searching...
No Matches
MassAnalyzer.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Timo Sachsenberg $
6// $Authors: Marc Sturm $
7// --------------------------------------------------------------------------
8
9#pragma once
10
15
16#include <functional>
17
18namespace OpenMS
19{
25 class OPENMS_DLLAPI MassAnalyzer :
27 {
28public:
50 static const std::string NamesOfAnalyzerType[SIZE_OF_ANALYZERTYPE];
51
58 {
63 SIZE_OF_RESOLUTIONMETHOD
64 };
66 static const std::string NamesOfResolutionMethod[SIZE_OF_RESOLUTIONMETHOD];
67
70 {
74 SIZE_OF_RESOLUTIONTYPE
75 };
77 static const std::string NamesOfResolutionType[SIZE_OF_RESOLUTIONTYPE];
78
81 {
85 SIZE_OF_SCANDIRECTION
86 };
88 static const std::string NamesOfScanDirection[SIZE_OF_SCANDIRECTION];
89
92 {
97 SIZE_OF_SCANLAW
98 };
100 static const std::string NamesOfScanLaw[SIZE_OF_SCANLAW];
101
104 {
109 SIZE_OF_REFLECTRONSTATE
110 };
112 static const std::string NamesOfReflectronState[SIZE_OF_REFLECTRONSTATE];
113
120
127
134
141
148
155
163 static const std::string& analyzerTypeToString(AnalyzerType type);
164
172 static AnalyzerType toAnalyzerType(const std::string& name);
173
181 static const std::string& resolutionMethodToString(ResolutionMethod method);
182
190 static ResolutionMethod toResolutionMethod(const std::string& name);
191
199 static const std::string& resolutionTypeToString(ResolutionType type);
200
208 static ResolutionType toResolutionType(const std::string& name);
209
217 static const std::string& scanDirectionToString(ScanDirection direction);
218
226 static ScanDirection toScanDirection(const std::string& name);
227
235 static const std::string& scanLawToString(ScanLaw law);
236
244 static ScanLaw toScanLaw(const std::string& name);
245
253 static const std::string& reflectronStateToString(ReflectronState state);
254
262 static ReflectronState toReflectronState(const std::string& name);
263
267 MassAnalyzer(const MassAnalyzer &) = default;
272
277
279 bool operator==(const MassAnalyzer & rhs) const;
281 bool operator!=(const MassAnalyzer & rhs) const;
282
287
291 void setResolutionMethod(ResolutionMethod resolution_method);
292
296 void setResolutionType(ResolutionType resolution_type);
297
301 void setScanDirection(ScanDirection scan_direction);
302
306 void setScanLaw(ScanLaw scan_law);
307
311 void setReflectronState(ReflectronState reflecton_state);
312
318 double getResolution() const;
320 void setResolution(double resolution);
321
323 double getAccuracy() const;
325 void setAccuracy(double accuracy);
326
328 double getScanRate() const;
330 void setScanRate(double scan_rate);
331
333 double getScanTime() const;
335 void setScanTime(double scan_time);
336
338 double getTOFTotalPathLength() const;
340 void setTOFTotalPathLength(double TOF_total_path_length);
341
343 double getIsolationWidth() const;
345 void setIsolationWidth(double isolation_width);
346
350 void setFinalMSExponent(Int final_MS_exponent);
351
355 void setMagneticFieldStrength(double magnetic_field_strength);
356
367 Int getOrder() const;
369 void setOrder(Int order);
370
371protected:
379 double accuracy_;
387 };
388} // namespace OpenMS
389
390namespace std
391{
405 template<>
406 struct hash<OpenMS::MassAnalyzer>
407 {
408 std::size_t operator()(const OpenMS::MassAnalyzer& ma) const noexcept
409 {
410 std::size_t seed = 0;
411
412 // Hash enum fields (cast to underlying integer type)
413 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(ma.getType())));
414 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(ma.getResolutionMethod())));
415 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(ma.getResolutionType())));
416 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(ma.getScanDirection())));
417 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(ma.getScanLaw())));
418 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(ma.getReflectronState())));
419
420 // Hash double fields
421 OpenMS::hash_combine(seed, OpenMS::hash_float(ma.getResolution()));
422 OpenMS::hash_combine(seed, OpenMS::hash_float(ma.getAccuracy()));
423 OpenMS::hash_combine(seed, OpenMS::hash_float(ma.getScanRate()));
424 OpenMS::hash_combine(seed, OpenMS::hash_float(ma.getScanTime()));
425 OpenMS::hash_combine(seed, OpenMS::hash_float(ma.getTOFTotalPathLength()));
426 OpenMS::hash_combine(seed, OpenMS::hash_float(ma.getIsolationWidth()));
427 OpenMS::hash_combine(seed, OpenMS::hash_float(ma.getMagneticFieldStrength()));
428
429 // Hash integer fields
430 OpenMS::hash_combine(seed, OpenMS::hash_int(ma.getFinalMSExponent()));
431 OpenMS::hash_combine(seed, OpenMS::hash_int(ma.getOrder()));
432
433 return seed;
434 }
435 };
436} // namespace std
437
Description of a mass analyzer (part of a MS Instrument)
Definition MassAnalyzer.h:27
void setReflectronState(ReflectronState reflecton_state)
sets the reflectron state (for TOF)
static ScanDirection toScanDirection(const std::string &name)
Convert a string to a ScanDirection enum.
static ScanLaw toScanLaw(const std::string &name)
Convert a string to a ScanLaw enum.
double accuracy_
Definition MassAnalyzer.h:379
double getIsolationWidth() const
returns the isolation width i.e. in which m/z range the precursor ion is selected for MS to the n (in...
ResolutionMethod
resolution method
Definition MassAnalyzer.h:58
@ TENPERCENTVALLEY
Ten percent valley.
Definition MassAnalyzer.h:61
@ RESMETHNULL
Unknown.
Definition MassAnalyzer.h:59
@ BASELINE
Baseline.
Definition MassAnalyzer.h:62
@ FWHM
Full width at half max.
Definition MassAnalyzer.h:60
AnalyzerType
analyzer type
Definition MassAnalyzer.h:31
@ PAULIONTRAP
Quadrupole ion trap / Paul ion trap.
Definition MassAnalyzer.h:34
@ SWIFT
Stored waveform inverse fourier transform.
Definition MassAnalyzer.h:43
@ FOURIERTRANSFORM
Fourier transform ion cyclotron resonance mass spectrometer.
Definition MassAnalyzer.h:39
@ ANALYZERNULL
Unknown.
Definition MassAnalyzer.h:32
@ LIT
Linear ion trap.
Definition MassAnalyzer.h:46
@ RADIALEJECTIONLINEARIONTRAP
Radial ejection linear ion trap.
Definition MassAnalyzer.h:35
@ IONSTORAGE
Ion storage.
Definition MassAnalyzer.h:40
@ ORBITRAP
Orbitrap.
Definition MassAnalyzer.h:45
@ SECTOR
Magnetic sector.
Definition MassAnalyzer.h:38
@ ESA
Electrostatic energy analyzer.
Definition MassAnalyzer.h:41
@ TOF
Time-of-flight.
Definition MassAnalyzer.h:37
@ CYCLOTRON
Cyclotron.
Definition MassAnalyzer.h:44
@ AXIALEJECTIONLINEARIONTRAP
Axial ejection linear ion trap.
Definition MassAnalyzer.h:36
@ QUADRUPOLE
Quadrupole.
Definition MassAnalyzer.h:33
@ IT
Ion trap.
Definition MassAnalyzer.h:42
ReflectronState reflectron_state_
Definition MassAnalyzer.h:377
ScanDirection getScanDirection() const
returns the direction of scanning
Int getOrder() const
returns the position of this part in the whole Instrument.
double getResolution() const
returns the resolution
void setResolutionMethod(ResolutionMethod resolution_method)
sets the method used for determination of the resolution
static StringList getAllNamesOfReflectronState()
Returns all reflectron state names known to OpenMS.
void setTOFTotalPathLength(double TOF_total_path_length)
sets the path length for a TOF mass analyzer (in meter)
void setIsolationWidth(double isolation_width)
sets the isolation width i.e. in which m/z range the precursor ion is selected for MS to the n (in m/...
AnalyzerType getType() const
returns the analyzer type
void setResolution(double resolution)
sets the resolution
ResolutionType
Resolution type.
Definition MassAnalyzer.h:70
@ CONSTANT
Constant.
Definition MassAnalyzer.h:72
@ RESTYPENULL
Unknown.
Definition MassAnalyzer.h:71
@ PROPORTIONAL
Proportional.
Definition MassAnalyzer.h:73
MassAnalyzer & operator=(const MassAnalyzer &)=default
Assignment operator.
double isolation_width_
Definition MassAnalyzer.h:383
static ReflectronState toReflectronState(const std::string &name)
Convert a string to a ReflectronState enum.
AnalyzerType type_
Definition MassAnalyzer.h:372
void setScanTime(double scan_time)
sets the scan time for a single scan (in s)
ReflectronState getReflectronState() const
returns the reflectron state (for TOF)
static StringList getAllNamesOfScanDirection()
Returns all scan direction names known to OpenMS.
static StringList getAllNamesOfScanLaw()
Returns all scan law names known to OpenMS.
ResolutionMethod resolution_method_
Definition MassAnalyzer.h:373
ReflectronState
Reflectron state.
Definition MassAnalyzer.h:104
@ REFLSTATENULL
Unknown.
Definition MassAnalyzer.h:105
@ ON
On.
Definition MassAnalyzer.h:106
@ OFF
Off.
Definition MassAnalyzer.h:107
@ NONE
None.
Definition MassAnalyzer.h:108
void setFinalMSExponent(Int final_MS_exponent)
sets the final MS exponent
double scan_rate_
Definition MassAnalyzer.h:380
static ResolutionType toResolutionType(const std::string &name)
Convert a string to a ResolutionType enum.
void setOrder(Int order)
sets the order
double resolution_
Definition MassAnalyzer.h:378
void setResolutionType(ResolutionType resolution_type)
sets the resolution type
Int getFinalMSExponent() const
returns the final MS exponent
Int order_
Definition MassAnalyzer.h:386
static const std::string & analyzerTypeToString(AnalyzerType type)
Convert an AnalyzerType enum to its string representation.
double scan_time_
Definition MassAnalyzer.h:381
ScanLaw
Scan law.
Definition MassAnalyzer.h:92
@ QUADRATIC
Quadratic.
Definition MassAnalyzer.h:96
@ SCANLAWNULL
Unknown.
Definition MassAnalyzer.h:93
@ EXPONENTIAL
Unknown.
Definition MassAnalyzer.h:94
@ LINEAR
Linear.
Definition MassAnalyzer.h:95
static const std::string & resolutionMethodToString(ResolutionMethod method)
Convert a ResolutionMethod enum to its string representation.
MassAnalyzer(const MassAnalyzer &)=default
Copy constructor.
static StringList getAllNamesOfAnalyzerType()
Returns all analyzer type names known to OpenMS.
double TOF_total_path_length_
Definition MassAnalyzer.h:382
void setAccuracy(double accuracy)
sets the accuracy i.e. how much the theoretical mass may differ from the measured mass (in ppm)
double getTOFTotalPathLength() const
returns the path length for a TOF mass analyzer (in meter)
static StringList getAllNamesOfResolutionMethod()
Returns all resolution method names known to OpenMS.
ScanLaw getScanLaw() const
returns the scan law
static AnalyzerType toAnalyzerType(const std::string &name)
Convert a string to an AnalyzerType enum.
MassAnalyzer & operator=(MassAnalyzer &&) &=default
Move assignment operator.
double getScanRate() const
returns the scan rate (in s)
ScanDirection scan_direction_
Definition MassAnalyzer.h:375
static const std::string & scanDirectionToString(ScanDirection direction)
Convert a ScanDirection enum to its string representation.
bool operator==(const MassAnalyzer &rhs) const
Equality operator.
Int final_MS_exponent_
Definition MassAnalyzer.h:384
static ResolutionMethod toResolutionMethod(const std::string &name)
Convert a string to a ResolutionMethod enum.
MassAnalyzer(MassAnalyzer &&)=default
Move constructor.
bool operator!=(const MassAnalyzer &rhs) const
Equality operator.
static const std::string & scanLawToString(ScanLaw law)
Convert a ScanLaw enum to its string representation.
static const std::string & resolutionTypeToString(ResolutionType type)
Convert a ResolutionType enum to its string representation.
static const std::string & reflectronStateToString(ReflectronState state)
Convert a ReflectronState enum to its string representation.
double getScanTime() const
returns the scan time for a single scan (in s)
void setScanLaw(ScanLaw scan_law)
sets the scan law
MassAnalyzer()
Constructor.
ResolutionType getResolutionType() const
returns the resolution type
double getMagneticFieldStrength() const
returns the strength of the magnetic field (in T)
ResolutionType resolution_type_
Definition MassAnalyzer.h:374
void setScanRate(double scan_rate)
sets the scan rate (in s)
ResolutionMethod getResolutionMethod() const
returns the method used for determination of the resolution
~MassAnalyzer()
Destructor.
void setMagneticFieldStrength(double magnetic_field_strength)
sets the strength of the magnetic field (in T)
void setType(AnalyzerType type)
sets the analyzer type
ScanLaw scan_law_
Definition MassAnalyzer.h:376
ScanDirection
direction of scanning
Definition MassAnalyzer.h:81
@ DOWN
Down.
Definition MassAnalyzer.h:84
@ UP
Up.
Definition MassAnalyzer.h:83
@ SCANDIRNULL
Unknown.
Definition MassAnalyzer.h:82
void setScanDirection(ScanDirection scan_direction)
sets the direction of scanning
double getAccuracy() const
returns the mass accuracy i.e. how much the theoretical mass may differ from the measured mass (in pp...
static StringList getAllNamesOfResolutionType()
Returns all resolution type names known to OpenMS.
double magnetic_field_strength_
Definition MassAnalyzer.h:385
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition MetaInfoInterface.h:36
int Int
Signed integer type.
Definition Types.h:72
std::vector< String > StringList
Vector of String.
Definition ListUtils.h:44
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::size_t hash_int(T value) noexcept
Hash for an integer type.
Definition HashUtils.h:107
void hash_combine(std::size_t &seed, std::size_t value) noexcept
Combine a hash value with additional data using golden ratio mixing.
Definition HashUtils.h:87
std::size_t hash_float(T value) noexcept
Hash for a floating point type (float or double).
Definition HashUtils.h:142
STL namespace.
std::size_t operator()(const OpenMS::MassAnalyzer &ma) const noexcept
Definition MassAnalyzer.h:408