61 const std::string& gdml);
66 G4VPhysicalVolume* findDaughterByName(G4VPhysicalVolume* pvol, G4String name);
67 void getAllDaughters(G4VPhysicalVolume* pvol);
69 static bool compareZlocation(
const G4VPhysicalVolume& pvol_a,
70 const G4VPhysicalVolume& pvol_b) {
71 return (pvol_a.GetTranslation().z() < pvol_b.GetTranslation().z());
74 void convertG4Rot(
const G4RotationMatrix* g4rot,
75 Acts::RotationMatrix3& rot)
const;
76 Acts::Vector3 convertG4Pos(
const G4ThreeVector& g4pos)
const;
78 void dumpGeometry(
const std::string& outputDir,
79 const Acts::GeometryContext& gctx)
const;
81 std::shared_ptr<const Acts::TrackingGeometry> getTG()
const {
85 Acts::Transform3 getTransform(
const G4VPhysicalVolume& phex,
86 bool toTrackingFrame =
false)
const;
88 Acts::Transform3 toTracker(
const Acts::Transform3& trans)
const;
93 void makeLayerSurfacesMap();
95 void getSurfaces(std::vector<const Acts::Surface*>& surfaces)
const;
97 const Acts::Surface* getSurface(
int layerid)
const {
98 return layer_surface_map_.at(layerid);
101 std::unordered_map<unsigned int, const Acts::Surface*> layer_surface_map_;
110 std::vector<std::shared_ptr<tracking::geo::DetectorElement>> det_elements_;
113 const Acts::GeometryContext& gctx_;
114 std::string gdml_{
""};
116 Acts::RotationMatrix3 x_rot_, y_rot_;
117 std::shared_ptr<const Acts::TrackingGeometry> t_geometry_{
nullptr};
118 G4VPhysicalVolume* f_world_phys_vol_{
nullptr};
121 std::string field_map_file_{
""};
122 enableLogging(
"TrackingGeometry")