CMS 3D CMS Logo

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