![]() |
|
|||
File indexing completed on 2024-04-06 12:15:29
0001 #include "CondDBCmsTrackerConstruction.h" 0002 #include "DetectorDescription/Core/interface/DDFilteredView.h" 0003 #include "DetectorDescription/Core/interface/DDCompactView.h" 0004 #include "CondFormats/GeometryObjects/interface/PGeometricDet.h" 0005 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" 0006 #include "Geometry/TrackerNumberingBuilder/plugins/ExtractStringFromDDD.h" 0007 #include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerBuilder.h" 0008 #include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerDetIdBuilder.h" 0009 0010 using namespace cms; 0011 0012 std::unique_ptr<GeometricDet> CondDBCmsTrackerConstruction::construct(const PGeometricDet& pgd) { 0013 //std::cout << "In CondDBCmsTrackerConstruction::construct with pgd.pgeomdets_.size() == " << pgd.pgeomdets_.size() << std::endl; 0014 auto tracker = std::make_unique<GeometricDet>(pgd.pgeomdets_[0], GeometricDet::Tracker); 0015 0016 size_t detMax = pgd.pgeomdets_.size(); 0017 size_t tri = 1; 0018 std::vector<GeometricDet*> hier; 0019 GeometricDet* subdet = tracker.get(); 0020 hier.emplace_back(subdet); 0021 while (tri < detMax && pgd.pgeomdets_[tri]._level == 1) { 0022 subdet = new GeometricDet(pgd.pgeomdets_[tri], GeometricDet::GDEnumType(pgd.pgeomdets_[tri]._type)); 0023 //std::cout << lev << " type " << pgd.pgeomdets_[tri]._type << " " << subdet->geographicalId() << std::endl; 0024 ++tri; 0025 hier.back()->addComponent(subdet); 0026 hier.emplace_back(subdet); 0027 while (tri < detMax && pgd.pgeomdets_[tri]._level == 2) { 0028 subdet = new GeometricDet(pgd.pgeomdets_[tri], GeometricDet::GDEnumType(pgd.pgeomdets_[tri]._type)); 0029 //std::cout << lev << "\ttype " << pgd.pgeomdets_[tri]._type << " " << subdet->geographicalId() << std::endl; 0030 ++tri; 0031 hier.back()->addComponent(subdet); 0032 hier.emplace_back(subdet); 0033 while (tri < detMax && pgd.pgeomdets_[tri]._level == 3) { 0034 subdet = new GeometricDet(pgd.pgeomdets_[tri], GeometricDet::GDEnumType(pgd.pgeomdets_[tri]._type)); 0035 //std::cout << lev << "\t\ttype " << pgd.pgeomdets_[tri]._type << " " << subdet->geographicalId() << std::endl; 0036 ++tri; 0037 hier.back()->addComponent(subdet); 0038 hier.emplace_back(subdet); 0039 while (tri < detMax && pgd.pgeomdets_[tri]._level == 4) { 0040 subdet = new GeometricDet(pgd.pgeomdets_[tri], GeometricDet::GDEnumType(pgd.pgeomdets_[tri]._type)); 0041 //std::cout << lev << "\t\t\ttype " << pgd.pgeomdets_[tri]._type << " " << subdet->geographicalId() << std::endl; 0042 ++tri; 0043 hier.back()->addComponent(subdet); 0044 hier.emplace_back(subdet); 0045 while (tri < detMax && pgd.pgeomdets_[tri]._level == 5) { 0046 subdet = new GeometricDet(pgd.pgeomdets_[tri], GeometricDet::GDEnumType(pgd.pgeomdets_[tri]._type)); 0047 //std::cout << lev << "\t\t\t\ttype " << pgd.pgeomdets_[tri]._type << " " << subdet->geographicalId() << std::endl; 0048 ++tri; 0049 hier.back()->addComponent(subdet); 0050 hier.emplace_back(subdet); 0051 while (tri < detMax && pgd.pgeomdets_[tri]._level == 6) { 0052 subdet = new GeometricDet(pgd.pgeomdets_[tri], GeometricDet::GDEnumType(pgd.pgeomdets_[tri]._type)); 0053 //std::cout << lev << "\t\t\t\t\ttype " << pgd.pgeomdets_[tri]._type << " " << subdet->geographicalId() << std::endl; 0054 ++tri; 0055 hier.back()->addComponent(subdet); 0056 } 0057 hier.pop_back(); 0058 } 0059 hier.pop_back(); 0060 } 0061 hier.pop_back(); 0062 } 0063 hier.pop_back(); 0064 } 0065 hier.pop_back(); 0066 } 0067 // std::cout << "Before \"deep components\" test I want to see if I can iterate to 6 layers by myself..." << std::endl; 0068 // std::vector<const GeometricDet*> l0 = tracker->components(); 0069 // std::vector<const GeometricDet*>::const_iterator i0 = l0.begin(); 0070 // std::vector<const GeometricDet*>::const_iterator e0 = l0.end(); 0071 // int count=0; // count only the leaves. 0072 // for ( ; i0 != e0 ; ++i0) { 0073 // std::cout << lev << " type " << (*i0)->type() << " " << int((*i0)->geographicalId()) << std::endl; 0074 // std::vector<const GeometricDet*> l1 = (*i0)->components(); 0075 // if ( l1.size() == 0 ) ++count; 0076 // std::vector<const GeometricDet*>::const_iterator i1 = l1.begin(); 0077 // std::vector<const GeometricDet*>::const_iterator e1 = l1.end(); 0078 // ++lev; 0079 // for ( ; i1 != e1 ; ++i1) { 0080 // std::cout << lev << "\ttype " << (*i1)->type() << " " << int((*i1)->geographicalId()) << std::endl; 0081 // std::vector<const GeometricDet*> l2 = (*i1)->components(); 0082 // if ( l2.size() == 0 ) ++count; 0083 // std::vector<const GeometricDet*>::const_iterator i2 = l1.begin(); 0084 // std::vector<const GeometricDet*>::const_iterator e2 = l1.end(); 0085 // ++lev; 0086 // for ( ; i2 != e2 ; ++i2) { 0087 // std::cout << lev << "\t\ttype " << (*i2)->type() << " " << int((*i2)->geographicalId()) << std::endl; 0088 // std::vector<const GeometricDet*> l3 = (*i2)->components(); 0089 // if ( l3.size() == 0 ) ++count; 0090 // std::vector<const GeometricDet*>::const_iterator i3 = l3.begin(); 0091 // std::vector<const GeometricDet*>::const_iterator e3 = l3.end(); 0092 // ++lev; 0093 // for ( ; i3 != e3 ; ++i3) { 0094 // std::cout << lev << "\t\t\ttype " << (*i3)->type() << " " << int((*i3)->geographicalId()) << std::endl; 0095 // std::vector<const GeometricDet*> l4 = (*i3)->components(); 0096 // if ( l4.size() == 0 ) ++count; 0097 // std::vector<const GeometricDet*>::const_iterator i4 = l4.begin(); 0098 // std::vector<const GeometricDet*>::const_iterator e4 = l4.end(); 0099 // ++lev; 0100 // for ( ; i4 != e4 ; ++i4) { 0101 // std::cout << lev << "\t\t\t\ttype " << (*i4)->type() << " " << int((*i4)->geographicalId()) << std::endl; 0102 // std::vector<const GeometricDet*> l5 = (*i4)->components(); 0103 // if ( l5.size() == 0 ) ++count; 0104 // std::vector<const GeometricDet*>::const_iterator i5 = l5.begin(); 0105 // std::vector<const GeometricDet*>::const_iterator e5 = l5.end(); 0106 // ++lev; 0107 // for ( ; i5 != e5 ; ++i5) { 0108 // std::cout << lev << "\t\t\t\t\ttype " << (*i5)->type() << " " << int((*i5)->geographicalId()) << std::endl; 0109 // ++count; 0110 // // std::vector<const GeometricDet*> l6 = (*i0)->components(); 0111 // // std::vector<const GeometricDet*>::const_iterator i6 = l6.begin(); 0112 // // std::vector<const GeometricDet*>::const_iterator e6 = l6.end(); 0113 // // for ( ; i6 != e6 ; ++i6) { 0114 // // std::cout << lev << " type " << (*i6)->type() << " " << int((*i6)->geographicalId()) << std::endl; 0115 // // std::vector<const GeometricDet*> l1 = (*i0)->components(); 0116 // // std::vector<const GeometricDet*>::const_iterator i1 = l1.begin(); 0117 // // std::vector<const GeometricDet*>::const_iterator e1 = l1.end(); 0118 // // } 0119 // } 0120 // --lev; 0121 // } 0122 // --lev; 0123 // } 0124 // --lev; 0125 // } 0126 // --lev; 0127 // } 0128 // --lev; 0129 // } 0130 // std::cout << "done... count = " << count << std::endl; 0131 // std::cout << "about to try to see what the \"deep components\" are" << std::endl; 0132 // std::cout << "done with the \"deep components\" check, there are: " << tracker->deepComponents().size() << std::endl; 0133 return tracker; 0134 }
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |