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 
9  const Bounds* bs,
10  bool upgradeGeometry,
11  int pixelROCRows, // Num of Rows per ROC
12  int pixelROCCols, // Num of Cols per ROC
13  int BIG_PIX_PER_ROC_X, // in x direction, rows. BIG_PIX_PER_ROC_X = 0 for SLHC
14  int BIG_PIX_PER_ROC_Y, // in y direction, cols. BIG_PIX_PER_ROC_Y = 0 for SLHC
15  int pixelROCsInX,
16  int pixelROCsInY) {
17  float width = bs->width(); // module width = Xsize
18  float length = bs->length(); // module length = Ysize
19 
20  // Number of pixel rows (x) and columns (y) per module
21  int nrows = pixelROCRows * pixelROCsInX;
22  int ncols = pixelROCCols * pixelROCsInY;
23 
24  // Take into account the large edge pixles
25  // 1 big pixel per ROC
26  float pitchX = width / (nrows + pixelROCsInX * BIG_PIX_PER_ROC_X);
27  // 2 big pixels per ROC
28  float pitchY = length / (ncols + pixelROCsInY * BIG_PIX_PER_ROC_Y);
29 
30  return (new RectangularPixelTopology(nrows,
31  ncols,
32  pitchX,
33  pitchY,
34  upgradeGeometry,
35  pixelROCRows, // (int)rocRow
36  pixelROCCols, // (int)rocCol
37  BIG_PIX_PER_ROC_X,
38  BIG_PIX_PER_ROC_Y,
39  pixelROCsInX,
40  pixelROCsInY)); // (int)rocInX, (int)rocInY
41 }
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:20