41 const std::string& gdml);
46 G4VPhysicalVolume* findDaughterByName(G4VPhysicalVolume* pvol, G4String name);
47 void getAllDaughters(G4VPhysicalVolume* pvol);
49 static bool compareZlocation(
const G4VPhysicalVolume& pvol_a,
50 const G4VPhysicalVolume& pvol_b) {
51 return (pvol_a.GetTranslation().z() < pvol_b.GetTranslation().z());
54 void convertG4Rot(
const G4RotationMatrix* g4rot,
55 Acts::RotationMatrix3& rot)
const;
56 Acts::Vector3 convertG4Pos(
const G4ThreeVector& g4pos)
const;
58 void dumpGeometry(
const std::string& outputDir,
59 const Acts::GeometryContext& gctx)
const;
61 std::shared_ptr<const Acts::TrackingGeometry> getTG()
const {
65 Acts::Transform3 getTransform(
const G4VPhysicalVolume& phex,
66 bool toTrackingFrame =
false)
const;
68 Acts::Transform3 toTracker(
const Acts::Transform3& trans)
const;
73 void makeLayerSurfacesMap();
75 void getSurfaces(std::vector<const Acts::Surface*>& surfaces)
const;
77 const Acts::Surface* getSurface(
int layerid)
const {
78 return layer_surface_map_.at(layerid);
81 std::unordered_map<unsigned int, const Acts::Surface*> layer_surface_map_;
85 const std::string&
fieldMapFile()
const {
return field_map_file_; }
90 std::vector<std::shared_ptr<tracking::geo::DetectorElement>> det_elements_;
93 const Acts::GeometryContext& gctx_;
94 std::string gdml_{
""};
96 Acts::RotationMatrix3 x_rot_, y_rot_;
97 std::shared_ptr<const Acts::TrackingGeometry> t_geometry_{
nullptr};
98 G4VPhysicalVolume* f_world_phys_vol_{
nullptr};
101 std::string field_map_file_{
""};
102 enableLogging(
"TrackingGeometry")