ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::EstimatedBremOnTrack Class Referencefinal

class holding information about momentum reduction and an additional noise term due to significant energy loss (bremsstrahlung) More...

#include <EstimatedBremOnTrack.h>

Inheritance diagram for Trk::EstimatedBremOnTrack:
Collaboration diagram for Trk::EstimatedBremOnTrack:

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

 EstimatedBremOnTrack ()=default
 default constructor for POOL
 EstimatedBremOnTrack (double thicknessInX0, double retainedEnFraction, double sigmaRetainedEnFraction, double sigmaQoverPsquared, const Surface &sf, const SearchDirection searchDirection=bothway)
 Full constructor.
 EstimatedBremOnTrack (const EstimatedBremOnTrack &ebrot)=default
 Copy constructor.
EstimatedBremOnTrackoperator= (const EstimatedBremOnTrack &rhs)=default
 Assignment operator.
 EstimatedBremOnTrack (EstimatedBremOnTrack &&ebrot) noexcept=default
 Move constructor.
EstimatedBremOnTrackoperator= (EstimatedBremOnTrack &&rhs) noexcept=default
 Move Assignment operator.
virtual ~EstimatedBremOnTrack ()=default
 Destructor.
MaterialEffectsBase::MaterialEffectsDerivedType derivedType () const override final
 actual type
virtual EstimatedBremOnTrackclone () const override final
 Virtual constructor.
std::unique_ptr< EstimatedBremOnTrackuniqueClone () const
 NVI uniqueClone.
double retainedEnFraction () const
 returns \( z \)
double sigmaRetainedEnFraction () const
 return \( \sigma(z) \)
double sigmaQoverPsquared () const
 returns the additional noise term \( Q=\sigma^2(q/p) \)
SearchDirection searchDirection () const
 returns if the brem was discovered with a particular search direction
virtual MsgStream & dump (MsgStream &sl) const override final
 Interface method for output.
virtual std::ostream & dump (std::ostream &sl) const override final
 Interface method for output.
double thicknessInX0 () const
 returns the actually traversed material \( t/X_0 \).
const SurfaceassociatedSurface () const
 returns the surface to which these m.eff. are associated.
bool type (const MaterialEffectsType &type) const
 returns the flags (bits) which types of ME are present
std::string dumpType () const
 returns a string with the type of the object
const SurfacesurfacePtr ()
 return the ptr we hold useful for tests
const Surfacerelease () noexcept
 release ala unique_ptr release
void destroySurface () noexcept
 destroySurface deletes the ptr if not null and the surface has not a associatedDetectorElement Usefull also for testing

Static Public Member Functions

static const SurfacecloneHelper (const Surface *input)
 Helper for cloning or not when we need depending on if we have an associatedDetectorElement.

Protected Member Functions

virtual void setValues (const Surface *assocSurface)
 allows POOL converter to recreate transient links to DetStore

Protected Attributes

const Surfacem_associatedSurface

Private Attributes

double m_retainedEnFraction { 0.0 }
 \( z \) - the momentum retained after energy loss
double m_sigmaRetainedEnFraction { 0.0 }
 \( \sigma(z) \) - uncertainty on the momentum retained after Eloss
double m_sigmaQoverPsquared { 0.0 }
 \( \sigma^2(q/p) \) - the applied straggling on the momentum correction
SearchDirection m_bremSearchDirection { Trk::undefinedDirection }
 if brem was found in particular direction, outward, inward or global
double m_tInX0 {}
 \( t/X_0 \) - the traversed thickness in RadiationLengths
long m_typeFlags {}

Detailed Description

class holding information about momentum reduction and an additional noise term due to significant energy loss (bremsstrahlung)

Author
Wolfgang.Liebig http://consult.cern.ch/xwho/people/

Definition at line 29 of file EstimatedBremOnTrack.h.

Member Enumeration Documentation

◆ MaterialEffectsDerivedType

Enumerator
ESTIMATED_BREM_ON_TRACK 
MATERIAL_EFFECTS_ON_TRACK 
NTYPES 

Definition at line 37 of file MaterialEffectsBase.h.

