ATLAS Offline Software
Loading...
Searching...
No Matches
MaterialEffectsBase.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// MaterialEffectsBase.h, (c) ATLAS Detector software
8
9#ifndef TRKMATERIALONTRACK_MATERIALEFFECTSBASE_H
10#define TRKMATERIALONTRACK_MATERIALEFFECTSBASE_H
11
13//
14#include <bitset>
15#include <iosfwd>
16#include <memory>
17
18class MsgStream;
24
25namespace Trk {
26
35{
36public:
43 {
47 // trouble: avoid name clash Trk::Energyloss vs MET::EnergyLoss
60 // WARNING need to edit MaterialEffectsOnTrack.cxx if these enums change
61 };
62
75 double thicknessInX0,
76 const Surface& assocSurf,
77 const std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes>&
78 typePattern);
81 virtual ~MaterialEffectsBase() = default;
82
84 virtual MaterialEffectsBase* clone() const = 0;
85
87 std::unique_ptr<MaterialEffectsBase> uniqueClone() const
88 {
89 return std::unique_ptr<MaterialEffectsBase>(clone());
90 }
91
94 double thicknessInX0() const;
95
97 const Surface& associatedSurface() const;
98
106 bool type(const MaterialEffectsType& type) const;
107
110
112 std::string dumpType() const;
113
115 virtual MsgStream& dump(MsgStream& sl) const;
117 virtual std::ostream& dump(std::ostream& sl) const;
118
119protected:
121 virtual void setValues(const Surface* assocSurface);
130
131private:
132 friend class ::MaterialEffectsBaseCnv_p1;
133 friend class ::MaterialEffectsBaseCnv_p2;
134 friend class ::MaterialEffectsOnTrackCnv_p2;
135 friend class ::TrackCollectionCnv;
136 friend class ::ScatteringAngleOnTrackCnv_p1;
137
139 double m_tInX0{};
141};
142
144MsgStream&
145operator<<(MsgStream& sl, const MaterialEffectsBase& meb);
146
148std::ostream&
149operator<<(std::ostream& sl, const MaterialEffectsBase& meb);
150
151} // end ns
152
154#endif // TRKMATERIALONTRACK_MATERIALEFFECTSBASE_H
Converter for T/P separation of the TrkMaterialOnTrack/MaterialEffectsBase class.
Converter for T/P separation of the TrkMaterialOnTrack/MaterialEffectsBase class.
T/P converter v2 for MaterialEffectsOnTrack.
MaterialEffectsBase(const MaterialEffectsBase &rhs)=default
copy constructor
MaterialEffectsBase & operator=(MaterialEffectsBase &&rhs)=default
move Assignment operator
@ BremPoint
contains q/p covariance noise term
@ ScatteringEffects
contains material effects due to multiple scattering
@ UsesMeasurement
contains energy loss correction based on Calo measurement
@ FittedMaterialEffects
contains values obtained by fitting the scatterer or e-loss
@ EnergyLossEffects
contains energy loss corrections
@ MaterialThickness
contains only thickness, needs M.E.Updator to calculate effects
virtual ~MaterialEffectsBase()=default
destructor.
MaterialEffectsBase & operator=(const MaterialEffectsBase &rhs)=default
Assignment operator.
const Surface & associatedSurface() const
returns the surface to which these m.eff. are associated.
virtual MaterialEffectsBase * clone() const =0
Virtual constructor.
MaterialEffectsBase(double thicknessInX0, const Surface &assocSurf, const std::bitset< MaterialEffectsBase::NumberOfMaterialEffectsTypes > &typePattern)
base class constructor with information common to all types of material effects.
MaterialEffectsBase(MaterialEffectsBase &&rhs)=default
move constructor
double thicknessInX0() const
returns the actually traversed material .
MaterialEffectsBase()
default constructor for POOL
std::string dumpType() const
returns a string with the type of the object
double m_tInX0
- the traversed thickness in RadiationLengths
std::unique_ptr< MaterialEffectsBase > uniqueClone() const
NVI uniqueClone.
virtual void setValues(const Surface *assocSurface)
allows POOL converter to recreate transient links to DetStore
bool type(const MaterialEffectsType &type) const
returns the flags (bits) which types of ME are present
virtual MaterialEffectsDerivedType derivedType() const =0
Returns the concrete derived type.
Abstract Base Class for tracking surfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
Trk::SurfacePtrHolderImplDetEl< Surface > SurfacePtrHolderDetEl
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
-event-from-file