14 template <
typename Dest,
typename Src>
15 void extendCollection(Dest& dest, Src&& src)
17 std::move(src.begin(), src.end(), std::back_inserter(dest));
22 bool starts_with(std::string_view
const s, std::string_view
const key)
24 return s.compare(0, key.size(), key) == 0;
27 bool isPlaneNode(TGeoNode
const& node)
29 return starts_with(node.GetName(),
"volTPCPlane"sv);
31 bool isWireNode(TGeoNode
const& node)
33 return starts_with(node.GetName(),
"volTPCWire"sv);
39 : fExtractObjects(config().extractor())
52 result[tpc_hash].push_back(
makePlane(path));
66 std::vector<WireGeo> result;
68 path, isWireNode, [&result,
this](
Path_t const& path) { result.push_back(
makeWire(path)); });
Geometry description of a TPC wireThe wire is a single straight segment on a wire plane...
WireReadoutGeomBuilderStandard(fhicl::Table< Config > const &config)
TGeoNode const * current() const
Returns the current node. Undefined if the path is empty.
GeometryExtractor fExtractObjects
Entry parent_entry() const
Returns the parent entry of the current entry, or null if there is no parent.
WireGeo makeWire(Path_t const &path) const
Planes_t doExtractPlanes(Path_t &path) const override
Geometry information for a single wire plane.The plane is represented in the geometry by a solid whic...
std::map< std::size_t, std::vector< PlaneGeo >> Planes_t
Collection of wire-plane information objects.
PlaneGeo makePlane(Path_t &path) const
Matrix currentTransformation() const
Returns the total transformation to the current node, as a Matrix.
Extracts of LArSoft geometry information from ROOT.
std::vector< WireGeo > extractWires(Path_t &path) const
Representation of a node and its ancestry.
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.