118{
119 std::stringstream displayBuffer;
120 for (
size_t il = 0;
il <
level; ++
il) displayBuffer <<
" ";
121
123
124
125
126
128 if (layerArray) {
129
132 for ( const auto & layIter : layers ){
133 if (!layIter)
134 ATH_MSG_WARNING(
"Zero-pointer found in LayerArray - indicates problem !");
135 else {
136
137 int layIndex = layIter->layerIndex().value();
138 if (layIndex){
141 ATH_MSG_DEBUG(displayBuffer.str() <<
"---[M] Material layer: successfully loaded material map for layer " << layIndex );
142 else if (
sc.isRecoverable())
143 ATH_MSG_WARNING(
"Failed to call process(const Layer&) on layers - but recoverable.");
144 else {
145 ATH_MSG_FATAL(
"Failed to call process(const Layer&) on layer. Aborting.");
146 return StatusCode::FAILURE;
147 }
148 } else
149 ATH_MSG_DEBUG(displayBuffer.str() <<
"---[o] Navigation layer: skipping.");
150 }
151 }
152 }
153
154
155 Trk::BinnedArray<Trk::TrackingVolume >* confinedVolumes = tvol.
confinedVolumes();
156
157 if (confinedVolumes) {
158 std::span<Trk::TrackingVolume * const> volumes = confinedVolumes->
arrayObjects();
159 std::span<Trk::TrackingVolume * const>::iterator volumesIter = volumes.begin();
160 for (; volumesIter != volumes.end(); ++volumesIter){
161 if (!(*volumesIter))
162 ATH_MSG_WARNING(
"Zero-pointer found in VolumeArray - indicates problem !");
163 if ((*volumesIter) &&
process(**volumesIter, layerMaterialMap, ++level).isFailure() ){
164 ATH_MSG_FATAL(
"Failed to call process(const TrackingVolume&) on confined volumes. Aborting.");
165 return StatusCode::FAILURE;
166 }
167 }
168 }
169
170
171 return StatusCode::SUCCESS;
172}
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