#include <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) |
Adds GeometricDets representing final modules to the previous level
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().
{ // // at this level I check whether it is a merged detector or not // GeometricDet * det = new GeometricDet(&fv,theCmsTrackerStringToEnum.type(ExtractStringFromDDD::getString(attribute,&fv))); if (theCmsTrackerStringToEnum.type(ExtractStringFromDDD::getString(attribute,&fv)) == GeometricDet::mergedDet){ // // I have to go one step lower ... // bool dodets = fv.firstChild(); // descend to the first Layer while (dodets) { buildSmallDets(fv,det,attribute); dodets = fv.nextSibling(); // go to next layer /* Add algo to sort the merged DET */ } fv.parent(); } mother->addComponent(det); }
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(), groupFilesInBlocks::temp, CmsTrackerLevelBuilder::theCmsTrackerStringToEnum, and CmsTrackerStringToEnum::type().
Referenced by buildComponent().
{ GeometricDet * det = new GeometricDet(&fv, theCmsTrackerStringToEnum.type(ExtractStringFromDDD::getString(attribute,&fv))); static const std::string stereo = "TrackerStereoDetectors"; if (ExtractStringFromDDD::getString(stereo,&fv) == "true"){ uint32_t temp = 1; det->setGeographicalID(DetId(temp)); }else{ uint32_t temp = 2; det->setGeographicalID(DetId(temp)); } mother->addComponent(det); }