35 #ifndef OPENMS_KERNEL_MSCHROMATOGRAM_H 
   36 #define OPENMS_KERNEL_MSCHROMATOGRAM_H 
   52   template <
typename PeakT = ChromatogramPeak>
 
   54     public std::vector<PeakT>,
 
   65       public std::vector<Real>
 
   71       public std::vector<String>
 
   77       public std::vector<Int>
 
   82       public std::binary_function<MSChromatogram, MSChromatogram, bool>
 
  109     typedef typename ContainerType::iterator 
Iterator;
 
  151       if (&source == 
this) 
return *
this;
 
  153       ContainerType::operator=(source);
 
  170       return std::operator==(*
this, rhs) &&
 
  287         std::vector<std::pair<typename PeakType::IntensityType, Size> > sorted_indices;
 
  288         sorted_indices.reserve(ContainerType::size());
 
  289         for (
Size i = 0; i < ContainerType::size(); ++i)
 
  291           sorted_indices.push_back(std::make_pair(ContainerType::operator[](i).getIntensity(), i));
 
  305         for (
Size i = 0; i < sorted_indices.size(); ++i)
 
  307           tmp.push_back(*(ContainerType::begin() + (sorted_indices[i].second)));
 
  309         ContainerType::swap(tmp);
 
  313           std::vector<Real> mda_tmp;
 
  323           std::vector<String> mda_tmp;
 
  333           std::vector<Int> mda_tmp;
 
  358         std::vector<std::pair<typename PeakType::PositionType, Size> > sorted_indices;
 
  359         sorted_indices.reserve(ContainerType::size());
 
  360         for (
Size i = 0; i < ContainerType::size(); ++i)
 
  362           sorted_indices.push_back(std::make_pair(ContainerType::operator[](i).getPosition(), i));
 
  368         for (
Size i = 0; i < sorted_indices.size(); ++i)
 
  370           tmp.push_back(*(ContainerType::begin() + (sorted_indices[i].second)));
 
  372         ContainerType::swap(tmp);
 
  376           std::vector<Real> mda_tmp;
 
  386           std::vector<String> mda_tmp;
 
  396           std::vector<Int> mda_tmp;
 
  409       for (
Size i = 1; i < this->size(); ++i)
 
  411         if (this->
operator[](i - 1).getRT() > this->operator[](i).getRT()) 
return false;
 
  433       if (ContainerType::size() == 0) 
throw Exception::Precondition(__FILE__, __LINE__, __PRETTY_FUNCTION__, 
"There must be at least one peak to determine the nearest peak!");
 
  438       if (it == ContainerType::begin()) 
return 0;
 
  440       if (it == ContainerType::end()) 
return ContainerType::size() - 1;
 
  445       if (std::fabs(it->getRT() - rt) < std::fabs(it2->getRT() - rt))
 
  447         return Size(it - ContainerType::begin());
 
  451         return Size(it2 - ContainerType::begin());
 
  566       ContainerType::clear();
 
  601   template <
typename PeakT>
 
  602   std::ostream & operator<<(std::ostream & os, const MSChromatogram<PeakT> & spec)
 
  604     os << 
"-- MSSPECTRUM BEGIN --" << std::endl;
 
  607     os << static_cast<const ChromatogramSettings &>(spec);
 
  610     os << static_cast<const typename MSChromatogram<PeakT>::ContainerType &>(spec);
 
  612     os << 
"-- MSSPECTRUM END --" << std::endl;
 
  619 #endif // OPENMS_KERNEL_MSCHROMATOGRAM_H 
