ATLAS Offline Software
MaterialEffectsOnTrack.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRKMATERIALEFFECTSONTRACK_MATERIALEFFECTSONTRACK_H
6 #define TRKMATERIALEFFECTSONTRACK_MATERIALEFFECTSONTRACK_H
7 
11 #include "TrkSurfaces/Surface.h"
12 #include <iosfwd>
13 #include <memory>
14 #include <optional>
15 
16 class MsgStream;
17 class TrackCollectionCnv;
20 
21 namespace Trk {
22 
23 class Surface;
24 
40 {
41 
42 public:
55  const double tInX0,
56  std::optional<ScatteringAngles> scat,
57  std::unique_ptr<const Trk::EnergyLoss> eloss,
58  const Surface& assocSurf,
59  const std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes>&
60  typePattern =
61  std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes>());
62 
71  const double tInX0,
72  std::optional<ScatteringAngles> scat,
73  const Surface& assocSurf,
74  const std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes>&
75  typePattern =
76  std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes>());
77 
85  const double tInX0,
86  std::unique_ptr<const EnergyLoss> eloss,
87  const Surface& assocSurf,
88  const std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes>&
89  typePattern =
90  std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes>());
91 
97  MaterialEffectsOnTrack(const double tInX0, const Surface& assocSurf);
98 
101 
104 
106  MaterialEffectsOnTrack(MaterialEffectsOnTrack&& meot) noexcept = default;
107 
110 
112  virtual ~MaterialEffectsOnTrack() = default;
113 
116  derivedType() const override final {
118  }
119 
123 
127  const EnergyLoss* energyLoss() const;
128 
130  virtual MaterialEffectsOnTrack* clone() const override final;
131 
134 
136  virtual MsgStream& dump(MsgStream& sl) const override final;
138  virtual std::ostream& dump(std::ostream& sl) const override final;
139 
140 protected:
141 private:
144 
146  std::optional<ScatteringAngles> m_scatteringAngles = std::nullopt;
148  std::unique_ptr<const EnergyLoss> m_energyLoss = nullptr;
149 };
150 
151 } // end of Trk ns
152 #include "TrkMaterialOnTrack/MaterialEffectsOnTrack.icc"
153 #endif
154 
EnergyLoss.h
ScatteringAngles.h
Trk::MaterialEffectsOnTrack::MaterialEffectsOnTrack
MaterialEffectsOnTrack(const double tInX0, const Surface &assocSurf)
partial constructor with only a thickness, input to ME-Updator
MaterialEffectsOnTrackCnv_p2
T/P converter v2 for MaterialEffectsOnTrack.
Definition: MaterialEffectsOnTrackCnv_p2.h:22
Surface.h
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
Trk::ScatteringAngles
represents a deflection of the track caused through multiple scattering in material.
Definition: ScatteringAngles.h:26
Trk::MaterialEffectsOnTrack::operator=
MaterialEffectsOnTrack & operator=(const MaterialEffectsOnTrack &rhs)
Assignment operator.
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::MaterialEffectsBase
base class to integrate material effects on Trk::Track in a flexible way.
Definition: MaterialEffectsBase.h:35
MaterialEffectsBase.h
Trk::MaterialEffectsOnTrack::MaterialEffectsOnTrack
MaterialEffectsOnTrack(MaterialEffectsOnTrack &&meot) noexcept=default
Moveconstructor.
Trk::MaterialEffectsBase::MaterialEffectsDerivedType
MaterialEffectsDerivedType
Definition: MaterialEffectsBase.h:37
protected
#define protected
Definition: DetDescrConditionsDict_dict_fixes.cxx:14
Trk::MaterialEffectsBase::MATERIAL_EFFECTS_ON_TRACK
@ MATERIAL_EFFECTS_ON_TRACK
Definition: MaterialEffectsBase.h:39
Trk::MaterialEffectsOnTrack::m_scatteringAngles
std::optional< ScatteringAngles > m_scatteringAngles
holds the scattering angles+errors in a separate object
Definition: MaterialEffectsOnTrack.h:146
Trk::MaterialEffectsOnTrack
represents the full description of deflection and e-loss of a track in material.
Definition: MaterialEffectsOnTrack.h:40
Trk::MaterialEffectsOnTrack::~MaterialEffectsOnTrack
virtual ~MaterialEffectsOnTrack()=default
virtual destructor
Trk::MaterialEffectsOnTrack::MaterialEffectsOnTrack
MaterialEffectsOnTrack(const double tInX0, std::optional< ScatteringAngles > scat, std::unique_ptr< const Trk::EnergyLoss > eloss, const Surface &assocSurf, const std::bitset< MaterialEffectsBase::NumberOfMaterialEffectsTypes > &typePattern=std::bitset< MaterialEffectsBase::NumberOfMaterialEffectsTypes >())
full constructor passing (with ownership) both scattering angle and energy loss
TrackCollectionCnv
Definition: TrackCollectionCnv.h:47
Trk::MaterialEffectsOnTrack::MaterialEffectsOnTrack
MaterialEffectsOnTrack()=default
default constructor for POOL - do not use in reconstruction!
Trk::MaterialEffectsOnTrack::operator=
MaterialEffectsOnTrack & operator=(MaterialEffectsOnTrack &&rhs) noexcept=default
Assignment operator.
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::MaterialEffectsOnTrack::m_energyLoss
std::unique_ptr< const EnergyLoss > m_energyLoss
holds the measured and/or estimated energy loss in a separate object
Definition: MaterialEffectsOnTrack.h:148
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
ScatteringAngleOnTrackCnv_p1
Definition: ScatteringAngleOnTrackCnv_p1.h:18
Trk::MaterialEffectsOnTrack::energyLoss
const EnergyLoss * energyLoss() const
returns the energy loss object.
Trk::MaterialEffectsOnTrack::dump
virtual MsgStream & dump(MsgStream &sl) const override final
Interface method for output.
Definition: MaterialEffectsOnTrack.cxx:13
Trk::MaterialEffectsOnTrack::scatteringAngles
const ScatteringAngles * scatteringAngles() const
returns the MCS-angles object.
Trk::MaterialEffectsOnTrack::MaterialEffectsOnTrack
MaterialEffectsOnTrack(const double tInX0, std::unique_ptr< const EnergyLoss > eloss, const Surface &assocSurf, const std::bitset< MaterialEffectsBase::NumberOfMaterialEffectsTypes > &typePattern=std::bitset< MaterialEffectsBase::NumberOfMaterialEffectsTypes >())
partial constructor passing (with ownership) an energy loss object
Trk::MaterialEffectsOnTrack::MaterialEffectsOnTrack
MaterialEffectsOnTrack(const MaterialEffectsOnTrack &meot)
Copy constructor.
Trk::MaterialEffectsOnTrack::derivedType
MaterialEffectsBase::MaterialEffectsDerivedType derivedType() const override final
concrete type
Definition: MaterialEffectsOnTrack.h:116
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::MaterialEffectsOnTrack::MaterialEffectsOnTrack
MaterialEffectsOnTrack(const double tInX0, std::optional< ScatteringAngles > scat, const Surface &assocSurf, const std::bitset< MaterialEffectsBase::NumberOfMaterialEffectsTypes > &typePattern=std::bitset< MaterialEffectsBase::NumberOfMaterialEffectsTypes >())
partial constructor passing (with ownership) a scattering angle object
Trk::MaterialEffectsOnTrack::clone
virtual MaterialEffectsOnTrack * clone() const override final
Virtual constructor.
Trk::MaterialEffectsOnTrack::uniqueClone
std::unique_ptr< MaterialEffectsOnTrack > uniqueClone() const
NVI uniqueClone.