CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends
DDExpandedView Class Reference

Provides an exploded view of the detector (tree-view) More...

#include <DDExpandedView.h>

Public Types

typedef std::vector< int > nav_type
 std::vector of sibling numbers More...
 
typedef std::pair< int const *, size_t > NavRange
 
using WalkerType = math::GraphWalker< DDLogicalPart, DDPosData * >
 

Public Member Functions

void clearScope ()
 clears the scope; the full tree is available, depth=0 More...
 
int copyno () const
 Copy number associated with the current node. More...
 
nav_type copyNumbers () const
 return the stack of copy numbers More...
 
 DDExpandedView (const DDCompactView &)
 Constructs an expanded-view based on the compact-view. More...
 
int depth () const
 depth of the scope. 0 means unrestricted depth. More...
 
bool firstChild ()
 set the current node to the first child ... More...
 
const DDGeoHistorygeoHistory () const
 The list of ancestors up to the root-node of the current node. More...
 
bool goTo (const nav_type &)
 transversed the DDExpandedView according to the given stack of sibling numbers More...
 
bool goTo (int const *newpos, size_t sz)
 
bool goTo (NavRange)
 
bool goToHistory (const DDGeoHistory &sc)
 
const DDLogicalPartlogicalPart () const
 The logical-part of the current node in the expanded-view. More...
 
DDsvalues_type mergedSpecifics () const
 
void mergedSpecificsV (DDsvalues_type &res) const
 
const std::string & name () const
 The name of the logical-part of the current node in the expanded-view. More...
 
nav_type navPos () const
 return the stack of sibling numbers which indicates the current position in the DDExpandedView More...
 
bool next ()
 set current node to the next node in the expanded tree More...
 
bool nextB ()
 broad search order of next() More...
 
bool nextSibling ()
 set the current node to the next sibling ... More...
 
bool parent ()
 set the current node to the parent node ... More...
 
void reset ()
 true, if a call to firstChild() would succeed (current node has at least one child) More...
 
const DDRotationMatrixrotation () const
 The absolute rotation of the current node. More...
 
const DDGeoHistoryscope () const
 The scope of the expanded-view. More...
 
bool setScope (const DDGeoHistory &hist, int depth=0)
 sets the scope of the expanded view More...
 
std::vector< const DDsvalues_type * > specifics () const
 User specific data attached to the current node. More...
 
void specificsV (std::vector< const DDsvalues_type * > &vc) const
 
const DDTranslationtranslation () const
 The absolute translation of the current node. More...
 
virtual ~DDExpandedView ()
 

Protected Member Functions

bool descend (const DDGeoHistory &sc)
 

Protected Attributes

unsigned int depth_
 depth of the scope, 0==unrestricted depth More...
 
DDGeoHistory history_
 std::vector of DDExpandedNode More...
 
std::vector< nav_typenextBStack_
 
const DDRotationMatrix rot_
 
DDGeoHistory scope_
 scope of the expanded view More...
 
const DDTranslation trans_
 
WalkerType w2_
 
WalkerTypewalker_
 the tricky walker More...
 
const DDPosDataworldpos_
 ??? More...
 

Friends

class DDFilteredView
 

Detailed Description

Provides an exploded view of the detector (tree-view)

DDExpandedView provides a tree-walker (iterator) for the expanded view of the detector description. Further it provides a registration mechanism for call-backs whenever a node in the expanded view becomes current and fullfills the user-defined predicate.

FIXME: DDExpandedView: in the Prototype just one class - FIXME: later seperation of interface & implementation! Taking a DDCompactView the DDExpandedView expands the compact-view into a detector tree. One instance of DDExpandedView corresponds to one node in the tree. It is the 'current' node. By using tree navigation ( next(), nextSibling(), parent(), firstChild() ) the DDExpandedView represents the new corresponding node.

Description: DD Expanded View Facade

Implementation: The DDExpandedView facade serves as a launching point for a broader refactor of monolithic or tightly-coupled systems in favor of more loosely-coupled code.

Definition at line 41 of file DDExpandedView.h.

Member Typedef Documentation

◆ nav_type

typedef std::vector<int> DDExpandedView::nav_type

std::vector of sibling numbers

Definition at line 48 of file DDExpandedView.h.

◆ NavRange

typedef std::pair<int const *, size_t> DDExpandedView::NavRange

