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"
79 const EventContext& ctx)
const
92 {
this,
"TrackingGeometryReadKey",
"",
"Key of the TrackingGeometry conditions data."};
110 if (!tracking_geometry){
111 ATH_MSG_FATAL(
"Did not get valid TrackingGeometry. Aborting." );
112 throw GaudiException(
"MaterialValidation",
"Problem with TrackingGeometry loading.", StatusCode::FAILURE);
114 return *tracking_geometry;
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
const_pointer_type cptr()
Interface class IMaterialMapper.
int m_maxMaterialValidationEvents
limit the number of validation records to avoid 2G files
StatusCode finalize()
standard Athena-Algorithm method
~MaterialValidation()
Default Destructor.
const TrackingGeometry & trackingGeometry() const
StatusCode execute()
standard Athena-Algorithm method
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.
double m_etaMax
eta boundary
SG::ReadCondHandleKey< TrackingGeometry > m_trackingGeometryReadKey
StatusCode initialize()
standard Athena-Algorithm method
bool m_runNativeNavigation
validate the native TG navigation
void throwFailedToGetTrackingGeometry() const
const TrackingGeometry * retrieveTrackingGeometry(const EventContext &ctx) const
double m_etaMin
eta boundary
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 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