OpenMS
MassAnalyzer.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2023.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Timo Sachsenberg $
32 // $Authors: Marc Sturm $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
37 #include <OpenMS/CONCEPT/Types.h>
39 
40 namespace OpenMS
41 {
47  class OPENMS_DLLAPI MassAnalyzer :
48  public MetaInfoInterface
49  {
50 public:
53  {
59  TOF,
63  ESA,
64  IT,
68  LIT,
69  SIZE_OF_ANALYZERTYPE
70  };
72  static const std::string NamesOfAnalyzerType[SIZE_OF_ANALYZERTYPE];
73 
80  {
82  FWHM,
85  SIZE_OF_RESOLUTIONMETHOD
86  };
88  static const std::string NamesOfResolutionMethod[SIZE_OF_RESOLUTIONMETHOD];
89 
92  {
96  SIZE_OF_RESOLUTIONTYPE
97  };
99  static const std::string NamesOfResolutionType[SIZE_OF_RESOLUTIONTYPE];
100 
103  {
105  UP,
107  SIZE_OF_SCANDIRECTION
108  };
110  static const std::string NamesOfScanDirection[SIZE_OF_SCANDIRECTION];
111 
113  enum ScanLaw
114  {
119  SIZE_OF_SCANLAW
120  };
122  static const std::string NamesOfScanLaw[SIZE_OF_SCANLAW];
123 
126  {
128  ON,
129  OFF,
131  SIZE_OF_REFLECTRONSTATE
132  };
134  static const std::string NamesOfReflectronState[SIZE_OF_REFLECTRONSTATE];
135 
139  MassAnalyzer(const MassAnalyzer &) = default;
144 
146  MassAnalyzer & operator=(const MassAnalyzer&) = default;
149 
151  bool operator==(const MassAnalyzer & rhs) const;
153  bool operator!=(const MassAnalyzer & rhs) const;
154 
158  void setType(AnalyzerType type);
159 
163  void setResolutionMethod(ResolutionMethod resolution_method);
164 
168  void setResolutionType(ResolutionType resolution_type);
169 
173  void setScanDirection(ScanDirection scan_direction);
174 
178  void setScanLaw(ScanLaw scan_law);
179 
183  void setReflectronState(ReflectronState reflecton_state);
184 
190  double getResolution() const;
192  void setResolution(double resolution);
193 
195  double getAccuracy() const;
197  void setAccuracy(double accuracy);
198 
200  double getScanRate() const;
202  void setScanRate(double scan_rate);
203 
205  double getScanTime() const;
207  void setScanTime(double scan_time);
208 
210  double getTOFTotalPathLength() const;
212  void setTOFTotalPathLength(double TOF_total_path_length);
213 
215  double getIsolationWidth() const;
217  void setIsolationWidth(double isolation_width);
218 
222  void setFinalMSExponent(Int final_MS_exponent);
223 
225  double getMagneticFieldStrength() const;
227  void setMagneticFieldStrength(double magnetic_field_strength);
228 
239  Int getOrder() const;
241  void setOrder(Int order);
242 
243 protected:
250  double resolution_;
251  double accuracy_;
252  double scan_rate_;
253  double scan_time_;
259  };
260 } // namespace OpenMS
261 
Description of a mass analyzer (part of a MS Instrument)
Definition: MassAnalyzer.h:49
void setReflectronState(ReflectronState reflecton_state)
sets the reflectron state (for TOF)
double accuracy_
Definition: MassAnalyzer.h:251
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:80
@ TENPERCENTVALLEY
Ten percent valley.
Definition: MassAnalyzer.h:83
@ RESMETHNULL
Unknown.
Definition: MassAnalyzer.h:81
@ BASELINE
Baseline.
Definition: MassAnalyzer.h:84
@ FWHM
Full width at half max.
Definition: MassAnalyzer.h:82
AnalyzerType
analyzer type
Definition: MassAnalyzer.h:53
@ PAULIONTRAP
Quadrupole ion trap / Paul ion trap.
Definition: MassAnalyzer.h:56
@ SWIFT
Stored waveform inverse fourier transform.
Definition: MassAnalyzer.h:65
@ FOURIERTRANSFORM
Fourier transform ion cyclotron resonance mass spectrometer.
Definition: MassAnalyzer.h:61
@ ANALYZERNULL
Unknown.
Definition: MassAnalyzer.h:54
@ LIT
Linear ion trap.
Definition: MassAnalyzer.h:68
@ RADIALEJECTIONLINEARIONTRAP
Radial ejection linear ion trap.
Definition: MassAnalyzer.h:57
@ IONSTORAGE
Ion storage.
Definition: MassAnalyzer.h:62
@ ORBITRAP
Orbitrap.
Definition: MassAnalyzer.h:67
@ SECTOR
Magnetic sector.
Definition: MassAnalyzer.h:60
@ ESA
Electrostatic energy analyzer.
Definition: MassAnalyzer.h:63
@ TOF
Time-of-flight.
Definition: MassAnalyzer.h:59
@ CYCLOTRON
Cyclotron.
Definition: MassAnalyzer.h:66
@ AXIALEJECTIONLINEARIONTRAP
Axial ejection linear ion trap.
Definition: MassAnalyzer.h:58
@ QUADRUPOLE
Quadrupole.
Definition: MassAnalyzer.h:55
@ IT
Ion trap.
Definition: MassAnalyzer.h:64
ReflectronState reflectron_state_
Definition: MassAnalyzer.h:249
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
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:92
@ CONSTANT
Constant.
Definition: MassAnalyzer.h:94
@ RESTYPENULL
Unknown.
Definition: MassAnalyzer.h:93
@ PROPORTIONAL
Proportional.
Definition: MassAnalyzer.h:95
MassAnalyzer & operator=(const MassAnalyzer &)=default
Assignment operator.
double isolation_width_
Definition: MassAnalyzer.h:255
AnalyzerType type_
Definition: MassAnalyzer.h:244
void setScanTime(double scan_time)
sets the scan time for a single scan (in s)
ReflectronState getReflectronState() const
returns the reflectron state (for TOF)
ResolutionMethod resolution_method_
Definition: MassAnalyzer.h:245
ReflectronState
Reflectron state.
Definition: MassAnalyzer.h:126
@ REFLSTATENULL
Unknown.
Definition: MassAnalyzer.h:127
@ ON
On.
Definition: MassAnalyzer.h:128
@ OFF
Off.
Definition: MassAnalyzer.h:129
@ NONE
None.
Definition: MassAnalyzer.h:130
void setFinalMSExponent(Int final_MS_exponent)
sets the final MS exponent
double scan_rate_
Definition: MassAnalyzer.h:252
void setOrder(Int order)
sets the order
double resolution_
Definition: MassAnalyzer.h:250
void setResolutionType(ResolutionType resolution_type)
sets the resolution type
Int getFinalMSExponent() const
returns the final MS exponent
Int order_
Definition: MassAnalyzer.h:258
double scan_time_
Definition: MassAnalyzer.h:253
ScanLaw
Scan law.
Definition: MassAnalyzer.h:114
@ QUADRATIC
Quadratic.
Definition: MassAnalyzer.h:118
@ SCANLAWNULL
Unknown.
Definition: MassAnalyzer.h:115
@ EXPONENTIAL
Unknown.
Definition: MassAnalyzer.h:116
@ LINEAR
Linear.
Definition: MassAnalyzer.h:117
MassAnalyzer(const MassAnalyzer &)=default
Copy constructor.
double TOF_total_path_length_
Definition: MassAnalyzer.h:254
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)
ScanLaw getScanLaw() const
returns the scan law
MassAnalyzer & operator=(MassAnalyzer &&) &=default
Move assignment operator.
double getScanRate() const
returns the scan rate (in s)
ScanDirection scan_direction_
Definition: MassAnalyzer.h:247
bool operator==(const MassAnalyzer &rhs) const
Equality operator.
Int final_MS_exponent_
Definition: MassAnalyzer.h:256
MassAnalyzer(MassAnalyzer &&)=default
Move constructor.
bool operator!=(const MassAnalyzer &rhs) const
Equality operator.
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:246
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:248
ScanDirection
direction of scanning
Definition: MassAnalyzer.h:103
@ DOWN
Down.
Definition: MassAnalyzer.h:106
@ UP
Up.
Definition: MassAnalyzer.h:105
@ SCANDIRNULL
Unknown.
Definition: MassAnalyzer.h:104
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...
double magnetic_field_strength_
Definition: MassAnalyzer.h:257
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition: MetaInfoInterface.h:61
int Int
Signed integer type.
Definition: Types.h:102
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:48