106{
107 std::stringstream displayBuffer;
108 for (
size_t il = 0;
il <
level; ++
il) displayBuffer <<
" ";
109
111
112
113
114
116 if (layerArray) {
117
120 for ( const auto & layIter : layers ){
121 if (!layIter)
122 ATH_MSG_WARNING(
"Zero-pointer found in LayerArray - indicates problem !");
123 else {
124
125 int layIndex = layIter->layerIndex().value();
126 if (layIndex){
129 ATH_MSG_DEBUG(displayBuffer.str() <<
"---[M] Material layer: successfully loaded material map for layer " << layIndex );
130 else if (
sc.isRecoverable())
131 ATH_MSG_WARNING(
"Failed to call process(const Layer&) on layers - but recoverable.");
132 else {
133 ATH_MSG_FATAL(
"Failed to call process(const Layer&) on layer. Aborting.");
134 return StatusCode::FAILURE;
135 }
136 } else
137 ATH_MSG_DEBUG(displayBuffer.str() <<
"---[o] Navigation layer: skipping.");
138 }
139 }
140 }
141
142
143 Trk::BinnedArray<Trk::TrackingVolume >* confinedVolumes = tvol.
confinedVolumes();
144
145 if (confinedVolumes) {
146 std::span<Trk::TrackingVolume * const> volumes = confinedVolumes->
arrayObjects();
147 std::span<Trk::TrackingVolume * const>::iterator volumesIter = volumes.begin();
148 for (; volumesIter != volumes.end(); ++volumesIter){
149 if (!(*volumesIter))
150 ATH_MSG_WARNING(
"Zero-pointer found in VolumeArray - indicates problem !");
151 if ((*volumesIter) &&
process(**volumesIter, layerMaterialMap, ++level).isFailure() ){
152 ATH_MSG_FATAL(
"Failed to call process(const TrackingVolume&) on confined volumes. Aborting.");
153 return StatusCode::FAILURE;
154 }
155 }
156 }
157
158
159 return StatusCode::SUCCESS;
160}
virtual std::span< T *const > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
const LayerArray * confinedLayers() const
Return the subLayer array.
const TrackingVolumeArray * confinedVolumes() const
Return the subLayer array.
layers(flags, cells_name, *args, **kw)
Here we define wrapper functions to set up all of the standard corrections.
BinnedArray< Layer > LayerArray
simply for the eye