Definition at line 49 of file DDExpandedView.h.

◆ WalkerType

Definition at line 45 of file DDExpandedView.h.

Constructor & Destructor Documentation

◆ DDExpandedView()

DDExpandedView::DDExpandedView ( const DDCompactView cpv)

Constructs an expanded-view based on the compact-view.

After construction the instance corresponds to the root of the geometrical tree.

Definition at line 21 of file DDExpandedView.cc.

22  : walker_(nullptr),
23  w2_(cpv.graph(), cpv.root()),
26  depth_(0),
27  worldpos_(cpv.worldPosition()) {
28  walker_ = &w2_;
29 
30  const DDPosData* pd((*walker_).current().second);
31  if (!pd)
32  pd = worldpos_;
33  DDExpandedNode expn((*walker_).current().first, pd, trans_, rot_, 0);
34 
35  // starting point for position calculations, == root of expanded view
36  history_.emplace_back(expn);
37 }

References history_, rot_, trans_, w2_, walker_, and worldpos_.

◆ ~DDExpandedView()

DDExpandedView::~DDExpandedView ( )
virtual

Definition at line 39 of file DDExpandedView.cc.

39 {}

Member Function Documentation

◆ clearScope()

void DDExpandedView::clearScope ( )

clears the scope; the full tree is available, depth=0

Definition at line 262 of file DDExpandedView.cc.

262  {
263  scope_.clear();
264  depth_ = 0;
265 }

References depth_, and scope_.

Referenced by DDFilteredView::clearScope(), and reset().

◆ copyno()

int DDExpandedView::copyno ( ) const

Copy number associated with the current node.

Definition at line 53 of file DDExpandedView.cc.

53 { return history_.back().copyno(); }

References history_.

Referenced by DDFilteredView::copyno(), DDCompareEPV(), DDExpandedViewDump(), and MagGeoBuilderFromDDD::volumeHandle::volumeHandle().

◆ copyNumbers()

DDExpandedView::nav_type DDExpandedView::copyNumbers ( ) const

return the stack of copy numbers

Definition at line 424 of file DDExpandedView.cc.

424  {
426  DDGeoHistory::size_type sz = history_.size();
427  nav_type result(sz);
428 
429  for (; it < sz; ++it) {
430  result[it] = history_[it].copyno();
431  }
432  return result;
433 }

References history_, and mps_fire::result.

Referenced by DDFilteredView::copyNumbers().

◆ depth()

int DDExpandedView::depth ( ) const

depth of the scope. 0 means unrestricted depth.

Definition at line 51 of file DDExpandedView.cc.

51 { return depth_; }

References depth_.

Referenced by DDCompareEPV(), and setScope().

◆ descend()

bool DDExpandedView::descend ( const DDGeoHistory sc)
protected

Definition at line 340 of file DDExpandedView.cc.

340  {
341  DDGeoHistory::size_type mxx = sc.size();
342  DDGeoHistory::size_type cur = 0;
343  bool result(false);
344 
345  /* algo: compare currerent node in expanded-view with current-node in sc
346  if matching:
347  (A)go to first child in expanded-view, go one level deeper in sc
348  iterate over all children in expanded-view until one of them
349  matches the current node in sc.
350  if no one matches, return false
351  else continue at (A)
352  else return false
353  */
354  const DDExpandedNode& curNode = history_.back();
355 
356  if (!sc.empty()) {
357  if (curNode == sc[cur]) {
358  bool res(false);
359  while (cur + 1 < mxx && firstChild()) {
360  ++cur;
361  if (!(history_.back() == sc[cur])) {
362  while (nextSibling()) {
363  if (history_.back() == sc[cur]) {
364  res = true;
365  break;
366  }
367  }
368  } else {
369  res = true;
370  }
371  if (res == false)
372  break;
373  }
374  result = res;
375  }
376  }
377  return result;
378 }

References firstChild(), history_, nextSibling(), and mps_fire::result.

Referenced by setScope().

◆ firstChild()

bool DDExpandedView::firstChild ( )

set the current node to the first child ...

returns true, if a child of the current node exists and updates this otherwise returns false

Definition at line 100 of file DDExpandedView.cc.

