pappsomspp
Library for mass spectrometry
massspectrumcombiner.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 #include <memory>
5 
6 #include <QDataStream>
7 
8 #include "../../exportinmportconfig.h"
9 #include "../../types.h"
10 #include "../../mzrange.h"
11 
12 #include "../../massspectrum/massspectrum.h"
13 #include "../../trace/datapoint.h"
14 #include "../../trace/maptrace.h"
15 #include "../filters/filterresample.h"
17 
18 
19 namespace pappso
20 {
21 
22 
24 
25 typedef std::shared_ptr<const MassSpectrumCombiner> MassSpectrumCombinerCstSPtr;
26 typedef std::shared_ptr<MassSpectrumCombiner> MassSpectrumCombinerSPtr;
27 
28 
30 {
31 
32 
33  public:
35  MassSpectrumCombiner(std::vector<pappso_double> bins, int decimalPlaces = -1);
36  MassSpectrumCombiner(int decimal_places);
40 
41  virtual ~MassSpectrumCombiner();
42 
43  std::vector<pappso_double>::const_iterator begin() const;
44  std::vector<pappso_double>::const_iterator end() const;
45  std::vector<pappso_double>::iterator begin();
46  std::vector<pappso_double>::iterator end();
47 
48  void setBins(std::vector<pappso_double> bins);
49  const std::vector<pappso_double> &
50  getBins(std::vector<pappso_double> bins) const;
51  std::size_t binCount() const;
52 
53  virtual MapTrace &combine(MapTrace &map_trace, const Trace &trace) const;
54 
55  virtual MapTrace &combine(MapTrace &map_trace_out,
56  const MapTrace &map_trace_in) const;
57 
58  protected:
59  std::vector<pappso_double> m_bins;
60 
61  std::vector<pappso_double>::iterator findBin(pappso_double mz);
62 
63  private:
64  // This function combines trace into map_trace but does not handle the
65  // situation where any filtering step was asked for. This function is called
66  // by public combine function after filtering work has occurred already. This
67  // function is the functional lowest common denominator for all the public
68  // combine functions.
69  virtual MapTrace &combineNoFilteringStep(MapTrace &map_trace,
70  const Trace &trace) const = 0;
71 };
72 
73 
74 } // namespace pappso
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition: types.h:67
pappso::MassSpectrumCombiner
Definition: massspectrumcombiner.h:29
PMSPP_LIB_DECL
#define PMSPP_LIB_DECL
Definition: exportinmportconfig.h:12
pappso
Definition: aa.cpp:38
pappso::MassDataCombinerInterface
Definition: massdatacombinerinterface.h:23
pappso::MapTrace
Definition: maptrace.h:32
pappso::Trace
A simple container of DataPoint instances.
Definition: trace.h:125
pappso::MassSpectrumCombinerSPtr
std::shared_ptr< MassSpectrumCombiner > MassSpectrumCombinerSPtr
Definition: massspectrumcombiner.h:26
pappso::PrecisionUnit::mz
massdatacombinerinterface.h
pappso::MassSpectrumCombiner::m_bins
std::vector< pappso_double > m_bins
Definition: massspectrumcombiner.h:59
pappso::MassSpectrumCombinerCstSPtr
std::shared_ptr< const MassSpectrumCombiner > MassSpectrumCombinerCstSPtr
Definition: massspectrumcombiner.h:23