ROOTPWA
keyfile.cc
Go to the documentation of this file.
1 #include "event.h"
2 #include "keyfile.h"
3 
4 
5 using namespace std;
6 
7 
8 extern FILE* gKeyInFile;
9 extern char* gKeyInFileName;
10 event gEvent;
12 
13 extern "C++" int keyparse(complex<double>& result);
14 
15 
17  : _filename("")
18 {
19 }
20 
21 
22 keyfile::keyfile(const string& filename)
23  : _filename(filename)
24 {
25  gKeyInFileName = (char*) malloc(((filename.length()) + 1) * sizeof(char));
26  strcpy(gKeyInFileName, filename.c_str());
27 }
28 
29 
31 {
33  _filename = kf._filename;
34  _file = kf._file;
35 }
36 
37 
39 {
40 }
41 
42 
43 keyfile
45 {
47  _filename = kf._filename;
48  _file = kf._file;
49  return *this;
50 }
51 
52 
53 keyfile
54 keyfile::open(const string& filename)
55 {
56  gKeyInFileName = (char*) malloc(((filename.length()) + 1) * sizeof(char));
57  strcpy(gKeyInFileName, filename.c_str());
58  _file = fopen(gKeyInFileName, "r");
59  return *this;
60 }
61 
62 
63 keyfile
64 keyfile::run() const
65 {
66  gKeyInFile = _file;
67  complex<double> result;
68  keyparse(result);
69  return *this;
70 }
71 
72 
73 keyfile
74 keyfile::run(const event& ev) const
75 {
76  gEvent = ev;
77  gKeyInFile = _file;
78  complex<double> result;
79  keyparse(result);
80  return *this;
81 }
82 
83 
84 keyfile
85 keyfile::run(const event& ev,
86  complex<double>& result,
87  const bool suppressOutput) const
88 {
89  gEvent = ev;
90  gKeyInFile = _file;
91  const bool flag = gSuppressKeyParseOutput;
92  gSuppressKeyParseOutput = suppressOutput;
93  keyparse(result);
95  return *this;
96 }
97 
98 
99 wave
101 {
102  this->_atomicWaves.push_back(w);
103  return w;
104 }
105 
106 
107 wave
108 keyfile::operator[](const int index) const
109 {
110  int i = 0;
111  list<wave>::const_iterator w = _atomicWaves.begin();
112  while (w != _atomicWaves.end()) {
113  if (i == index)
114  return *w;
115  ++w;
116  ++i;
117  }
118  return *w;
119 }