Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages

MassAnalyzer.h

Go to the documentation of this file.
00001 // --------------------------------------------------------------------------
00002 //                   OpenMS -- Open-Source Mass Spectrometry
00003 // --------------------------------------------------------------------------
00004 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
00005 // ETH Zurich, and Freie Universitaet Berlin 2002-2012.
00006 //
00007 // This software is released under a three-clause BSD license:
00008 //  * Redistributions of source code must retain the above copyright
00009 //    notice, this list of conditions and the following disclaimer.
00010 //  * Redistributions in binary form must reproduce the above copyright
00011 //    notice, this list of conditions and the following disclaimer in the
00012 //    documentation and/or other materials provided with the distribution.
00013 //  * Neither the name of any author or any participating institution
00014 //    may be used to endorse or promote products derived from this software
00015 //    without specific prior written permission.
00016 // For a full list of authors, refer to the file AUTHORS.
00017 // --------------------------------------------------------------------------
00018 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00019 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00020 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
00022 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00023 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00024 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00025 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00026 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00027 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
00028 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00029 //
00030 // --------------------------------------------------------------------------
00031 // $Maintainer: Andreas Bertsch $
00032 // $Authors: Marc Sturm $
00033 // --------------------------------------------------------------------------
00034 
00035 #ifndef OPENMS_METADATA_MASSANALYZER_H
00036 #define OPENMS_METADATA_MASSANALYZER_H
00037 
00038 #include <OpenMS/CONCEPT/Types.h>
00039 #include <OpenMS/METADATA/MetaInfoInterface.h>
00040 
00041 namespace OpenMS
00042 {
00048   class OPENMS_DLLAPI MassAnalyzer :
00049     public MetaInfoInterface
00050   {
00051 public:
00053     enum AnalyzerType
00054     {
00055       ANALYZERNULL,                                         
00056       QUADRUPOLE,                                           
00057       PAULIONTRAP,                                          
00058       RADIALEJECTIONLINEARIONTRAP,          
00059       AXIALEJECTIONLINEARIONTRAP,           
00060       TOF,                                                          
00061       SECTOR,                                                   
00062       FOURIERTRANSFORM,                                 
00063       IONSTORAGE,                                           
00064       ESA,                                                          
00065       IT,                                                           
00066       SWIFT,                                                    
00067       CYCLOTRON,                                            
00068       ORBITRAP,                                                 
00069       LIT,                                                          
00070       SIZE_OF_ANALYZERTYPE
00071     };
00073     static const std::string NamesOfAnalyzerType[SIZE_OF_ANALYZERTYPE];
00074 
00080     enum ResolutionMethod
00081     {
00082       RESMETHNULL,                      
00083       FWHM,                                     
00084       TENPERCENTVALLEY,             
00085       BASELINE,                             
00086       SIZE_OF_RESOLUTIONMETHOD
00087     };
00089     static const std::string NamesOfResolutionMethod[SIZE_OF_RESOLUTIONMETHOD];
00090 
00092     enum ResolutionType
00093     {
00094       RESTYPENULL,              
00095       CONSTANT,                     
00096       PROPORTIONAL,             
00097       SIZE_OF_RESOLUTIONTYPE
00098     };
00100     static const std::string NamesOfResolutionType[SIZE_OF_RESOLUTIONTYPE];
00101 
00103     enum ScanDirection
00104     {
00105       SCANDIRNULL,              
00106       UP,                               
00107       DOWN,                             
00108       SIZE_OF_SCANDIRECTION
00109     };
00111     static const std::string NamesOfScanDirection[SIZE_OF_SCANDIRECTION];
00112 
00114     enum ScanLaw
00115     {
00116       SCANLAWNULL,              
00117       EXPONENTIAL,              
00118       LINEAR,                       
00119       QUADRATIC,                
00120       SIZE_OF_SCANLAW
00121     };
00123     static const std::string NamesOfScanLaw[SIZE_OF_SCANLAW];
00124 
00126     enum ReflectronState
00127     {
00128       REFLSTATENULL,            
00129       ON,                                   
00130       OFF,                                  
00131       NONE,                                 
00132       SIZE_OF_REFLECTRONSTATE
00133     };
00135     static const std::string NamesOfReflectronState[SIZE_OF_REFLECTRONSTATE];
00136 
00138     MassAnalyzer();
00140     MassAnalyzer(const MassAnalyzer & source);
00142     ~MassAnalyzer();
00143 
00145     MassAnalyzer & operator=(const MassAnalyzer & source);
00146 
00148     bool operator==(const MassAnalyzer & rhs) const;
00150     bool operator!=(const MassAnalyzer & rhs) const;
00151 
00153     AnalyzerType getType() const;
00155     void setType(AnalyzerType type);
00156 
00158     ResolutionMethod getResolutionMethod() const;
00160     void setResolutionMethod(ResolutionMethod resolution_method);
00161 
00163     ResolutionType getResolutionType() const;
00165     void setResolutionType(ResolutionType resolution_type);
00166 
00168     ScanDirection getScanDirection() const;
00170     void setScanDirection(ScanDirection scan_direction);
00171 
00173     ScanLaw getScanLaw() const;
00175     void setScanLaw(ScanLaw scan_law);
00176 
00178     ReflectronState getReflectronState() const;
00180     void setReflectronState(ReflectronState reflecton_state);
00181 
00187     DoubleReal getResolution() const;
00189     void setResolution(DoubleReal resolution);
00190 
00192     DoubleReal getAccuracy() const;
00194     void setAccuracy(DoubleReal accuracy);
00195 
00197     DoubleReal getScanRate() const;
00199     void setScanRate(DoubleReal scan_rate);
00200 
00202     DoubleReal getScanTime() const;
00204     void setScanTime(DoubleReal scan_time);
00205 
00207     DoubleReal getTOFTotalPathLength() const;
00209     void setTOFTotalPathLength(DoubleReal TOF_total_path_length);
00210 
00212     DoubleReal getIsolationWidth() const;
00214     void setIsolationWidth(DoubleReal isolation_width);
00215 
00217     Int getFinalMSExponent() const;
00219     void setFinalMSExponent(Int final_MS_exponent);
00220 
00222     DoubleReal getMagneticFieldStrength() const;
00224     void setMagneticFieldStrength(DoubleReal magnetic_field_strength);
00225 
00236     Int getOrder() const;
00238     void setOrder(Int order);
00239 
00240 protected:
00241     AnalyzerType type_;
00242     ResolutionMethod resolution_method_;
00243     ResolutionType resolution_type_;
00244     ScanDirection scan_direction_;
00245     ScanLaw scan_law_;
00246     ReflectronState reflectron_state_;
00247     DoubleReal resolution_;
00248     DoubleReal accuracy_;
00249     DoubleReal scan_rate_;
00250     DoubleReal scan_time_;
00251     DoubleReal TOF_total_path_length_;
00252     DoubleReal isolation_width_;
00253     Int final_MS_exponent_;
00254     DoubleReal magnetic_field_strength_;
00255     Int order_;
00256   };
00257 } // namespace OpenMS
00258 
00259 #endif // OPENMS_METADATA_MASSANALYZER_H

OpenMS / TOPP release 1.10.0 Documentation generated on Thu Mar 7 2013 09:42:41 using doxygen 1.7.1