ROOTPWA
integral.h
Go to the documentation of this file.
1 #ifndef INTEGRAL_H
2 #define INTEGRAL_H
3 
4 
5 #include <complex>
6 #include <iostream>
7 #include <string>
8 #include <list>
9 #include <map>
10 
11 #include "matrix.h"
12 
13 
14 class integral {
15 
16 public:
17 
18  integral();
19  integral(char** files);
20  integral(const integral& ni);
21  virtual ~integral();
22 
23  integral& operator = (const integral& ni);
24 
25  integral& files(char** files);
26  integral& files(const std::list<std::string>& files);
27  std::list<std::string> files() const;
28  char** files_c_str() const;
29  void weightfile(const std::string& fileName) { _weightFileName = fileName; }
30 
32  integral& renormalize(const int n);
33  integral& max(const int m);
34  integral& events(const int n);
35  int nevents() const { return _nevents; }
36 
37  std::complex<double>& el(const std::string& iName,
38  const std::string& jName)
39  { return (_sum.el(_index[iName],_index[jName])); }
40  std::complex<double> val(const std::string& iName,
41  const std::string& jName);
42 
43  integral get(char** files);
44  integral get(const std::list<std::string>& files);
45 
46  int index(const std::string& s) { return _index[s]; }
47  int index(const char* s) { return _index[s]; }
48 
50 
51  const integral& print (std::ostream& os = std::cout) const;
52  const integral& print_events(std::ostream& os = std::cout) const;
53 
54  integral& scan(std::istream& is = std::cin);
55 
56 private:
57 
59  std::map<std::string, int> _index;
60  int _nwaves;
61  int _nevents;
63  std::string _weightFileName;
64 
65 };
66 
67 
68 #endif // INTEGRAL_H