#include <Geometry/TrackerNumberingBuilder/plugins/CmsDetConstruction.h>
Public Member Functions | |
void | buildComponent (DDFilteredView &, GeometricDet *, std::string) |
Private Member Functions | |
void | buildDets (DDFilteredView &, GeometricDet *, std::string) |
void | buildSmallDets (DDFilteredView &, GeometricDet *, std::string) |
Definition at line 9 of file CmsDetConstruction.h.
void CmsDetConstruction::buildComponent | ( | DDFilteredView & | fv, | |
GeometricDet * | mother, | |||
std::string | attribute | |||
) | [virtual] |
Implements CmsTrackerLevelBuilder.
Definition at line 5 of file CmsDetConstruction.cc.
References GeometricDet::addComponent(), buildSmallDets(), DDFilteredView::firstChild(), ExtractStringFromDDD::getString(), GeometricDet::mergedDet, DDFilteredView::nextSibling(), DDFilteredView::parent(), CmsTrackerLevelBuilder::theCmsTrackerStringToEnum, and CmsTrackerStringToEnum::type().
Referenced by CmsTrackerStringBuilder::buildComponent(), CmsTrackerLadderBuilder::buildComponent(), CmsTrackerRodBuilder::buildComponent(), CmsTrackerRingBuilder::buildComponent(), and CmsTrackerPanelBuilder::buildComponent().
00008 { 00009 00010 // 00011 // at this level I check whether it is a merged detector or not 00012 // 00013 00014 GeometricDet * det = new GeometricDet(&fv,theCmsTrackerStringToEnum.type(ExtractStringFromDDD::getString(attribute,&fv))); 00015 if (theCmsTrackerStringToEnum.type(ExtractStringFromDDD::getString(attribute,&fv)) == GeometricDet::mergedDet){ 00016 // 00017 // I have to go one step lower ... 00018 // 00019 bool dodets = fv.firstChild(); // descend to the first Layer 00020 while (dodets) { 00021 buildSmallDets(fv,det,attribute); 00022 dodets = fv.nextSibling(); // go to next layer 00023 /* 00024 Add algo to sort the merged DET 00025 */ 00026 } 00027 fv.parent(); 00028 } 00029 00030 mother->addComponent(det); 00031 }
void CmsDetConstruction::buildDets | ( | DDFilteredView & | , | |
GeometricDet * | , | |||
std::string | ||||
) | [private] |
void CmsDetConstruction::buildSmallDets | ( | DDFilteredView & | fv, | |
GeometricDet * | mother, | |||
std::string | attribute | |||
) | [private] |
Definition at line 33 of file CmsDetConstruction.cc.
References GeometricDet::addComponent(), ExtractStringFromDDD::getString(), GeometricDet::setGeographicalID(), pyDBSRunClass::temp, CmsTrackerLevelBuilder::theCmsTrackerStringToEnum, and CmsTrackerStringToEnum::type().
Referenced by buildComponent().
00036 { 00037 00038 GeometricDet * det = 00039 new GeometricDet(&fv, 00040 theCmsTrackerStringToEnum.type(ExtractStringFromDDD::getString(attribute,&fv))); 00041 static const std::string stereo = "TrackerStereoDetectors"; 00042 if (ExtractStringFromDDD::getString(stereo,&fv) == "true"){ 00043 uint32_t temp = 1; 00044 det->setGeographicalID(DetId(temp)); 00045 }else{ 00046 uint32_t temp = 2; 00047 det->setGeographicalID(DetId(temp)); 00048 } 00049 00050 mother->addComponent(det); 00051 }