ATLAS Offline Software
MuonGeoUtilityTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONGEOMODELR4_MUONGEOUTILITYTOOL_H
6 #define MUONGEOMODELR4_MUONGEOUTILITYTOOL_H
7 
13 #include <GeoModelKernel/GeoSimplePolygonBrep.h>
14 
15 
16 namespace MuonGMR4 {
17 
18 class MuonGeoUtilityTool final : virtual public IMuonGeoUtilityTool, public AthAlgTool {
19 
20  public:
21  // Constructor
22  MuonGeoUtilityTool(const std::string &type, const std::string &name,
23  const IInterface *parent);
24 
25  // Destructor
26  virtual ~MuonGeoUtilityTool() override final;
27 
28  const GeoAlignableTransform* findAlignableTransform(const PVConstLink& physVol) const override final;
29 
30  const GeoShape* extractShape(const PVConstLink& physVol) const override final;
31  const GeoShape* extractShape(const GeoShape* inShape) const override final;
32 
33  // Navigates through the volume to find the shifts / rotations etc.
34  Amg::Transform3D extractShifts(const PVConstLink& physVol) const override final;
35  Amg::Transform3D extractShifts(const GeoShape* inShape) const override final;
36 
37 
38 
39  std::vector<physVolWithTrans> findAllLeafNodesByName(const PVConstLink& physVol, const std::string& volumeName) const override final;
40 
41  std::vector<const GeoShape*> getComponents(const GeoShape* booleanShape) const override final;
43  std::string dumpShape(const GeoShape* inShape) const override final;
44 
45  std::string dumpVolume(const PVConstLink& physVol) const override final;
46 
48  std::vector<Amg::Vector2D> polygonEdges(const GeoSimplePolygonBrep& polygon) const override;
49 
50  std::vector<Amg::Vector3D> shapeEdges(const GeoShape* shape,
51  const Amg::Transform3D& refTrf) const override;
52 
53  private:
54  std::string dumpVolume(const PVConstLink& physVol, const std::string& childDelim) const;
55 
56 };
57 } // namespace MuonGMR4
58 #endif
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
MuonGMR4::MuonGeoUtilityTool::~MuonGeoUtilityTool
virtual ~MuonGeoUtilityTool() override final
MuonGMR4::MuonGeoUtilityTool
Definition: MuonGeoUtilityTool.h:18
GeoModelTool.h
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
MuonGMR4::MuonGeoUtilityTool::getComponents
std::vector< const GeoShape * > getComponents(const GeoShape *booleanShape) const override final
Splits a boolean shape into its building blocks.
Definition: MuonGeoUtilitiyTool.cxx:174
MuonGMR4::MuonGeoUtilityTool::dumpVolume
std::string dumpVolume(const PVConstLink &physVol) const override final
Definition: MuonGeoUtilitiyTool.cxx:93
MuonGMR4::IMuonGeoUtilityTool
Definition: IMuonGeoUtilityTool.h:23
MuonGMR4
A muon chamber is a collection of readout elements belonging to the same station.
Definition: ChamberAssembleTool.h:16
MuonGMR4::MuonGeoUtilityTool::polygonEdges
std::vector< Amg::Vector2D > polygonEdges(const GeoSimplePolygonBrep &polygon) const override
Transforms the vertices of the Polygon shape into a std::vector consisting of Amg::Vector2D objects.
Definition: MuonGeoUtilitiyTool.cxx:178
vector
Definition: MultiHisto.h:13
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AthAlgTool.h
MuonGMR4::IMuonGeoUtilityTool::physVolWithTrans
GeoChildNodeWithTrf physVolWithTrans
Helper struct to cache a PhysVolume pointer together with the transformation to go from the volume to...
Definition: IMuonGeoUtilityTool.h:42
test_pyathena.parent
parent
Definition: test_pyathena.py:15
MuonGMR4::MuonGeoUtilityTool::extractShifts
Amg::Transform3D extractShifts(const PVConstLink &physVol) const override final
Definition: MuonGeoUtilitiyTool.cxx:69
MuonGMR4::MuonGeoUtilityTool::findAlignableTransform
const GeoAlignableTransform * findAlignableTransform(const PVConstLink &physVol) const override final
Returns the next Geo alignable transform in the GeoModelTree upstream.
Definition: MuonGeoUtilitiyTool.cxx:135
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
MuonGMR4::MuonGeoUtilityTool::findAllLeafNodesByName
std::vector< physVolWithTrans > findAllLeafNodesByName(const PVConstLink &physVol, const std::string &volumeName) const override final
Searches through all child volumes and collects the nodes where the logical volumes have the requeste...
Definition: MuonGeoUtilitiyTool.cxx:152
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonGMR4::MuonGeoUtilityTool::MuonGeoUtilityTool
MuonGeoUtilityTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: MuonGeoUtilitiyTool.cxx:34
MuonGMR4::MuonGeoUtilityTool::dumpShape
std::string dumpShape(const GeoShape *inShape) const override final
Dumps the shape to string.
Definition: MuonGeoUtilitiyTool.cxx:92
AthAlgTool
Definition: AthAlgTool.h:26
MuonGMR4::MuonGeoUtilityTool::shapeEdges
std::vector< Amg::Vector3D > shapeEdges(const GeoShape *shape, const Amg::Transform3D &refTrf) const override
Returns the edge points of the polygon like GeoShapes.
Definition: MuonGeoUtilitiyTool.cxx:188
checker_macros.h
Define macros for attributes used to control the static checker.
IMuonGeoUtilityTool.h
IGeoDbTagSvc.h
MuonGMR4::MuonGeoUtilityTool::extractShape
const GeoShape * extractShape(const PVConstLink &physVol) const override final
Navigates throughs the volume to find a Box / Prd shape.
Definition: MuonGeoUtilitiyTool.cxx:40