ROOTPWA
keyfile.h
Go to the documentation of this file.
1 #ifndef KEYFILE_H
2 #define KEYFILE_H
3 
4 
5 #include <string>
6 #include <list>
7 #include <cstdio>
8 #include <complex>
9 
10 #include "wave.h"
11 
12 
13 class keyfile {
14 
15  public:
16 
17  keyfile();
18  keyfile(const std::string& filename);
19  keyfile(const keyfile& kf);
20  virtual ~keyfile();
21 
22  keyfile operator = (const keyfile&);
23 
24  keyfile open(const std::string& filename);
25  void rewind() { fseek(_file, 0L, SEEK_SET); }
26  void close() { fclose(_file); }
27  FILE* file() { return _file; }
28 
29  keyfile run() const;
30  keyfile run(const event& ev) const;
31  keyfile run(const event& ev,
32  std::complex<double>& result,
33  const bool suppressOutput = false) const;
34 
35  wave addWave(const wave& w);
36  wave operator [] (const int index) const;
37  int nWaves() const { return _atomicWaves.size(); }
38 
39  private:
40 
41  std::list<wave> _atomicWaves;
42  std::string _filename;
44 };
45 
46 
48 
49 
50 #endif // KEYFILE_H