9#ifndef TRKDETDESCRALGS_MATERIALVALIDATION_H
10#define TRKDETDESCRALGS_MATERIALVALIDATION_H
14#include "GaudiKernel/IRndmGenSvc.h"
15#include "GaudiKernel/RndmGenerators.h"
16#include "GaudiKernel/ToolHandle.h"
68 StatusCode
execute(
const EventContext& ctx);
82 const EventContext& ctx)
const
86 if (!handle.isValid()) {
95 {
this,
"TrackingGeometryReadKey",
"",
"Key of the TrackingGeometry conditions data."};
99 {
this,
"MaterialMapper",
"Trk::MaterialMapper/MappingMaterialMapper"};
102 Gaudi::Property<double>
m_etaMin{
this,
"MinEta", -3.};
103 Gaudi::Property<double>
m_etaMax{
this,
"MaxEta", 3.};
112 if (!tracking_geometry){
113 ATH_MSG_FATAL(
"Did not get valid TrackingGeometry. Aborting." );
114 throw GaudiException(
"MaterialValidation",
"Problem with TrackingGeometry loading.", StatusCode::FAILURE);
116 return *tracking_geometry;
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
StatusCode finalize()
standard Athena-Algorithm method
Gaudi::Property< bool > m_runNativeNavigation
validate the native TG navigation
~MaterialValidation()
Destructor.
const TrackingGeometry & trackingGeometry() const
PositionAtBoundary collectMaterialAndExit(const Trk::TrackingVolume &tvol, const Amg::Vector3D &position, const Amg::Vector3D &direction)
ToolHandle< IMaterialMapper > m_materialMapper
Mapper and Inspector.
Rndm::Numbers * m_flatDist
Random generator for flat distribution.
Gaudi::Property< double > m_etaMin
eta boundary
SG::ReadCondHandleKey< TrackingGeometry > m_trackingGeometryReadKey
StatusCode execute(const EventContext &ctx)
standard Athena-Algorithm method
StatusCode initialize()
standard Athena-Algorithm method
void throwFailedToGetTrackingGeometry() const
Gaudi::Property< double > m_etaMax
eta boundary
const TrackingGeometry * retrieveTrackingGeometry(const EventContext &ctx) const
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
double m_accTinX0
accumulated t in X0
Abstract Base Class for tracking surfaces.
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
std::pair< Amg::Vector3D, const Trk::TrackingVolume * > PositionAtBoundary
const Amg::Vector3D & direction() const
Method to retrieve the direction at the Intersection.
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.
const Trk::Surface * bSurface
VolumeExit(const Trk::TrackingVolume *itv=0, const Trk::Surface *ibs=0, Amg::Vector3D iexit=Amg::Vector3D(0., 0., 0.))
const Trk::TrackingVolume * nVolume