Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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
none
none
titleCsPad geometry, as described in ElementIterator.hh

//  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.
Image Added

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];
    };

...