CMS 3D CMS Logo

PixelTopologyBuilder.cc
Go to the documentation of this file.
1 // Make the change for "big" pixels. 3/06 d.k.
5 
7 {}
8 
11  bool upgradeGeometry,
12  int pixelROCRows, // Num of Rows per ROC
13  int pixelROCCols, // Num of Cols per ROC
14  int BIG_PIX_PER_ROC_X, // in x direction, rows. BIG_PIX_PER_ROC_X = 0 for SLHC
15  int BIG_PIX_PER_ROC_Y, // in y direction, cols. BIG_PIX_PER_ROC_Y = 0 for SLHC
16  int pixelROCsInX, int pixelROCsInY )
17 {
18  float width = bs->width(); // module width = Xsize
19  float length = bs->length(); // module length = Ysize
20 
21  // Number of pixel rows (x) and columns (y) per module
22  int nrows = pixelROCRows * pixelROCsInX;
23  int ncols = pixelROCCols * pixelROCsInY;
24 
25  // Take into account the large edge pixles
26  // 1 big pixel per ROC
27  float pitchX = width /(nrows+pixelROCsInX*BIG_PIX_PER_ROC_X);
28  // 2 big pixels per ROC
29  float pitchY = length/(ncols+pixelROCsInY*BIG_PIX_PER_ROC_Y);
30 
31  return ( new RectangularPixelTopology( nrows, ncols, pitchX, pitchY,
32  upgradeGeometry,
33  pixelROCRows, // (int)rocRow
34  pixelROCCols, // (int)rocCol
35  BIG_PIX_PER_ROC_X,
36  BIG_PIX_PER_ROC_Y,
37  pixelROCsInX, pixelROCsInY )); // (int)rocInX, (int)rocInY
38 }
virtual float length() const =0
PixelTopology * build(const Bounds *bounds, bool upgradeGeometry, int ROWS_PER_ROC, int COLS_PER_ROC, int BIG_PIX_PER_ROC_X, int BIG_PIX_PER_ROC_Y, int ROCS_X, int ROCS_Y)
virtual float width() const =0
Definition: Bounds.h:22