ProteoWizard
pwiz
data
misc
FrequencyData.hpp
Go to the documentation of this file.
1
//
2
// $Id$
3
//
4
//
5
// Original author: Darren Kessner <darren@proteowizard.org>
6
//
7
// Copyright 2006 Louis Warschaw Prostate Cancer Center
8
// Cedars Sinai Medical Center, Los Angeles, California 90048
9
//
10
// Licensed under the Apache License, Version 2.0 (the "License");
11
// you may not use this file except in compliance with the License.
12
// You may obtain a copy of the License at
13
//
14
// http://www.apache.org/licenses/LICENSE-2.0
15
//
16
// Unless required by applicable law or agreed to in writing, software
17
// distributed under the License is distributed on an "AS IS" BASIS,
18
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
// See the License for the specific language governing permissions and
20
// limitations under the License.
21
//
22
23
24
#ifndef _FREQUENCYDATA_HPP_
25
#define _FREQUENCYDATA_HPP_
26
27
28
#include "
pwiz/utility/misc/Export.hpp
"
29
#include "
SampleDatum.hpp
"
30
#include "
CalibrationParameters.hpp
"
31
#include <vector>
32
#include <complex>
33
#include <memory>
34
35
36
namespace
pwiz
{
37
namespace
data {
38
39
40
typedef
SampleDatum< double, std::complex<double>
>
FrequencyDatum
;
41
42
43
/// Class for binary storage of complex frequency data.
44
45
/// Stores raw frequency-domain data, as well as meta-data. Also includes
46
/// basic access and analysis functions.
47
48
class
PWIZ_API_DECL
FrequencyData
49
{
50
public
:
51
52
/// \name types
53
//@{
54
enum
PWIZ_API_DECL
IOMode {
Binary
,
Text
, Automatic};
55
typedef
std::vector<FrequencyDatum>
container
;
56
typedef
container::iterator
iterator
;
57
typedef
container::const_iterator
const_iterator
;
58
//@}
59
60
/// \name instantiation
61
//@{
62
FrequencyData
();
63
FrequencyData
(
const
std::string& filename, IOMode mode=Automatic);
64
FrequencyData
(
const
FrequencyData
& that,
const_iterator
begin,
const_iterator
end);