Go to the documentation of this file. 1 #ifndef DDExpandedView_h
2 #define DDExpandedView_h
49 typedef std::pair<int const *, size_t>
NavRange;
74 bool goTo(
int const *newpos,
size_t sz);
83 std::vector<const DDsvalues_type *>
specifics()
const;
84 void specificsV(std::vector<const DDsvalues_type *> &vc)
const;
90 std::vector<double>
const &
vector(std::string_view iKey)
const {
return cpv_->
vector(iKey); }
unsigned int depth_
depth of the scope, 0==unrestricted depth
bool nextB()
broad search order of next()
nav_type copyNumbers() const
return the stack of copy numbers
std::vector< DDExpandedNode > DDGeoHistory
Geometrical 'path' of the current node up to the root-node.
const DDGeoHistory & scope() const
The scope of the expanded-view.
const std::vector< double > & vector(std::string_view iKey) const
The DDVector information.
const DDRotationMatrix & rotation() const
The absolute rotation of the current node.
bool firstChild()
set the current node to the first child ...
std::vector< const DDsvalues_type * > specifics() const
User specific data attached to the current node.
DDsvalues_type mergedSpecifics() const
void mergedSpecificsV(DDsvalues_type &res) const
std::vector< int > nav_type
std::vector of sibling numbers
std::string printNavType(int const *n, size_t sz)
const DDRotationMatrix rot_
bool next()
set current node to the next node in the expanded tree
DDGeoHistory scope_
scope of the expanded view
std::vector< double > const & vector(std::string_view iKey) const
returns an empty container if not found
DDExpandedView(const DDCompactView &)
Constructs an expanded-view based on the compact-view.
bool setScope(const DDGeoHistory &hist, int depth=0)
sets the scope of the expanded view
bool goToHistory(const DDGeoHistory &sc)
std::pair< int const *, size_t > NavRange
int copyno() const
Copy number associated with the current node.
bool nextSibling()
set the current node to the next sibling ...
void specificsV(std::vector< const DDsvalues_type * > &vc) const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Compact representation of the geometrical detector hierarchy.
const std::string & name() const
The name of the logical-part of the current node in the expanded-view.
Provides an exploded view of the detector (tree-view)
Relative position of a child-volume inside a parent-volume.
bool goTo(const nav_type &)
transversed the DDExpandedView according to the given stack of sibling numbers
void clearScope()
clears the scope; the full tree is available, depth=0
const DDCompactView * cpv_
const DDPosData * worldpos_
???
A DDLogicalPart aggregates information concerning material, solid and sensitveness ....
virtual ~DDExpandedView()
void reset()
true, if a call to firstChild() would succeed (current node has at least one child)
const DDGeoHistory & geoHistory() const
The list of ancestors up to the root-node of the current node.
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
std::vector< nav_type > nextBStack_
WalkerType * walker_
the tricky walker
DDGeoHistory history_
std::vector of DDExpandedNode
nav_type navPos() const
return the stack of sibling numbers which indicates the current position in the DDExpandedView
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the expanded-view.
bool descend(const DDGeoHistory &sc)
const DDTranslation & translation() const
The absolute translation of the current node.
int depth() const
depth of the scope. 0 means unrestricted depth.
std::ostream & operator<<(std::ostream &os, const DDExpandedView::nav_type &n)
bool parent()
set the current node to the parent node ...
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
const DDTranslation trans_