23 declareInterface<Trk::IGeometryProcessor>(
this);
36 return StatusCode::SUCCESS;
47 return process(*worldVolume, 0);
50 ATH_MSG_FATAL(
"No highest level TrackingVolume found. Stopping recursive parsing, abort job.");
51 return StatusCode::FAILURE;
57 std::stringstream displayBuffer;
58 for (
size_t il = 0; il < level; ++il) displayBuffer <<
" ";
66 std::span<Trk::Layer * const> layers = layerArray->
arrayObjects();
67 auto layIter = layers.begin();
68 auto layIterE = layers.end();
69 ATH_MSG_VERBOSE(displayBuffer.str() <<
"--> has " << layers.size() <<
" confined layers." );
70 for ( ; layIter != layIterE; ++layIter){
72 ATH_MSG_WARNING(
"Zero-pointer found in LayerArray - indicates problem !");
73 if ((*layIter) &&
process(**layIter, level).isFailure()){
74 ATH_MSG_FATAL(
"Failed to call process(const Layer&) on confined layers. Aborting.");
75 return StatusCode::FAILURE;
83 if (confinedVolumes) {
84 std::span<Trk::TrackingVolume * const> volumes = confinedVolumes->
arrayObjects();
85 auto volumesIter = volumes.begin();
86 for (; volumesIter != volumes.end(); ++volumesIter){
88 ATH_MSG_WARNING(
"Zero-pointer found in VolumeArray - indicates problem !");
89 if ((*volumesIter) &&
process(**volumesIter, ++level).isFailure() ){
90 ATH_MSG_FATAL(
"Failed to call process(const TrackingVolume&) on confined volumes. Aborting.");
91 return StatusCode::FAILURE;
97 return StatusCode::SUCCESS;
106 return StatusCode::SUCCESS;
112 std::stringstream displayBuffer;
113 for (
size_t il = 0; il < level; ++il) displayBuffer <<
" ";
115 ATH_MSG_DEBUG(displayBuffer.str() <<
" assigning material for Layer with Index: " << lIndex.
value());
116 ATH_MSG_VERBOSE(displayBuffer.str() <<
" Layer memory adress is : " << &lay);
121 return StatusCode::SUCCESS;
126 return StatusCode::SUCCESS;
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
virtual std::span< T *const > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
It extends the LayerMaterialProperties base class.
LayerIndex for the identification of layers in a simplified detector geometry of Cylinders and Discs.
int value() const
layerIndex expressed in an integer
Base Class for a Detector Layer in the Tracking realm.
void assignMaterialProperties(const LayerMaterialProperties &, double scale=1.0)
assignMaterialPropeties
const LayerMaterialProperties * layerMaterialProperties() const
getting the LayerMaterialProperties including full/pre/post update
const LayerIndex & layerIndex() const
get the layerIndex
Material with information about thickness of material.
Abstract Base Class for tracking surfaces.
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
const TrackingVolume * highestTrackingVolume() const
return the world
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
const LayerArray * confinedLayers() const
Return the subLayer array.
const TrackingVolumeArray * confinedVolumes() const
Return the subLayer array.
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
const std::string process
BinnedArray< Layer > LayerArray
simply for the eye