|
ATLAS Offline Software
|
Go to the documentation of this file.
23 declareInterface<Trk::IGeometryProcessor>(
this);
35 return StatusCode::SUCCESS;
42 return StatusCode::SUCCESS;
53 return process(*worldVolume, 0);
56 ATH_MSG_FATAL(
"No highest level TrackingVolume found. Stopping recursive parsing, abort job.");
57 return StatusCode::FAILURE;
63 std::stringstream displayBuffer;
64 for (
size_t il = 0;
il <
level; ++
il) displayBuffer <<
" ";
69 if (processNode(tvol,
level).isFailure() ){
70 ATH_MSG_FATAL(
"Failed to call processNode(const TrackingVolume&). Aborting.");
71 return StatusCode::FAILURE;
80 for (
const auto & layIter :
layers){
82 ATH_MSG_WARNING(
"Zero-pointer found in LayerArray - indicates problem !");
84 ATH_MSG_FATAL(
"Failed to call process(const Layer&) on confined layers. Aborting.");
85 return StatusCode::FAILURE;
92 for (
auto & bSurface : bSurfaces){
93 if (bSurface->surfaceRepresentation().associatedLayer()){
97 *bSurface->surfaceRepresentation().associatedLayer()),
level)
99 ATH_MSG_FATAL(
"Failed to call process(const Layer&) on boundary "
101 return StatusCode::FAILURE;
110 if (confinedVolumes) {
112 for (
const auto & volumesIter : volumes){
114 ATH_MSG_WARNING(
"Zero-pointer found in VolumeArray - indicates problem !");
115 if (volumesIter &&
process(*volumesIter, ++
level).isFailure() ){
116 ATH_MSG_FATAL(
"Failed to call process(const TrackingVolume&) on confined volumes. Aborting.");
117 return StatusCode::FAILURE;
123 return StatusCode::SUCCESS;
130 std::stringstream displayBuffer;
131 for (
size_t il = 0;
il <
level; ++
il) displayBuffer <<
" ";
135 if (processNode(lay,
level).isFailure()){
136 ATH_MSG_FATAL(
"Failed to call processNode(const Layer&). Aborting.");
137 return StatusCode::FAILURE;
143 ATH_MSG_VERBOSE(displayBuffer.str() <<
" ---> has " << layerSurfaces.size() <<
" surfaces on the layer.");
145 auto laySurfIter = layerSurfaces.begin();
146 auto laySurfIterEnd = layerSurfaces.end();
148 for ( ; laySurfIter != laySurfIterEnd; ++laySurfIter) {
150 ATH_MSG_WARNING(
"Zero-pointer found in SurfaceArray - indicates problem !");
151 if ((*laySurfIter) &&
process(**laySurfIter,
level).isFailure()){
152 ATH_MSG_FATAL(
"Failed to call process(const Surface&) on confined layer surfaces. Aborting.");
153 return StatusCode::FAILURE;
158 return StatusCode::SUCCESS;
163 return processNode(surf,
level);
168 return StatusCode::SUCCESS;
173 return StatusCode::SUCCESS;
177 return StatusCode::SUCCESS;
virtual StatusCode processNode(const TrackingVolume &tvol, size_t level=0) const
Dedicated action for the different processors.
StatusCode initialize()
AlgTool initialize method.
std::vector< SharedObject< BoundarySurface< TrackingVolume > > > & boundarySurfaces()
Method to return the BoundarySurfaces.
virtual StatusCode process(TrackingGeometry &tgeo) const
Processor Action to work on TrackingGeometry& tgeo.
RecursiveGeometryProcessor(const std::string &, const std::string &, const IInterface *)
Constructor.
#define ATH_MSG_VERBOSE(x)
const LayerArray * confinedLayers() const
Return the subLayer array.
const SurfaceArray * surfaceArray() const
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
StatusCode finalize()
AlgTool finalize method.
const TrackingVolume * highestTrackingVolume() const
return the world
::StatusCode StatusCode
StatusCode definition for legacy code.
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
virtual ~RecursiveGeometryProcessor()
Destructor.
virtual BinnedArraySpan< T *const > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
#define ATH_MSG_WARNING(x)
const TrackingVolumeArray * confinedVolumes() const
Return the subLayer array.
std::span< T > BinnedArraySpan
const LayerIndex & layerIndex() const
get the layerIndex