CMS 3D CMS Logo

StripTopologyBuilder Class Reference

Called by GeomTopologyBuilder, chooses the right topology for Strips. More...

#include <Geometry/TrackerGeometryBuilder/interface/StripTopologyBuilder.h>

List of all members.

Public Member Functions

StripTopologybuild (const Bounds *, double, std::string)
 StripTopologyBuilder ()

Private Member Functions

StripTopologyconstructBarrel (float, float)
StripTopologyconstructForward (float, float, float, int)

Private Attributes

double theAPVNumb


Detailed Description

Called by GeomTopologyBuilder, chooses the right topology for Strips.

Definition at line 13 of file StripTopologyBuilder.h.


Constructor & Destructor Documentation

StripTopologyBuilder::StripTopologyBuilder (  ) 

Definition at line 10 of file StripTopologyBuilder.cc.

00010 {}


Member Function Documentation

StripTopology * StripTopologyBuilder::build ( const Bounds bs,
double  apvnumb,
std::string  part 
)

Definition at line 12 of file StripTopologyBuilder.cc.

References constructBarrel(), constructForward(), Bounds::length(), HLT_VtxMuL3::result, theAPVNumb, Bounds::width(), and Bounds::widthAtHalfLength().

00013 {
00014   theAPVNumb = apvnumb;
00015 
00016   StripTopology* result;
00017   if (part == "barrel") {
00018     result = constructBarrel( bs->length(), bs->width());
00019   }
00020   else {
00021     int yAx = (dynamic_cast<const TrapezoidalPlaneBounds*>(bs))->yAxisOrientation();
00022     result = constructForward( bs->length(), bs->width(),bs->widthAtHalfLength(),yAx);
00023   }
00024   return result;
00025 }

StripTopology * StripTopologyBuilder::constructBarrel ( float  length,
float  width 
) [private]

Definition at line 27 of file StripTopologyBuilder.cc.

References int, and theAPVNumb.

Referenced by build().

00028 {
00029   int nstrip = int(128*theAPVNumb);
00030   float pitch = width/nstrip;
00031   
00032   return new RectangularStripTopology(nstrip,pitch,length);
00033 }

StripTopology * StripTopologyBuilder::constructForward ( float  length,
float  width,
float  widthAtHalf,
int  yAxOr 
) [private]

Definition at line 35 of file StripTopologyBuilder.cc.

References int, and theAPVNumb.

Referenced by build().

00036 {
00037   int nstrip = int(128*theAPVNumb);
00038   float rCross = widthAtHalf*length/(2*(width-widthAtHalf));
00039   float aw = atan2(widthAtHalf/2., static_cast<double>(rCross))/(nstrip/2);
00040   return new RadialStripTopology(nstrip, aw, length, rCross, yAxOr);
00041 }


Member Data Documentation

double StripTopologyBuilder::theAPVNumb [private]

Definition at line 22 of file StripTopologyBuilder.h.

Referenced by build(), constructBarrel(), and constructForward().


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