File AccumulatedSurfaceMaterial.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
-
class AccumulatedSurfaceMaterial
- #include <Acts/Material/AccumulatedSurfaceMaterial.hpp>
This class is used by the SurfaceMaterialMapper in order to accumulate/collect material information during the mapping process.
It performs event- and run-average when called, and returns a new SurfaceMaterial object as a unique_ptr after finalisation
Public Types
-
using AccumulatedMatrix = std::vector<AccumulatedVector>
-
using AccumulatedVector = std::vector<AccumulatedMaterialSlab>
Public Functions
-
AccumulatedSurfaceMaterial(double splitFactor = 0.)
Default Constructor - for homogeneous material.
- Parameters
splitFactor – is the pre/post splitting directive
-
AccumulatedSurfaceMaterial(const BinUtility &binUtility, double splitFactor = 0.)
Explicit constructor with only full MaterialSlab, for one-dimensional binning.
The split factors:
1. : oppositePre
0. : alongPre ===> 1 Dimensional array
- Parameters
binUtility – defines the binning structure on the surface
splitFactor – is the pre/post splitting directive
-
AccumulatedSurfaceMaterial(const AccumulatedSurfaceMaterial &asma) = default
Copy Constructor.
- Parameters
asma – is the source object to be copied
-
AccumulatedSurfaceMaterial(AccumulatedSurfaceMaterial &&asma) = default
Copy Move Constructor.
- Parameters
asma – is the source object to be copied
-
~AccumulatedSurfaceMaterial() = default
Destructor.
-
std::array<size_t, 3> accumulate(const Vector2 &lp, const MaterialSlab &mp, double pathCorrection = 1.)
Assign a material properites object.
- Parameters
lp – local position for the bin assignment
mp – material properties to be assigned
pathCorrection – Correction factor for the effective path length
- Returns
the bin triple to which the material was assigned
-
std::array<size_t, 3> accumulate(const Vector3 &gp, const MaterialSlab &mp, double pathCorrection = 1.)
Assign a material properites object.
- Parameters
gp – global position for the bin assignment
mp – material properties to be assigned
pathCorrection – Correction factor for the effective path length
- Returns
the bin triple to which the material was assigned
-
inline const AccumulatedMatrix &accumulatedMaterial() const
Access to the accumulated material.
-
inline const BinUtility &binUtility() const
Return the BinUtility.
-
AccumulatedSurfaceMaterial &operator=(AccumulatedSurfaceMaterial &&asma) = default
Assignment Move operator.
- Parameters
asma – is the source object to be copied
-
AccumulatedSurfaceMaterial &operator=(const AccumulatedSurfaceMaterial &asma) = default
Assignment operator.
- Parameters
asma – is the source object to be copied
-
inline double splitFactor() const
Access to the split factor.
-
std::unique_ptr<const ISurfaceMaterial> totalAverage()
Total average creates SurfaceMaterial.
-
void trackAverage(const std::vector<std::array<size_t, 3>> &trackBins = {}, bool emptyHit = false)
Average the information accumulated from one mapped track.
- Parameters
trackBins – The bins that were touched by this event
emptyHit – indicator if this is an empty assignment If none is given, the average runs over all bins in the surface map
-
void trackAverage(const Vector3 &gp, bool emptyHit = false)
Average the information accumulated from one mapped track.
- Parameters
gp – global position for the bin assignment
emptyHit – indicator if this is an empty assignment
-
void trackVariance(const std::vector<std::array<size_t, 3>> &trackBins, MaterialSlab slabReference, bool emptyHit = false)
Use the accumulated material to update the material variance.
- Parameters
trackBins – The bins that were touched by this event
emptyHit – indicator if this is an empty assignment
slabReference – reference slab (from the map) used to compute the variance If none is given, the average runs over all bins in the surface map
-
void trackVariance(const Vector3 &gp, MaterialSlab slabReference, bool emptyHit = false)
Use the accumulated material to update the material variance.
- Parameters
gp – global position for the bin assignment
emptyHit – indicator if this is an empty assignment
slabReference – indicator if this is an empty assignment
Private Members
-
AccumulatedMatrix m_accumulatedMaterial¶
The stored accumulated material matrix.
-
BinUtility m_binUtility = {}¶
The helper for the bin finding.
-
double m_splitFactor = {0.}¶
the split factor
-
using AccumulatedMatrix = std::vector<AccumulatedVector>
-
class AccumulatedSurfaceMaterial