7#include <GeoModelKernel/GeoBox.h>
8#include <GeoModelKernel/GeoTrd.h>
9#include <GeoModelKernel/GeoSimplePolygonBrep.h>
11#include <GeoModelKernel/GeoTube.h>
13#include <GeoModelKernel/GeoShapeUnion.h>
14#include <GeoModelKernel/GeoShapeIntersection.h>
15#include <GeoModelKernel/GeoShapeSubtraction.h>
16#include <GeoModelKernel/GeoShapeShift.h>
18#include <GeoModelKernel/GeoTransform.h>
20#include <GeoModelKernel/GeoVolumeCursor.h>
22#include <GeoModelHelpers/GeoShapeUtils.h>
23#include <GeoModelHelpers/printVolume.h>
24#include <GeoModelHelpers/TransformToStringConverter.h>
42 if (inShape->typeID() == GeoShapeShift::getClassTypeID()) {
43 const auto shift = dynamic_pointer_cast<const GeoShapeShift>(compressShift(inShape));
45 "Shape is a shift by "<<GeoTrf::toString(shift->getX())
46 <<
". Continue navigation "<<printGeoShape(shift));
49 if (inShape->typeID() == GeoShapeSubtraction::getClassTypeID()){
51 "Shape is a subtraction. Extract the basic shape. Continue navigation "<<inShape);
52 const GeoShapeSubtraction* subtract =
static_cast<const GeoShapeSubtraction*
>(inShape);
60 PVConstLink parent{physVol->getParent()}, child{physVol};
62 const GeoGraphNode *
const * node1 = parent->findChildNode(child);
63 const GeoGraphNode *
const * fence = parent->getChildNode(0);
64 for(
const GeoGraphNode *
const * current = node1 - 1; current>=fence; current--) {
65 const GeoGraphNode*
node{*current};
66 if (
dynamic_cast<const GeoVPhysVol*
>(
node)) {
69 const GeoAlignableTransform* alignTrans{
dynamic_cast<const GeoAlignableTransform*
>(
node)};
75 parent = child->getParent();
81 return getAllSubVolumes(physVol,[&volumeName](
const physVolWithTrans& child){
82 return child.volume->getLogVol()->getName() == volumeName || child.nodeName == volumeName;
86 return getBooleanComponents(booleanShape);
92 for (
unsigned int i = 0; i < polygon.getNVertices(); ++i) {
93 polygonEdges.emplace_back(polygon.getXVertex(i), polygon.getYVertex(i));
101 return getPolyShapeEdges(shape, refTrf);
#define ATH_MSG_VERBOSE(x)
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Eigen::Affine3d Transform3D
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
IMuonGeoUtilityTool::physVolWithTrans physVolWithTrans