ATLAS Offline Software
Efficiencies.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // contact: jmaurer@cern.ch
6 
7 #ifndef TRIGGLOBALEFFICIENCYCORRECTION_EFFICIENCIES_H
8 #define TRIGGLOBALEFFICIENCYCORRECTION_EFFICIENCIES_H 1
9 
10 #include <utility>
11 
12 namespace TrigGlobEffCorr {
13 
14 class Efficiencies {
15  public:
16  Efficiencies() = default;
17  Efficiencies(double e) : m_effs(e, e) {}
18  Efficiencies(const Efficiencies&) = default;
19  Efficiencies(Efficiencies&&) = default;
20  Efficiencies& operator=(const Efficiencies&) = default;
22  ~Efficiencies() = default;
23  double& data() { return m_effs.first; }
24  double& mc() { return m_effs.second; }
25  double data() const { return m_effs.first; }
26  double mc() const { return m_effs.second; }
28  return Efficiencies(1. - m_effs.first, 1. - m_effs.second);
29  }
30  Efficiencies operator+(const Efficiencies& rhs) const {
31  return Efficiencies(m_effs.first + rhs.m_effs.first,
32  m_effs.second + rhs.m_effs.second);
33  }
34  Efficiencies operator-(const Efficiencies& rhs) const {
35  return Efficiencies(m_effs.first - rhs.m_effs.first,
36  m_effs.second - rhs.m_effs.second);
37  }
38  Efficiencies operator*(const Efficiencies& rhs) const {
39  return Efficiencies(m_effs.first * rhs.m_effs.first,
40  m_effs.second * rhs.m_effs.second);
41  }
43  m_effs.first += rhs.m_effs.first;
44  m_effs.second += rhs.m_effs.second;
45  return *this;
46  }
48  m_effs.first *= rhs.m_effs.first;
49  m_effs.second *= rhs.m_effs.second;
50  return *this;
51  }
52 
53  protected:
54  Efficiencies(double vd, double vm) : m_effs(vd, vm) {}
55  std::pair<double, double> m_effs;
56 };
57 
58 } // namespace TrigGlobEffCorr
59 
60 #endif
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
TrigGlobEffCorr::Efficiencies::Efficiencies
Efficiencies()=default
TrigGlobEffCorr::Efficiencies::~Efficiencies
~Efficiencies()=default
TrigGlobEffCorr
the template specializations below must be enclosed in this namespace
Definition: Calculator.cxx:1596
TrigGlobEffCorr::Efficiencies::m_effs
std::pair< double, double > m_effs
Definition: Efficiencies.h:55
TrigGlobEffCorr::Efficiencies
Definition: Efficiencies.h:14
TrigGlobEffCorr::Efficiencies::Efficiencies
Efficiencies(const Efficiencies &)=default
TrigGlobEffCorr::Efficiencies::Efficiencies
Efficiencies(double vd, double vm)
Definition: Efficiencies.h:54
TrigGlobEffCorr::Efficiencies::operator~
Efficiencies operator~() const
Definition: Efficiencies.h:27
TrigGlobEffCorr::Efficiencies::operator=
Efficiencies & operator=(const Efficiencies &)=default
TrigGlobEffCorr::Efficiencies::operator+
Efficiencies operator+(const Efficiencies &rhs) const
Definition: Efficiencies.h:30
TrigGlobEffCorr::Efficiencies::data
double data() const
Definition: Efficiencies.h:25
TrigGlobEffCorr::Efficiencies::operator*
Efficiencies operator*(const Efficiencies &rhs) const
Definition: Efficiencies.h:38
TrigGlobEffCorr::Efficiencies::operator+=
Efficiencies & operator+=(const Efficiencies &rhs)
Definition: Efficiencies.h:42
TrigGlobEffCorr::Efficiencies::mc
double mc() const
Definition: Efficiencies.h:26
TrigGlobEffCorr::Efficiencies::Efficiencies
Efficiencies(double e)
Definition: Efficiencies.h:17
TrigGlobEffCorr::Efficiencies::mc
double & mc()
Definition: Efficiencies.h:24
TrigGlobEffCorr::Efficiencies::operator*=
Efficiencies & operator*=(const Efficiencies &rhs)
Definition: Efficiencies.h:47
TrigGlobEffCorr::Efficiencies::operator-
Efficiencies operator-(const Efficiencies &rhs) const
Definition: Efficiencies.h:34
TrigGlobEffCorr::Efficiencies::operator=
Efficiencies & operator=(Efficiencies &&)=default
TrigGlobEffCorr::Efficiencies::data
double & data()
Definition: Efficiencies.h:23
TrigGlobEffCorr::Efficiencies::Efficiencies
Efficiencies(Efficiencies &&)=default