ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::AccumulatedSurfaceMaterial Class Reference

This class is used by the SurfaceMaterialMapper in order to accumulate/collect material information during the mapping process. More...

#include <Acts/Material/AccumulatedSurfaceMaterial.hpp>

Public Types

using AccumulatedMatrix = std::vector<AccumulatedVector>
 Type alias for matrix (vector of vectors) of accumulated material slabs.
using AccumulatedVector = std::vector<AccumulatedMaterialSlab>
 Type alias for vector of accumulated material slabs.

Public Member Functions

 AccumulatedSurfaceMaterial (AccumulatedSurfaceMaterial &&asma)=default
 Copy Move Constructor.
 AccumulatedSurfaceMaterial (const AccumulatedSurfaceMaterial &asma)=default
 Copy Constructor.
 AccumulatedSurfaceMaterial (const BinUtility &binUtility, double splitFactor=0.)
 Explicit constructor with only full MaterialSlab, for one-dimensional binning.
 AccumulatedSurfaceMaterial (double splitFactor=0.)
 Default Constructor - for homogeneous material.
 ~AccumulatedSurfaceMaterial ()=default
 Destructor.
std::array< std::size_t, 3 > accumulate (const Vector2 &lp, const MaterialSlab &mp, double pathCorrection=1.)
 Assign a material properties object.
std::array< std::size_t, 3 > accumulate (const Vector3 &gp, const MaterialSlab &mp, double pathCorrection=1.)
 Assign a material properties object.
const AccumulatedMatrixaccumulatedMaterial () const
 Access to the accumulated material.
const BinUtilitybinUtility () const
 Return the BinUtility.
AccumulatedSurfaceMaterialoperator= (AccumulatedSurfaceMaterial &&asma)=default
 Assignment Move operator.
AccumulatedSurfaceMaterialoperator= (const AccumulatedSurfaceMaterial &asma)=default
 Assignment operator.
double splitFactor () const
 Access to the split factor.
std::unique_ptr< const ISurfaceMaterialtotalAverage ()
 Total average creates SurfaceMaterial.
void trackAverage (const std::vector< std::array< std::size_t, 3 > > &trackBins={}, bool emptyHit=false)
 Average the information accumulated from one mapped track.
void trackAverage (const Vector3 &gp, bool emptyHit=false)
 Average the information accumulated from one mapped track.
void trackVariance (const std::vector< std::array< std::size_t, 3 > > &trackBins, MaterialSlab slabReference, bool emptyHit=false)
 Use the accumulated material to update the material variance.
void trackVariance (const Vector3 &gp, MaterialSlab slabReference, bool emptyHit=false)
 Use the accumulated material to update the material variance.

Detailed Description

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

Member Typedef Documentation

◆ AccumulatedMatrix

Type alias for matrix (vector of vectors) of accumulated material slabs.

◆ AccumulatedVector

Type alias for vector of accumulated material slabs.

Constructor & Destructor Documentation

◆ AccumulatedSurfaceMaterial() [1/4]

Acts::AccumulatedSurfaceMaterial::AccumulatedSurfaceMaterial ( double splitFactor = 0.)
explicit

Default Constructor - for homogeneous material.

Parameters
splitFactoris the pre/post splitting directive

◆ AccumulatedSurfaceMaterial() [2/4]

Acts::AccumulatedSurfaceMaterial::AccumulatedSurfaceMaterial ( const BinUtility & binUtility,
double splitFactor = 0. )
explicit

Explicit constructor with only full MaterialSlab, for one-dimensional binning.

The split factors:

  • 1. : oppositePre
  • 0. : alongPre ===> 1 Dimensional array
Parameters
binUtilitydefines the binning structure on the surface
splitFactoris the pre/post splitting directive

◆ AccumulatedSurfaceMaterial() [3/4]

Acts::AccumulatedSurfaceMaterial::AccumulatedSurfaceMaterial ( const AccumulatedSurfaceMaterial & asma)
default

Copy Constructor.

Parameters
asmais the source object to be copied

◆ AccumulatedSurfaceMaterial() [4/4]

Acts::AccumulatedSurfaceMaterial::AccumulatedSurfaceMaterial ( AccumulatedSurfaceMaterial && asma)
default

