\hypertarget{_detector_tools_8h}{\section{/opt/ilcsoft/\-H\-E\-A\-D-\/2016-\/12-\/02/\-D\-D4hep/\-H\-E\-A\-D/\-D\-D\-Core/include/\-D\-D4hep/\-Detector\-Tools.h File Reference}
\label{_detector_tools_8h}\index{/opt/ilcsoft/\-H\-E\-A\-D-\/2016-\/12-\/02/\-D\-D4hep/\-H\-E\-A\-D/\-D\-D\-Core/include/\-D\-D4hep/\-Detector\-Tools.\-h@{/opt/ilcsoft/\-H\-E\-A\-D-\/2016-\/12-\/02/\-D\-D4hep/\-H\-E\-A\-D/\-D\-D\-Core/include/\-D\-D4hep/\-Detector\-Tools.\-h}}
}
{\ttfamily \#include \char`\"{}D\-D4hep/\-Detector.\-h\char`\"{}}\\*
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
\hyperlink{namespace_d_d4hep}{D\-D4hep}
\begin{DoxyCompactList}\small\item\em Namespace for the A\-I\-D\-A detector description toolkit. \end{DoxyCompactList}\item 
\hyperlink{namespace_d_d4hep_1_1_geometry}{D\-D4hep\-::\-Geometry}
\begin{DoxyCompactList}\small\item\em Namespace for the geometry part of the A\-I\-D\-A detector description toolkit. \end{DoxyCompactList}\item 
\hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools}
\begin{DoxyCompactList}\small\item\em Helper namespace used to answer detector element specific questons. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef std\-::vector$<$ Det\-Element $>$ \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a57c8f37a975258fd84676a69e74c56ab}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::\-Element\-Path}
\item 
typedef std\-::vector$<$ Placed\-Volume $>$ \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a6cc33285199e04dd336a33e6e62925e6}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::\-Placement\-Path}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_aa2a3cf3ac7fbdabef840f02eb0d60d91}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::top\-Element} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} child)
\begin{DoxyCompactList}\small\item\em Determine top level element (=world) for any element walking up the detector element tree. \end{DoxyCompactList}\item 
std\-::string \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_aa236d3ca69ed2eb4d7777db7c080216b}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::element\-Path} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} element)
\begin{DoxyCompactList}\small\item\em Assemble the path of a particular detector element. \end{DoxyCompactList}\item 
std\-::string \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a67f5a1f1c0ed6ca5698a3323fc660379}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::element\-Path} (const \hyperlink{_detector_interna_8cpp_a8d9eaa9b0f41299659b3aeb365ea8f47}{Element\-Path} \&nodes, bool reverse=true)
\begin{DoxyCompactList}\small\item\em Assemble the path of the \hyperlink{class_d_d4hep_1_1_geometry_1_1_placed_volume}{Placed\-Volume} selection. \end{DoxyCompactList}\item 
void \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a10418f7d98665f48f0dcb14a02919fea}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::element\-Path} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} elt, \hyperlink{_detector_interna_8cpp_a8d9eaa9b0f41299659b3aeb365ea8f47}{Element\-Path} \&detectors)
\begin{DoxyCompactList}\small\item\em Collect detector elements to the top detector element (world) \end{DoxyCompactList}\item 
\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a70cde605976780186eb6b226731ed380}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::find\-Element} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_l_c_d_d}{L\-C\-D\-D} \&lcdd, const std\-::string \&path)
\begin{DoxyCompactList}\small\item\em Find \hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} as child of the top level volume by it's absolute path. \end{DoxyCompactList}\item 
\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a142393e7b88829aee063f35a8e7cb984}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::find\-Daughter\-Element} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} parent, const std\-::string \&subpath)
\begin{DoxyCompactList}\small\item\em Find \hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} as child of a parent by it's relative or absolute path. \end{DoxyCompactList}\item 
bool \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a9e02ef062540b4e9c0d284f50106f203}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::is\-Parent\-Element} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} parent, \hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} child)
\begin{DoxyCompactList}\small\item\em Find path between the child element and the parent element. \end{DoxyCompactList}\item 
std\-::string \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a1ca0d88ab941b6dde4776c6b3b893fb6}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::placement\-Path} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} element)
\begin{DoxyCompactList}\small\item\em Assemble the placement path from a given detector element to the world volume. \end{DoxyCompactList}\item 
std\-::string \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a792502fe2b1afaa030b9697151824452}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::placement\-Path} (const \hyperlink{_detector_interna_8cpp_a3cbbf9c2993eea2563e163134c7ccfad}{Placement\-Path} \&nodes, bool reverse=true)
\begin{DoxyCompactList}\small\item\em Assemble the path of the \hyperlink{class_d_d4hep_1_1_geometry_1_1_placed_volume}{Placed\-Volume} selection. \end{DoxyCompactList}\item 
std\-::string \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_ad25502414dd3799806729e2d72f9a34a}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::placement\-Path} (const std\-::vector$<$ const T\-Geo\-Node $\ast$ $>$ \&nodes, bool reverse=true)
\begin{DoxyCompactList}\small\item\em Assemble the path of the \hyperlink{class_d_d4hep_1_1_geometry_1_1_placed_volume}{Placed\-Volume} selection. \end{DoxyCompactList}\item 
void \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a4643e9605448f9652b2c95e6ef5619c3}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::placement\-Path} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} elt, \hyperlink{_detector_interna_8cpp_a3cbbf9c2993eea2563e163134c7ccfad}{Placement\-Path} \&nodes)
\begin{DoxyCompactList}\small\item\em Collect detector elements placements to the top detector element (world) \mbox{[}no holes!\mbox{]}. \end{DoxyCompactList}\item 
void \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_ae4ebaffda73014e393cf33ea3bfe0870}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::placement\-Path} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} parent, \hyperlink{class_d_d4hep_1_1_geometry_1_1_det_element}{Det\-Element} child, \hyperlink{_detector_interna_8cpp_a3cbbf9c2993eea2563e163134c7ccfad}{Placement\-Path} \&nodes)
\begin{DoxyCompactList}\small\item\em Collect detector elements placements to the parent detector element \mbox{[}no holes!\mbox{]}. \end{DoxyCompactList}\item 
\hyperlink{class_d_d4hep_1_1_geometry_1_1_placed_volume}{Placed\-Volume} \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a82d2f181b2755d1fbd749c30b7dd21c1}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::find\-Node} (\hyperlink{class_d_d4hep_1_1_geometry_1_1_placed_volume}{Placed\-Volume} top\-\_\-place, const std\-::string \&place)
\begin{DoxyCompactList}\small\item\em Find a given node in the hierarchy starting from the top node (absolute placement!) \end{DoxyCompactList}\item 
void \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a08fe6233324d561934a33569d4548435}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::placement\-Trafo} (const \hyperlink{_detector_interna_8cpp_a3cbbf9c2993eea2563e163134c7ccfad}{Placement\-Path} \&nodes, bool inverse, T\-Geo\-H\-Matrix $\ast$\&mat)
\begin{DoxyCompactList}\small\item\em Update cached matrix to transform to positions to an upper level Placement. \end{DoxyCompactList}\item 
void \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_a33a0bf01d4cc18da281b63e2e865c97a}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::placement\-Trafo} (const \hyperlink{_detector_interna_8cpp_a3cbbf9c2993eea2563e163134c7ccfad}{Placement\-Path} \&nodes, bool inverse, T\-Geo\-H\-Matrix \&mat)
\begin{DoxyCompactList}\small\item\em Update cached matrix to transform to positions to an upper level Placement. \end{DoxyCompactList}\item 
std\-::string \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_accc8aeaf883652cfb64beae7479b9f11}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::to\-String} (const \hyperlink{class_d_d4hep_1_1_geometry_1_1_placed_volume_a4383991fbc94adc2997ef98c9d30d9a6}{Placed\-Volume\-::\-Vol\-I\-Ds} \&ids)
\begin{DoxyCompactList}\small\item\em Convert Volume\-I\-D to string. \end{DoxyCompactList}\item 
std\-::string \hyperlink{namespace_d_d4hep_1_1_geometry_1_1_detector_tools_ae5de1f83490fd1476f7663078ffc08c7}{D\-D4hep\-::\-Geometry\-::\-Detector\-Tools\-::to\-String} (const \hyperlink{class_d_d4hep_1_1_geometry_1_1_i_d_descriptor}{I\-D\-Descriptor} \&dsc, const \hyperlink{class_d_d4hep_1_1_geometry_1_1_placed_volume_a4383991fbc94adc2997ef98c9d30d9a6}{Placed\-Volume\-::\-Vol\-I\-Ds} \&ids, Volume\-I\-D code)
\begin{DoxyCompactList}\small\item\em Convert Volume\-I\-D to string. \end{DoxyCompactList}\end{DoxyCompactItemize}
