CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CmsTrackerDebugNavigator.cc
Go to the documentation of this file.
5 
7 
8 CmsTrackerDebugNavigator::CmsTrackerDebugNavigator(const std::vector<GeometricDetExtra>& gdes) {
9  std::vector<GeometricDetExtra>::const_iterator gdeiEnd(gdes.end());
10  std::vector<GeometricDetExtra>::const_iterator gdei(gdes.begin());
11  for (; gdei != gdeiEnd; ++gdei) {
12  const GeometricDetExtra* gdeaddr = &(*gdei);
13  _helperMap[gdei->geographicalId().rawId()] = gdeaddr;
14  }
15 }
16 
17 void CmsTrackerDebugNavigator::dump(const GeometricDet& in, const std::vector<GeometricDetExtra>& gdes) {
18  edm::LogInfo("CmsTrackerDebugNavigator") << " CmsTrackerDebugNavigator - Starting debug";
19  for (int k = 0; k < 20; k++)
20  numinstances[k] = 0;
21  iterate(in, 0, gdes);
22 
23  for (int k = 0; k < 20; k++) {
24  edm::LogInfo("CmsTrackerDebugNavigator")
25  << " CmsTrackerDebugNavigator has found " << numinstances[k] << " GeometricDets at level " << k;
26  }
27 }
28 
29 void CmsTrackerDebugNavigator::iterate(const GeometricDet& in, int level, const std::vector<GeometricDetExtra>& gdes) {
31  for (unsigned int k = 0; k < in.components().size(); k++) {
32  std::string spaces = "";
33  for (unsigned int i = 0; (int)i <= level; i++)
34  spaces += " ";
35  const GeometricDetExtra* extra = _helperMap[in.components()[k]->geographicalId().rawId()];
36  edm::LogInfo("CmsTrackerDebugNavigator")
37  << level << spaces << "### VOLUME " << in.components()[k]->name() << " of type " << in.components()[k]->type()
38  << " copy number " << extra->copyno() << " positioned in " << in.name() << " global position of centre "
39  << in.components()[k]->translation()
40  // << " rotation matrix " << in.components()[k]->rotation()
41  << " volume = " << extra->volume() << " cm3"
42  << " density = " << extra->density() << " g/cm3"
43  << " weight " << extra->weight() << " g" << std::endl;
44  iterate(*((in.components())[k]), level + 1, gdes);
45  }
46  return;
47 }
void dump(const GeometricDet &, const std::vector< GeometricDetExtra > &)
double weight() const
ConstGeometricDetContainer & components()
Definition: GeometricDet.h:139
std::string const & name() const
Definition: GeometricDet.h:126
CmsTrackerDebugNavigator(const std::vector< GeometricDetExtra > &)
double density() const
double volume() const
void iterate(const GeometricDet &, int, const std::vector< GeometricDetExtra > &)
std::map< uint32_t, const GeometricDetExtra * > _helperMap