ATLAS Offline Software
ExtrapolationCache.icc
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 namespace Trk {
6 inline ExtrapolationCache::ExtrapolationCache(double x0tot)
7  : m_x0tot(x0tot)
8  , m_eloss(nullptr)
9 {}
10 
11 inline ExtrapolationCache::ExtrapolationCache(double x0tot, EnergyLoss* eloss)
12  : m_x0tot(x0tot)
13  , m_eloss(eloss)
14 {}
15 
16 inline ExtrapolationCache*
17 ExtrapolationCache::clone() const
18 {
19  return new ExtrapolationCache(*this);
20 }
21 
22 inline double
23 ExtrapolationCache::x0tot() const
24 {
25  return m_x0tot;
26 }
27 
28 inline const EnergyLoss*
29 ExtrapolationCache::eloss() const
30 {
31  return m_eloss;
32 }
33 
34 inline void
35 ExtrapolationCache::reset()
36 {
37  m_x0tot = 0.;
38  m_eloss->update(-m_eloss->meanIoni(),
39  -m_eloss->sigmaIoni(),
40  -m_eloss->meanRad(),
41  -m_eloss->sigmaRad(),
42  false);
43 }
44 
45 inline void
46 ExtrapolationCache::updateX0(double x0)
47 {
48  m_x0tot += x0;
49 }
50 
51 inline void
52 ExtrapolationCache::updateEloss(double ioni,
53  double sigi,
54  double rad,
55  double sigr)
56 {
57  m_eloss->update(ioni, sigi, rad, sigr, false);
58 }
59 
60 }