CMS 3D CMS Logo

List of all members | Public Member Functions
MTDPixelTopologyBuilder Class Reference

#include <MTDPixelTopologyBuilder.h>

Public Member Functions

PixelTopologybuild (const Bounds *bounds, int ROWS_PER_ROC, int COLS_PER_ROC, int ROCS_X, int ROCS_Y, int GAPxInterpad, int GAPxBorder, int GAPyInterpad, int GAPyBorder)
 
 MTDPixelTopologyBuilder ()
 

Detailed Description

Called by GeomTopologyBuilder, chooses the right topology for Pixels.

Definition at line 12 of file MTDPixelTopologyBuilder.h.

Constructor & Destructor Documentation

◆ MTDPixelTopologyBuilder()

MTDPixelTopologyBuilder::MTDPixelTopologyBuilder ( void  )

Definition at line 10 of file MTDPixelTopologyBuilder.cc.

10 {}

Member Function Documentation

◆ build()

PixelTopology * MTDPixelTopologyBuilder::build ( const Bounds bounds,
int  ROWS_PER_ROC,
int  COLS_PER_ROC,
int  ROCS_X,
int  ROCS_Y,
int  GAPxInterpad,
int  GAPxBorder,
int  GAPyInterpad,
int  GAPyBorder 
)

Definition at line 12 of file MTDPixelTopologyBuilder.cc.

References cms::cuda::bs, MillePedeFileConverter_cfg::e, alignBH_cfg::fixed, nano_mu_digi_cff::float, hgcalPlots::ncols, and ApeEstimator_cff::width.

Referenced by MTDGeomBuilderFromGeometricTimingDet::buildPixel().

20  {
21  float width = bs->width(); // module width = Xsize
22  float length = bs->length(); // module length = Ysize
23 
24  // Number of pixel rows (x) and columns (y) per module
25  int nrows = pixelROCRows * pixelROCsInX;
26  int ncols = pixelROCCols * pixelROCsInY;
27 
28  float pitchX = width / nrows;
29  float pitchY = length / ncols;
30 
31  float micronsTocm = 1e-4;
32  float gapxinterpad = float(GAPxInterpad) * micronsTocm; //Convert to cm
33  float gapyinterpad = float(GAPyInterpad) * micronsTocm; //Convert to cm
34  float gapxborder = float(GAPxBorder) * micronsTocm; //Convert to cm
35  float gapyborder = float(GAPyBorder) * micronsTocm; //Convert to cm
36 
37 #ifdef EDM_ML_DEBUG
38  edm::LogInfo("MTDPixelTopologyBuilder")
39  << std::fixed << "Building topology for module of width(X) = " << std::setw(10) << width
40  << " length(Y) = " << std::setw(10) << length << "\n Rows per ROC = " << std::setw(10) << pixelROCRows
41  << " Cols per ROC = " << std::setw(10) << pixelROCCols << "\n ROCs in X = " << std::setw(10)
42  << pixelROCsInX << " ROCs in Y = " << std::setw(10) << pixelROCsInY
43  << "\n # pixel rows X = " << std::setw(10) << nrows << " # pixel cols Y = " << std::setw(10) << ncols
44  << "\n pitch in X = " << std::setw(10) << pitchX << " # pitch in Y = " << std::setw(10) << pitchY
45  << "\n Interpad gap in X = " << std::setw(10) << gapxinterpad << " # Interpad gap in Y = " << std::setw(10)
46  << gapyinterpad << "\n Border gap in X = " << std::setw(10) << gapxborder
47  << " # Border gap in Y = " << std::setw(10) << gapyborder;
48 #endif
49 
50  return (new RectangularMTDTopology(nrows,
51  ncols,
52  pitchX,
53  pitchY,
54  pixelROCRows, // (int)rocRow
55  pixelROCCols, // (int)rocCol
56  pixelROCsInX,
57  pixelROCsInY,
58  gapxinterpad,
59  gapxborder,
60  gapyinterpad,
61  gapyborder));
62 }
Log< level::Info, false > LogInfo