CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PixelTopologyBuilder.cc
Go to the documentation of this file.
1 // Make the change for "big" pixels. 3/06 d.k.
5 
7 
9  const Bounds* bs,
10  bool upgradeGeometry,
11  bool isBricked,
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,
17  int pixelROCsInY) {
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,
32  ncols,
33  pitchX,
34  pitchY,
35  upgradeGeometry,
36  isBricked,
37  pixelROCRows, // (int)rocRow
38  pixelROCCols, // (int)rocCol
39  BIG_PIX_PER_ROC_X,
40  BIG_PIX_PER_ROC_Y,
41  pixelROCsInX,
42  pixelROCsInY)); // (int)rocInX, (int)rocInY
43 }
virtual float length() const =0
PixelTopology * build(const Bounds *bounds, bool upgradeGeometry, bool isBricked, 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)
Definition: Bounds.h:18
virtual float width() const =0