PreCut.hh
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #include <map>
8 
9 namespace boca
10 {
11 
12 template<typename Value>
13 class PreCut
14 {
15 
16 public:
17 
18  void Set(Id id, Value value) {
19  pre_cut_.emplace(id, value);
20  }
21 
22  void Set(MultiId multi_id, Value value) {
23  for (auto const & id : Resolve(multi_id)) Set(id, value);
24  }
25 
26  bool TooLarge(Id id, Value value) const {
27  return IsSet(id) && Get(id) < value;
28  }
29 
30  bool TooSmall(Id id, Value value) const {
31  return IsSet(id) && Get(id) > value;
32  }
33 
34  bool IsSet(Id id) const {
35  return pre_cut_.find(id) != pre_cut_.end();
36  }
37 
38  Value Get(Id id) const {
39  return pre_cut_.at(id);
40  }
41 
42 private:
43 
44  std::map<Id, Value> pre_cut_;
45 
46 };
47 
48 }
49 
void Set(MultiId multi_id, Value value)
Definition: PreCut.hh:22
void Set(Id id, Value value)
Definition: PreCut.hh:18
Id
PDG particle naming conventions.
Definition: Id.hh:23
MultiId
Groups of PDG particles.
Definition: Id.hh:125
bool TooLarge(Id id, Value value) const
Definition: PreCut.hh:26
Boosted Collider Analysis.
Definition: Analysis.hh:15
bool IsSet(Id id) const
Definition: PreCut.hh:34
Value Get(Id id) const
Definition: PreCut.hh:38
Definition: PreCut.hh:13
std::vector< Id > Resolve(MultiId multi_id)
Vector if PDG particle Ids for a given MultiId.
Definition: Id.cpp:159
bool TooSmall(Id id, Value value) const
Definition: PreCut.hh:30