Class Acts::AccumulatedSurfaceMaterial¶
-
class AccumulatedSurfaceMaterial¶
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
-
using AccumulatedMatrix = std::vector<AccumulatedVector>¶