◆ MaterialEffectsType

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.

43 {
47 // trouble: avoid name clash Trk::Energyloss vs MET::EnergyLoss
52 BremPoint = 3,
58 Unknown = 6,
60 // WARNING need to edit MaterialEffectsOnTrack.cxx if these enums change
61 };
@ 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

Constructor & Destructor Documentation

◆ EstimatedBremOnTrack() [1/4]

Trk::EstimatedBremOnTrack::EstimatedBremOnTrack ( )
default

default constructor for POOL

◆ EstimatedBremOnTrack() [2/4]

Trk::EstimatedBremOnTrack::EstimatedBremOnTrack ( double thicknessInX0,
double retainedEnFraction,
double sigmaRetainedEnFraction,
double sigmaQoverPsquared,
const Surface & sf,
const SearchDirection searchDirection = bothway )

Full constructor.

Parameters
[in]thicknessInX0material thickness in terms of rad length, \( t/X_0 \)
[in]retainedEnFractionretained energy fraction after brem, \( z \)
[in]sigmaRetainedEnFractionerror on estimated retained energy fraction, \( \sigma(z) \)
[in]sigmaQoverPsquarednoise term added to cov matrix momentum parameter, \( \sigma^2(q/p) \)
[in]sftracking surface with which material effects are associated
[in]searchDirectionfor progressive brem recovery or seeded tracks

Definition at line 15 of file EstimatedBremOnTrack.cxx.

21 : Trk::MaterialEffectsBase(
22 tInX0,
23 sf,
24 1 << static_cast<int>(Trk::MaterialEffectsBase::BremPoint))
29{}
double m_retainedEnFraction
- the momentum retained after energy loss
double m_sigmaQoverPsquared
- the applied straggling on the momentum correction
SearchDirection searchDirection() const
returns if the brem was discovered with a particular search direction
SearchDirection m_bremSearchDirection
if brem was found in particular direction, outward, inward or global
double m_sigmaRetainedEnFraction
- uncertainty on the momentum retained after Eloss
double retainedEnFraction() const
returns

◆ EstimatedBremOnTrack() [3/4]

Trk::EstimatedBremOnTrack::EstimatedBremOnTrack ( const EstimatedBremOnTrack & ebrot)
default

Copy constructor.

◆ EstimatedBremOnTrack() [4/4]

Trk::EstimatedBremOnTrack::EstimatedBremOnTrack ( EstimatedBremOnTrack && ebrot)
defaultnoexcept

Move constructor.

◆ ~EstimatedBremOnTrack()

virtual Trk::EstimatedBremOnTrack::~EstimatedBremOnTrack ( )
virtualdefault

Destructor.

Member Function Documentation

◆ associatedSurface()

const Surface & Trk::MaterialEffectsBase::associatedSurface ( ) const
inherited

returns the surface to which these m.eff. are associated.

◆ clone()

EstimatedBremOnTrack * Trk::EstimatedBremOnTrack::clone ( ) const
inlinefinaloverridevirtual

Virtual constructor.

Implements Trk::MaterialEffectsBase.

Definition at line 109 of file EstimatedBremOnTrack.h.

110{
111 return new EstimatedBremOnTrack(*this);
112}
EstimatedBremOnTrack()=default
default constructor for POOL

◆ cloneHelper()

const Surface * Trk::SurfacePtrHolderImplDetEl< Surface >::cloneHelper ( const Surface * input)
inlinestaticinherited

Helper for cloning or not when we need depending on if we have an associatedDetectorElement.

Definition at line 213 of file SurfaceHolderImpl.h.

214 {
215 return (input && input->associatedDetectorElement() == nullptr
216 ? input->clone()
217 : input);
218 }

◆ derivedType()

MaterialEffectsBase::MaterialEffectsDerivedType Trk::EstimatedBremOnTrack::derivedType ( ) const
inlinefinaloverridevirtual

actual type

Implements Trk::MaterialEffectsBase.

Definition at line 66 of file EstimatedBremOnTrack.h.

◆ destroySurface()