100  {
101  bool result(false);
102  bool depthNotReached(true);
103 
104  // Check for the depth within the scope ...
105  if (depth_) {
106  if ((history_.size() - scope_.size()) == depth_) {
107  depthNotReached = false;
108  }
109  }
110  if (depthNotReached) {
111  if ((*walker_).firstChild()) {
112  DDExpandedNode& expnBefore(history_.back());
113  WalkerType::value_type curr = (*walker_).current();
114 
115  DDPosData* newPosd = curr.second;
116 
117  // T = ... (see nextSiblinig())
118  DDTranslation newTrans = expnBefore.trans_ + expnBefore.rot_ * newPosd->trans();
119 
120  // R = ... (see nextSibling())
121  DDRotationMatrix newRot = expnBefore.rot_ * newPosd->rot(); //.inverse();
122 
123  // create a new Expanded node and push it to the history ...
124  DDExpandedNode expn(curr.first, curr.second, newTrans, newRot, 0);
125 
126  history_.emplace_back(expn);
127  result = true;
128  } // if firstChild
129  } // if depthNotReached
130  return result;
131 }

References depth_, history_, mps_fire::result, DDPosData::rot(), scope_, DDPosData::trans(), and DDPosData::trans_.

Referenced by MagGeoBuilderFromDDD::build(), DDCompareEPV(), descend(), goTo(), goToHistory(), and next().

◆ geoHistory()

const DDGeoHistory & DDExpandedView::geoHistory ( ) const

◆ goTo() [1/3]

bool DDExpandedView::goTo ( const nav_type newpos)

transversed the DDExpandedView according to the given stack of sibling numbers

Definition at line 380 of file DDExpandedView.cc.

380 { return goTo(&newpos.front(), newpos.size()); }

Referenced by goTo().

◆ goTo() [2/3]

bool DDExpandedView::goTo ( int const *  newpos,
size_t  sz 
)

Definition at line 384 of file DDExpandedView.cc.

384  {
385  bool result(false);
386 
387  // save the current position
388  DDGeoHistory savedPos = history_;
389 
390  // reset to root node
391  //FIXME: reset to root of scope!!
392  reset();
393 
394  // try to navigate down to the newpos
395  for (size_t i = 1; i < sz; ++i) {
396  result = firstChild();
397  if (result) {
398  int pos = newpos[i];
399  for (int k = 0; k < pos; ++k) {
400  result = nextSibling();
401  }
402  } else {
403  break;
404  }
405  }
406 
407  if (!result) {
408  goToHistory(savedPos);
409  }
410  return result;
411 }

References firstChild(), goToHistory(), history_, mps_fire::i, dqmdumpme::k, nextSibling(), reset(), and mps_fire::result.

◆ goTo() [3/3]

bool DDExpandedView::goTo ( NavRange  newpos)

Definition at line 382 of file DDExpandedView.cc.

382 { return goTo(newpos.first, newpos.second); }

References goTo().

◆ goToHistory()

bool DDExpandedView::goToHistory ( const DDGeoHistory pos)

goTo will reset the ExpandedView if pos is not a valid position. Currently no checks are implemented to verify that pos is within the current scope of the ExpandedView.

Definition at line 309 of file DDExpandedView.cc.

309  {
310  bool result = true;
311  int tempD = depth_;
312  DDGeoHistory tempScope = scope_;
313  reset();
314  DDGeoHistory::size_type s = pos.size();
315  for (DDGeoHistory::size_type j = 1; j < s; ++j) {
316  if (!firstChild()) {
317  result = false;
318  break;
319  }
320  int i = 0;
321  for (; i < pos[j].siblingno(); ++i) {
322  if (!nextSibling()) {
323  result = false;
324  }
325  }
326  }
327 
328  if (!result) {
329  reset();
330  setScope(tempScope, tempD);
331  } else {
332  scope_ = tempScope;
333  depth_ = tempD;
334  }
335 
336  return result;
337 }

References depth_, firstChild(), mps_fire::i, dqmiolumiharvest::j, nextSibling(), reset(), mps_fire::result, alignCSCRings::s, scope_, and setScope().

Referenced by DDFilteredView::firstChild(), goTo(), DDFilteredView::nextSibling(), and DDFilteredView::parent().

◆ logicalPart()

const DDLogicalPart & DDExpandedView::logicalPart ( ) const

◆ mergedSpecifics()

DDsvalues_type DDExpandedView::mergedSpecifics ( ) const

Definition at line 236 of file DDExpandedView.cc.

236  {
237  DDsvalues_type merged;
238  mergedSpecificsV(merged);
239  return merged;
240 }

References mergedSpecificsV().

◆ mergedSpecificsV()

void DDExpandedView::mergedSpecificsV ( DDsvalues_type res) const

Definition at line 242 of file DDExpandedView.cc.

242  {
243  merged.clear();
244  const auto& specs = logicalPart().attachedSpecifics();
245  if (specs.empty())
246  return;
247  const DDGeoHistory& hist = geoHistory();
248  for (const auto& it : specs) {
249  if (DDCompareEqual(hist, *it.first)())
250  merge(merged, *it.second);
251  }
252 }

References DDLogicalPart::attachedSpecifics(), geoHistory(), compare::hist, logicalPart(), MatrixUtil::merge(), and HistogramManager_cfi::specs.

Referenced by DDFilteredView::mergedSpecifics(), mergedSpecifics(), and DDFilteredView::mergedSpecificsV().

◆ name()

const std::string & DDExpandedView::name ( ) const

The name of the logical-part of the current node in the expanded-view.

Definition at line 43 of file DDExpandedView.cc.

43 { return history_.back().logp_.ddname().name(); }

References history_.

Referenced by config.CFG::__str__(), validation.Sample::digest(), and VIDSelectorBase.VIDSelectorBase::initialize().

◆ navPos()

DDExpandedView::nav_type DDExpandedView::navPos ( ) const

return the stack of sibling numbers which indicates the current position in the DDExpandedView

Definition at line 413 of file DDExpandedView.cc.

413  {
416  nav_type pos(j);
417 
418  for (; i < j; ++i)
419  pos[i] = history_[i].siblingno();
420 
421  return pos;
422 }

References history_, mps_fire::i, and dqmiolumiharvest::j.

Referenced by GeometryInfoDump::dumpInfo(), and DDFilteredView::navPos().

◆ next()

bool DDExpandedView::next ( void  )

set current node to the next node in the expanded tree

Tree transversal:

  • try to go to the first child
  • else try to go to the next sibling
  • else try to go to the next sibling of the parent

Currently the whole remaining subtree is transversed when next() is subsequently called.

Definition at line 174 of file DDExpandedView.cc.

174  {
175  bool res(false);
176  if (firstChild())
177  res = true;
178  else if (nextSibling())
179  res = true;
180  else {
181  while (parent()) {
182  if (nextSibling()) {
183  res = true;
184  break;
185  }
186  }
187  }
188  return res;
189 }

References firstChild(), nextSibling(), and parent().

Referenced by DDCompareEPV(), DDExpandedViewDump(), ddstats(), GeometryInfoDump::dumpInfo(), DDFilteredView::next(), and output().

◆ nextB()

bool DDExpandedView::nextB ( )

broad search order of next()

broad first

Definition at line 192 of file DDExpandedView.cc.

192  {
193  bool res(false);
194  return res;
195 }

◆ nextSibling()

bool DDExpandedView::nextSibling ( )

set the current node to the next sibling ...

returns true, if a next sibling exists and updates this otherwise returns false. If a scope was set, the nextSibling of the root of the scope is not selected.

Definition at line 60 of file DDExpandedView.cc.

60  {
61  bool result(false);
62  if (!scope_.empty() && history_.back() == scope_.back()) {
63  ; // no-next-sibling, if current node is the root of the scope!
64  } else {
65  if ((*walker_).nextSibling()) {
66  DDExpandedNode& expn(history_.back()); // back of history_ is always current node
67  WalkerType::value_type curr = (*walker_).current();
68  DDPosData const* posdOld = expn.posd_;
69  expn.logp_ = curr.first;
70  expn.posd_ = curr.second;
71 
72  DDGeoHistory::size_type hsize = history_.size();
73 
74  if (hsize > 1) {
75  const DDExpandedNode& expnBefore(history_[hsize - 2]);
76 
77  // T = T1 + INV[R1] * T2
78  expn.trans_ = expnBefore.trans_ + (expnBefore.rot_ * expn.posd_->trans());
79 
80  // R = R1*INV[R2]
81  // VI in principle we can do this
82  if (!(expn.posd_->rot() == posdOld->rot())) {
83  expn.rot_ = expnBefore.rot_ * expn.posd_->rot(); //.inverse();
84  }
85  } else {
86  expn.trans_ = expn.posd_->trans();
87  expn.rot_ = expn.posd_->rot(); //.inverse();
88  }
89  ++expn.siblingno_;
90  result = true;
91  }
92  }
93  return result;
94 }

References history_, mps_fire::result, DDPosData::rot(), DDExpandedNode::rot_, scope_, and DDExpandedNode::trans_.

Referenced by MagGeoBuilderFromDDD::build(), DDCompareEPV(), descend(), goTo(), goToHistory(), next(), and DDFilteredView::nextSibling().

◆ parent()

bool DDExpandedView::parent ( )

set the current node to the parent node ...

returns ture, if a parent exists and updates this otherwise returns false. When false is returned, the root node of the scope is reached.

Definition at line 137 of file DDExpandedView.cc.

137  {
138  bool result(false);
139  bool scopeRoot(false);
140 
141  // check for a scope
142  if (!scope_.empty()) {
143  if (scope_.back() == history_.back()) {
144  // the current node is the root of the scope
145  scopeRoot = true;
146  }
147  }
148 
149  if (!scopeRoot) {
150  if ((*walker_).parent()) {
151  history_.pop_back();
152  result = true;
153  }
154  }
155 
156  return result;
157 }

References history_, mps_fire::result, and scope_.

Referenced by DDCompareEPV(), next(), DDFilteredView::nextSibling(), reset(), and setScope().

◆ reset()

void DDExpandedView::reset ( void  )

true, if a call to firstChild() would succeed (current node has at least one child)

clears the scope and sets the ExpandedView to its root-node

Definition at line 267 of file DDExpandedView.cc.

267  {
268  clearScope();
269  while (parent())
270  ;
271 }

References clearScope(), and parent().

Referenced by goTo(), goToHistory(), and DDFilteredView::reset().

◆ rotation()

const DDRotationMatrix & DDExpandedView::rotation ( void  ) const

The absolute rotation of the current node.

Definition at line 47 of file DDExpandedView.cc.

47 { return history_.back().rot_; }

References history_.

Referenced by MagGeoBuilderFromDDD::build(), DDExpandedViewDump(), GeometryInfoDump::dumpInfo(), output(), MagGeoBuilderFromDDD::volumeHandle::referencePlane(), and DDFilteredView::rotation().

◆ scope()

const DDGeoHistory & DDExpandedView::scope ( ) const

The scope of the expanded-view.

All navigational commands only operate in the subtree rooted by the node marked by the node of the DDGeoHistory returned by this method. If the size() of the scope equals 0, the full scope covering the whole expanded-view is set (default).

Definition at line 260 of file DDExpandedView.cc.

260 { return scope_; }

References scope_.

Referenced by DDFilteredView::scope().

◆ setScope()

bool DDExpandedView::setScope ( const DDGeoHistory sc,
int  depth = 0 
)

sets the scope of the expanded view

The scope of the expanded-view is set to the subtree rooted by the node marked by the DDGeohistory hist. The current not of the expanded view is set to the root of the subtree. All navigational methods apply only on the subtree.

In case of hist not marking a valid node in the expanded-view, the state of the expanded-view is unchanged and false is returned by setScope(). Otherwise true is returned.

Definition at line 283 of file DDExpandedView.cc.

283  {
284  bool result(false);
285 
286  DDGeoHistory buf = scope_; // save current scope
287  scope_.clear(); // sets scope to global (full) scope
288 
289  while (parent())
290  ; // move up to the root of the expanded-view
291 
292  if (descend(sc)) { // try to move down the given scope-history ...
293  scope_ = sc;
294  depth_ = depth;
295  result = true;
296  } else {
297  scope_ = buf;
298  }
299 
300  return result;
301 }

References visDQMUpload::buf, depth(), depth_, descend(), parent(), mps_fire::result, and scope_.

Referenced by goToHistory(), and DDFilteredView::setScope().

◆ specifics()

std::vector< const DDsvalues_type * > DDExpandedView::specifics ( ) const

User specific data attached to the current node.

User specific data can be attached to single nodes or a selection of nodes in the expanded view through the DDSpecifics interface.

The resulting std::vector is of size 0 if no specific data was attached.

Definition at line 214 of file DDExpandedView.cc.

214  {
215  // backward compatible
216  std::vector<const DDsvalues_type*> result;
218  return result;
219 }

References mps_fire::result, and specificsV().

◆ specificsV()

void DDExpandedView::specificsV ( std::vector< const DDsvalues_type * > &  vc) const

Definition at line 221 of file DDExpandedView.cc.

221  {
222  const auto& specs = logicalPart().attachedSpecifics();
223  if (!specs.empty()) {
224  result.reserve(specs.size());
225  for (const auto& it : specs) {
226  // a part selection
227  const DDPartSelection& psel = *(it.first);
228  const DDGeoHistory& hist = geoHistory();
229 
230  if (DDCompareEqual(hist, psel)())
231  result.emplace_back(it.second);
232  }
233  }
234 }

References DDLogicalPart::attachedSpecifics(), geoHistory(), compare::hist, logicalPart(), mps_fire::result, and HistogramManager_cfi::specs.

Referenced by DDFilteredView::specifics(), specifics(), and DDFilteredView::specificsV().

◆ translation()

const DDTranslation & DDExpandedView::translation ( void  ) const

The absolute translation of the current node.

Definition at line 45 of file DDExpandedView.cc.

45 { return history_.back().trans_; }

References history_.

Referenced by MagGeoBuilderFromDDD::build(), DDExpandedViewDump(), GeometryInfoDump::dumpInfo(), output(), DDFilteredView::translation(), and MagGeoBuilderFromDDD::volumeHandle::volumeHandle().

Friends And Related Function Documentation

◆ DDFilteredView

friend class DDFilteredView
friend

Definition at line 42 of file DDExpandedView.h.

Member Data Documentation

◆ depth_

unsigned int DDExpandedView::depth_
protected

depth of the scope, 0==unrestricted depth

Definition at line 140 of file DDExpandedView.h.

Referenced by clearScope(), depth(), DDFilteredView::firstChild(), firstChild(), goToHistory(), and setScope().

◆ history_

DDGeoHistory DDExpandedView::history_
protected

◆ nextBStack_

std::vector<nav_type> DDExpandedView::nextBStack_
protected

Definition at line 142 of file DDExpandedView.h.

◆ rot_

const DDRotationMatrix DDExpandedView::rot_
protected

Definition at line 137 of file DDExpandedView.h.

Referenced by DDExpandedView().

◆ scope_

DDGeoHistory DDExpandedView::scope_
protected

◆ trans_

const DDTranslation DDExpandedView::trans_
protected

Definition at line 136 of file DDExpandedView.h.

Referenced by DDExpandedView().

◆ w2_

WalkerType DDExpandedView::w2_
protected

Definition at line 135 of file DDExpandedView.h.

Referenced by DDExpandedView().

◆ walker_

WalkerType* DDExpandedView::walker_
protected

the tricky walker

Definition at line 134 of file DDExpandedView.h.

Referenced by DDExpandedView().

◆ worldpos_

const DDPosData* DDExpandedView::worldpos_
protected

???

Definition at line 141 of file DDExpandedView.h.

Referenced by DDExpandedView().

