|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKDETDESCRALGS_MATERIALMAPPING_H
10 #define TRKDETDESCRALGS_MATERIALMAPPING_H
14 #include "GaudiKernel/ServiceHandle.h"
15 #include "GaudiKernel/ToolHandle.h"
33 #ifdef TRKDETDESCR_MEMUSAGE
39 #define ucharbin 0.00392157 // 1./double(1.*UCHAR_MAX)
41 #define uchar2uint(uchar) static_cast<unsigned int>(uchar)
42 #define uint2uchar(unint) static_cast<unsigned char>(unint)
44 #define uchar2dfrac(uchar) double(uchar * ucharbin)
45 #define dfrac2uchar(dfrac) lrint(dfrac* UCHAR_MAX)
54 class SurfaceMaterialRecord;
55 class LayerMaterialRecord;
56 class LayerMaterialMap;
58 class MaterialProperties;
59 class BinnedLayerMaterial;
60 class CompressedLayerMaterial;
118 "ExtrapolationEngine",
120 "Extrapolation Engine"
138 "LayerMaterialRecordAnalyser",
140 "Layer material analyser for the layer material record"
144 "LayerMaterialAnalysers",
146 "Layer material analysers per creator (if wanted)"
150 "LayerMaterialCreators",
152 "Layer material creators"
160 "IMaterialMapper algTool" };
170 std::map<const Layer*, LayerMaterialRecord>
172 std::map<const Layer*, bool>
187 const EventContext& ctx)
const
195 return handle.
cptr();
200 "TrackingGeometryReadKey",
202 "Key of the TrackingGeometry conditions data."
205 #ifdef TRKDETDESCR_MEMUSAGE
214 retrieveTrackingGeometry(Gaudi::Hive::currentContext());
215 if (!tracking_geometry) {
216 ATH_MSG_FATAL(
"Did not get valid TrackingGeometry. Aborting.");
217 throw GaudiException(
"MaterialMapping",
218 "Problem with TrackingGeometry loading.",
219 StatusCode::FAILURE);
221 return *tracking_geometry;
Property holding a SG store/key/clid from which a ReadHandle is made.
ToolHandleArray< ILayerMaterialCreator > m_layerMaterialCreators
std::map< const Layer *, LayerMaterialRecord > m_layerRecords
this is the general record for the search
SG::ReadCondHandleKey< TrackingGeometry > m_trackingGeometryReadKey
SG::ReadHandleKey< Trk::ElementTable > m_inputEventElementTable
input event table
void registerVolume(const Trk::TrackingVolume &tvol, int lvl)
Output information with Level.
std::map< const Layer *, bool > m_layersRecordedPerEvent
these are the layers hit per event - for empty hit scaling
double m_etaCutOff
general steering
StatusCode handleTrackingGeometry()
Retrieve the TrackingGeometry and its informations.
Property holding a SG store/key/clid from which a ReadHandle is made.
const TrackingGeometry & trackingGeometry() const
void throwFailedToGetTrackingGeometry() const
double m_minCompositionFraction
minimal fraction to be accounted for the composition recording
double m_accumulatedMaterialXX0
the accumulated material information
std::string m_outputLayerMaterialSetName
void assignLayerMaterialProperties(Trk::TrackingVolume &tvol, Trk::LayerMaterialMap *propSet)
create the LayerMaterialRecord */
int m_etaSide
needed for debugging: -1 negative | 0 all | 1 positive
::StatusCode StatusCode
StatusCode definition for legacy code.
bool m_mapComposition
map the composition of the material
Trk::ElementTable * m_elementTable
the accumulated element table
std::string m_mappingVolumeName
ToolHandleArray< ILayerMaterialAnalyser > m_layerMaterialAnalysers
~MaterialMapping()
Default Destructor.
ToolHandle< IExtrapolationEngine > m_extrapolationEngine
StatusCode initialize()
standard Athena-Algorithm method
ToolHandle< IMaterialMapper > m_materialMapper
Ensure that the ATLAS eigen extensions are properly loaded.
StatusCode execute()
standard Athena-Algorithm method
Eigen::Matrix< double, 3, 1 > Vector3D
ToolHandle< ILayerMaterialAnalyser > m_layerMaterialRecordAnalyser
bool m_useLayerThickness
use the actual layer thickness
bool m_mapMaterial
Mapper and Inspector.
bool associateHit(const Trk::Layer &tvol, const Amg::Vector3D &pos, const Amg::Vector3D &layerHitPosition, double stepl, const Trk::Material &mat)
Associate the Step to the Layer.
bool m_checkForEmptyHits
use extrapoaltion engine to check for empty hits
MaterialMapping(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
void insertLayerMaterialRecord(const Trk::Layer &lay)
const Trk::TrackingVolume * m_mappingVolume
SG::ReadHandleKey< MaterialStepCollection > m_inputMaterialStepCollection
output / input steering
StatusCode finalize()
standard Athena-Algorithm method
const TrackingGeometry * retrieveTrackingGeometry(const EventContext &ctx) const
int m_layerMaterialScreenOutput
const_pointer_type cptr()