Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::VolumeMaterialMapper Class Reference

VolumeMaterialMapper. More...

#include <acts/blob/sPHENIX/Core/include/Acts/Material/VolumeMaterialMapper.hpp>

+ Collaboration diagram for Acts::VolumeMaterialMapper:

Classes

struct  BoundSurfaceSelector
 selector for finding surface More...
 
struct  Config
 
struct  MaterialVolumeSelector
 selector for finding More...
 
struct  State
 

Public Types

using StraightLinePropagator = Propagator< StraightLineStepper, Navigator >
 

Public Member Functions

 VolumeMaterialMapper ()=delete
 Delete the Default constructor.
 
 VolumeMaterialMapper (const Config &cfg, StraightLinePropagator propagator, std::unique_ptr< const Logger > slogger=getDefaultLogger("VolumeMaterialMapper", Logging::INFO))
 
State createState (const GeometryContext &gctx, const MagneticFieldContext &mctx, const TrackingGeometry &tGeometry) const
 helper method that creates the cache for the mapping
 
void finalizeMaps (State &mState) const
 Method to finalize the maps.
 
void mapMaterialTrack (State &mState, RecordedMaterialTrack &mTrack) const
 

Private Member Functions

void resolveMaterialVolume (State &mState, const TrackingVolume &tVolume) const
 finds all surfaces with ProtoVolumeMaterial of a volume
 
void checkAndInsert (State &mState, const TrackingVolume &volume) const
 check and insert
 
void collectMaterialSurfaces (State &mState, const TrackingVolume &tVolume) const
 check and insert
 
void createExtraHits (State &mState, std::pair< const GeometryIdentifier, BinUtility > &currentBinning, Acts::MaterialSlab properties, const Vector3 &position, Vector3 direction) const
 
const Loggerlogger () const
 Standard logger method.
 

Private Attributes

Config m_cfg
 The configuration object.
 
StraightLinePropagator m_propagator
 The straight line propagator.
 
std::unique_ptr< const Loggerm_logger
 The logging instance.
 

Detailed Description

VolumeMaterialMapper.

This is the main feature tool to map material information from a 3D geometry onto the TrackingGeometry with its surface material description.

The process runs as such:

1) TrackingGeometry is parsed and for each Volume with ProtoVolumeMaterial a local store is initialized the identification is done hereby through the Volume::GeometryIdentifier

2) A number of N material tracks is read in, each track has : origin, direction, material steps (< position, step length, x0, l0, a, z, rho >, thichness)

for each track: volume along the origin/direction path are collected. the step are then associated to volume inside which they are. Additional step are created along the track direction.

3) Each 'hit' bin per event is counted and averaged at the end of the run

Definition at line 67 of file VolumeMaterialMapper.hpp.

View newest version in sPHENIX GitHub at line 67 of file VolumeMaterialMapper.hpp

Member Typedef Documentation

Definition at line 69 of file VolumeMaterialMapper.hpp.

View newest version in sPHENIX GitHub at line 69 of file VolumeMaterialMapper.hpp

Constructor & Destructor Documentation

Acts::VolumeMaterialMapper::VolumeMaterialMapper ( )
delete

Delete the Default constructor.

Acts::VolumeMaterialMapper::VolumeMaterialMapper ( const Config cfg,
StraightLinePropagator  propagator,
std::unique_ptr< const Logger slogger = getDefaultLogger(                           "VolumeMaterialMapper", Logging::INFO) 
)

Constructor with config object

Parameters
cfgConfiguration struct
propagatorThe straight line propagator
sloggerThe logger

Definition at line 51 of file VolumeMaterialMapper.cpp.

View newest version in sPHENIX GitHub at line 51 of file VolumeMaterialMapper.cpp

Member Function Documentation

void Acts::VolumeMaterialMapper::checkAndInsert ( State mState,
const TrackingVolume volume 
) const
private

check and insert

Parameters
mStateis the map to be filled
volumeis the surface to be checked for a Proxy

Definition at line 95 of file VolumeMaterialMapper.cpp.

View newest version in sPHENIX GitHub at line 95 of file VolumeMaterialMapper.cpp

References ACTS_DEBUG, Acts::adjustBinUtility(), Acts::createGrid2D(), Acts::createGrid3D(), Acts::BinUtility::dimensions(), Acts::GeometryObject::geometryId(), Acts::VolumeMaterialMapper::State::grid2D, Acts::VolumeMaterialMapper::State::grid3D, Acts::VolumeMaterialMapper::State::homogeneousGrid, Acts::VolumeMaterialMapper::State::materialBin, Acts::VolumeMaterialMapper::State::transform2D, Acts::VolumeMaterialMapper::State::transform3D, Acts::GeometryIdentifier::volume(), and Acts::TrackingVolume::volumeMaterial().

+ Here is the call graph for this function:

void Acts::VolumeMaterialMapper::collectMaterialSurfaces ( State mState,
const TrackingVolume tVolume 
) const
private

check and insert

Parameters
mStateis the map to be filled
tVolumeis the surface to collect from

Definition at line 181 of file VolumeMaterialMapper.cpp.

View newest version in sPHENIX GitHub at line 181 of file VolumeMaterialMapper.cpp

References Acts::ACTS_VERBOSE(), Acts::BinnedArray< T >::arrayObjects(), Acts::TrackingVolume::boundarySurfaces(), Acts::TrackingVolume::confinedLayers(), Acts::TrackingVolume::confinedVolumes(), Acts::navigation, Acts::VolumeMaterialMapper::State::surfaceMaterial, and Acts::TrackingVolume::volumeName().

+ Here is the call graph for this function:

void Acts::VolumeMaterialMapper::createExtraHits ( State mState,
std::pair< const GeometryIdentifier, BinUtility > &  currentBinning,
Acts::MaterialSlab  properties,
const Vector3 position,
Vector3  direction 
) const
private

Create extra material point for the mapping and add them to the grid

Parameters
mStateThe state to be filled
currentBinninga pair containing the current geometry ID and the current binning
propertiesmaterial properties of the original hit
positionposition of the original hit
directiondirection of the track

Definition at line 242 of file VolumeMaterialMapper.cpp.

View newest version in sPHENIX GitHub at line 242 of file VolumeMaterialMapper.cpp

References grid(), Acts::VolumeMaterialMapper::State::grid2D, Acts::VolumeMaterialMapper::State::grid3D, Acts::VolumeMaterialMapper::State::homogeneousGrid, index, m_cfg(), Acts::MaterialSlab::scaleThickness(), Acts::MaterialSlab::thickness(), Acts::VolumeMaterialMapper::State::transform2D, and Acts::VolumeMaterialMapper::State::transform3D.

+ Here is the call graph for this function:

Acts::VolumeMaterialMapper::State Acts::VolumeMaterialMapper::createState ( const GeometryContext gctx,
const MagneticFieldContext mctx,
const TrackingGeometry tGeometry 
) const

helper method that creates the cache for the mapping

Parameters
[in]gctxThe geometry context to use
[in]mctxThe magnetic field context to use
[in]tGeometryThe geometry which should be mapped

This method takes a TrackingGeometry, finds all surfaces with material proxis and returns you a Cache object tO be used

Definition at line 58 of file VolumeMaterialMapper.cpp.

View newest version in sPHENIX GitHub at line 58 of file VolumeMaterialMapper.cpp

References Acts::TrackingGeometry::highestTrackingVolume().

+ Here is the call graph for this function:

void Acts::VolumeMaterialMapper::finalizeMaps ( State mState) const

Method to finalize the maps.

It calls the final run averaging and then transforms the Homogeneous material into HomogeneousVolumeMaterial and the 2D and 3D grid into a InterpolatedMaterialMap

Parameters
mState

Definition at line 317 of file VolumeMaterialMapper.cpp.

View newest version in sPHENIX GitHub at line 317 of file VolumeMaterialMapper.cpp

References ACTS_DEBUG, grid(), Acts::VolumeMaterialMapper::State::grid2D, Acts::VolumeMaterialMapper::State::grid3D, Acts::VolumeMaterialMapper::State::homogeneousGrid, Acts::mapMaterialPoints(), Acts::VolumeMaterialMapper::State::materialBin, testing::internal::move(), Acts::VolumeMaterialMapper::State::transform2D, Acts::VolumeMaterialMapper::State::transform3D, and Acts::VolumeMaterialMapper::State::volumeMaterial.

+ Here is the call graph for this function:

const Logger& Acts::VolumeMaterialMapper::logger ( ) const
inlineprivate

Standard logger method.

Definition at line 218 of file VolumeMaterialMapper.hpp.

View newest version in sPHENIX GitHub at line 218 of file VolumeMaterialMapper.hpp

References m_logger.

void Acts::VolumeMaterialMapper::mapMaterialTrack ( State mState,
RecordedMaterialTrack mTrack 
) const

Process/map a single track

Parameters
mStateThe current state map
mTrackThe material track to be mapped
Note
the RecordedMaterialSlab of the track are assumed to be ordered from the starting position along the starting direction

Definition at line 364 of file VolumeMaterialMapper.cpp.

View newest version in sPHENIX GitHub at line 364 of file VolumeMaterialMapper.cpp

References Acts::ACTS_VERBOSE(), Acts::VolumeMaterialMapper::State::geoContext, Acts::VolumeMaterialMapper::State::magFieldContext, Acts::VectorHelpers::makeVector4(), Acts::VolumeMaterialMapper::State::materialBin, norm, ckf::options, position, Acts::s_epsilon, start, and Acts::GeometryIdentifier::volume().

+ Here is the call graph for this function:

void Acts::VolumeMaterialMapper::resolveMaterialVolume ( State mState,
const TrackingVolume tVolume 
) const
private

finds all surfaces with ProtoVolumeMaterial of a volume

Parameters
mStateThe state to be filled
tVolumeis current TrackingVolume

Definition at line 71 of file VolumeMaterialMapper.cpp.

View newest version in sPHENIX GitHub at line 71 of file VolumeMaterialMapper.cpp

References Acts::ACTS_VERBOSE(), Acts::TrackingVolume::confinedVolumes(), Acts::TrackingVolume::denseVolumes(), and Acts::TrackingVolume::volumeName().

+ Here is the call graph for this function:

Member Data Documentation

Config Acts::VolumeMaterialMapper::m_cfg
private

The configuration object.

Definition at line 221 of file VolumeMaterialMapper.hpp.

View newest version in sPHENIX GitHub at line 221 of file VolumeMaterialMapper.hpp

std::unique_ptr<const Logger> Acts::VolumeMaterialMapper::m_logger
private

The logging instance.

Definition at line 227 of file VolumeMaterialMapper.hpp.

View newest version in sPHENIX GitHub at line 227 of file VolumeMaterialMapper.hpp

Referenced by logger().

StraightLinePropagator Acts::VolumeMaterialMapper::m_propagator
private

The straight line propagator.

Definition at line 224 of file VolumeMaterialMapper.hpp.

View newest version in sPHENIX GitHub at line 224 of file VolumeMaterialMapper.hpp


The documentation for this class was generated from the following files: