Page History
Table of Contents |
---|
CS-Pad
Namespace CsPad
Enumerations
Code Block |
---|
enum { MaxQuadsPerSensor = 4, ASICsPerQuad = 16 }
enum { RowsPerBank = 26, FullBanksPerASIC = 7, BanksPerASIC = 8,
ColumnsPerASIC = 185, MaxRowsPerASIC = 194 }
enum { PotsPerQuad = 80, TwoByTwosPerQuad = 4 }
enum RunModes { NoRunning, RunButDrop, RunAndSendToRCE, RunAndSendTriggeredByTTL,
ExternalTriggerSendToRCE, ExternalTriggerDrop, NumberOfRunModes }
enum DataModes { normal = 0, shiftTest = 1, testData = 2, reserved = 3 }
|
class CsPadDigitalPotsCfg
Public Member Functions
Code Block |
---|
// Constructor
CsPadDigitalPotsCfg ()
uint8_t value (unsigned i) const
|
Public Attributes
Code Block |
---|
uint8_t pots [PotsPerQuad]
|
class CsPadReadOnlyCfg
Public Member Functions
Code Block |
---|
// Constructor
CsPadReadOnlyCfg ()
|
Public Attributes
Code Block |
---|
uint32_t shiftTest
uint32_t version
|
class CsPadGainMapCfg
Public Types
Code Block |
---|
typedef uint16_t GainMap [ColumnsPerASIC][MaxRowsPerASIC]
|
Public Member Functions
Code Block |
---|
// Constructor
CsPadGainMapCfg ()
GainMap * map ()
const GainMap * map () const
|
Public Attributes
Code Block |
---|
GainMap _gainMap
|
class ConfigV1QuadReg
Public Member Functions
Cornell-SLAC Pixel Array Detector
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
// Each "Element" represents one quadrant of a complete detector
// and they are arranged as follows (viewed from upstream):
// +---+---+
// | 0 | 1 |
// +---+---+
// | 3 | 2 |
// +---+---+
//
// Each "Element" is composed of 8 "Section"s arranged as follows:
// +---+---+-------+
// | | | 6 |
// + 5 | 4 +-------+
// | | | 7 |
// +---+---+---+---+ (for quadrant 0)
// | 2 | | |
// +-------+ 0 | 1 |
// | 3 | | |
// +-------+---+---+
// The layout of each successive quadrant is rotated 90 degrees clockwise
// with respect to the previous quadrant.
//
// Each "Section" is composed of 2*194 rows by 185 columns with the following
// orientations (for quadrant 0):
// Sections 0,1: row index increases from bottom to top, column index increases from left to right
// Sections 2,3: row index increases from left to right, column index increases from top to bottom
// Sections 4,5: row index increases from top to bottom, column index increases from right to left
// Sections 6,7: row index increases from left to right, column index increases from top to bottom
// Again, the orientations of the Sections for quadrant 1 are rotated 90 degrees clockwise
// and so on for each successive quadrant.
//
|
Here's a picture showing the approximate position and alignment of the sections in the CSPAD detector image. The value of each pixel is set to increase with increasing row and column number, so the blue corners are (row 0,column 0) in the section array.
Namespace CsPad
Enumerations
Code Block |
---|
enum |
Code Block |
// Constructors ConfigV1QuadReg () ConfigV1QuadReg (uint32_t shiftSelect[], uint32_t edgeSelect[], uint32_t readClkSet, { MaxQuadsPerSensor = 4, ASICsPerQuad = uint32_t readClkHold,16 } enum { RowsPerBank = 26, FullBanksPerASIC = uint32_t dataMode7, BanksPerASIC = 8, ColumnsPerASIC uint32_t= prstSel185, MaxRowsPerASIC = 194 } enum uint32_t acqDelay, { PotsPerQuad = 80, TwoByTwosPerQuad = 4 } enum RunModes { NoRunning, uint32_t intTimeRunButDrop, RunAndSendToRCE, RunAndSendTriggeredByTTL, uint32_t digDelay, uint32_t ampIdle,ExternalTriggerSendToRCE, ExternalTriggerDrop, NumberOfRunModes } enum DataModes { normal = 0, shiftTest = 1, testData = 2, reserved = 3 } |
class CsPadDigitalPotsCfg
Public Member Functions
Code Block |
---|
// Constructor CsPadDigitalPotsCfg uint32() uint8_t injTotal, value (unsigned i) const |
Public Attributes
Code Block |
---|
uint8_t pots [PotsPerQuad]
|
class CsPadReadOnlyCfg
Public Member Functions
Code Block |
---|
uint32_t rowColShiftPer) // Constructor const uint32_t *CsPadReadOnlyCfg shiftSelect () |
Public Attributes
Code Block |
---|
const const uint32_t * edgeSelect () const shiftTest uint32_t version |
class CsPadGainMapCfg
Public Types
Code Block |
---|
typedef uint16readClkSet () const uint32_t GainMap [ColumnsPerASIC][MaxRowsPerASIC] |
Public Member Functions
Code Block |
---|
readClkHold () const uint32_t dataMode () const // Constructor uint32_t prstSelCsPadGainMapCfg () const GainMap uint32_t acqDelay* map () const GainMap * uint32_t intTime map () const |
Public Attributes
Code Block |
---|
GainMap _gainMap |
class ConfigV1QuadReg
Public Member Functions
Code Block |
---|
uint32_t digDelay () const uint32_t ampIdle () const// Constructors uint32_t injTotalConfigV1QuadReg () const ConfigV1QuadReg (uint32_t rowColShiftPer () const shiftSelect[], Pds::CsPad::CsPadReadOnlyCfg & ro () const Pds::CsPad::CsPadReadOnlyCfg & ro () constuint32_t edgeSelect[], Pds::CsPad::CsPadDigitalPotsCfg & dp () const Pds::CsPad::CsPadDigitalPotsCfg & dp () constuint32_t readClkSet, Pds::CsPad::CsPadGainMapCfg * gm () const Pds::CsPad::CsPadGainMapCfg * gm () const uint32_t readClkHold, Pds::CsPad::CsPadReadOnlyCfg * readOnly () const Pds::CsPad::CsPadReadOnlyCfg * readOnly () const |
class ConfigV1
Public Member Functions
Code Block |
---|
// Constructors ConfigV1 () ConfigV1 (uint32_t dataMode, uint32_t runDelayprstSel, uint32_t eventCodeacqDelay, uint32_t inactiveRunModeintTime, uint32_t activeRunModedigDelay, uint32_t testDataIndex, uint32_t payloadPerQuadampIdle, uint32_t badAsicMask0, uint32_t badAsicMask1injTotal, uint32_t AsicMask, uint32_t rowColShiftPer) const uint32_t quadMask) * shiftSelect () const const ConfigV1QuadReguint32_t * quadsedgeSelect () const const ConfigV1QuadReg * uint32_t quadsreadClkSet () const uint32_t tdireadClkHold () const uint32_t quadMaskdataMode () const uint32_t runDelayprstSel () const uint32_t eventCodeacqDelay () const uint32_t inactiveRunModeintTime () const uint32_t activeRunModedigDelay () const uint32_t payloadSizeampIdle () const uint32_t badAsicMask0injTotal () const uint32_t badAsicMask1rowColShiftPer () const Pds::CsPad::CsPadReadOnlyCfg & ro () const Pds::CsPad::CsPadReadOnlyCfg & uint32_t asicMask ro () const uint32_t numAsicsRead () const uint32_t concentratorVersionPds::CsPad::CsPadDigitalPotsCfg & dp () const uint32_t * concentratorVersionAddr () |
Static Public Member Functions
Code Block |
---|
static const int version ()
|
Static Public Attributes
Code Block |
---|
static const int Version = 1
|
class ConfigV2
Public Member Functions
const Pds::CsPad::CsPadDigitalPotsCfg & dp () const
Pds::CsPad::CsPadGainMapCfg * gm ()
const Pds::CsPad::CsPadGainMapCfg * gm () const
Pds::CsPad::CsPadReadOnlyCfg * readOnly ()
const Pds::CsPad::CsPadReadOnlyCfg * readOnly () const
|
class ConfigV1
Public Member Functions
Code Block |
---|
// Constructors
ConfigV1 ()
ConfigV1 (uint32_t runDelay |
Code Block |
// Constructors ConfigV2 () ConfigV2 (uint32_t runDelay, uint32_t eventCode, uint32_t inactiveRunMode, uint32_t activeRunModeeventCode, uint32_t testDataIndexinactiveRunMode, uint32_t payloadPerQuadactiveRunMode, uint32_t badAsicMask0testDataIndex, uint32_t badAsicMask1payloadPerQuad, uint32_t AsicMaskbadAsicMask0, uint32_t quadMask, uint32_t roiMask) ConfigV1QuadReg * quads () badAsicMask1, const ConfigV1QuadReg * quads () const uint32_t tdi () const AsicMask, uint32_t quadMask) () const uint32_t roiMask (int iq) const uint32_t runDelay () const uint32_t eventCode ConfigV1QuadReg * quads () const ConfigV1QuadReg * quads () const uint32_t inactiveRunModetdi () const uint32_t activeRunModequadMask () const uint32_t payloadSizerunDelay () const uint32_t badAsicMask0eventCode () const uint32_t badAsicMask1inactiveRunMode () const uint32_t asicMaskactiveRunMode () const uint32_t numAsicsReadpayloadSize () const uint32_t concentratorVersionbadAsicMask0 () const uint32_t * concentratorVersionAddrbadAsicMask1 () |
Static Public Member Functions
Code Block |
---|
static const int version () |
Static Public Attributes
Code Block |
---|
static const int Version = 2
|
ElementHeader
Public Member Functions
Code Block |
---|
// Constructors
ElementHeader ()
// "unsigned" is shorthand for "unsigned int"
unsigned virtual_channel () const
unsigned lane () const
unsigned tid () const
unsigned acq_count () const
unsigned op_code () const
unsigned quad () const
unsigned seq_count () const
unsigned ticks () const
unsigned fiducials () const
unsigned sb_temp (unsigned i) const
unsigned frame_type () const
|
ElementV1
Inherits from ElementHeader.
Public Types
Code Block |
---|
Version = 1
enum { Version = 1 }
|
Public Member Functions
Code Block |
---|
// Constructors
ElementV1 ()
const uint16_t * data () const
const uint16_t * pixel (unsigned asic, unsigned column, unsigned row) const
const ElementV1 * next (const ConfigV1 &) const
|
ElementV2
Inherits from ElementHeader.
Public Types
Code Block |
---|
Version = 2
enum { Version = 2 }
|
Public Member Functions
Code Block |
---|
// Constructors
ElementV2 ()
|
ElementIterator
Iterates through Elements.
Comments
...
uint32_t asicMask () const
uint32_t numAsicsRead () const
uint32_t concentratorVersion () const
uint32_t * concentratorVersionAddr ()
|
Static Public Member Functions
Code Block |
---|
static const int version ()
|
Static Public Attributes
Code Block |
---|
static const int Version = 1
|
class ConfigV2
Public Member Functions
Code Block |
---|
// Constructors
ConfigV2 ()
ConfigV2 (uint32_t runDelay,
uint32_t eventCode,
uint32_t inactiveRunMode,
uint32_t activeRunMode,
uint32_t testDataIndex,
uint32_t payloadPerQuad,
uint32_t badAsicMask0,
uint32_t badAsicMask1,
uint32_t AsicMask,
uint32_t quadMask, uint32_t roiMask)
ConfigV1QuadReg * quads ()
const ConfigV1QuadReg * quads () const
uint32_t tdi () const
uint32_t quadMask () const
uint32_t roiMask (int iq) const
uint32_t runDelay () const
uint32_t eventCode () const
uint32_t inactiveRunMode () const
uint32_t activeRunMode () const
uint32_t payloadSize () const
uint32_t badAsicMask0 () const
uint32_t badAsicMask1 () const
uint32_t asicMask () const
uint32_t numAsicsRead () const
uint32_t concentratorVersion () const
uint32_t * concentratorVersionAddr ()
|
Static Public Member Functions
Code Block |
---|
static const int version ()
|
Static Public Attributes
Code Block |
---|
static const int Version = 2
|
ElementHeader
Public Member Functions
Code Block |
---|
// Constructors
ElementHeader ()
// "unsigned" is shorthand for "unsigned int"
unsigned virtual_channel () const
unsigned lane () const
unsigned tid () const
unsigned acq_count () const
unsigned op_code () const
unsigned quad () const
unsigned seq_count () const
unsigned ticks () const
unsigned fiducials () const
unsigned sb_temp (unsigned i) const
unsigned frame_type () const
|
ElementV1
Inherits from ElementHeader.
Public Types
Code Block |
---|
Version = 1
enum { Version = 1 }
|
Public Member Functions
Code Block |
---|
// Constructors
ElementV1 ()
const uint16_t * data () const
const uint16_t * pixel (unsigned asic, unsigned column, unsigned row) const
const ElementV1 * next (const ConfigV1 &) const
|
ElementV2
Inherits from ElementHeader.
Public Types
Code Block |
---|
Version = 2
enum { Version = 2 }
|
Public Member Functions
Code Block |
---|
// Constructors
ElementV2 ()
|
ElementIterator
Iterates through Elements.
Public Types
Code Block |
---|
class Section { public: uint16_t pixel[ColumnsPerASIC][2*MaxRowsPerASIC]; }; |
...