CMS 3D CMS Logo

Public Member Functions | Private Attributes

PixelTopologyBuilder Class Reference

#include <PixelTopologyBuilder.h>

List of all members.

Public Member Functions

PixelTopologybuild (const Bounds *, double, double, double, double, std::string)
 PixelTopologyBuilder ()

Private Attributes

double thePixelROCCols
double thePixelROCRows
double thePixelROCsInX
double thePixelROCsInY

Detailed Description

Called by GeomTopologyBuilder, chooses the right topology for Pixels.

Definition at line 12 of file PixelTopologyBuilder.h.


Constructor & Destructor Documentation

PixelTopologyBuilder::PixelTopologyBuilder ( )

Definition at line 8 of file PixelTopologyBuilder.cc.

{}

Member Function Documentation

PixelTopology * PixelTopologyBuilder::build ( const Bounds bs,
double  rocRow,
double  rocCol,
double  rocInX,
double  rocInY,
std::string  part 
)

Definition at line 10 of file PixelTopologyBuilder.cc.

References fireworks::BIG_PIX_PER_ROC_X, fireworks::BIG_PIX_PER_ROC_Y, Bounds::length(), thePixelROCCols, thePixelROCRows, thePixelROCsInX, thePixelROCsInY, tablePrinter::width, and Bounds::width().

Referenced by GeomTopologyBuilder::buildPixel().

{
  thePixelROCRows = rocRow; // number of pixel rows per ROC
  thePixelROCsInX = rocInX; // number of ROCs per module in x
  thePixelROCCols = rocCol; // number of pixel cols in ROC
  thePixelROCsInY = rocInY; // number of ROCs per module in y

  float width = bs->width(); // module width = Xsize
  float length = bs->length(); // module length = Ysize

  // Number of pixel rows (x) and columns (y) per module
  int nrows = int(thePixelROCRows * thePixelROCsInX);
  int ncols = int(thePixelROCCols * thePixelROCsInY);

  // For all pixels having same size (old topology)
  //float pitchX = width/float(nrows); 
  //float pitchY = length/float(ncols);

  // temporary before we find a better way to do this 
  const int BIG_PIX_PER_ROC_X = 1; // 1 big pixel  in x direction, rows
  const int BIG_PIX_PER_ROC_Y = 2; // 2 big pixels in y direction, cols

  // Take into account the large edge pixles
  // 1 big pixel per ROC
  float pitchX = width /(float(nrows)+thePixelROCsInX*BIG_PIX_PER_ROC_X); 
  // 2 big pixels per ROC
  float pitchY = length/(float(ncols)+thePixelROCsInY*BIG_PIX_PER_ROC_Y);

  //std::cout<<"Build Pixel Topology: row/cols = "<<nrows<<"/"<<ncols
  //   <<" sizeX/Y = "<<width<<"/"<<length
  //   <<" pitchX/Y = "<<pitchX<<"/"<<pitchY
  //   <<" ROCsX/Y = "<<thePixelROCsInX<<"/"<<thePixelROCsInY
  //   <<" per ROC row/cols = "<<thePixelROCRows<<"/"<<thePixelROCCols
  //   <<" big pixels "<<BIG_PIX_PER_ROC_X<<"/"<<BIG_PIX_PER_ROC_Y
  //   <<std::endl;   

  return new RectangularPixelTopology(nrows,ncols,pitchX,pitchY);

}

Member Data Documentation

Definition at line 22 of file PixelTopologyBuilder.h.

Referenced by build().

Definition at line 21 of file PixelTopologyBuilder.h.

Referenced by build().

Definition at line 23 of file PixelTopologyBuilder.h.

Referenced by build().

Definition at line 24 of file PixelTopologyBuilder.h.

Referenced by build().