ATLAS Offline Software
|
base class to integrate material effects on Trk::Track in a flexible way. More...
#include <MaterialEffectsBase.h>
Public Types | |
enum | MaterialEffectsDerivedType { ESTIMATED_BREM_ON_TRACK = 0, MATERIAL_EFFECTS_ON_TRACK, NTYPES } |
enum | MaterialEffectsType { ScatteringEffects = 0, EnergyLossEffects = 1, MaterialThickness = 2, BremPoint = 3, UsesMeasurement = 4, FittedMaterialEffects = 5, Unknown = 6, NumberOfMaterialEffectsTypes = 7 } |
Public Member Functions | |
MaterialEffectsBase () | |
default constructor for POOL More... | |
MaterialEffectsBase (double thicknessInX0, const Surface &assocSurf, const std::bitset< MaterialEffectsBase::NumberOfMaterialEffectsTypes > &typePattern) | |
base class constructor with information common to all types of material effects. More... | |
virtual | ~MaterialEffectsBase ()=default |
destructor. More... | |
virtual MaterialEffectsBase * | clone () const =0 |
Virtual constructor. More... | |
std::unique_ptr< MaterialEffectsBase > | uniqueClone () const |
NVI uniqueClone. More... | |
double | thicknessInX0 () const |
returns the actually traversed material \( t/X_0 \). More... | |
const Surface & | associatedSurface () const |
returns the surface to which these m.eff. are associated. More... | |
bool | type (const MaterialEffectsType &type) const |
returns the flags (bits) which types of ME are present More... | |
virtual MaterialEffectsDerivedType | derivedType () const =0 |
Returns the concrete derived type. More... | |
std::string | dumpType () const |
returns a string with the type of the object More... | |
virtual MsgStream & | dump (MsgStream &sl) const |
Interface method for output, can be overloaded by child classes. More... | |
virtual std::ostream & | dump (std::ostream &sl) const |
Interface method for output, can be overloaded by child classes* */. More... | |
const S * | surfacePtr () |
return the ptr we hold useful for tests More... | |
const S * | release () noexcept |
release ala unique_ptr release More... | |
void | destroySurface () noexcept |
destroySurface deletes the ptr if not null and the surface has not a associatedDetectorElement Usefull also for testing More... | |
Static Public Member Functions | |
static const S * | cloneHelper (const S *input) |
Helper for cloning or not when we need depending on if we have an associatedDetectorElement. More... | |
Protected Member Functions | |
virtual void | setValues (const Surface *assocSurface) |
allows POOL converter to recreate transient links to DetStore More... | |
MaterialEffectsBase (const MaterialEffectsBase &rhs)=default | |
copy constructor More... | |
MaterialEffectsBase & | operator= (const MaterialEffectsBase &rhs)=default |
Assignment operator. More... | |
MaterialEffectsBase (MaterialEffectsBase &&rhs)=default | |
move constructor More... | |
MaterialEffectsBase & | operator= (MaterialEffectsBase &&rhs)=default |
move Assignment operator More... | |
Protected Attributes | |
const S * | m_associatedSurface = nullptr |
Private Attributes | |
double | m_tInX0 {} |
\( t/X_0 \) - the traversed thickness in RadiationLengths More... | |
long | m_typeFlags {} |
Friends | |
class | ::MaterialEffectsBaseCnv_p1 |
class | ::MaterialEffectsBaseCnv_p2 |
class | ::MaterialEffectsOnTrackCnv_p2 |
class | ::TrackCollectionCnv |
class | ::ScatteringAngleOnTrackCnv_p1 |
base class to integrate material effects on Trk::Track in a flexible way.
It holds the pointer to an associated surface (free or from DetStore) and the layer thickness which was used in estimated the material effects. In case they are external (Calo measurement) they can be 0.
Definition at line 34 of file MaterialEffectsBase.h.
Enumerator | |
---|---|
ESTIMATED_BREM_ON_TRACK | |
MATERIAL_EFFECTS_ON_TRACK | |
NTYPES |
Definition at line 37 of file MaterialEffectsBase.h.
Enumerator | |
---|---|
ScatteringEffects | contains material effects due to multiple scattering |
EnergyLossEffects | contains energy loss corrections |
MaterialThickness | contains only thickness, needs M.E.Updator to calculate effects |
BremPoint | contains q/p covariance noise term |
UsesMeasurement | contains energy loss correction based on Calo measurement |
FittedMaterialEffects | contains values obtained by fitting the scatterer or e-loss |
Unknown | new category |
NumberOfMaterialEffectsTypes |
Definition at line 42 of file MaterialEffectsBase.h.
Trk::MaterialEffectsBase::MaterialEffectsBase | ( | ) |
default constructor for POOL
Trk::MaterialEffectsBase::MaterialEffectsBase | ( | double | thicknessInX0, |
const Surface & | assocSurf, | ||
const std::bitset< MaterialEffectsBase::NumberOfMaterialEffectsTypes > & | typePattern | ||
) |
base class constructor with information common to all types of material effects.
[in] | thicknessInX0 | is the actually traversed materia t in terms of radiation length x0, including all projective and bending corrections. |
[in] | assocSurf | reference to the Surface the material effects are expressed at |
[in] | typePattern | bitset to describe and identify the type of material effects at base-class level |
|
virtualdefault |
destructor.
Being virtual forces derived classes to call also this base destructor
|
protecteddefault |
copy constructor
|
protecteddefault |
move constructor
returns the surface to which these m.eff. are associated.
|
pure virtual |
Virtual constructor.
Implemented in Trk::MaterialEffectsOnTrack, and Trk::EstimatedBremOnTrack.
|
inlinestaticinherited |
|
pure virtual |
Returns the concrete derived type.
Implemented in Trk::MaterialEffectsOnTrack, and Trk::EstimatedBremOnTrack.
|
inlinenoexceptinherited |
destroySurface deletes the ptr if not null and the surface has not a associatedDetectorElement Usefull also for testing
Definition at line 224 of file SurfaceHolderImpl.h.
|
virtual |
Interface method for output, can be overloaded by child classes.
Reimplemented in Trk::MaterialEffectsOnTrack, and Trk::EstimatedBremOnTrack.
Definition at line 65 of file MaterialEffectsBase.cxx.
|
virtual |
Interface method for output, can be overloaded by child classes* */.
Reimplemented in Trk::MaterialEffectsOnTrack, and Trk::EstimatedBremOnTrack.
Definition at line 85 of file MaterialEffectsBase.cxx.
std::string Trk::MaterialEffectsBase::dumpType | ( | ) | const |
|
protecteddefault |
Assignment operator.
|
protecteddefault |
move Assignment operator
|
inlinenoexceptinherited |
allows POOL converter to recreate transient links to DetStore
|
inlineinherited |
double Trk::MaterialEffectsBase::thicknessInX0 | ( | ) | const |
returns the actually traversed material \( t/X_0 \).
Leave 0.0 for external ME.
bool Trk::MaterialEffectsBase::type | ( | const MaterialEffectsType & | type | ) | const |
returns the flags (bits) which types of ME are present
Use this method to find out if the ME is of a certain type: i.e. if ( mefot->type(MaterialEffectsBase::EnergyLoss) { //etc }
|
inline |
NVI uniqueClone.
Definition at line 87 of file MaterialEffectsBase.h.
|
friend |
Definition at line 132 of file MaterialEffectsBase.h.
|
friend |
Definition at line 133 of file MaterialEffectsBase.h.
|
friend |
Definition at line 134 of file MaterialEffectsBase.h.
|
friend |
Definition at line 136 of file MaterialEffectsBase.h.
|
friend |
Definition at line 135 of file MaterialEffectsBase.h.
|
protectedinherited |
Definition at line 244 of file SurfaceHolderImpl.h.
|
private |
\( t/X_0 \) - the traversed thickness in RadiationLengths
Definition at line 139 of file MaterialEffectsBase.h.
|
private |
Definition at line 140 of file MaterialEffectsBase.h.