ATLAS Offline Software
GXFMaterialEffects.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRKGXFMATERIALEFFECTS_H
6 #define TRKGXFMATERIALEFFECTS_H
7 
9 
10 #include <memory>
11 
12 namespace Trk {
13  class MaterialEffectsOnTrack;
14  class MaterialEffectsBase;
15  class EnergyLoss;
16  class Surface;
17  class MaterialProperties;
18 
25 
26  public:
41  GXFMaterialEffects() = default;
46  ~GXFMaterialEffects() = default;
47 
48  void setScatteringAngles(double, double);
49  void setScatteringSigmas(double, double);
50  double x0() const;
51  void setX0(double);
52  double deltaPhi() const;
53  double measuredDeltaPhi() const;
54  void setMeasuredDeltaPhi(double);
55  double deltaTheta() const;
56  double sigmaDeltaPhi() const;
57  double sigmaDeltaTheta() const;
58  double deltaE() const;
59 
68  void setEloss(std::unique_ptr<EnergyLoss>);
69  double sigmaDeltaE() const;
70  double sigmaDeltaEPos() const;
71  double sigmaDeltaENeg() const;
72  double sigmaDeltaEAve() const;
73  void setDeltaE(double);
74  void setSigmaDeltaE(double);
75  void setSigmaDeltaEPos(double);
76  void setSigmaDeltaENeg(double);
77  double delta_p() const;
78  void setdelta_p(double);
79  void setKink(bool);
80  bool isKink() const;
81  void setMeasuredEloss(bool);
82  bool isMeasuredEloss() const;
83  const Surface &associatedSurface() const;
84 
93  void setSurface(const Surface *);
94  std::unique_ptr<MaterialEffectsBase> makeMEOT() const;
96 
104 
105  private:
106  double m_scatphi = 0;
107  double m_scattheta = 0;
108  double m_sigmascatphi = 0;
109  double m_sigmascattheta = 0;
110  double m_x0 = 0;
111  double m_deltap = 0;
112  double m_deltae = 0;
113  double m_sigmadeltae = 0;
114  double m_sigmadeltaepos = 0;
115  double m_sigmadeltaeneg = 0;
116  std::unique_ptr<const EnergyLoss> m_eloss;
117  //not owning ptrs
118  const Surface *m_surf = nullptr;
119  const MaterialProperties *m_matprop = nullptr;
120  bool m_iskink = false;
121  bool m_ismeasuredeloss = false;
122  double m_measscatphi = 0; // fudge to stabilize fit in muon system
123  double m_sintheta = 1;
124  };
125 }
126 #endif
Trk::GXFMaterialEffects::deltaTheta
double deltaTheta() const
Definition: GXFMaterialEffects.cxx:119
Trk::GXFMaterialEffects::measuredDeltaPhi
double measuredDeltaPhi() const
Definition: GXFMaterialEffects.cxx:115
EnergyLoss.h
Trk::GXFMaterialEffects::sigmaDeltaENeg
double sigmaDeltaENeg() const
Definition: GXFMaterialEffects.cxx:147
Trk::GXFMaterialEffects::m_scatphi
double m_scatphi
Definition: GXFMaterialEffects.h:106
Trk::GXFMaterialEffects::m_x0
double m_x0
Definition: GXFMaterialEffects.h:110
Trk::GXFMaterialEffects::m_sintheta
double m_sintheta
Definition: GXFMaterialEffects.h:123
Trk::GXFMaterialEffects::m_surf
const Surface * m_surf
Definition: GXFMaterialEffects.h:118
Trk::GXFMaterialEffects::setSurface
void setSurface(const Surface *)
Set the surface for this material effects instance.
Definition: GXFMaterialEffects.cxx:206
Trk::GXFMaterialEffects::setMeasuredDeltaPhi
void setMeasuredDeltaPhi(double)
Definition: GXFMaterialEffects.cxx:174
Trk::GXFMaterialEffects::m_matprop
const MaterialProperties * m_matprop
Definition: GXFMaterialEffects.h:119
Trk::GXFMaterialEffects::m_ismeasuredeloss
bool m_ismeasuredeloss
Definition: GXFMaterialEffects.h:121
Trk::GXFMaterialEffects::m_scattheta
double m_scattheta
Definition: GXFMaterialEffects.h:107
Trk::GXFMaterialEffects::m_sigmadeltae
double m_sigmadeltae
Definition: GXFMaterialEffects.h:113
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
Trk::GXFMaterialEffects::setMaterialProperties
void setMaterialProperties(const MaterialProperties *)
Set the material properties of this material effects instance.
Definition: GXFMaterialEffects.cxx:237
Trk::GXFMaterialEffects::m_iskink
bool m_iskink
Definition: GXFMaterialEffects.h:120
Trk::GXFMaterialEffects::setScatteringAngles
void setScatteringAngles(double, double)
Definition: GXFMaterialEffects.cxx:93
Trk::GXFMaterialEffects::setScatteringSigmas
void setScatteringSigmas(double, double)
Definition: GXFMaterialEffects.cxx:98
Trk::GXFMaterialEffects::setSigmaDeltaE
void setSigmaDeltaE(double)
Definition: GXFMaterialEffects.cxx:158
Trk::GXFMaterialEffects::setMeasuredEloss
void setMeasuredEloss(bool)
Definition: GXFMaterialEffects.cxx:194
Trk::GXFMaterialEffects::setdelta_p
void setdelta_p(double)
Definition: GXFMaterialEffects.cxx:182
Trk::GXFMaterialEffects::GXFMaterialEffects
GXFMaterialEffects()=default
Trk::GXFMaterialEffects::makeMEOT
std::unique_ptr< MaterialEffectsBase > makeMEOT() const
Definition: GXFMaterialEffects.cxx:210
Trk::GXFMaterialEffects::setX0
void setX0(double)
Definition: GXFMaterialEffects.cxx:107
Trk::GXFMaterialEffects::m_measscatphi
double m_measscatphi
Definition: GXFMaterialEffects.h:122
Trk::GXFMaterialEffects::x0
double x0() const
Definition: GXFMaterialEffects.cxx:103
Trk::GXFMaterialEffects::deltaPhi
double deltaPhi() const
Definition: GXFMaterialEffects.cxx:111
Trk::MaterialEffectsOnTrack
represents the full description of deflection and e-loss of a track in material.
Definition: MaterialEffectsOnTrack.h:40
Trk::GXFMaterialEffects::setEloss
void setEloss(std::unique_ptr< EnergyLoss >)
Set the energy loss properties of this material effect.
Definition: GXFMaterialEffects.cxx:135
Trk::GXFMaterialEffects::setKink
void setKink(bool)
Definition: GXFMaterialEffects.cxx:186
Trk::GXFMaterialEffects::m_sigmascattheta
double m_sigmascattheta
Definition: GXFMaterialEffects.h:109
Trk::GXFMaterialEffects::GXFMaterialEffects
GXFMaterialEffects(GXFMaterialEffects &&rhs)=default
Trk::GXFMaterialEffects::m_sigmascatphi
double m_sigmascatphi
Definition: GXFMaterialEffects.h:108
Trk::GXFMaterialEffects::sigmaDeltaPhi
double sigmaDeltaPhi() const
Definition: GXFMaterialEffects.cxx:123
Trk::GXFMaterialEffects::isMeasuredEloss
bool isMeasuredEloss() const
Definition: GXFMaterialEffects.cxx:198
Trk::GXFMaterialEffects::sigmaDeltaTheta
double sigmaDeltaTheta() const
Definition: GXFMaterialEffects.cxx:127
Trk::GXFMaterialEffects::sigmaDeltaEPos
double sigmaDeltaEPos() const
Definition: GXFMaterialEffects.cxx:143
Trk::GXFMaterialEffects
class that is similar to MaterialEffectsOnTrack, but has 'set' methods for more flexibility during tr...
Definition: GXFMaterialEffects.h:24
Trk::GXFMaterialEffects::~GXFMaterialEffects
~GXFMaterialEffects()=default
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::GXFMaterialEffects::operator=
GXFMaterialEffects & operator=(const GXFMaterialEffects &rhs)
Definition: GXFMaterialEffects.cxx:69
Trk::GXFMaterialEffects::delta_p
double delta_p() const
Definition: GXFMaterialEffects.cxx:178
Trk::GXFMaterialEffects::isKink
bool isKink() const
Definition: GXFMaterialEffects.cxx:190
Trk::GXFMaterialEffects::operator=
GXFMaterialEffects & operator=(GXFMaterialEffects &&rhs)=default
Trk::GXFMaterialEffects::m_sigmadeltaepos
double m_sigmadeltaepos
Definition: GXFMaterialEffects.h:114
Trk::MaterialProperties
Definition: MaterialProperties.h:40
Trk::GXFMaterialEffects::sigmaDeltaE
double sigmaDeltaE() const
Definition: GXFMaterialEffects.cxx:139
Trk::GXFMaterialEffects::setSigmaDeltaEPos
void setSigmaDeltaEPos(double)
Definition: GXFMaterialEffects.cxx:162
Trk::GXFMaterialEffects::materialProperties
const MaterialProperties * materialProperties() const
Definition: GXFMaterialEffects.cxx:233
Trk::GXFMaterialEffects::m_sigmadeltaeneg
double m_sigmadeltaeneg
Definition: GXFMaterialEffects.h:115
Trk::GXFMaterialEffects::m_deltae
double m_deltae
Definition: GXFMaterialEffects.h:112
Trk::GXFMaterialEffects::setDeltaE
void setDeltaE(double)
Definition: GXFMaterialEffects.cxx:170
Trk::GXFMaterialEffects::m_deltap
double m_deltap
Definition: GXFMaterialEffects.h:111
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::GXFMaterialEffects::deltaE
double deltaE() const
Definition: GXFMaterialEffects.cxx:131
Trk::GXFMaterialEffects::associatedSurface
const Surface & associatedSurface() const
Definition: GXFMaterialEffects.cxx:202
Trk::GXFMaterialEffects::setSigmaDeltaENeg
void setSigmaDeltaENeg(double)
Definition: GXFMaterialEffects.cxx:166
Trk::GXFMaterialEffects::m_eloss
std::unique_ptr< const EnergyLoss > m_eloss
Definition: GXFMaterialEffects.h:116
Trk::GXFMaterialEffects::sigmaDeltaEAve
double sigmaDeltaEAve() const
Definition: GXFMaterialEffects.cxx:151