OpenMS
Instrument.h
Go to the documentation of this file.
1 // Copyright (c) 2002-2023, The OpenMS Team -- 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 
17 
18 #include <vector>
19 
20 namespace OpenMS
21 {
37  class OPENMS_DLLAPI Instrument :
38  public MetaInfoInterface
39  {
40 
41 public:
42 
45  {
58  SIZE_OF_IONOPTICSTYPE
59  };
60 
62  static const std::string NamesOfIonOpticsType[SIZE_OF_IONOPTICSTYPE];
63 
67  Instrument(const Instrument &) = default;
69  Instrument(Instrument&&) = default;
72 
74  Instrument & operator=(const Instrument &) = default;
76  Instrument& operator=(Instrument&&) & = default;
77 
79  bool operator==(const Instrument & rhs) const;
81  bool operator!=(const Instrument & rhs) const;
82 
84  const String & getName() const;
86  void setName(const String & name);
87 
89  const String & getVendor() const;
91  void setVendor(const String & vendor);
92 
94  const String & getModel() const;
96  void setModel(const String & model);
97 
99  const String & getCustomizations() const;
101  void setCustomizations(const String & customizations);
102 
104  const std::vector<IonSource> & getIonSources() const;
106  std::vector<IonSource> & getIonSources();
108  void setIonSources(const std::vector<IonSource> & ion_sources);
109 
111  const std::vector<MassAnalyzer> & getMassAnalyzers() const;
113  std::vector<MassAnalyzer> & getMassAnalyzers();
115  void setMassAnalyzers(const std::vector<MassAnalyzer> & mass_analyzers);
116 
118  const std::vector<IonDetector> & getIonDetectors() const;
120  std::vector<IonDetector> & getIonDetectors();
122  void setIonDetectors(const std::vector<IonDetector> & ion_detectors);
123 
125  const Software & getSoftware() const;
129  void setSoftware(const Software & software);
130 
134  void setIonOptics(IonOpticsType ion_optics);
135 
136 protected:
137 
142  std::vector<IonSource> ion_sources_;
143  std::vector<MassAnalyzer> mass_analyzers_;
144  std::vector<IonDetector> ion_detectors_;
147  };
148 } // namespace OpenMS
149 
Description of a MS instrument.
Definition: Instrument.h:39
String model_
Definition: Instrument.h:140
std::vector< IonDetector > & getIonDetectors()
returns a mutable reference to the ion detector list
~Instrument()
Destructor.
Software software_
Definition: Instrument.h:145
const String & getCustomizations() const
returns a description of customizations
bool operator==(const Instrument &rhs) const
Equality operator.
String name_
Definition: Instrument.h:138
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:143
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:139
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:142
void setSoftware(const Software &software)
sets the instrument software
IonOpticsType ion_optics_
Definition: Instrument.h:146
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:45
@ REFLECTRON
reflectron
Definition: Instrument.h:52
@ FIRST_STABILITY_REGION
first stability region
Definition: Instrument.h:54
@ STATIC_FIELD
static field
Definition: Instrument.h:57
@ KINETIC_ENERGY_ANALYZER
kinetic energy analyzer
Definition: Instrument.h:56
@ TIME_LAG_FOCUSING
time lag focusing
Definition: Instrument.h:51
@ COLLISION_QUADRUPOLE
collision quadrupole
Definition: Instrument.h:49
@ UNKNOWN
unknown
Definition: Instrument.h:46
@ MAGNETIC_DEFLECTION
magnetic deflection
Definition: Instrument.h:47
@ FRINGING_FIELD
fringing field
Definition: Instrument.h:55
@ DELAYED_EXTRACTION
delayed extraction
Definition: Instrument.h:48
@ SELECTED_ION_FLOW_TUBE
selected ion flow tube
Definition: Instrument.h:50
@ EINZEL_LENS
einzel lens
Definition: Instrument.h:53
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:144
const std::vector< IonDetector > & getIonDetectors() const
returns a const reference to the ion detector list
String customizations_
Definition: Instrument.h:141
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
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22