void Trk::SurfacePtrHolderImplDetEl< Surface >::destroySurface ( )
inlinenoexceptinherited

destroySurface deletes the ptr if not null and the surface has not a associatedDetectorElement Usefull also for testing

Definition at line 201 of file SurfaceHolderImpl.h.

202 {
204 m_associatedSurface->associatedDetectorElement() == nullptr) {
205 delete m_associatedSurface;
206 }
207 //
208 m_associatedSurface = nullptr;
209 }

◆ dump() [1/2]

MsgStream & Trk::EstimatedBremOnTrack::dump ( MsgStream & sl) const
finaloverridevirtual

Interface method for output.

Reimplemented from Trk::MaterialEffectsBase.

Definition at line 34 of file EstimatedBremOnTrack.cxx.

35{
36 sl << "EstimatedBremOnTrack based on" << endmsg;
38 sl << "EstBremOT retained p fraction z: " << retainedEnFraction() << endmsg;
39 sl << "EstBremOT sigma(z) : " << sigmaRetainedEnFraction()
40 << endmsg;
41 sl << "EstBremOT q/p noise term to cov: " << sigmaQoverPsquared() << endmsg;
42 sl << "EstBremOT brem search direction: " << searchDirection() << endmsg;
43 return sl;
44}
#define endmsg
double sigmaQoverPsquared() const
returns the additional noise term
double sigmaRetainedEnFraction() const
return
virtual MsgStream & dump(MsgStream &sl) const
Interface method for output, can be overloaded by child classes.

◆ dump() [2/2]

std::ostream & Trk::EstimatedBremOnTrack::dump ( std::ostream & sl) const
finaloverridevirtual

Interface method for output.

Reimplemented from Trk::MaterialEffectsBase.

Definition at line 47 of file EstimatedBremOnTrack.cxx.

48{
49 sl << "EstimatedBremOnTrack based on" << std::endl;
51 sl << "\t EstBremOT retained p fraction z: " << retainedEnFraction()
52 << std::endl;
53 sl << "\t EstBremOT sigma(z) : " << sigmaRetainedEnFraction()
54 << std::endl;
55 sl << "\t EstBremOT q/p noise term to cov: " << sigmaQoverPsquared()
56 << std::endl;
57 sl << "\t EstBremOT brem search direction: " << searchDirection()
58 << std::endl;
59 return sl;
60}

◆ dumpType()

std::string Trk::MaterialEffectsBase::dumpType ( ) const
inherited

returns a string with the type of the object

Definition at line 16 of file MaterialEffectsBase.cxx.

17{
18 std::string type;
19 for (int i = 0; i < NumberOfMaterialEffectsTypes; ++i) {
20 if ((1 << i) & m_typeFlags) {
21 switch (i) {
23 type += "Scattering ";
24 break;
26 type += "EnergyLoss ";
27 break;
29 type += "UpdatorInput ";
30 break;
32 type += "BremPoint ";
33 break;
35 type += "UsesMeasurement ";
36 break;
38 type += "FittedMaterialEffects ";
39 break;
40 default:
41 type += "Unknown ";
42 break;
43 }
44 }
45 }
46 return type;
47}
bool type(const MaterialEffectsType &type) const
returns the flags (bits) which types of ME are present

◆ operator=() [1/2]

EstimatedBremOnTrack & Trk::EstimatedBremOnTrack::operator= ( const EstimatedBremOnTrack & rhs)
default

Assignment operator.

◆ operator=() [2/2]

EstimatedBremOnTrack & Trk::EstimatedBremOnTrack::operator= ( EstimatedBremOnTrack && rhs)
defaultnoexcept

Move Assignment operator.

◆ release()

const Surface * Trk::SurfacePtrHolderImplDetEl< Surface >::release ( )
inlinenoexceptinherited

release ala unique_ptr release

Definition at line 192 of file SurfaceHolderImpl.h.

193 {
194 const S* tmp = m_associatedSurface;
195 m_associatedSurface = nullptr;
196 return tmp;
197 }

◆ retainedEnFraction()

double Trk::EstimatedBremOnTrack::retainedEnFraction ( ) const
inline

