CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PixelTopologyBuilder.cc
Go to the documentation of this file.
1 // Make the change for "big" pixels. 3/06 d.k.
2 #include <iostream>
3 
7 
9  : thePixelROCRows( 0 ),
10  thePixelROCCols( 0 ),
11  thePixelROCsInX( 0 ),
12  thePixelROCsInY( 0 )
13 {}
14 
16 PixelTopologyBuilder::build( const Bounds* bs, double rocRow, double rocCol, double rocInX, double rocInY, std::string /* part */ )
17 {
18  thePixelROCRows = rocRow; // number of pixel rows per ROC
19  thePixelROCsInX = rocInX; // number of ROCs per module in x
20  thePixelROCCols = rocCol; // number of pixel cols in ROC
21  thePixelROCsInY = rocInY; // number of ROCs per module in y
22 
23  float width = bs->width(); // module width = Xsize
24  float length = bs->length(); // module length = Ysize
25 
26  // Number of pixel rows (x) and columns (y) per module
27  int nrows = int(thePixelROCRows * thePixelROCsInX);
28  int ncols = int(thePixelROCCols * thePixelROCsInY);
29 
30  // For all pixels having same size (old topology)
31  //float pitchX = width/float(nrows);
32  //float pitchY = length/float(ncols);
33 
34  // temporary before we find a better way to do this
35  const int BIG_PIX_PER_ROC_X = 1; // 1 big pixel in x direction, rows
36  const int BIG_PIX_PER_ROC_Y = 2; // 2 big pixels in y direction, cols
37 
38  // Take into account the large edge pixles
39  // 1 big pixel per ROC
40  float pitchX = width /(float(nrows)+thePixelROCsInX*BIG_PIX_PER_ROC_X);
41  // 2 big pixels per ROC
42  float pitchY = length/(float(ncols)+thePixelROCsInY*BIG_PIX_PER_ROC_Y);
43 
44  //std::cout<<"Build Pixel Topology: row/cols = "<<nrows<<"/"<<ncols
45  // <<" sizeX/Y = "<<width<<"/"<<length
46  // <<" pitchX/Y = "<<pitchX<<"/"<<pitchY
47  // <<" ROCsX/Y = "<<thePixelROCsInX<<"/"<<thePixelROCsInY
48  // <<" per ROC row/cols = "<<thePixelROCRows<<"/"<<thePixelROCCols
49  // <<" big pixels "<<BIG_PIX_PER_ROC_X<<"/"<<BIG_PIX_PER_ROC_Y
50  // <<std::endl;
51 
52  return new RectangularPixelTopology( nrows, ncols, pitchX, pitchY );
53 }
54 
55 
virtual float length() const =0
static const int BIG_PIX_PER_ROC_Y
Definition: TrackUtils.cc:61
PixelTopology * build(const Bounds *, double, double, double, double, std::string)
static const int BIG_PIX_PER_ROC_X
Definition: TrackUtils.cc:64
Definition: Bounds.h:18
virtual float width() const =0