1 #ifndef Geometry_VeryForwardGeometry_CTPPSPixelSimTopology_h 2 #define Geometry_VeryForwardGeometry_CTPPSPixelSimTopology_h 21 PixelInfo(
double lower_simX_border,
double higher_simX_border,
double lower_simY_border,
double higher_simY_border,
double eff_factor,
unsigned short pixel_row_no,
unsigned short pixel_col_no ) :
55 inline void pixelRange(
unsigned int arow,
unsigned int acol,
double& lower_x,
double& higher_x,
double& lower_y,
double& higher_y )
const {
58 if ( arow > 159 || acol > 155 )
59 throw cms::Exception(
"CTPPSPixelSimTopology")<<
"rows or columns exceeding limits";
66 else if ( arow <= 78 ) {
70 else if ( arow == 79 ) {
74 else if ( arow == 80 ) {
78 else if ( arow <= 158 ) {
82 else if ( arow == 159) {
92 else if ( acol <= 50 ) {
96 else if ( acol == 51 ) {
100 else if ( acol == 52 ) {
104 else if ( acol <= 102 ) {
108 else if ( acol == 103 ) {
112 else if ( acol == 104) {
116 else if ( acol <= 154 ) {
120 else if ( acol == 155 ) {
142 const double aEF = topEdgeFactor*bottomEdgeFactor*rightEdgeFactor*leftEdgeFactor;
145 throw cms::Exception(
"CTPPSPixelSimTopology")<<
" active edge factor > 1";
155 inline unsigned int row(
double x )
const {
161 throw cms::Exception(
"CTPPSPixelSimTopology")<<
"out of reference frame";
174 throw cms::Exception(
"CTPPSPixelSimTopology")<<
"row number exceeding limit";
179 inline unsigned int col(
double y )
const {
187 throw cms::Exception(
"CTPPSPixelSimTopology")<<
" out of reference frame";
static double pitch_simY_
void rowCol2Index(unsigned int arow, unsigned int acol, unsigned int &index) const
unsigned short pixelRowNo() const
unsigned short pixelColNo() const
static double phys_active_edge_dist_
double distanceFromRightActiveEdge(double x, double y) const
double higherSimXBorder() const
void index2RowCol(unsigned int &arow, unsigned int &acol, unsigned int index) const
unsigned short pixel_row_no_
double distanceFromBottomActiveEdge(double x, double y) const
static double active_edge_sigma_
unsigned short pixelIndex() const
Geometrical and topological information on RPix silicon detector. Uses coordinate a frame with origin...
static double dead_edge_width_
static double simX_width_
double lowerSimYBorder() const
double lower_simX_border_
PixelInfo(double lower_simX_border, double higher_simX_border, double lower_simY_border, double higher_simY_border, double eff_factor, unsigned short pixel_row_no, unsigned short pixel_col_no)
unsigned int col(double y) const
double higher_simX_border_
void pixelRange(unsigned int arow, unsigned int acol, double &lower_x, double &higher_x, double &lower_y, double &higher_y) const
double lowerSimXBorder() const
unsigned short pixel_col_no_
static double simY_width_
PixelInfo getPixelsInvolved(double x, double y, double sigma, double &hit_pos_x, double &hit_pos_y) const
static unsigned short no_of_pixels_simX_
double distanceFromLeftActiveEdge(double x, double y) const
double lower_simY_border_
double distanceFromTopActiveEdge(double x, double y) const
double higherSimYBorder() const
static double pitch_simX_
unsigned int row(double x) const
double activeEdgeFactor(double x, double y) const
double higher_simY_border_
unsigned short pixel_index_