ATLAS Offline Software
Loading...
Searching...
No Matches
IMuonGeoUtilityTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef MUONGEOMODELR4_IMUONGEOUTILITYTOOL_H
5#define MUONGEOMODELR4_IMUONGEOUTILITYTOOL_H
6
7
10
11#include "GeoModelKernel/GeoFullPhysVol.h"
12#include "GeoModelKernel/GeoPhysVol.h"
13#include "GeoModelKernel/GeoShape.h"
14#include "GeoModelKernel/GeoSimplePolygonBrep.h"
15#include "GeoModelKernel/GeoAlignableTransform.h"
16#include "GeoModelHelpers/getChildNodesWithTrf.h"
17#include "GaudiKernel/IAlgTool.h"
18
19class GeoShapeUnion;
20
21namespace MuonGMR4{
22
23class IMuonGeoUtilityTool : virtual public IAlgTool {
24 public:
27
31 virtual const GeoAlignableTransform* findAlignableTransform(const PVConstLink& physVol) const = 0;
35 virtual const GeoShape* extractShape(const PVConstLink& physVol) const = 0;
39 virtual const GeoShape* extractShape(const GeoShape* inShape) const = 0;
40
43 using physVolWithTrans = GeoChildNodeWithTrf;
46 virtual std::vector<physVolWithTrans> findAllLeafNodesByName(const PVConstLink& physVol, const std::string& volumeName) const = 0;
48 virtual std::vector<const GeoShape*> getComponents(const GeoShape* booleanShape) const = 0;
49
51 virtual std::string dumpShape(const GeoShape* inShape) const = 0;
53 virtual std::string dumpVolume(const PVConstLink& physVol) const = 0;
55 virtual std::vector<Amg::Vector2D> polygonEdges(const GeoSimplePolygonBrep& polygon) const = 0;
56
58 virtual std::vector<Amg::Vector3D> shapeEdges(const GeoShape* shape,
59 const Acts::Transform3& volTrf) const = 0;
60
61
62};
63
64}
65#endif
virtual std::vector< const GeoShape * > getComponents(const GeoShape *booleanShape) const =0
Splits a boolean shape into its building blocks.
virtual const GeoShape * extractShape(const GeoShape *inShape) const =0
Navigates through the shape hiarchy to return the first shape which is neither a shift or in case of ...
DeclareInterfaceID(IMuonGeoUtilityTool, 1, 0)
Gaudi interface ID.
virtual std::vector< physVolWithTrans > findAllLeafNodesByName(const PVConstLink &physVol, const std::string &volumeName) const =0
Searches through all child volumes and collects the nodes where the logical volumes have the requeste...
virtual std::string dumpShape(const GeoShape *inShape) const =0
virtual const GeoShape * extractShape(const PVConstLink &physVol) const =0
Navigates through the volume shape hiearchy to return the first shape which is neither a shift or in ...
virtual std::string dumpVolume(const PVConstLink &physVol) const =0
virtual std::vector< Amg::Vector3D > shapeEdges(const GeoShape *shape, const Acts::Transform3 &volTrf) const =0
Returns the edge points of the polygon like GeoShapes.
virtual std::vector< Amg::Vector2D > polygonEdges(const GeoSimplePolygonBrep &polygon) const =0
Transforms the vertices of the Polygon shape into a std::vector consisting of Amg::Vector2D objects.
GeoChildNodeWithTrf physVolWithTrans
Helper struct to cache a PhysVolume pointer together with the transformation to go from the volume to...
virtual const GeoAlignableTransform * findAlignableTransform(const PVConstLink &physVol) const =0
Returns the first alignable transform in the root subtree upstream the volume the volume must not be ...
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...