#include <SegGeometryCspad2x1V1.h>
Inheritance diagram for PSCalib::SegGeometryCspad2x1V1:
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 = 185 |
Number of pixel rows in 2x1. | |
static const size_t | COLS = 388 |
Number of pixel columnss in 2x1. | |
static const size_t | COLSHALF = 194 |
Half number of pixel columnss in 2x1. | |
static const size_t | SIZE = COLS*ROWS |
Number of pixels in 2x1. | |
static const size_t | NCORNERS = 4 |
Number of corners. | |
static const pixel_coord_t | PIX_SCALE_SIZE = 109.92 |
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 = 274.80 |
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,387) +----------------------------+ | | | | | | | | | --|-------------+--------------|----> X | | | | | | | | | +----------------------------+ (184,0) | (184,387) (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 2x1 has 185 rows and 388 columns. 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/SegGeometryCspad2x1V1.h" typedef PSCalib::SegGeometryCspad2x1V1 SG2X1;
SG2X1 *seg_geom_2x1 = new SG2X1(); or bool use_wide_pix_center = true; SG2X1 *seg_geom_2x1 = new SG2X1(use_wide_pix_center);
unsigned pbits=0377; // 1-member data; 2-coordinate arrays; 4-min/max coordinate values seg_geom_2x1 -> print_seg_info(pbits);
// scalar values const size_t array_size = seg_geom_2x1 -> size(); // 185*388 const size_t number_of_rows = seg_geom_2x1 -> rows(); // 185 const size_t number_of_cols = seg_geom_2x1 -> cols(); // 388 const pixel_coord_t pixel_scale_size = seg_geom_2x1 -> pixel_scale_size(); // 109.92 const pixel_coord_t pixel_coord_min = seg_geom_2x1 -> pixel_coord_min(SG2X1::AXIS_Z); const pixel_coord_t pixel_coord_max = seg_geom_2x1 -> pixel_coord_max(SG2X1::AXIS_X); // pointer to arrays with size equal to array_size const size_t* p_array_shape = seg_geom_2x1 -> shape(); // {185, 388} const pixel_area_t* p_pixel_area = seg_geom_2x1 -> pixel_area_array(); // array of 1-for regular or 2.5-for long pixels const pixel_coord_t* p_pixel_size_arr = seg_geom_2x1 -> pixel_size_array(SG2X1::AXIS_X); const pixel_coord_t* p_pixel_coord_arr = seg_geom_2x1 -> pixel_coord_array(SG2X1::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_2x1 -> pixel_mask_array(mbits);
Definition at line 122 of file SegGeometryCspad2x1V1.h.
virtual const size_t PSCalib::SegGeometryCspad2x1V1::cols | ( | void | ) | [inline, virtual] |
Returns number of cols in segment.
Implements PSCalib::SegGeometry.
Definition at line 171 of file SegGeometryCspad2x1V1.h.
References COLS.
static PSCalib::SegGeometry* PSCalib::SegGeometryCspad2x1V1::instance | ( | const bool & | use_wide_pix_center = false |
) | [static] |
Referenced by PSCalib::SegGeometryStore::Create().
virtual const pixel_area_t* PSCalib::SegGeometryCspad2x1V1::pixel_area_array | ( | ) | [virtual] |
virtual const pixel_coord_t* PSCalib::SegGeometryCspad2x1V1::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::SegGeometryCspad2x1V1::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::SegGeometryCspad2x1V1::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::SegGeometryCspad2x1V1::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, + 4 - mask non-bounded pixels, + 8 - mask nearest neighbours of nonbonded pixels. |
Implements PSCalib::SegGeometry.
virtual const pixel_coord_t PSCalib::SegGeometryCspad2x1V1::pixel_scale_size | ( | ) | [inline, virtual] |
Returns pixel size in um for indexing.
Implements PSCalib::SegGeometry.
Definition at line 177 of file SegGeometryCspad2x1V1.h.
References PIX_SCALE_SIZE.
virtual const pixel_coord_t* PSCalib::SegGeometryCspad2x1V1::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::SegGeometryCspad2x1V1::print_seg_info | ( | const unsigned & | pbits = 0 |
) | [virtual] |
virtual const size_t PSCalib::SegGeometryCspad2x1V1::rows | ( | void | ) | [inline, virtual] |
Returns number of rows in segment.
Implements PSCalib::SegGeometry.
Definition at line 168 of file SegGeometryCspad2x1V1.h.
References ROWS.
virtual const size_t* PSCalib::SegGeometryCspad2x1V1::shape | ( | ) | [inline, virtual] |
Returns shape of the segment {rows, cols}.
Implements PSCalib::SegGeometry.
Definition at line 174 of file SegGeometryCspad2x1V1.h.
virtual const size_t PSCalib::SegGeometryCspad2x1V1::size | ( | ) | [inline, virtual] |
Returns size of the coordinate arrays.
Implements PSCalib::SegGeometry.
Definition at line 165 of file SegGeometryCspad2x1V1.h.
References SIZE.
const size_t PSCalib::SegGeometryCspad2x1V1::COLS = 388 [static] |
Number of pixel columnss in 2x1.
Definition at line 129 of file SegGeometryCspad2x1V1.h.
Referenced by cols().
const size_t PSCalib::SegGeometryCspad2x1V1::COLSHALF = 194 [static] |
const size_t PSCalib::SegGeometryCspad2x1V1::NCORNERS = 4 [static] |
const SegGeometry::pixel_coord_t PSCalib::SegGeometryCspad2x1V1::PIX_SCALE_SIZE = 109.92 [static] |
Pixel scale size [um] for indexing.
Definition at line 141 of file SegGeometryCspad2x1V1.h.
Referenced by CSPadImageProducer::getGeometryPars(), and pixel_scale_size().
const SegGeometry::pixel_coord_t PSCalib::SegGeometryCspad2x1V1::PIX_SIZE_DEPTH = 400. [static] |
const SegGeometry::pixel_coord_t PSCalib::SegGeometryCspad2x1V1::PIX_SIZE_WIDE = 274.80 [static] |
const size_t PSCalib::SegGeometryCspad2x1V1::ROWS = 185 [static] |
Number of pixel rows in 2x1.
Definition at line 126 of file SegGeometryCspad2x1V1.h.
Referenced by rows().
const size_t PSCalib::SegGeometryCspad2x1V1::SIZE = COLS*ROWS [static] |
Number of pixels in 2x1.
Definition at line 135 of file SegGeometryCspad2x1V1.h.
Referenced by size().
const double PSCalib::SegGeometryCspad2x1V1::UM_TO_PIX = 1./PIX_SCALE_SIZE [static] |
Conversion factor between um and pix.
Definition at line 156 of file SegGeometryCspad2x1V1.h.
Referenced by CSPadImageProducer::getGeometryPars().