58 const std::string& gdml,
bool debug);
63 G4VPhysicalVolume* findDaughterByName(G4VPhysicalVolume* pvol, G4String name);
64 void getAllDaughters(G4VPhysicalVolume* pvol);
66 static bool compareZlocation(
const G4VPhysicalVolume& pvol_a,
67 const G4VPhysicalVolume& pvol_b) {
68 return (pvol_a.GetTranslation().z() < pvol_b.GetTranslation().z());
71 void ConvertG4Rot(
const G4RotationMatrix* g4rot,
72 Acts::RotationMatrix3& rot)
const;
73 Acts::Vector3 ConvertG4Pos(
const G4ThreeVector& g4pos)
const;
75 void dumpGeometry(
const std::string& outputDir,
76 const Acts::GeometryContext& gctx)
const;
78 std::shared_ptr<const Acts::TrackingGeometry> getTG()
const {
82 Acts::Transform3 GetTransform(
const G4VPhysicalVolume& phex,
83 bool toTrackingFrame =
false)
const;
85 Acts::Transform3 toTracker(
const Acts::Transform3& trans)
const;
90 void makeLayerSurfacesMap();
92 void getSurfaces(std::vector<const Acts::Surface*>& surfaces)
const;
94 const Acts::Surface* getSurface(
int layerid)
const {
95 return layer_surface_map_.at(layerid);
98 std::unordered_map<unsigned int, const Acts::Surface*> layer_surface_map_;
102 std::vector<std::shared_ptr<DetectorElement>> detElements;
107 const Acts::GeometryContext& gctx_;
109 std::string gdml_{
""};
112 Acts::RotationMatrix3 x_rot_, y_rot_;
113 std::shared_ptr<const Acts::TrackingGeometry> tGeometry_{
nullptr};
114 G4VPhysicalVolume* fWorldPhysVol_{
nullptr};