Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::AccumulatedMaterialSlab Class Reference

#include <acts/blob/sPHENIX/Core/include/Acts/Material/AccumulatedMaterialSlab.hpp>

+ Collaboration diagram for Acts::AccumulatedMaterialSlab:

Public Member Functions

void accumulate (MaterialSlab slabAlongTrack, float pathCorrection=1)
 
void trackVariance (MaterialSlab slabReference, bool useEmptyTrack=false)
 
void trackAverage (bool useEmptyTrack=false)
 
std::pair< MaterialSlab,
unsigned int > 
totalAverage () const
 
std::pair< float, unsigned int > totalVariance () const
 

Private Attributes

MaterialSlab m_trackAverage
 Averaged properties for a single track.
 
MaterialSlab m_totalAverage
 Averaged properties over multiple tracks.
 
float m_totalVariance = 0.0
 Averaged variance over multiple tracks.
 
unsigned int m_totalCount = 0u
 

Detailed Description

Accumulate material properties from multiple hits/track and multiple tracks.

This is a helper class for the SurfaceMaterialMapper to handle material accumulation and averaging for one surface bin. The accumulation procedure is done in two steps:

  1. The per-track store accumulates material steps from one track/particle. Multiple material steps can be assigned to the same bin time by one particle, e.g. if the simulation has created more than one step in the material or if several components are compressed into one description. Multiple steps are treated as if they are passed one after the other.
  2. The total store averages the accumulated material properties over all tracks. Each track contributes equally.

Definition at line 31 of file AccumulatedMaterialSlab.hpp.

View newest version in sPHENIX GitHub at line 31 of file AccumulatedMaterialSlab.hpp

Member Function Documentation

void Acts::AccumulatedMaterialSlab::accumulate ( MaterialSlab  slabAlongTrack,
float  pathCorrection = 1 
)

Add the material to the current per-track store.

Parameters
slabAlongTrackRecorded equivalent material slab for this step
pathCorrectionCorrection factor due to non-perpendicular incident

The recoded material slab is assumed to be defined along the track direction. The track can have non-perpendicular incidence on the surface and the recorded slab has to be projected along the surface normal. The path correction gives the scaling factor from normal incidence to the recorded incidence as provided by the Surface interface.

Vacuum steps with a non-zero thickness can be added to account for holes in material structures.

Definition at line 14 of file AccumulatedMaterialSlab.cpp.

View newest version in sPHENIX GitHub at line 14 of file AccumulatedMaterialSlab.cpp

References Acts::detail::combineSlabs(), m_trackAverage, and Acts::MaterialSlab::scaleThickness().

+ Here is the call graph for this function:

std::pair< Acts::MaterialSlab, unsigned int > Acts::AccumulatedMaterialSlab::totalAverage ( ) const

Return the average material properties from all accumulated tracks.

Returns
Average material properties and the number of contributing tracks

Only contains the information up to the last .trackAverage(...) call. If there have been additional calls to .accumulate(...) afterwards, the information is not part of the total average. The thickness corresponds to the average thickness seen by the tracks.

Definition at line 62 of file AccumulatedMaterialSlab.cpp.

View newest version in sPHENIX GitHub at line 62 of file AccumulatedMaterialSlab.cpp

std::pair< float, unsigned int > Acts::AccumulatedMaterialSlab::totalVariance ( ) const

Return the material variance from all accumulated tracks.

Returns
Average material properties and the number of contributing tracks

Only contains the information up to the last .trackVariance(...) call. If there have been additional calls to .accumulate(...) afterwards, the information is not part of the total average. The number of tracks is only updated on the call of .trackAverage(...)

Definition at line 66 of file AccumulatedMaterialSlab.cpp.

View newest version in sPHENIX GitHub at line 66 of file AccumulatedMaterialSlab.cpp

void Acts::AccumulatedMaterialSlab::trackAverage ( bool  useEmptyTrack = false)

Add the accumulated material for the current track to the total average.

Parameters
useEmptyTrackindicate whether to consider an empty track store

This finishes the material accumulation for the current track and resets the per-track store. Subsequent calls to .accumulate(...) will start accumulating material for a new track.

Each track contributes equally to the total average regardless of its measured path within the material. An empty per-track store, i.e. vanishing per-track material thickness, does not contribute to the total unless explicitly requested.

Definition at line 40 of file AccumulatedMaterialSlab.cpp.

View newest version in sPHENIX GitHub at line 40 of file AccumulatedMaterialSlab.cpp

References Acts::detail::combineSlabs(), and physmon_ckf_tracking::u.

+ Here is the call graph for this function:

void Acts::AccumulatedMaterialSlab::trackVariance ( MaterialSlab  slabReference,
bool  useEmptyTrack = false 
)

Use the accumulated material to update the material variance

Parameters
slabReferencereference slab (from the map) used to compute the variance
useEmptyTrackindicate whether to consider an empty track store

The material variance can be used to optimised the mapping process as it should be inversely proportional to the map quality

Definition at line 22 of file AccumulatedMaterialSlab.cpp.

View newest version in sPHENIX GitHub at line 22 of file AccumulatedMaterialSlab.cpp

References Acts::MaterialSlab::material(), physmon_ckf_tracking::u, and Acts::Material::X0().

+ Here is the call graph for this function:

Member Data Documentation

MaterialSlab Acts::AccumulatedMaterialSlab::m_totalAverage
private

Averaged properties over multiple tracks.

Definition at line 98 of file AccumulatedMaterialSlab.hpp.

View newest version in sPHENIX GitHub at line 98 of file AccumulatedMaterialSlab.hpp

unsigned int Acts::AccumulatedMaterialSlab::m_totalCount = 0u
private

Definition at line 102 of file AccumulatedMaterialSlab.hpp.

View newest version in sPHENIX GitHub at line 102 of file AccumulatedMaterialSlab.hpp

float Acts::AccumulatedMaterialSlab::m_totalVariance = 0.0
private

Averaged variance over multiple tracks.

Definition at line 100 of file AccumulatedMaterialSlab.hpp.

View newest version in sPHENIX GitHub at line 100 of file AccumulatedMaterialSlab.hpp

MaterialSlab Acts::AccumulatedMaterialSlab::m_trackAverage
private

Averaged properties for a single track.

Definition at line 96 of file AccumulatedMaterialSlab.hpp.

View newest version in sPHENIX GitHub at line 96 of file AccumulatedMaterialSlab.hpp

Referenced by accumulate().


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