35 #ifndef OPENMS_KERNEL_MSSPECTRUM_H 
   36 #define OPENMS_KERNEL_MSSPECTRUM_H 
   66   template <
typename PeakT = Peak1D>
 
   68     public std::vector<PeakT>,
 
   78       public std::vector<Real>
 
   84       public std::vector<Int>
 
   90       public std::vector<String>
 
   95       public std::binary_function<MSSpectrum, MSSpectrum, bool>
 
  122     typedef typename ContainerType::iterator 
Iterator;
 
  168       if (&source == 
this) 
return *
this;
 
  170       ContainerType::operator=(source);
 
  189       return std::operator==(*
this, rhs) &&
 
  330         std::vector<std::pair<typename PeakType::IntensityType, Size> > sorted_indices;
 
  331         sorted_indices.reserve(ContainerType::size());
 
  332         for (
Size i = 0; i < ContainerType::size(); ++i)
 
  334           sorted_indices.push_back(std::make_pair(ContainerType::operator[](i).getIntensity(), i));
 
  348         for (
Size i = 0; i < sorted_indices.size(); ++i)
 
  350           tmp.push_back(*(ContainerType::begin() + (sorted_indices[i].second)));
 
  352         ContainerType::swap(tmp);
 
  356           std::vector<Real> mda_tmp;
 
  366           std::vector<String> mda_tmp;
 
  376           std::vector<Int> mda_tmp;
 
  400         std::vector<std::pair<typename PeakType::PositionType, Size> > sorted_indices;
 
  401         sorted_indices.reserve(ContainerType::size());
 
  402         for (
Size i = 0; i < ContainerType::size(); ++i)
 
  404           sorted_indices.push_back(std::make_pair(ContainerType::operator[](i).getPosition(), i));
 
  410         tmp.reserve(sorted_indices.size());
 
  411         for (
Size i = 0; i < sorted_indices.size(); ++i)
 
  413           tmp.push_back(*(ContainerType::begin() + (sorted_indices[i].second)));
 
  415         ContainerType::swap(tmp);
 
  419           std::vector<Real> mda_tmp;
 
  430           std::vector<String> mda_tmp;
 
  441           std::vector<Int> mda_tmp;
 
  455       for (
Size i = 1; i < this->size(); ++i)
 
  457         if (this->
operator[](i - 1).getMZ() > this->operator[](i).getMZ()) 
return false;
 
  479       if (ContainerType::size() == 0) 
throw Exception::Precondition(__FILE__, __LINE__, __PRETTY_FUNCTION__, 
"There must be at least one peak to determine the nearest peak!");
 
  484       if (it == ContainerType::begin()) 
return 0;
 
  486       if (it == ContainerType::end()) 
return ContainerType::size() - 1;
 
  491       if (std::fabs(it->getMZ() - mz) < std::fabs(it2->getMZ() - mz))
 
  493         return Size(it - ContainerType::begin());
 
  497         return Size(it2 - ContainerType::begin());
 
  607       ContainerType::clear();
 
  648   template <
typename PeakT>
 
  649   std::ostream & operator<<(std::ostream & os, const MSSpectrum<PeakT> & spec)
 
  651     os << 
"-- MSSPECTRUM BEGIN --" << std::endl;
 
  654     os << static_cast<const SpectrumSettings &>(spec);
 
  659       os << *it << std::endl;
 
  662     os << 
"-- MSSPECTRUM END --" << std::endl;
 
  668 #endif // OPENMS_KERNEL_MSSPECTRUM_H 
