ATLAS Offline Software
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 
16 class MsgStream;
17 class TrackCollectionCnv;
18 
19 namespace Trk {
20 
34 {
35  friend class ::TrackCollectionCnv;
36 
37 public:
39  EnergyLoss() = default;
40  EnergyLoss(const EnergyLoss&) = default;
41  EnergyLoss(EnergyLoss&&) noexcept = 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 
71  virtual EnergyLoss* clone() const;
72 
74  double deltaE() const;
75 
77  double sigmaDeltaE() const;
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 
115 private:
117  double m_deltaE = 0;
119  double m_sigmaDeltaE = 0;
121  double m_sigmaMinusDeltaE = 0;
123  double m_sigmaPlusDeltaE = 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 };
132 MsgStream&
133 operator<<(MsgStream& sl, const EnergyLoss& eloss);
134 
136 std::ostream&
137 operator<<(std::ostream& sl, const EnergyLoss& eloss);
138 
139 } // end ns
140 
141 #include "TrkMaterialOnTrack/EnergyLoss.icc"
142 #endif // TRKMATERIALONTRACK_ENERGYLOSS_H
Trk::EnergyLoss::update
void update(double ioni, double sigi, double rad, double sigr, bool mpv=false)
Trk::EnergyLoss::sigmaMinusDeltaE
double sigmaMinusDeltaE() const
returns the negative side
Trk::EnergyLoss::m_sig_ioni
double m_sig_ioni
Definition: EnergyLoss.h:126
Trk::EnergyLoss::m_mean_rad
double m_mean_rad
Definition: EnergyLoss.h:127
Trk::EnergyLoss::m_sigmaDeltaE
double m_sigmaDeltaE
- negative error on the energy loss
Definition: EnergyLoss.h:119
Trk::EnergyLoss::EnergyLoss
EnergyLoss(EnergyLoss &&) noexcept=default
Trk::EnergyLoss::sigmaDeltaE
double sigmaDeltaE() const
returns the symmatric error
Trk::EnergyLoss::EnergyLoss
EnergyLoss()=default
default constructor for POOL
Trk::EnergyLoss::sigmaRad
double sigmaRad() const
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::EnergyLoss::meanIoni
double meanIoni() const
Trk::EnergyLoss::dump
virtual MsgStream & dump(MsgStream &sl) const
Interface method for output, can be overloaded by child classes.
Definition: EnergyLoss.cxx:30
Trk::EnergyLoss::m_length
double m_length
Definition: EnergyLoss.h:129
Trk::EnergyLoss::m_sigmaPlusDeltaE
double m_sigmaPlusDeltaE
Definition: EnergyLoss.h:123
Trk::EnergyLoss::length
double length() const
Trk::EnergyLoss::m_mean_ioni
double m_mean_ioni
Definition: EnergyLoss.h:125
Trk::EnergyLoss::m_sig_rad
double m_sig_rad
Definition: EnergyLoss.h:128
TrackCollectionCnv
Definition: TrackCollectionCnv.h:47
Trk::EnergyLoss::set
void set(double eLoss, double sigde, double ioni, double sigi, double rad, double sigr)
Trk::EnergyLoss::deltaE
double deltaE() const
returns the
Trk::EnergyLoss::meanRad
double meanRad() const
Trk::EnergyLoss::m_deltaE
double m_deltaE
- the estimated or measured energy loss
Definition: EnergyLoss.h:117
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
Trk::EnergyLoss
This class describes energy loss material effects in the ATLAS tracking EDM.
Definition: EnergyLoss.h:34
Trk::EnergyLoss::m_sigmaMinusDeltaE
double m_sigmaMinusDeltaE
- positive error on the energy loss
Definition: EnergyLoss.h:121
python.CaloScaleNoiseConfig.default
default
Definition: CaloScaleNoiseConfig.py:79
Trk::EnergyLoss::EnergyLoss
EnergyLoss(const EnergyLoss &)=default
Trk::EnergyLoss::clone
virtual EnergyLoss * clone() const
Virtual constructor.
Trk::EnergyLoss::sigmaPlusDeltaE
double sigmaPlusDeltaE() const
returns the positive side
python.SystemOfUnits.rad
int rad
Definition: SystemOfUnits.py:111
Trk::EnergyLoss::sigmaIoni
double sigmaIoni() const