File indexing completed on 2024-04-06 12:15:16
0001
0002
0003
0004 #include "Geometry/MTDGeometryBuilder/interface/MTDPixelTopologyBuilder.h"
0005 #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h"
0006 #include "DataFormats/GeometrySurface/interface/Bounds.h"
0007
0008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0009
0010 MTDPixelTopologyBuilder::MTDPixelTopologyBuilder(void) {}
0011
0012 PixelTopology* MTDPixelTopologyBuilder::build(const Bounds* bs,
0013 int pixelROCRows,
0014 int pixelROCCols,
0015 int pixelROCsInX,
0016 int pixelROCsInY,
0017 int GAPxInterpad,
0018 int GAPxBorder,
0019 int GAPyInterpad,
0020 int GAPyBorder) {
0021 float width = bs->width();
0022 float length = bs->length();
0023
0024
0025 int nrows = pixelROCRows * pixelROCsInX;
0026 int ncols = pixelROCCols * pixelROCsInY;
0027
0028 float pitchX = width / nrows;
0029 float pitchY = length / ncols;
0030
0031 float micronsTocm = 1e-4;
0032 float gapxinterpad = float(GAPxInterpad) * micronsTocm;
0033 float gapyinterpad = float(GAPyInterpad) * micronsTocm;
0034 float gapxborder = float(GAPxBorder) * micronsTocm;
0035 float gapyborder = float(GAPyBorder) * micronsTocm;
0036
0037 #ifdef EDM_ML_DEBUG
0038 edm::LogInfo("MTDPixelTopologyBuilder")
0039 << std::fixed << "Building topology for module of width(X) = " << std::setw(10) << width
0040 << " length(Y) = " << std::setw(10) << length << "\n Rows per ROC = " << std::setw(10) << pixelROCRows
0041 << " Cols per ROC = " << std::setw(10) << pixelROCCols << "\n ROCs in X = " << std::setw(10)
0042 << pixelROCsInX << " ROCs in Y = " << std::setw(10) << pixelROCsInY
0043 << "\n # pixel rows X = " << std::setw(10) << nrows << " # pixel cols Y = " << std::setw(10) << ncols
0044 << "\n pitch in X = " << std::setw(10) << pitchX << " # pitch in Y = " << std::setw(10) << pitchY
0045 << "\n Interpad gap in X = " << std::setw(10) << gapxinterpad << " # Interpad gap in Y = " << std::setw(10)
0046 << gapyinterpad << "\n Border gap in X = " << std::setw(10) << gapxborder
0047 << " # Border gap in Y = " << std::setw(10) << gapyborder;
0048 #endif
0049
0050 return (new RectangularMTDTopology(nrows,
0051 ncols,
0052 pitchX,
0053 pitchY,
0054 pixelROCRows,
0055 pixelROCCols,
0056 pixelROCsInX,
0057 pixelROCsInY,
0058 gapxinterpad,
0059 gapxborder,
0060 gapyinterpad,
0061 gapyborder));
0062 }