CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Private Member Functions
CmsTrackerSubStrctBuilder Class Reference

#include <CmsTrackerSubStrctBuilder.h>

Inheritance diagram for CmsTrackerSubStrctBuilder:
CmsTrackerLevelBuilder CmsTrackerAbstractConstruction

Private Member Functions

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

Additional Inherited Members

- Public Member Functions inherited from CmsTrackerLevelBuilder
virtual void build (DDFilteredView &, GeometricDet *, std::string)
 
virtual ~CmsTrackerLevelBuilder ()
 
- Protected Attributes inherited from CmsTrackerLevelBuilder
CmsTrackerStringToEnum theCmsTrackerStringToEnum
 

Detailed Description

Classes which abuilds all the tracker substructures

Definition at line 10 of file CmsTrackerSubStrctBuilder.h.

Member Function Documentation

void CmsTrackerSubStrctBuilder::buildComponent ( DDFilteredView fv,
GeometricDet g,
std::string  s 
)
privatevirtual

Implements CmsTrackerLevelBuilder.

Definition at line 14 of file CmsTrackerSubStrctBuilder.cc.

References GeometricDet::addComponent(), CmsTrackerLevelBuilder::build(), GeometricDet::disk, ExtractStringFromDDD::getString(), GeometricDet::layer, CmsTrackerLevelBuilder::theCmsTrackerStringToEnum, CmsTrackerStringToEnum::type(), and GeometricDet::wheel.

14  {
15 
16  CmsTrackerLayerBuilder theCmsTrackerLayerBuilder ;
17  CmsTrackerWheelBuilder theCmsTrackerWheelBuilder;
18  CmsTrackerDiskBuilder theCmsTrackerDiskBuilder;
19 
23  theCmsTrackerLayerBuilder.build(fv,subdet,s);
24  break;
26  theCmsTrackerWheelBuilder.build(fv,subdet,s);
27  break;
28  case GeometricDet::disk:
29  theCmsTrackerDiskBuilder.build(fv,subdet,s);
30  break;
31 
32  default:
33  edm::LogError("CmsTrackerSubStrctBuilder")<<" ERROR - I was expecting a Layer ,Wheel or Disk... I got a "<<ExtractStringFromDDD::getString(s,&fv);
34  }
35 
36  g->addComponent(subdet);
37 
38 }
static std::string getString(std::string const &, DDFilteredView *)
void addComponent(GeometricDet *)
virtual void build(DDFilteredView &, GeometricDet *, std::string)
GeometricDet::GeometricEnumType type(std::string const &) const
CmsTrackerStringToEnum theCmsTrackerStringToEnum
void CmsTrackerSubStrctBuilder::sortNS ( DDFilteredView fv,
GeometricDet det 
)
privatevirtual

Reimplemented from CmsTrackerLevelBuilder.

Definition at line 40 of file CmsTrackerSubStrctBuilder.cc.

References GeometricDet::components(), GeometricDet::disk, i, GeometricDet::layer, python.multivaluedict::sort(), and GeometricDet::wheel.

40  {
42 
43  switch(comp.front()->type()){
44  case GeometricDet::layer: std::sort(comp.begin(),comp.end(),LessR()); break;
45  case GeometricDet::wheel: std::sort(comp.begin(),comp.end(),LessModZ()); break;
46  case GeometricDet::disk: std::sort(comp.begin(),comp.end(),LessModZ()); break;
47 
48  default:
49  edm::LogError("CmsTrackerSubStrctBuilder")<<"ERROR - wrong SubDet to sort..... "<<det->components().front()->type();
50  }
51 
52  for(uint32_t i=0; i<comp.size(); i++){
53  comp[i]->setGeographicalID(i+1); // Every subdetector: Layer/Disk/Wheel Number
54  }
55 
56 }
int i
Definition: DBlmapReader.cc:9
std::vector< GeometricDet const * > GeometricDetContainer
Definition: GeometricDet.h:36
GeometricDetContainer & components()
Definition: GeometricDet.h:163