CMS 3D CMS Logo

CmsDetConstruction Class Reference

Adds GeometricDets representing final modules to the previous level. More...

#include <Geometry/TrackerNumberingBuilder/plugins/CmsDetConstruction.h>

Inheritance diagram for CmsDetConstruction:

CmsTrackerLevelBuilder CmsTrackerAbstractConstruction

List of all members.

Public Member Functions

void buildComponent (DDFilteredView &, GeometricDet *, std::string)

Private Member Functions

void buildDets (DDFilteredView &, GeometricDet *, std::string)
void buildSmallDets (DDFilteredView &, GeometricDet *, std::string)


Detailed Description

Adds GeometricDets representing final modules to the previous level.

Definition at line 9 of file CmsDetConstruction.h.


Member Function Documentation

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 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:16:22 2009 for CMSSW by  doxygen 1.5.4