Copy Move Constructor.

Parameters
asmais the source object to be copied

◆ ~AccumulatedSurfaceMaterial()

Acts::AccumulatedSurfaceMaterial::~AccumulatedSurfaceMaterial ( )
default

Destructor.

Member Function Documentation

◆ accumulate() [1/2]

std::array< std::size_t, 3 > Acts::AccumulatedSurfaceMaterial::accumulate ( const Vector2 & lp,
const MaterialSlab & mp,
double pathCorrection = 1. )

Assign a material properties object.

Parameters
lplocal position for the bin assignment
mpmaterial properties to be assigned
pathCorrectionCorrection factor for the effective path length
Returns
the bin triple to which the material was assigned

◆ accumulate() [2/2]

std::array< std::size_t, 3 > Acts::AccumulatedSurfaceMaterial::accumulate ( const Vector3 & gp,
const MaterialSlab & mp,
double pathCorrection = 1. )

Assign a material properties object.

Parameters
gpglobal position for the bin assignment
mpmaterial properties to be assigned
pathCorrectionCorrection factor for the effective path length
Returns
the bin triple to which the material was assigned

◆ accumulatedMaterial()

const AccumulatedSurfaceMaterial::AccumulatedMatrix & Acts::AccumulatedSurfaceMaterial::accumulatedMaterial ( ) const

Access to the accumulated material.

Returns
Reference to the matrix of accumulated material data

◆ binUtility()

const BinUtility & Acts::AccumulatedSurfaceMaterial::binUtility ( ) const

Return the BinUtility.

Returns
Reference to the bin utility used for material binning

◆ operator=() [1/2]

AccumulatedSurfaceMaterial & Acts::AccumulatedSurfaceMaterial::operator= ( AccumulatedSurfaceMaterial && asma)
default

Assignment Move operator.

Parameters
asmais the source object to be copied
Returns
Reference to this object after move assignment

◆ operator=() [2/2]

AccumulatedSurfaceMaterial & Acts::AccumulatedSurfaceMaterial::operator= ( const AccumulatedSurfaceMaterial & asma)
default

Assignment operator.

Parameters
asmais the source object to be copied
Returns
Reference to this object after copy assignment

◆ splitFactor()

double Acts::AccumulatedSurfaceMaterial::splitFactor ( ) const

Access to the split factor.

Returns
The split factor used for material averaging

◆ totalAverage()

std::unique_ptr< const ISurfaceMaterial > Acts::AccumulatedSurfaceMaterial::totalAverage ( )

Total average creates SurfaceMaterial.

Returns
Unique pointer to the averaged surface material

◆ trackAverage() [1/2]

void Acts::AccumulatedSurfaceMaterial::trackAverage ( const std::vector< std::array< std::size_t, 3 > > & trackBins = {},
bool emptyHit = false )

Average the information accumulated from one mapped track.

Parameters
trackBinsThe bins that were touched by this event
emptyHitindicator if this is an empty assignment If none is given, the average runs over all bins in the surface map

◆ trackAverage() [2/2]

void Acts::AccumulatedSurfaceMaterial::trackAverage ( const Vector3 & gp,
bool emptyHit = false )

Average the information accumulated from one mapped track.

Parameters
gpglobal position for the bin assignment
emptyHitindicator if this is an empty assignment

◆ trackVariance() [1/2]

void Acts::AccumulatedSurfaceMaterial::trackVariance ( const std::vector< std::array< std::size_t, 3 > > & trackBins,
MaterialSlab slabReference,
bool emptyHit = false )

Use the accumulated material to update the material variance.

Parameters
trackBinsThe bins that were touched by this event
emptyHitindicator if this is an empty assignment
slabReferencereference slab (from the map) used to compute the variance If none is given, the average runs over all bins in the surface map

◆ trackVariance() [2/2]

void Acts::AccumulatedSurfaceMaterial::trackVariance ( const Vector3 & gp,
MaterialSlab slabReference,
bool emptyHit = false )

Use the accumulated material to update the material variance.

Parameters
gpglobal position for the bin assignment
emptyHitindicator if this is an empty assignment
slabReferenceindicator if this is an empty assignment