Iterator RTBegin(CoordinateType rt)
Binary search for peak range begin. 
Definition: MSChromatogram.h:461
Iterator RTEnd(Iterator begin, CoordinateType rt, Iterator end)
Binary search for peak range end (returns the past-the-end iterator) 
Definition: MSChromatogram.h:500
FloatDataArrays & getFloatDataArrays()
Returns a mutable reference to the float meta data arrays. 
Definition: MSChromatogram.h:233
FloatDataArrays float_data_arrays_
Float data arrays. 
Definition: MSChromatogram.h:591
A more convenient string class. 
Definition: String.h:56
const String & getName() const 
Definition: MSChromatogram.h:194
bool operator==(const MSChromatogram &rhs) const 
Equality operator. 
Definition: MSChromatogram.h:167
Size findNearest(CoordinateType rt) const 
Binary search for the peak nearest to a specific RT. 
Definition: MSChromatogram.h:430
std::vector< IntegerDataArray > IntegerDataArrays
Integer data array vector type. 
Definition: MSChromatogram.h:104
The representation of a chromatogram. 
Definition: MSChromatogram.h:53
ContainerType::iterator Iterator
Mutable iterator. 
Definition: MSChromatogram.h:110
std::vector< PeakType > ContainerType
Chromatogram base type. 
Definition: MSChromatogram.h:98
ConstIterator RTEnd(CoordinateType rt) const 
Binary search for peak range end (returns the past-the-end iterator) 
Definition: MSChromatogram.h:539
Iterator RTBegin(Iterator begin, CoordinateType rt, Iterator end)
Binary search for peak range begin. 
Definition: MSChromatogram.h:474
bool operator()(const MSChromatogram &a, const MSChromatogram &b) const 
Definition: MSChromatogram.h:84
Float data array class. 
Definition: MSChromatogram.h:75
const StringDataArrays & getStringDataArrays() const 
Returns a const reference to the string meta data arrays. 
Definition: MSChromatogram.h:239
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
ConstIterator RTBegin(CoordinateType rt) const 
Binary search for peak range begin. 
Definition: MSChromatogram.h:513
PeakType::CoordinateType CoordinateType
Coordinate (RT) type. 
Definition: MSChromatogram.h:96
bool operator==(const RangeManager &rhs) const 
Equality operator. 
Definition: RangeManager.h:88
Precondition failed exception. 
Definition: Exception.h:167
ContainerType::const_iterator ConstIterator
Non-mutable iterator. 
Definition: MSChromatogram.h:112
void setName(const String &name)
Sets the name. 
Definition: MSChromatogram.h:200
Iterator RTEnd(CoordinateType rt)
Binary search for peak range end (returns the past-the-end iterator) 
Definition: MSChromatogram.h:487
virtual void updateRanges()
Updates minimum and maximum position/intensity. 
Definition: MSChromatogram.h:185
StringDataArrays & getStringDataArrays()
Returns a mutable reference to the string meta data arrays. 
Definition: MSChromatogram.h:245
MSChromatogram()
Constructor. 
Definition: MSChromatogram.h:121
Comparator by position. Lexicographical comparison (first RT then m/z) is done. 
Definition: Peak2D.h:324
ConstIterator RTBegin(ConstIterator begin, CoordinateType rt, ConstIterator end) const 
Binary search for peak range begin. 
Definition: MSChromatogram.h:526
void sortByIntensity(bool reverse=false)
Lexicographically sorts the peaks by their intensity. 
Definition: MSChromatogram.h:271
MSChromatogram(const MSChromatogram &source)
Copy constructor. 
Definition: MSChromatogram.h:133
virtual ~MSChromatogram()
Destructor. 
Definition: MSChromatogram.h:145
std::vector< StringDataArray > StringDataArrays
String data array vector type. 
Definition: MSChromatogram.h:102
Float data array class. 
Definition: MSChromatogram.h:63
MSChromatogram & operator=(const MSChromatogram &source)
Assignment operator. 
Definition: MSChromatogram.h:149
DoubleReal getMZ() const 
returns the target m/z 
Comparator for the retention time. 
Definition: MSChromatogram.h:81
Base class for all persistent objects. 
Definition: PersistentObject.h:52
RangeManager & operator=(const RangeManager &rhs)
Assignment operator. 
Definition: RangeManager.h:77
PersistentObject & operator=(const PersistentObject &rhs)
Assignment operator. 
void clearRanges()
Resets the ranges. 
Definition: RangeManager.h:140
DoubleReal getMZ() const 
returns the mz of the product entry, makes sense especially for MRM scans 
Definition: MSChromatogram.h:208
std::vector< FloatDataArray > FloatDataArrays
Float data array vector type. 
Definition: MSChromatogram.h:100
const Product & getProduct() const 
returns a const reference to the products 
PeakT PeakType
Definition: MSChromatogram.h:94
void clearId(bool deep=true)
Clears the persistence id. 
Representation of chromatogram settings, e.g. SRM/MRM chromatograms. 
Definition: ChromatogramSettings.h:59
const IntegerDataArrays & getIntegerDataArrays() const 
Returns a const reference to the integer meta data arrays. 
Definition: MSChromatogram.h:251
StringDataArrays string_data_arrays_
String data arrays. 
Definition: MSChromatogram.h:594
ContainerType::reverse_iterator ReverseIterator
Mutable reverse iterator. 
Definition: MSChromatogram.h:114
bool operator!=(const MSChromatogram &rhs) const 
Equality operator. 
Definition: MSChromatogram.h:179
size_t Size
Size type e.g. used as variable which can hold result of size() 
Definition: Types.h:144
void sortByPosition()
Lexicographically sorts the peaks by their position. 
Definition: MSChromatogram.h:349
IntegerDataArrays integer_data_arrays_
Intager data arrays. 
Definition: MSChromatogram.h:597
ConstIterator RTEnd(ConstIterator begin, CoordinateType rt, ConstIterator end) const 
Binary search for peak range end (returns the past-the-end iterator) 
Definition: MSChromatogram.h:552
ContainerType::const_reverse_iterator ConstReverseIterator
Non-mutable reverse iterator. 
Definition: MSChromatogram.h:116
String name_
Name. 
Definition: MSChromatogram.h:588
bool isSorted() const 
Checks if all peaks are sorted with respect to ascending RT. 
Definition: MSChromatogram.h:407
void updateRanges_(const PeakIteratorType &begin, const PeakIteratorType &end)
Updates the range using data points in the iterator range. 
Definition: RangeManager.h:155
const FloatDataArrays & getFloatDataArrays() const 
Definition: MSChromatogram.h:227
virtual void clearChildIds_()
Clears the persistence id of all sub-objects. 
Definition: MSChromatogram.h:584
Handles the managment of a position and intensity range. 
Definition: RangeManager.h:48
Class for comparison of std::pair using first ONLY e.g. for use with std::sort. 
Definition: ComparatorUtils.h:326
void clear(bool clear_meta_data)
Clears all data and meta data. 
Definition: MSChromatogram.h:564
ChromatogramSettings & operator=(const ChromatogramSettings &source)
IntegerDataArrays & getIntegerDataArrays()
Returns a mutable reference to the integer meta data arrays. 
Definition: MSChromatogram.h:257
String data array class. 
Definition: MSChromatogram.h:69
bool operator==(const ChromatogramSettings &rhs) const 
Equality operator. 
ChromatogramSettings()
Constructor.