![]() |
![]() |
00001 #include "Geometry/TrackerNumberingBuilder/interface/CmsTrackerDebugNavigator.h" 00002 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" 00003 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00004 00005 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00006 00007 void CmsTrackerDebugNavigator::dump(const GeometricDet* in){ 00008 edm::LogInfo("CmsTrackerDebugNavigator")<<" CmsTrackerDebugNavigator - Starting debug"; 00009 for (int k=0; k<20; k++) numinstances[k]=0; 00010 iterate(in,0); 00011 00012 for (int k=0; k<20; k++){ 00013 edm::LogInfo("CmsTrackerDebugNavigator")<<" CmsTrackerDebugNavigator has found "<<numinstances[k]<<" GeometricDets at level "<<k; 00014 } 00015 } 00016 00017 00018 void CmsTrackerDebugNavigator::iterate(const GeometricDet*in, int level){ 00019 static CmsTrackerStringToEnum enumName; 00020 00021 numinstances[level]++; 00022 for (unsigned int k=0; k<(in)->components().size(); k++){ 00023 std::string spaces = ""; 00024 for(unsigned int i=0; (int)i<=level; i++) spaces+=" "; 00025 edm::LogInfo("CmsTrackerDebugNavigator") << level << spaces 00026 << "### VOLUME " << (in)->components()[k]->name().name() 00027 << " of type " << (in)->components()[k]->type() 00028 << " copy number " << (in)->components()[k]->copyno() 00029 << " positioned in " << (in)->name().name() 00030 << " global position of centre " << (in)->components()[k]->translation() 00031 // << " rotation matrix " << (in)->components()[k]->rotation() 00032 << " volume = " << (in)->components()[k]->volume() << " cm3" 00033 << " density = " << (in)->components()[k]->density() << " g/cm3" 00034 << " weight " << (in)->components()[k]->weight() << " g" 00035 << std::endl; 00036 iterate(((in)->components())[k],level+1); 00037 } 00038 return; 00039 }