ATLAS Offline Software
Loading...
Searching...
No Matches
EnergyLoss.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// EnergyLoss.h, (c) ATLAS Detector software
8
9#ifndef TRKMATERIALONTRACK_ENERGYLOSS_H
10#define TRKMATERIALONTRACK_ENERGYLOSS_H
11
12#include <cassert>
13#include <cmath>
14#include <iosfwd>
15
16class MsgStream;
18
19namespace Trk {
20
34{
35 friend class ::TrackCollectionCnv;
36
37public:
39 EnergyLoss() = default;
40 EnergyLoss(const EnergyLoss&) = default;
41 EnergyLoss(EnergyLoss&&) noexcept = default;
42 EnergyLoss& operator=(const EnergyLoss&) = default;
43 EnergyLoss& operator=(EnergyLoss&&) noexcept = default;
44 virtual ~EnergyLoss() = default;
47 double sigmaDeltaE,
48 double sigmaMinusDeltaE = 0.0,
49 double sigmaPlusDeltaE = 0.0);
50
53 double sigmaDeltaE,
54 double mean_ioni,
55 double sigma_ioni,
56 double mean_rad,
57 double sigma_rad);
58
61 double sigmaDeltaE,
62 double sigmaMinusDeltaE,
63 double sigmaPlusDeltaE,
64 double mean_ioni,
65 double sigma_ioni,
66 double mean_rad,
67 double sigma_rad,
68 double length);
69
72
74 double deltaE() const;
75
78
81
84
85 // access to eloss components
86 double meanIoni() const;
87 double sigmaIoni() const;
88 double meanRad() const;
89 double sigmaRad() const;
90 double length() const;
91
92 // update from mean values
93 void update(double ioni,
94 double sigi,
95 double rad,
96 double sigr,
97 bool mpv = false);
98
99 // update
100 void update(const EnergyLoss&, bool mpv = false);
101
102 // set
103 void set(double eLoss,
104 double sigde,
105 double ioni,
106 double sigi,
107 double rad,
108 double sigr);
109
111 virtual MsgStream& dump(MsgStream& sl) const;
113 virtual std::ostream& dump(std::ostream& sl) const;
114
115private:
117 double m_deltaE = 0;
119 double m_sigmaDeltaE = 0;
124 // additional information about components (cache only, not persistified)
125 double m_mean_ioni = 0; // mean value for ionization
126 double m_sig_ioni = 0; // sigma for ionization
127 double m_mean_rad = 0; // mean value for radiation
128 double m_sig_rad = 0; // sigma for radiation
129 double m_length = 0; // 3D length of material
130};
131
132MsgStream&
133operator<<(MsgStream& sl, const EnergyLoss& eloss);
134
136std::ostream&
137operator<<(std::ostream& sl, const EnergyLoss& eloss);
138
139} // end ns
140
141#include "TrkMaterialOnTrack/EnergyLoss.icc"
142#endif // TRKMATERIALONTRACK_ENERGYLOSS_H
double m_sigmaMinusDeltaE
- positive error on the energy loss
Definition EnergyLoss.h:121
EnergyLoss()=default
default constructor for POOL
double meanRad() const
double length() const
void update(double ioni, double sigi, double rad, double sigr, bool mpv=false)
double m_sigmaPlusDeltaE
Definition EnergyLoss.h:123
virtual EnergyLoss * clone() const
Virtual constructor.
double sigmaPlusDeltaE() const
returns the positive side
double m_deltaE
- the estimated or measured energy loss
Definition EnergyLoss.h:117
double sigmaMinusDeltaE() const
returns the negative side
void set(double eLoss, double sigde, double ioni, double sigi, double rad, double sigr)
double sigmaIoni() const
EnergyLoss(EnergyLoss &&) noexcept=default
EnergyLoss(const EnergyLoss &)=default
double m_sigmaDeltaE
- negative error on the energy loss
Definition EnergyLoss.h:119
double meanIoni() const
double sigmaDeltaE() const
returns the symmatric error
double sigmaRad() const
double deltaE() const
returns the
STL class.
Ensure that the ATLAS eigen extensions are properly loaded.
-event-from-file
STL namespace.
#define private