String data array class. 
Definition: MSSpectrum.h:88
MSSpectrum & operator=(const MSSpectrum &source)
Assignment operator. 
Definition: MSSpectrum.h:166
PeakType::CoordinateType CoordinateType
Coordinate (m/z) type. 
Definition: MSSpectrum.h:109
ConstIterator MZEnd(ConstIterator begin, CoordinateType mz, ConstIterator end) const 
Binary search for peak range end (returns the past-the-end iterator) 
Definition: MSSpectrum.h:590
A more convenient string class. 
Definition: String.h:56
IntegerDataArrays integer_data_arrays_
Intager data arrays. 
Definition: MSSpectrum.h:644
UInt getMSLevel() const 
Returns the MS level. 
Definition: MSSpectrum.h:231
void sortByPosition()
Lexicographically sorts the peaks by their position. 
Definition: MSSpectrum.h:391
Size findNearest(CoordinateType mz) const 
Binary search for the peak nearest to a specific m/z. 
Definition: MSSpectrum.h:476
Iterator MZEnd(Iterator begin, CoordinateType mz, Iterator end)
Binary search for peak range end (returns the past-the-end iterator) 
Definition: MSSpectrum.h:542
StringDataArrays string_data_arrays_
String data arrays. 
Definition: MSSpectrum.h:641
bool isSorted() const 
Checks if all peaks are sorted with respect to ascending m/z. 
Definition: MSSpectrum.h:453
Comparator for the retention time. 
Definition: MSSpectrum.h:94
ContainerType::reverse_iterator ReverseIterator
Mutable reverse iterator. 
Definition: MSSpectrum.h:127
Iterator MZBegin(Iterator begin, CoordinateType mz, Iterator end)
Binary search for peak range begin. 
Definition: MSSpectrum.h:518
ContainerType::const_iterator ConstIterator
Non-mutable iterator. 
Definition: MSSpectrum.h:125
bool operator==(const MSSpectrum &rhs) const 
Equality operator. 
Definition: MSSpectrum.h:186
ReverseComparator< Cmp > reverseComparator(Cmp const &cmp)
Make-function to create a ReverseComparator from another comparator without the need to specify the t...
Definition: ComparatorUtils.h:261
Iterator MZEnd(CoordinateType mz)
Binary search for peak range end (returns the past-the-end iterator) 
Definition: MSSpectrum.h:530
Integer data array class. 
Definition: MSSpectrum.h:82
SpectrumSettings()
Constructor. 
const String & getName() const 
Returns the name. 
Definition: MSSpectrum.h:243
Representation of 1D spectrum settings. 
Definition: SpectrumSettings.h:64
void setName(const String &name)
Sets the name. 
Definition: MSSpectrum.h:249
String name_
Name. 
Definition: MSSpectrum.h:635
MSSpectrum(const MSSpectrum &source)
Copy constructor. 
Definition: MSSpectrum.h:148
StringDataArrays & getStringDataArrays()
Returns a mutable reference to the string meta data arrays. 
Definition: MSSpectrum.h:288
bool operator==(const RangeManager &rhs) const 
Equality operator. 
Definition: RangeManager.h:88
const IntegerDataArrays & getIntegerDataArrays() const 
Returns a const reference to the integer meta data arrays. 
Definition: MSSpectrum.h:294
A 1-dimensional raw data point or peak mith meta information. 
Definition: RichPeak1D.h:52
ContainerType::iterator Iterator
Mutable iterator. 
Definition: MSSpectrum.h:123
Precondition failed exception. 
Definition: Exception.h:167
virtual void clearChildIds_()
Clears the persistence id of all sub-objects. 
Definition: MSSpectrum.h:625
IntegerDataArrays & getIntegerDataArrays()
Returns a mutable reference to the integer meta data arrays. 
Definition: MSSpectrum.h:300
Comparator by position. As this class has dimension 1, this is basically an alias for MZLess...
Definition: Peak1D.h:232
Iterator MZBegin(CoordinateType mz)
Binary search for peak range begin. 
Definition: MSSpectrum.h:506
bool operator!=(const MSSpectrum &rhs) const 
Equality operator. 
Definition: MSSpectrum.h:200
std::vector< FloatDataArray > FloatDataArrays
Float data array vector type. 
Definition: MSSpectrum.h:113
virtual void updateRanges()
Updates minimum and maximum position/intensity. 
Definition: MSSpectrum.h:206
FloatDataArrays float_data_arrays_
Float data arrays. 
Definition: MSSpectrum.h:638
MSSpectrum()
Constructor. 
Definition: MSSpectrum.h:134
The representation of a 1D spectrum. 
Definition: MSSpectrum.h:67
Base class for all persistent objects. 
Definition: PersistentObject.h:52
SpectrumSettings & operator=(const SpectrumSettings &source)
RangeManager & operator=(const RangeManager &rhs)
Assignment operator. 
Definition: RangeManager.h:77
void sortByIntensity(bool reverse=false)
Lexicographically sorts the peaks by their intensity. 
Definition: MSSpectrum.h:314
PersistentObject & operator=(const PersistentObject &rhs)
Assignment operator. 
void setPosition(PositionType const &position)
Mutable access to the position. 
Definition: Peak1D.h:144
void clearRanges()
Resets the ranges. 
Definition: RangeManager.h:140
void setMSLevel(UInt ms_level)
Sets the MS level. 
Definition: MSSpectrum.h:237
ConstIterator MZBegin(CoordinateType mz) const 
Binary search for peak range begin. 
Definition: MSSpectrum.h:554
std::vector< StringDataArray > StringDataArrays
String data array vector type. 
Definition: MSSpectrum.h:115
ConstIterator MZBegin(ConstIterator begin, CoordinateType mz, ConstIterator end) const 
Binary search for peak range begin. 
Definition: MSSpectrum.h:566
FloatDataArrays & getFloatDataArrays()
Returns a mutable reference to the float meta data arrays. 
Definition: MSSpectrum.h:276
std::vector< PeakType > ContainerType
Spectrum base type. 
Definition: MSSpectrum.h:111
void clear(bool clear_meta_data)
Clears all data and meta data. 
Definition: MSSpectrum.h:605
PeakT PeakType
Peak type. 
Definition: MSSpectrum.h:107
std::vector< IntegerDataArray > IntegerDataArrays
Integer data array vector type. 
Definition: MSSpectrum.h:117
Float data array class. 
Definition: MSSpectrum.h:76
void clearId(bool deep=true)
Clears the persistence id. 
const StringDataArrays & getStringDataArrays() const 
Returns a const reference to the string meta data arrays. 
Definition: MSSpectrum.h:282
bool operator()(const MSSpectrum &a, const MSSpectrum &b) const 
Definition: MSSpectrum.h:97
void setRT(DoubleReal rt)
Sets the absolute retention time (is seconds) 
Definition: MSSpectrum.h:221
size_t Size
Size type e.g. used as variable which can hold result of size() 
Definition: Types.h:144
UInt ms_level_
MS level. 
Definition: MSSpectrum.h:632
ConstIterator MZEnd(CoordinateType mz) const 
Binary search for peak range end (returns the past-the-end iterator) 
Definition: MSSpectrum.h:578
DoubleReal getRT() const 
Definition: MSSpectrum.h:215
void updateRanges_(const PeakIteratorType &begin, const PeakIteratorType &end)
Updates the range using data points in the iterator range. 
Definition: RangeManager.h:155
Handles the managment of a position and intensity range. 
Definition: RangeManager.h:48
DoubleReal retention_time_
Retention time. 
Definition: MSSpectrum.h:629
Class for comparison of std::pair using first ONLY e.g. for use with std::sort. 
Definition: ComparatorUtils.h:326
const FloatDataArrays & getFloatDataArrays() const 
Returns a const reference to the float meta data arrays. 
Definition: MSSpectrum.h:270
bool operator==(const SpectrumSettings &rhs) const 
Equality operator. 
ContainerType::const_reverse_iterator ConstReverseIterator
Non-mutable reverse iterator. 
Definition: MSSpectrum.h:129
~MSSpectrum()
Destructor. 
Definition: MSSpectrum.h:162