Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Material/AccumulatedMaterialSlab.hpp>
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 |
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:
Definition at line 31 of file AccumulatedMaterialSlab.hpp.
View newest version in sPHENIX GitHub at line 31 of file AccumulatedMaterialSlab.hpp
void Acts::AccumulatedMaterialSlab::accumulate | ( | MaterialSlab | slabAlongTrack, |
float | pathCorrection = 1 |
||
) |
Add the material to the current per-track store.
slabAlongTrack | Recorded equivalent material slab for this step |
pathCorrection | Correction 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().
std::pair< Acts::MaterialSlab, unsigned int > Acts::AccumulatedMaterialSlab::totalAverage | ( | ) | const |
Return the average material properties from all accumulated 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.
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.
useEmptyTrack | indicate 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.
void Acts::AccumulatedMaterialSlab::trackVariance | ( | MaterialSlab | slabReference, |
bool | useEmptyTrack = false |
||
) |
Use the accumulated material to update the material variance
slabReference | reference slab (from the map) used to compute the variance |
useEmptyTrack | indicate 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().
|
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
|
private |
Definition at line 102 of file AccumulatedMaterialSlab.hpp.
View newest version in sPHENIX GitHub at line 102 of file AccumulatedMaterialSlab.hpp
|
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
|
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().