Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Material/VolumeMaterialMapper.hpp>
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 > ¤tBinning, Acts::MaterialSlab properties, const Vector3 &position, Vector3 direction) const |
const Logger & | logger () const |
Standard logger method. | |
Private Attributes | |
Config | m_cfg |
The configuration object. | |
StraightLinePropagator | m_propagator |
The straight line propagator. | |
std::unique_ptr< const Logger > | m_logger |
The logging instance. | |
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
using Acts::VolumeMaterialMapper::StraightLinePropagator = Propagator<StraightLineStepper, Navigator> |
Definition at line 69 of file VolumeMaterialMapper.hpp.
View newest version in sPHENIX GitHub at line 69 of file VolumeMaterialMapper.hpp
|
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
cfg | Configuration struct |
propagator | The straight line propagator |
slogger | The logger |
Definition at line 51 of file VolumeMaterialMapper.cpp.
View newest version in sPHENIX GitHub at line 51 of file VolumeMaterialMapper.cpp
|
private |
check and insert
mState | is the map to be filled |
volume | is 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().
|
private |
check and insert
mState | is the map to be filled |
tVolume | is 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().
|
private |
Create extra material point for the mapping and add them to the grid
mState | The state to be filled |
currentBinning | a pair containing the current geometry ID and the current binning |
properties | material properties of the original hit |
position | position of the original hit |
direction | direction 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.
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
[in] | gctx | The geometry context to use |
[in] | mctx | The magnetic field context to use |
[in] | tGeometry | The 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().
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
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.
|
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
mState | The current state map |
mTrack | The material track to be mapped |
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().
|
private |
finds all surfaces with ProtoVolumeMaterial of a volume
mState | The state to be filled |
tVolume | is 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().
|
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
|
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().
|
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