EIC 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 &, const TrackingVolume &volume) const
 check and insert
 
void collectMaterialSurfaces (State &, const TrackingVolume &tVolume) const
 check and insert
 
void createExtraHits (RecordedMaterialVolumePoint &matPoint, Acts::MaterialSlab properties, Vector3D position, Vector3D 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 60 of file VolumeMaterialMapper.hpp.

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

Member Typedef Documentation

Definition at line 62 of file VolumeMaterialMapper.hpp.

View newest version in sPHENIX GitHub at line 62 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
logThe logger

Definition at line 33 of file VolumeMaterialMapper.cpp.

View newest version in sPHENIX GitHub at line 33 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 77 of file VolumeMaterialMapper.cpp.

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

References ACTS_DEBUG, Acts::adjustBinUtility(), Acts::GeometryObject::geometryId(), Acts::VolumeMaterialMapper::State::materialBin, Acts::VolumeMaterialMapper::State::recordedMaterial, 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
volumeis the surface to be checked for a Proxy

Definition at line 124 of file VolumeMaterialMapper.cpp.

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

References 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 ( RecordedMaterialVolumePoint matPoint,
Acts::MaterialSlab  properties,
Vector3D  position,
Vector3D  direction 
) const
private

Create extra material point for the mapping

Parameters
matPointRecordedMaterialVolumePoint where the extra hit are stored
propertiesmaterial properties of the original hit
positionposition of the original hit
directiondirection of the track

Definition at line 185 of file VolumeMaterialMapper.cpp.

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

References Acts::MaterialSlab::scaleThickness(), and Acts::MaterialSlab::thickness().

+ 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]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 40 of file VolumeMaterialMapper.cpp.

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

References Acts::TrackingGeometry::highestTrackingVolume(), and Acts::Test::world.

+ 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 AccumulatedVolume material class to a surface material class type

Parameters
mState

Definition at line 210 of file VolumeMaterialMapper.cpp.

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

References Acts::AccumulatedVolumeMaterial::accumulate(), ACTS_DEBUG, Acts::AccumulatedVolumeMaterial::average(), Acts::createGrid2D(), Acts::createGrid3D(), Acts::mapMaterialPoints(), Acts::VolumeMaterialMapper::State::materialBin, Acts::VolumeMaterialMapper::State::recordedMaterial, 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 189 of file VolumeMaterialMapper.hpp.

View newest version in sPHENIX GitHub at line 189 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 255 of file VolumeMaterialMapper.cpp.

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

References Acts::VolumeMaterialMapper::State::geoContext, Acts::getDefaultLogger(), Acts::Logging::INFO, Acts::VolumeMaterialMapper::State::magFieldContext, Acts::VectorHelpers::makeVector4(), eicpy.build::options, and start().

+ 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 53 of file VolumeMaterialMapper.cpp.

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

References 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 192 of file VolumeMaterialMapper.hpp.

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

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

The logging instance.

Definition at line 198 of file VolumeMaterialMapper.hpp.

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

Referenced by logger().

StraightLinePropagator Acts::VolumeMaterialMapper::m_propagator
private

The straight line propagator.

Definition at line 195 of file VolumeMaterialMapper.hpp.

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


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