CMS 3D CMS Logo

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

#include <PixelTopologyBuilder.h>

Public Member Functions

PixelTopologybuild (const Bounds *, double, double, double, double, std::string)
 
 PixelTopologyBuilder ()
 

Private Attributes

double thePixelROCCols
 
double thePixelROCRows
 
double thePixelROCsInX
 
double thePixelROCsInY
 

Detailed Description

Called by GeomTopologyBuilder, chooses the right topology for Pixels.

Definition at line 12 of file PixelTopologyBuilder.h.

Constructor & Destructor Documentation

PixelTopologyBuilder::PixelTopologyBuilder ( void  )

Definition at line 8 of file PixelTopologyBuilder.cc.

Member Function Documentation

PixelTopology * PixelTopologyBuilder::build ( const Bounds bs,
double  rocRow,
double  rocCol,
double  rocInX,
double  rocInY,
std::string   
)

Definition at line 16 of file PixelTopologyBuilder.cc.

References fireworks::BIG_PIX_PER_ROC_X, fireworks::BIG_PIX_PER_ROC_Y, Bounds::length(), thePixelROCCols, thePixelROCRows, thePixelROCsInX, thePixelROCsInY, Bounds::width(), and tablePrinter::width.

Referenced by GeomTopologyBuilder::buildPixel().

17 {
18  thePixelROCRows = rocRow; // number of pixel rows per ROC
19  thePixelROCsInX = rocInX; // number of ROCs per module in x
20  thePixelROCCols = rocCol; // number of pixel cols in ROC
21  thePixelROCsInY = rocInY; // number of ROCs per module in y
22 
23  float width = bs->width(); // module width = Xsize
24  float length = bs->length(); // module length = Ysize
25 
26  // Number of pixel rows (x) and columns (y) per module
27  int nrows = int(thePixelROCRows * thePixelROCsInX);
28  int ncols = int(thePixelROCCols * thePixelROCsInY);
29 
30  // For all pixels having same size (old topology)
31  //float pitchX = width/float(nrows);
32  //float pitchY = length/float(ncols);
33 
34  // temporary before we find a better way to do this
35  const int BIG_PIX_PER_ROC_X = 1; // 1 big pixel in x direction, rows
36  const int BIG_PIX_PER_ROC_Y = 2; // 2 big pixels in y direction, cols
37 
38  // Take into account the large edge pixles
39  // 1 big pixel per ROC
40  float pitchX = width /(float(nrows)+thePixelROCsInX*BIG_PIX_PER_ROC_X);
41  // 2 big pixels per ROC
42  float pitchY = length/(float(ncols)+thePixelROCsInY*BIG_PIX_PER_ROC_Y);
43 
44  //std::cout<<"Build Pixel Topology: row/cols = "<<nrows<<"/"<<ncols
45  // <<" sizeX/Y = "<<width<<"/"<<length
46  // <<" pitchX/Y = "<<pitchX<<"/"<<pitchY
47  // <<" ROCsX/Y = "<<thePixelROCsInX<<"/"<<thePixelROCsInY
48  // <<" per ROC row/cols = "<<thePixelROCRows<<"/"<<thePixelROCCols
49  // <<" big pixels "<<BIG_PIX_PER_ROC_X<<"/"<<BIG_PIX_PER_ROC_Y
50  // <<std::endl;
51 
52  return new RectangularPixelTopology( nrows, ncols, pitchX, pitchY );
53 }
virtual float length() const =0
static const int BIG_PIX_PER_ROC_Y
Definition: TrackUtils.cc:61
static const int BIG_PIX_PER_ROC_X
Definition: TrackUtils.cc:64
virtual float width() const =0

Member Data Documentation

double PixelTopologyBuilder::thePixelROCCols
private

Definition at line 22 of file PixelTopologyBuilder.h.

Referenced by build().

double PixelTopologyBuilder::thePixelROCRows
private

Definition at line 21 of file PixelTopologyBuilder.h.

Referenced by build().

double PixelTopologyBuilder::thePixelROCsInX
private

Definition at line 23 of file PixelTopologyBuilder.h.

Referenced by build().

double PixelTopologyBuilder::thePixelROCsInY
private

Definition at line 24 of file PixelTopologyBuilder.h.

Referenced by build().