DD4hep  1.32.1
Detector Description Toolkit for High Energy Physics
Classes | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
dd4hep::rec::MaterialManager Class Reference

#include <MaterialManager.h>

Classes

class  ScanData
 

Public Member Functions

 MaterialManager (Volume world)
 Instantiate the MaterialManager for this (world) volume. More...
 
 MaterialManager ()=delete
 
 ~MaterialManager ()
 
const MaterialVecmaterialsBetween (const Vector3D &p0, const Vector3D &p1, double eps=MaterialManager::epsilon)
 
const ScanData entriesBetween (const Vector3D &p0, const Vector3D &p1, double eps=MaterialManager::epsilon)
 As above, but optionally allow access to traversed placements. More...
 
const PlacementVecplacementsBetween (const Vector3D &p0, const Vector3D &p1, double eps=MaterialManager::epsilon)
 
const MaterialmaterialAt (const Vector3D &pos)
 
PlacedVolume placementAt (const Vector3D &pos)
 
MaterialData createAveragedMaterial (const MaterialVec &materials)
 

Static Public Attributes

static constexpr const double epsilon = 1e-4
 

Protected Attributes

MaterialVec _mV
 Cached materials. More...
 
Material _m
 
PlacedVolume _pv
 Cached nodes. More...
 
PlacementVec _placeV
 
Vector3D _p0
 cached last points More...
 
Vector3D _p1
 
Vector3D _pos
 
TGeoManager * _tgeoMgr
 Reference to the TGeoManager. More...
 

Detailed Description

Material manager provides access to the material properties of the detector. Material can be accessed either for a given point or as a list of materials along a straight line between two points.

Author
F.Gaede, DESY
Date
May, 19 2014
Version
$Id:$

Definition at line 41 of file MaterialManager.h.

Constructor & Destructor Documentation

◆ MaterialManager() [1/2]

dd4hep::rec::MaterialManager::MaterialManager ( Volume  world)

Instantiate the MaterialManager for this (world) volume.

Definition at line 27 of file MaterialManager.cpp.

◆ MaterialManager() [2/2]

dd4hep::rec::MaterialManager::MaterialManager ( )
delete

◆ ~MaterialManager()

dd4hep::rec::MaterialManager::~MaterialManager ( )

Definition at line 31 of file MaterialManager.cpp.

Member Function Documentation

◆ createAveragedMaterial()

MaterialData dd4hep::rec::MaterialManager::createAveragedMaterial ( const MaterialVec materials)

Create a material with averaged properties from all materials in the list. A and Z are averaged by relative number of atoms(molecules), rho is averaged by relative volume and the inverse radiation and interaction lengths are averaged by relative weight.

Definition at line 208 of file MaterialManager.cpp.

◆ entriesBetween()

const MaterialManager::ScanData dd4hep::rec::MaterialManager::entriesBetween ( const Vector3D p0,
const Vector3D p1,
double  eps = MaterialManager::epsilon 
)

As above, but optionally allow access to traversed placements.

Definition at line 40 of file MaterialManager.cpp.

◆ materialAt()

const Material & dd4hep::rec::MaterialManager::materialAt ( const Vector3D pos)

Get the material at the given position.

Definition at line 178 of file MaterialManager.cpp.

◆ materialsBetween()

const MaterialVec & dd4hep::rec::MaterialManager::materialsBetween ( const Vector3D p0,
const Vector3D p1,
double  eps = MaterialManager::epsilon 
)

Get a vector with all the materials between the two points p0 and p1 with the corresponding thicknesses - element type is std::pair< Material, double >. Materials with a thickness smaller than epsilon (default 1e-4=1mu) are ignored. Avoid calling this method in inner loops as the computation is not cheap. Ideally the result should be cached, for example as an averaged material

See also
createAveragedMaterial().

Definition at line 47 of file MaterialManager.cpp.

◆ placementAt()

PlacedVolume dd4hep::rec::MaterialManager::placementAt ( const Vector3D pos)

Get the placed volume at the given position.

Definition at line 193 of file MaterialManager.cpp.

◆ placementsBetween()

const PlacementVec & dd4hep::rec::MaterialManager::placementsBetween ( const Vector3D p0,
const Vector3D p1,
double  eps = MaterialManager::epsilon 
)

Get a vector with all the placements between the two points p0 and p1

Definition at line 35 of file MaterialManager.cpp.

Member Data Documentation

◆ _m

Material dd4hep::rec::MaterialManager::_m
protected

Definition at line 99 of file MaterialManager.h.

◆ _mV

MaterialVec dd4hep::rec::MaterialManager::_mV
protected

Cached materials.

Definition at line 98 of file MaterialManager.h.

◆ _p0

Vector3D dd4hep::rec::MaterialManager::_p0
protected

cached last points

Definition at line 104 of file MaterialManager.h.

◆ _p1

Vector3D dd4hep::rec::MaterialManager::_p1
protected

Definition at line 104 of file MaterialManager.h.

◆ _placeV

PlacementVec dd4hep::rec::MaterialManager::_placeV
protected

Definition at line 102 of file MaterialManager.h.

◆ _pos

Vector3D dd4hep::rec::MaterialManager::_pos
protected

Definition at line 104 of file MaterialManager.h.

◆ _pv

PlacedVolume dd4hep::rec::MaterialManager::_pv
protected

Cached nodes.

Definition at line 101 of file MaterialManager.h.

◆ _tgeoMgr

TGeoManager* dd4hep::rec::MaterialManager::_tgeoMgr
protected

Reference to the TGeoManager.

Definition at line 106 of file MaterialManager.h.

◆ epsilon

constexpr const double dd4hep::rec::MaterialManager::epsilon = 1e-4
staticconstexpr

Definition at line 44 of file MaterialManager.h.


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