CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
PixelTopologyBuilder Class Reference

#include <PixelTopologyBuilder.h>

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.

8 {}

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, Bounds::width(), and tablePrinter::width.

Referenced by GeomTopologyBuilder::buildPixel().

11 {
12  thePixelROCRows = rocRow; // number of pixel rows per ROC
13  thePixelROCsInX = rocInX; // number of ROCs per module in x
14  thePixelROCCols = rocCol; // number of pixel cols in ROC
15  thePixelROCsInY = rocInY; // number of ROCs per module in y
16 
17  float width = bs->width(); // module width = Xsize
18  float length = bs->length(); // module length = Ysize
19 
20  // Number of pixel rows (x) and columns (y) per module
21  int nrows = int(thePixelROCRows * thePixelROCsInX);
22  int ncols = int(thePixelROCCols * thePixelROCsInY);
23 
24  // For all pixels having same size (old topology)
25  //float pitchX = width/float(nrows);
26  //float pitchY = length/float(ncols);
27 
28  // temporary before we find a better way to do this
29  const int BIG_PIX_PER_ROC_X = 1; // 1 big pixel in x direction, rows
30  const int BIG_PIX_PER_ROC_Y = 2; // 2 big pixels in y direction, cols
31 
32  // Take into account the large edge pixles
33  // 1 big pixel per ROC
34  float pitchX = width /(float(nrows)+thePixelROCsInX*BIG_PIX_PER_ROC_X);
35  // 2 big pixels per ROC
36  float pitchY = length/(float(ncols)+thePixelROCsInY*BIG_PIX_PER_ROC_Y);
37 
38  //std::cout<<"Build Pixel Topology: row/cols = "<<nrows<<"/"<<ncols
39  // <<" sizeX/Y = "<<width<<"/"<<length
40  // <<" pitchX/Y = "<<pitchX<<"/"<<pitchY
41  // <<" ROCsX/Y = "<<thePixelROCsInX<<"/"<<thePixelROCsInY
42  // <<" per ROC row/cols = "<<thePixelROCRows<<"/"<<thePixelROCCols
43  // <<" big pixels "<<BIG_PIX_PER_ROC_X<<"/"<<BIG_PIX_PER_ROC_Y
44  // <<std::endl;
45 
46  return new RectangularPixelTopology(nrows,ncols,pitchX,pitchY);
47 
48 }
virtual float length() const =0
static const int BIG_PIX_PER_ROC_Y
Definition: TrackUtils.cc:61
static const int BIG_PIX_PER_ROC_X
Definition: TrackUtils.cc:64
virtual float width() const =0

Member Data Documentation

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().