ProteoWizard
SpectrumList_3D.hpp
Go to the documentation of this file.
1 //
2 // $Id: SpectrumList_3D.hpp 6385 2014-06-12 22:56:04Z chambm $
3 //
4 //
5 // Original author: Matt Chambers <matt.chambers <a.t> vanderbilt.edu>
6 //
7 // Copyright 2008 Vanderbilt University - Nashville, TN 37232
8 //
9 // Licensed under the Apache License, Version 2.0 (the "License");
10 // you may not use this file except in compliance with the License.
11 // You may obtain a copy of the License at
12 //
13 // http://www.apache.org/licenses/LICENSE-2.0
14 //
15 // Unless required by applicable law or agreed to in writing, software
16 // distributed under the License is distributed on an "AS IS" BASIS,
17 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 // See the License for the specific language governing permissions and
19 // limitations under the License.
20 //
21 
22 
23 #ifndef _SPECTRUMLIST_3D_HPP_
24 #define _SPECTRUMLIST_3D_HPP_
25 
26 
28 #include <boost/icl/interval_set.hpp>
30 #include <boost/container/flat_map.hpp>
31 
32 namespace pwiz {
33 namespace analysis {
34 
35 typedef boost::container::flat_map<double, boost::container::flat_map<double, float> > Spectrum3D;
36 typedef boost::shared_ptr<Spectrum3D> Spectrum3DPtr;
37 
38 /// SpectrumList implementation that can create 3D spectra of ion mobility drift time and m/z
40 {
41  public:
42 
44 
45  static bool accept(const msdata::SpectrumListPtr& inner);
46  virtual msdata::SpectrumPtr spectrum(size_t index, bool getBinaryData = false) const;
47 
48  /// creates a 3d spectrum at the given scan start time (specified in seconds) and including the given drift time ranges (specified in milliseconds)
49  virtual Spectrum3DPtr spectrum3d(double scanStartTime, const boost::icl::interval_set<double>& driftTimeRanges) const;
50 
51  private:
52  int mode_;
53 };
54 
55 
56 } // namespace analysis
57 } // namespace pwiz
58 
59 
60 #endif // _SPECTRUMLIST_3D_HPP_
boost::container::flat_map< double, boost::container::flat_map< double, float > > Spectrum3D
boost::shared_ptr< Spectrum > SpectrumPtr
Definition: MSData.hpp:569
Inheritable pass-through implementation for wrapping a SpectrumList.
boost::shared_ptr< SpectrumList > SpectrumListPtr
Definition: MSData.hpp:707
#define PWIZ_API_DECL
Definition: Export.hpp:32
boost::shared_ptr< Spectrum3D > Spectrum3DPtr
SpectrumList implementation that can create 3D spectra of ion mobility drift time and m/z...