returns \( z \)

Definition at line 115 of file EstimatedBremOnTrack.h.

116{
118}

◆ searchDirection()

SearchDirection Trk::EstimatedBremOnTrack::searchDirection ( ) const
inline

returns if the brem was discovered with a particular search direction

Definition at line 133 of file EstimatedBremOnTrack.h.

134{
136}

◆ setValues()

virtual void Trk::MaterialEffectsBase::setValues ( const Surface * assocSurface)
protectedvirtualinherited

allows POOL converter to recreate transient links to DetStore

◆ sigmaQoverPsquared()

double Trk::EstimatedBremOnTrack::sigmaQoverPsquared ( ) const
inline

returns the additional noise term \( Q=\sigma^2(q/p) \)

Definition at line 127 of file EstimatedBremOnTrack.h.

128{
130}

◆ sigmaRetainedEnFraction()

double Trk::EstimatedBremOnTrack::sigmaRetainedEnFraction ( ) const
inline

return \( \sigma(z) \)

Definition at line 121 of file EstimatedBremOnTrack.h.

122{
124}

◆ surfacePtr()

const Surface * Trk::SurfacePtrHolderImplDetEl< Surface >::surfacePtr ( )
inlineinherited

return the ptr we hold useful for tests

Definition at line 190 of file SurfaceHolderImpl.h.

190{ return m_associatedSurface; }

◆ thicknessInX0()

double Trk::MaterialEffectsBase::thicknessInX0 ( ) const
inherited

returns the actually traversed material \( t/X_0 \).

Leave 0.0 for external ME.

◆ type()

bool Trk::MaterialEffectsBase::type ( const MaterialEffectsType & type) const
inherited

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 }

Returns
true if the MaterialEffectsBase is of this type

◆ uniqueClone()

std::unique_ptr< EstimatedBremOnTrack > Trk::EstimatedBremOnTrack::uniqueClone ( ) const
inline

NVI uniqueClone.

Definition at line 74 of file EstimatedBremOnTrack.h.

75 {
76 return std::unique_ptr<EstimatedBremOnTrack>(clone());
77 }
virtual EstimatedBremOnTrack * clone() const override final
Virtual constructor.

Member Data Documentation

◆ m_associatedSurface

const Surface* Trk::SurfacePtrHolderImplDetEl< Surface >::m_associatedSurface
protectedinherited

Definition at line 221 of file SurfaceHolderImpl.h.

◆ m_bremSearchDirection

SearchDirection Trk::EstimatedBremOnTrack::m_bremSearchDirection { Trk::undefinedDirection }
private

if brem was found in particular direction, outward, inward or global

Definition at line 105 of file EstimatedBremOnTrack.h.

◆ m_retainedEnFraction

double Trk::EstimatedBremOnTrack::m_retainedEnFraction { 0.0 }
private

\( z \) - the momentum retained after energy loss

Definition at line 98 of file EstimatedBremOnTrack.h.

98{ 0.0 };

◆ m_sigmaQoverPsquared

double Trk::EstimatedBremOnTrack::m_sigmaQoverPsquared { 0.0 }
private

\( \sigma^2(q/p) \) - the applied straggling on the momentum correction

Definition at line 102 of file EstimatedBremOnTrack.h.

102{ 0.0 };

◆ m_sigmaRetainedEnFraction

double Trk::EstimatedBremOnTrack::m_sigmaRetainedEnFraction { 0.0 }
private

\( \sigma(z) \) - uncertainty on the momentum retained after Eloss

Definition at line 100 of file EstimatedBremOnTrack.h.

100{ 0.0 };

◆ m_tInX0

double Trk::MaterialEffectsBase::m_tInX0 {}
privateinherited

\( t/X_0 \) - the traversed thickness in RadiationLengths

Definition at line 139 of file MaterialEffectsBase.h.

139{};

◆ m_typeFlags

long Trk::MaterialEffectsBase::m_typeFlags {}
privateinherited

Definition at line 140 of file MaterialEffectsBase.h.

140{};

The documentation for this class was generated from the following files: