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 
10 PixelTopology* PixelTopologyBuilder::build(const Bounds* bs,double rocRow,double rocCol,double rocInX,double rocInY,std::string part)
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 }
49 
50 
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
part
Definition: HCALResponse.h:21
Definition: Bounds.h:18
virtual float width() const =0