ATLAS Offline Software
Loading...
Searching...
No Matches
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
12namespace TrigGlobEffCorr {
13
15 public:
16 Efficiencies() = default;
17 Efficiencies(double e) : m_effs(e, e) {}
18 Efficiencies(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 }
31 return Efficiencies(m_effs.first + rhs.m_effs.first,
32 m_effs.second + rhs.m_effs.second);
33 }
35 return Efficiencies(m_effs.first - rhs.m_effs.first,
36 m_effs.second - rhs.m_effs.second);
37 }
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
Efficiencies operator-(const Efficiencies &rhs) const
Efficiencies & operator+=(const Efficiencies &rhs)
Efficiencies & operator*=(const Efficiencies &rhs)
std::pair< double, double > m_effs
Efficiencies operator+(const Efficiencies &rhs) const
Efficiencies operator*(const Efficiencies &rhs) const
Efficiencies(const Efficiencies &)=default
Efficiencies operator~() const
Efficiencies(Efficiencies &&)=default
Efficiencies(double vd, double vm)
Efficiencies & operator=(Efficiencies &&)=default
Efficiencies & operator=(const Efficiencies &)=default
the template specializations below must be enclosed in this namespace