ATLAS Offline Software
Loading...
Searching...
No Matches
IMuonGeoUtilityTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 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 Amg::Transform3D& 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::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 std::vector< Amg::Vector3D > shapeEdges(const GeoShape *shape, const Amg::Transform3D &volTrf) const =0
Returns the edge points of the polygon like GeoShapes.
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 ...
Eigen::Affine3d Transform3D
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...