ra4_stats  0341147a0dc35f80f4e12c6003afb76a38e2ed6e
bin.hpp
Go to the documentation of this file.
1 #ifndef H_BIN
2 #define H_BIN
3 
4 #include <ostream>
5 #include <string>
6 #include <set>
7 #include <tuple>
8 
9 #include "systematic.hpp"
10 #include "cut.hpp"
11 
12 class Bin{
13  typedef std::set<Systematic> SystCollection;
14 public:
15  Bin(const std::string &name, const class Cut &cut,
16  bool is_blind = true,
17  const SystCollection &systematics = SystCollection());
18 
19  const std::string & Name() const;
20  Bin & Name(const std::string &name);
21 
22  const class Cut & Cut() const;
23  class Cut & Cut();
24 
25  bool Blind() const;
26  bool & Blind();
27 
28  const SystCollection & Systematics() const;
29  Bin & Systematics(const SystCollection &systematics);
30  Bin & AddSystematic(const Systematic &systematic);
31  Bin & AddSystematics(const SystCollection &systematic);
32  bool HasSystematic(const Systematic &systematic) const;
33  Bin & RemoveSystematic(const Systematic &systematic);
35  Bin & SetSystematicStrength(const std::string &name, double strength);
36 
37  bool operator<(const Bin &b) const;
38  bool operator==(const Bin &b) const;
39 
40 private:
41  class Cut cut_;
42  std::string name_;
43  SystCollection systematics_;
44  bool is_blind_;
45 };
46 
47 std::ostream & operator<<(std::ostream &stream, const Bin &bin);
48 
49 #endif
class Cut cut_
Definition: bin.hpp:41
Definition: bin.hpp:12
SystCollection systematics_
Definition: bin.hpp:43
Bin(const std::string &name, const class Cut &cut, bool is_blind=true, const SystCollection &systematics=SystCollection())
Definition: bin.cpp:10
Definition: cut.hpp:8
std::string name_
Definition: bin.hpp:42
Bin & RemoveSystematics()
Definition: bin.cpp:80
std::set< Systematic > SystCollection
Definition: bin.hpp:13
std::ostream & operator<<(std::ostream &stream, const Bin &bin)
Definition: bin.cpp:110
Bin & SetSystematicStrength(const std::string &name, double strength)
Definition: bin.cpp:85
const class Cut & Cut() const
Definition: bin.cpp:28
bool is_blind_
Definition: bin.hpp:44
Bin & AddSystematic(const Systematic &systematic)
Definition: bin.cpp:53
bool HasSystematic(const Systematic &systematic) const
Definition: bin.cpp:67
bool operator==(const Bin &b) const
Definition: bin.cpp:106
Bin & AddSystematics(const SystCollection &systematic)
Definition: bin.cpp:60
bool operator<(const Bin &b) const
Definition: bin.cpp:102
const SystCollection & Systematics() const
Definition: bin.cpp:44
const std::string & Name() const
Definition: bin.cpp:19
bool Blind() const
Definition: bin.cpp:36
Bin & RemoveSystematic(const Systematic &systematic)
Definition: bin.cpp:71