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