#include <PixelTopologyBuilder.h>
Public Member Functions | |
PixelTopology * | build (const Bounds *, double, double, double, double, std::string) |
PixelTopologyBuilder () | |
Private Attributes | |
double | thePixelROCCols |
double | thePixelROCRows |
double | thePixelROCsInX |
double | thePixelROCsInY |
Called by GeomTopologyBuilder, chooses the right topology for Pixels.
Definition at line 12 of file PixelTopologyBuilder.h.
PixelTopologyBuilder::PixelTopologyBuilder | ( | void | ) |
Definition at line 8 of file PixelTopologyBuilder.cc.
: thePixelROCRows( 0 ), thePixelROCCols( 0 ), thePixelROCsInX( 0 ), thePixelROCsInY( 0 ) {}
PixelTopology * PixelTopologyBuilder::build | ( | const Bounds * | bs, |
double | rocRow, | ||
double | rocCol, | ||
double | rocInX, | ||
double | rocInY, | ||
std::string | |||
) |
Definition at line 16 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 ); }
double PixelTopologyBuilder::thePixelROCCols [private] |
Definition at line 22 of file PixelTopologyBuilder.h.
Referenced by build().
double PixelTopologyBuilder::thePixelROCRows [private] |
Definition at line 21 of file PixelTopologyBuilder.h.
Referenced by build().
double PixelTopologyBuilder::thePixelROCsInX [private] |
Definition at line 23 of file PixelTopologyBuilder.h.
Referenced by build().
double PixelTopologyBuilder::thePixelROCsInY [private] |
Definition at line 24 of file PixelTopologyBuilder.h.
Referenced by build().