#include <SegGeometryEpix100V1.h>
Inheritance diagram for PSCalib::SegGeometryEpix100V1:
Public Member Functions | |
virtual void | print_seg_info (const unsigned &pbits=0) |
Prints segment info for selected bits. | |
virtual const size_t | size () |
Returns size of the coordinate arrays. | |
virtual const size_t | rows () |
Returns number of rows in segment. | |
virtual const size_t | cols () |
Returns number of cols in segment. | |
virtual const size_t * | shape () |
Returns shape of the segment {rows, cols}. | |
virtual const pixel_coord_t | pixel_scale_size () |
Returns pixel size in um for indexing. | |
virtual const pixel_area_t * | pixel_area_array () |
Returns pointer to the array of pixel areas. | |
virtual const pixel_coord_t * | pixel_size_array (AXIS axis) |
Returns pointer to the array of pixel size in um for AXIS. | |
virtual const pixel_coord_t * | pixel_coord_array (AXIS axis) |
Returns pointer to the array of segment pixel coordinates in um for AXIS. | |
virtual const pixel_coord_t | pixel_coord_min (AXIS axis) |
Returns minimal value in the array of segment pixel coordinates in um for AXIS. | |
virtual const pixel_coord_t | pixel_coord_max (AXIS axis) |
Returns maximal value in the array of segment pixel coordinates in um for AXIS. | |
virtual const pixel_mask_t * | pixel_mask_array (const unsigned &mbits=0377) |
Returns pointer to the array of pixel mask: 1/0 = ok/masked. | |
Static Public Member Functions | |
static PSCalib::SegGeometry * | instance (const bool &use_wide_pix_center=false) |
Static Public Attributes | |
static const size_t | ROWS = 704 |
Number of pixel rows in segment. | |
static const size_t | COLS = 768 |
Number of pixel columns in segment. | |
static const size_t | ROWSHALF = 352 |
Half number of pixel rows in segment. | |
static const size_t | COLSHALF = 384 |
Half number of pixel columns in segment. | |
static const size_t | SIZE = COLS*ROWS |
Number of pixels in segment. | |
static const size_t | NCORNERS = 4 |
Number of corners. | |
static const pixel_coord_t | PIX_SCALE_SIZE = 50.00 |
Pixel scale size [um] for indexing. | |
static const pixel_coord_t | PIX_SIZE_COLS = PIX_SCALE_SIZE |
Pixel size [um] in column direction. | |
static const pixel_coord_t | PIX_SIZE_ROWS = PIX_SCALE_SIZE |
Pixel size [um] in row direction. | |
static const pixel_coord_t | PIX_SIZE_WIDE = 175.00 |
Wide pixel length [um]. | |
static const pixel_coord_t | PIX_SIZE_DEPTH = 400. |
Pixel size [um] in depth. | |
static const double | UM_TO_PIX = 1./PIX_SCALE_SIZE |
Conversion factor between um and pix. |
2x1 sensor coordinate frame:
(Xmin,Ymax) ^ Y (Xmax,Ymax) (0,0) | (0,768) +----------------------------+ | | | | | | | | | | | | | | | | | | | | | --|-------------+--------------|----> X | | | | | | | | | | | | | | | | | | | | | +----------------------------+ (704,0) | (704,768) (Xmin,Ymin) (Xmax,Ymin)
Pixel (r,c)=(0,0) is in the top left corner of the matrix which has coordinates (Xmin,Ymax) Here we assume that segment has 704 rows and 768 columns. Epix100 has a pixel size 50x50um, Epix10k has a pixel size 100x100um, This assumption differs from the DAQ map, where rows and cols are interchanged: /reg/g/psdm/sw/external/lusi-xtc/2.12.0a/x86_64-rhel5-gcc41-opt/pdsdata/cspad/ElementIterator.hh, Detector.hh
#include "PSCalib/SegGeometryEpix100V1.h" typedef PSCalib::SegGeometryEpix100V1 SG;
unsigned pbits=0377; // 1-member data; 2-coordinate arrays; 4-min/max coordinate values seg_geom -> print_seg_info(pbits);
// scalar values const size_t array_size = seg_geom -> size(); const size_t number_of_rows = seg_geom -> rows(); const size_t number_of_cols = seg_geom -> cols(); const pixel_coord_t pixel_scale_size = seg_geom -> pixel_scale_size(); const pixel_coord_t pixel_coord_min = seg_geom -> pixel_coord_min(SG::AXIS_Z); const pixel_coord_t pixel_coord_max = seg_geom -> pixel_coord_max(SG::AXIS_X); // pointer to arrays with size equal to array_size const size_t* p_array_shape = seg_geom -> shape(); const pixel_area_t* p_pixel_area = seg_geom -> pixel_area_array(); // array of 1-for regular or 2.5-for long pixels const pixel_coord_t* p_pixel_size_arr = seg_geom -> pixel_size_array(SG::AXIS_X); const pixel_coord_t* p_pixel_coord_arr = seg_geom -> pixel_coord_array(SG::AXIS_Y); unsigned mbits=0377; // 1-edges; 2-wide central cols; 4-non-bound; 8-non-bound neighbours const pixel_mask_t* p_mask_arr = seg_geom -> pixel_mask_array(mbits);
Definition at line 132 of file SegGeometryEpix100V1.h.
virtual const size_t PSCalib::SegGeometryEpix100V1::cols | ( | ) | [inline, virtual] |
Returns number of cols in segment.
Implements PSCalib::SegGeometry.
Definition at line 185 of file SegGeometryEpix100V1.h.
References COLS.
static PSCalib::SegGeometry* PSCalib::SegGeometryEpix100V1::instance | ( | const bool & | use_wide_pix_center = false |
) | [static] |
Referenced by PSCalib::SegGeometryStore::Create().
virtual const pixel_area_t* PSCalib::SegGeometryEpix100V1::pixel_area_array | ( | ) | [virtual] |
virtual const pixel_coord_t* PSCalib::SegGeometryEpix100V1::pixel_coord_array | ( | AXIS | axis | ) | [virtual] |
Returns pointer to the array of segment pixel coordinates in um for AXIS.
virtual const pixel_coord_t PSCalib::SegGeometryEpix100V1::pixel_coord_max | ( | AXIS | axis | ) | [virtual] |
Returns maximal value in the array of segment pixel coordinates in um for AXIS.
virtual const pixel_coord_t PSCalib::SegGeometryEpix100V1::pixel_coord_min | ( | AXIS | axis | ) | [virtual] |
Returns minimal value in the array of segment pixel coordinates in um for AXIS.
virtual const pixel_mask_t* PSCalib::SegGeometryEpix100V1::pixel_mask_array | ( | const unsigned & | mbits = 0377 |
) | [virtual] |
Returns pointer to the array of pixel mask: 1/0 = ok/masked.
[in] | mbits | - mask control bits; + 1 - mask edges, + 2 - mask two central columns, |
Implements PSCalib::SegGeometry.
virtual const pixel_coord_t PSCalib::SegGeometryEpix100V1::pixel_scale_size | ( | ) | [inline, virtual] |
Returns pixel size in um for indexing.
Implements PSCalib::SegGeometry.
Definition at line 191 of file SegGeometryEpix100V1.h.
References PIX_SCALE_SIZE.
virtual const pixel_coord_t* PSCalib::SegGeometryEpix100V1::pixel_size_array | ( | AXIS | axis | ) | [virtual] |
Returns pointer to the array of pixel size in um for AXIS.
[in] | axis | Axis from the enumerated list for X, Y, and Z axes |
virtual void PSCalib::SegGeometryEpix100V1::print_seg_info | ( | const unsigned & | pbits = 0 |
) | [virtual] |
virtual const size_t PSCalib::SegGeometryEpix100V1::rows | ( | ) | [inline, virtual] |
Returns number of rows in segment.
Implements PSCalib::SegGeometry.
Definition at line 182 of file SegGeometryEpix100V1.h.
References ROWS.
virtual const size_t* PSCalib::SegGeometryEpix100V1::shape | ( | ) | [inline, virtual] |
Returns shape of the segment {rows, cols}.
Implements PSCalib::SegGeometry.
Definition at line 188 of file SegGeometryEpix100V1.h.
virtual const size_t PSCalib::SegGeometryEpix100V1::size | ( | ) | [inline, virtual] |
Returns size of the coordinate arrays.
Implements PSCalib::SegGeometry.
Definition at line 179 of file SegGeometryEpix100V1.h.
References SIZE.
const size_t PSCalib::SegGeometryEpix100V1::COLS = 768 [static] |
Number of pixel columns in segment.
Definition at line 139 of file SegGeometryEpix100V1.h.
Referenced by cols().
const size_t PSCalib::SegGeometryEpix100V1::COLSHALF = 384 [static] |
const size_t PSCalib::SegGeometryEpix100V1::NCORNERS = 4 [static] |
const SegGeometry::pixel_coord_t PSCalib::SegGeometryEpix100V1::PIX_SCALE_SIZE = 50.00 [static] |
Pixel scale size [um] for indexing.
Definition at line 154 of file SegGeometryEpix100V1.h.
Referenced by pixel_scale_size().
const SegGeometry::pixel_coord_t PSCalib::SegGeometryEpix100V1::PIX_SIZE_DEPTH = 400. [static] |
const SegGeometry::pixel_coord_t PSCalib::SegGeometryEpix100V1::PIX_SIZE_WIDE = 175.00 [static] |
const size_t PSCalib::SegGeometryEpix100V1::ROWS = 704 [static] |
Number of pixel rows in segment.
Definition at line 136 of file SegGeometryEpix100V1.h.
Referenced by rows().
const size_t PSCalib::SegGeometryEpix100V1::ROWSHALF = 352 [static] |
const size_t PSCalib::SegGeometryEpix100V1::SIZE = COLS*ROWS [static] |
Number of pixels in segment.
Definition at line 148 of file SegGeometryEpix100V1.h.
Referenced by size().
const double PSCalib::SegGeometryEpix100V1::UM_TO_PIX = 1./PIX_SCALE_SIZE [static] |