CMS 3D CMS Logo

PixelBarrelLayerBuilder Class Reference

A concrete builder for PixelBarrelLayer. More...

#include <RecoTracker/TkDetLayers/interface/PixelBarrelLayerBuilder.h>

List of all members.

Public Member Functions

PixelBarrelLayerbuild (const GeometricDet *aPixelBarrelLayer, const TrackerGeometry *theGeomDetGeometry)
 PixelBarrelLayerBuilder ()


Detailed Description

A concrete builder for PixelBarrelLayer.

Definition at line 14 of file PixelBarrelLayerBuilder.h.


Constructor & Destructor Documentation

PixelBarrelLayerBuilder::PixelBarrelLayerBuilder (  )  [inline]

Definition at line 16 of file PixelBarrelLayerBuilder.h.

00016 {};


Member Function Documentation

PixelBarrelLayer * PixelBarrelLayerBuilder::build ( const GeometricDet aPixelBarrelLayer,
const TrackerGeometry theGeomDetGeometry 
)

Definition at line 7 of file PixelBarrelLayerBuilder.cc.

References PixelRodBuilder::build(), GeometricDet::components(), and index.

Referenced by GeometricSearchTrackerBuilder::build().

00009 {
00010   // This builder is very similar to TOBLayer one. Most of the code should be put in a 
00011   // common place.
00012 
00013   vector<const GeometricDet*>  theGeometricDetRods = aPixelBarrelLayer->components();
00014   //edm::LogInfo(TkDetLayers) << "theGeometricDetRods has size: " << theGeometricDetRods.size() ;  
00015   
00016 
00017   PixelRodBuilder myPixelRodBuilder;
00018 
00019   vector<const PixelRod*> theInnerRods;
00020   vector<const PixelRod*> theOuterRods;
00021 
00022   // properly calculate the meanR value to separate rod in inner/outer.
00023 
00024   double meanR = 0;
00025   for (unsigned int index=0; index!=theGeometricDetRods.size(); index++)   meanR+=theGeometricDetRods[index]->positionBounds().perp();
00026   if (theGeometricDetRods.size()!=0)
00027     meanR/=(double) theGeometricDetRods.size();
00028   
00029   for(unsigned int index=0; index!=theGeometricDetRods.size(); index++){    
00030     if(theGeometricDetRods[index]->positionBounds().perp() < meanR)
00031       theInnerRods.push_back(myPixelRodBuilder.build(theGeometricDetRods[index],
00032                                                      theGeomDetGeometry)    );       
00033 
00034     if(theGeometricDetRods[index]->positionBounds().perp() > meanR)
00035       theOuterRods.push_back(myPixelRodBuilder.build(theGeometricDetRods[index],
00036                                                      theGeomDetGeometry)    );       
00037 
00038   }
00039   
00040   return new PixelBarrelLayer(theInnerRods,theOuterRods);
00041 
00042 }


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