OpenMS
Instrument.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 
18 
19 #include <vector>
20 
21 namespace OpenMS
22 {
38  class OPENMS_DLLAPI Instrument :
39  public MetaInfoInterface
40  {
41 
42 public:
43 
46  {
59  SIZE_OF_IONOPTICSTYPE
60  };
61 
63  static const std::string NamesOfIonOpticsType[SIZE_OF_IONOPTICSTYPE];
64 
67 
71  Instrument(const Instrument &) = default;
73  Instrument(Instrument&&) = default;
76 
78  Instrument & operator=(const Instrument &) = default;
80  Instrument& operator=(Instrument&&) & = default;
81 
83  bool operator==(const Instrument & rhs) const;
85  bool operator!=(const Instrument & rhs) const;
86 
88  const String & getName() const;
90  void setName(const String & name);
91 
93  const String & getVendor() const;
95  void setVendor(const String & vendor);
96 
98  const String & getModel() const;
100  void setModel(const String & model);
101 
103  const String & getCustomizations() const;
105  void setCustomizations(const String & customizations);
106 
108  const std::vector<IonSource> & getIonSources() const;
110  std::vector<IonSource> & getIonSources();
112  void setIonSources(const std::vector<IonSource> & ion_sources);
113 
115  const std::vector<MassAnalyzer> & getMassAnalyzers() const;
117  std::vector<MassAnalyzer> & getMassAnalyzers();
119  void setMassAnalyzers(const std::vector<MassAnalyzer> & mass_analyzers);
120 
122  const std::vector<IonDetector> & getIonDetectors() const;
124  std::vector<IonDetector> & getIonDetectors();
126  void setIonDetectors(const std::vector<IonDetector> & ion_detectors);
127 
129  const Software & getSoftware() const;
133  void setSoftware(const Software & software);
134 
138  void setIonOptics(IonOpticsType ion_optics);
139 
140 protected:
141 
146  std::vector<IonSource> ion_sources_;
147  std::vector<MassAnalyzer> mass_analyzers_;
148  std::vector<IonDetector> ion_detectors_;
151  };
152 } // namespace OpenMS
153 
Description of a MS instrument.
Definition: Instrument.h:40
String model_
Definition: Instrument.h:144
std::vector< IonDetector > & getIonDetectors()
returns a mutable reference to the ion detector list
~Instrument()
Destructor.
Software software_
Definition: Instrument.h:149
const String & getCustomizations() const
returns a description of customizations
bool operator==(const Instrument &rhs) const
Equality operator.
String name_
Definition: Instrument.h:142
const Software & getSoftware() const
returns a const reference to the instrument software
void setIonSources(const std::vector< IonSource > &ion_sources)
sets the ion source list
std::vector< MassAnalyzer > mass_analyzers_
Definition: Instrument.h:147
Instrument & operator=(Instrument &&) &=default
Move assignment operator.
void setMassAnalyzers(const std::vector< MassAnalyzer > &mass_analyzers)
sets the mass analyzer list
const std::vector< MassAnalyzer > & getMassAnalyzers() const
returns a const reference to the mass analyzer list
String vendor_
Definition: Instrument.h:143
void setName(const String &name)
sets the name of the instrument
void setIonOptics(IonOpticsType ion_optics)
sets the ion optics type
void setCustomizations(const String &customizations)
sets a description of customizations
std::vector< IonSource > ion_sources_
Definition: Instrument.h:146
static StringList getAllNamesOfIonOpticsType()
returns all ion optics type names known to OpenMS
void setSoftware(const Software &software)
sets the instrument software
IonOpticsType ion_optics_
Definition: Instrument.h:150
bool operator!=(const Instrument &rhs) const
Equality operator.
void setModel(const String &model)
sets the instrument model
const String & getName() const
returns the name of the instrument
void setIonDetectors(const std::vector< IonDetector > &ion_detectors)
sets the ion detector list
Instrument(const Instrument &)=default
Copy constructor.
IonOpticsType
ion optics type
Definition: Instrument.h:46
@ REFLECTRON
reflectron
Definition: Instrument.h:53
@ FIRST_STABILITY_REGION
first stability region
Definition: Instrument.h:55
@ STATIC_FIELD
static field
Definition: Instrument.h:58
@ KINETIC_ENERGY_ANALYZER
kinetic energy analyzer
Definition: Instrument.h:57
@ TIME_LAG_FOCUSING
time lag focusing
Definition: Instrument.h:52
@ COLLISION_QUADRUPOLE
collision quadrupole
Definition: Instrument.h:50
@ UNKNOWN
unknown
Definition: Instrument.h:47
@ MAGNETIC_DEFLECTION
magnetic deflection
Definition: Instrument.h:48
@ FRINGING_FIELD
fringing field
Definition: Instrument.h:56
@ DELAYED_EXTRACTION
delayed extraction
Definition: Instrument.h:49
@ SELECTED_ION_FLOW_TUBE
selected ion flow tube
Definition: Instrument.h:51
@ EINZEL_LENS
einzel lens
Definition: Instrument.h:54
void setVendor(const String &vendor)
sets the instrument vendor
std::vector< IonSource > & getIonSources()
returns a mutable reference to the ion source list
const String & getVendor() const
returns the instrument vendor
IonOpticsType getIonOptics() const
returns the ion optics type
Instrument(Instrument &&)=default
Move constructor.
std::vector< MassAnalyzer > & getMassAnalyzers()
returns a mutable reference to the mass analyzer list
Instrument & operator=(const Instrument &)=default
Assignment operator.
const std::vector< IonSource > & getIonSources() const
returns a const reference to the ion source list
const String & getModel() const
returns the instrument model
Instrument()
Constructor.
std::vector< IonDetector > ion_detectors_
Definition: Instrument.h:148
const std::vector< IonDetector > & getIonDetectors() const
returns a const reference to the ion detector list
String customizations_
Definition: Instrument.h:145
Software & getSoftware()
returns a mutable reference to the instrument software
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition: MetaInfoInterface.h:35
Description of the software used for processing.
Definition: Software.h:24
A more convenient string class.
Definition: String.h:34
std::vector< String > StringList
Vector of String.
Definition: ListUtils.h:44
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19