DDExpandedView::depth_
unsigned int depth_
depth of the scope, 0==unrestricted depth
Definition: DDExpandedView.h:140
DDPosData::trans_
DDTranslation trans_
Definition: DDPosData.h:39
mps_fire.i
i
Definition: mps_fire.py:355
DDGeoHistory
std::vector< DDExpandedNode > DDGeoHistory
Geometrical 'path' of the current node up to the root-node.
Definition: DDExpandedNode.h:82
DDExpandedView::firstChild
bool firstChild()
set the current node to the first child ...
Definition: DDExpandedView.cc:100
DDPosData::trans
const DDTranslation & trans() const
Definition: DDPosData.h:28
DDExpandedView::mergedSpecificsV
void mergedSpecificsV(DDsvalues_type &res) const
Definition: DDExpandedView.cc:242
DDExpandedView::nav_type
std::vector< int > nav_type
std::vector of sibling numbers
Definition: DDExpandedView.h:48
DDExpandedView::rot_
const DDRotationMatrix rot_
Definition: DDExpandedView.h:137
pos
Definition: PixelAliasList.h:18
HistogramManager_cfi.specs
specs
Definition: HistogramManager_cfi.py:80
DDPartSelection
Definition: DDPartSelection.h:37
DDExpandedView::scope_
DDGeoHistory scope_
scope of the expanded view
Definition: DDExpandedView.h:139
DDRotationMatrix
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
Definition: DDRotationMatrix.h:8
DDExpandedView::setScope
bool setScope(const DDGeoHistory &hist, int depth=0)
sets the scope of the expanded view
Definition: DDExpandedView.cc:283
DDExpandedView::goToHistory
bool goToHistory(const DDGeoHistory &sc)
Definition: DDExpandedView.cc:309
alignCSCRings.s
s
Definition: alignCSCRings.py:92
DDExpandedView::nextSibling
bool nextSibling()
set the current node to the next sibling ...
Definition: DDExpandedView.cc:60
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
DDExpandedView::specificsV
void specificsV(std::vector< const DDsvalues_type * > &vc) const
Definition: DDExpandedView.cc:221
compare.hist
hist
Definition: compare.py:376
DDCompactView::graph
const Graph & graph() const
Provides read-only access to the data structure of the compact-view.
Definition: DDCompactView.cc:58
DDTranslation
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
math::GraphWalker< DDLogicalPart, DDPosData * >::value_type
typename math::Graph< DDLogicalPart, DDPosData * >::value_type value_type
Definition: GraphWalker.h:28
DDExpandedView::w2_
WalkerType w2_
Definition: DDExpandedView.h:135
dqmdumpme.k
k
Definition: dqmdumpme.py:60
DDCompactView::worldPosition
const DDPosData * worldPosition() const
The absolute position of the world.
Definition: DDCompactView.cc:64
DDPosData
Relative position of a child-volume inside a parent-volume.
Definition: DDPosData.h:13
DDExpandedView::goTo
bool goTo(const nav_type &)
transversed the DDExpandedView according to the given stack of sibling numbers
Definition: DDExpandedView.cc:380
DDExpandedView::clearScope
void clearScope()
clears the scope; the full tree is available, depth=0
Definition: DDExpandedView.cc:262
DDExpandedView::worldpos_
const DDPosData * worldpos_
???
Definition: DDExpandedView.h:141
DDCompareEqual
compares a given geometrical-history whether it corresponds to the given part-selector
Definition: DDComparator.h:15
DDExpandedView::reset
void reset()
true, if a call to firstChild() would succeed (current node has at least one child)
Definition: DDExpandedView.cc:267
res
Definition: Electron.h:6
visDQMUpload.buf
buf
Definition: visDQMUpload.py:154
DDExpandedView::geoHistory
const DDGeoHistory & geoHistory() const
The list of ancestors up to the root-node of the current node.
Definition: DDExpandedView.cc:49
DDPosData::rot
const DDRotationMatrix & rot() const
Definition: DDPosData.h:31
DDCompactView::root
const DDLogicalPart & root() const
returns the DDLogicalPart representing the root of the geometrical hierarchy
Definition: DDCompactView.cc:62
DDExpandedView::walker_
WalkerType * walker_
the tricky walker
Definition: DDExpandedView.h:134
DDExpandedNode
represents one node in the DDExpandedView
Definition: DDExpandedNode.h:16
DDExpandedView::history_
DDGeoHistory history_
std::vector of DDExpandedNode
Definition: DDExpandedView.h:138
DDLogicalPart::attachedSpecifics
const std::vector< std::pair< const DDPartSelection *, const DDsvalues_type * > > & attachedSpecifics(void) const
Definition: DDLogicalPart.cc:340
DDExpandedView::logicalPart
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the expanded-view.
Definition: DDExpandedView.cc:41
mps_fire.result
result
Definition: mps_fire.py:303
DDExpandedView::descend
bool descend(const DDGeoHistory &sc)
Definition: DDExpandedView.cc:340
DDExpandedView::depth
int depth() const
depth of the scope. 0 means unrestricted depth.
Definition: DDExpandedView.cc:51
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
MatrixUtil.merge
def merge(dictlist, TELL=False)
Definition: MatrixUtil.py:194
DDExpandedView::parent
bool parent()
set the current node to the parent node ...
Definition: DDExpandedView.cc:137
DDsvalues_type
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
Definition: DDsvalues.h:12
DDExpandedView::trans_
const DDTranslation trans_
Definition: DDExpandedView.h:136