24 #ifndef _SPECTRUMLIST_THERMO_
25 #define _SPECTRUMLIST_THERMO_
35 #include <boost/container/flat_map.hpp>
38 #ifdef PWIZ_READER_THERMO
39 #include "pwiz_aux/msrc/utility/vendor_api/thermo/RawFile.h"
41 #include <boost/thread.hpp>
42 using namespace pwiz::vendor_api::Thermo;
43 #endif // PWIZ_READER_THERMO
55 virtual size_t size()
const;
57 virtual size_t find(
const string&
id)
const;
58 virtual SpectrumPtr spectrum(
size_t index,
bool getBinaryData)
const;
62 virtual bool hasIonMobility()
const;
63 virtual bool canConvertIonMobilityAndCCS()
const;
64 virtual double ionMobilityToCCS(
double ionMobility,
double mz,
int charge)
const;
65 virtual double ccsToIonMobility(
double ccs,
double mz,
int charge)
const;
67 #ifdef PWIZ_READER_THERMO
70 int numSpectraOfScanType(pwiz::vendor_api::Thermo::ScanType scanType)
const;
71 int numSpectraOfMSOrder(pwiz::vendor_api::Thermo::MSOrder msOrder)
const;
76 pwiz::vendor_api::Thermo::RawFilePtr rawfile_;
79 vector<int> spectraByScanType;
80 vector<int> spectraByMSOrder;
81 mutable boost::recursive_mutex readMutex;
82 map<long, vector<double> > fillIndex;
86 ControllerType controllerType;
87 long controllerNumber;
90 pwiz::vendor_api::Thermo::ScanType scanType;
91 pwiz::vendor_api::Thermo::MSOrder msOrder;
95 vector<IndexEntry> index_;
96 map<string, size_t> idToIndexMap_;
100 size_t findPrecursorSpectrumIndex(
int precursorMsLevel,
double precursorIsolationMz,
size_t index)
const;
101 pwiz::vendor_api::Thermo::ScanInfoPtr findPrecursorZoomScan(
int precursorMsLevel,
double precursorIsolationMz,
size_t index)
const;
103 #endif // PWIZ_READER_THERMO
111 #endif // _SPECTRUMLIST_THERMO_