CCAENV1x90 Class Reference

#include <CCAENV1x90.h>

List of all members.

Public Types

enum  _ECLOutputSelect { DATA_READY, FULL, ALMOST_FULL, ERROR }
enum  _EdgeMode { EdgeMode_Pair = 0, EdgeMode_Leading = 2, EdgeMode_Trailing = 1, EdgeMode_Both = 3 }
enum  _Resolution { Res_25ps = 3, Res_100ps = 2, Res_200ps = 1, Res_800ps = 0 }
enum  _LEResolution {
  LE_100ps = 0, LE_200ps = 1, LE_400ps = 2, LE_800ps = 3,
  LE_1600ps = 4, LE_3120ps = 5, LE_6250ps = 6, LE_12500ps = 7
}
enum  _PWResolution {
  PW_100ps = 0, PW_200ps = 1, PW_400ps = 2, PW_800ps = 3,
  PW_1600ps = 4, PW_3200ps = 5, PW_6250ps = 6, PW_12500ps = 7,
  PW_25ns = 8, PW_50ns = 9, PW_100ns = 10, PW_200ns = 11,
  PW_400ns = 12, PW_800ns = 13
}
enum  _DeadTime { DT_5ns = 0, DT_10ns = 1, DT_30ns = 2, DT_100ns = 3 }
enum  _HitMax {
  HITS_0 = 0, HITS_1 = 1, HITS_2 = 2, HITS_4 = 3,
  HITS_8 = 4, HITS_16 = 5, HITS_32 = 6, HITS_64 = 7,
  HITS_128 = 8, HITS_UNLIMITED = 9
}
enum  _L1Size {
  L1_2wds, L1_4wds, L1_8wds, L1_16wds,
  L1_32wds, L1_64wds, L1_128wds, L1_256wds
}
typedef enum CCAENV1x90::_ECLOutputSelect ECLOutputSelect
typedef enum CCAENV1x90::_EdgeMode EdgeMode
typedef enum CCAENV1x90::_Resolution Resolution
typedef enum CCAENV1x90::_LEResolution LEResolution
typedef enum CCAENV1x90::_PWResolution PWResolution
typedef enum CCAENV1x90::_DeadTime DeadTime
typedef enum CCAENV1x90::_HitMax HitMax
typedef enum CCAENV1x90::_L1Size L1Size

Public Member Functions

 CCAENV1x90 (unsigned int nSlot, unsigned int nCrate, unsigned long nBase)
 geo not supported for these.
 ~CCAENV1x90 ()
unsigned int getModel () const
unsigned char getVersion () const
unsigned int getSerialNumber () const
unsigned int getChipCount () const
unsigned int getChannelCount () const
unsigned short SR ()
bool isSetSR (unsigned short bitnum)
 true if sr has 1 << bitnum set.
unsigned short ReadCR ()
 Return the value of the ctl reg.
bool isSetCR (unsigned short bitnum)
 true if sr has 1<< bitnum set.
void Terminate ()
 Software terminate module.
void Unterminate ()
 Software unterminate module.
void TerminateWithSwitch ()
 Set termination to be via hardware switch.
void EnableTriggerTagTime ()
 Put time tag in event.
void DisableTriggerTagTime ()
 don't put time tag in event.
bool DataReady ()
 True if there's data.
bool AlmostFull ()
 True if the buffer's almost full.
bool isFull ()
 True if the buffer is full.
bool isTriggerMatching ()
 True if module says it's trigger matching.
bool isHeaderEnabled ()
 True if TDC Header enabled.
bool isTerminated ()
 True if terminated regardless of how.
bool HadError (unsigned int nChip)
 True if the TDC had an error since last reset.
int ReadResolution ()
 Return resolution in ps/LSBit.
bool isPairMode ()
 True if the module is in pair mode.
bool WereTriggersLost ()
 True if triggers were lost.
void SetGeographicalID (unsigned short int)
 Set virtual slot number.
unsigned short GetGeographicalID ()
 Return the geographical id.
void Reset ()
 Software rest the module.
void Clear ()
 Software clear the module.
void EventReset ()
 Resynchronize event counter.
void Trigger ()
 Create a software trigger.
unsigned long TriggerCount ()
 # Triggers since last clear.
unsigned short EventCount ()
 # events in output buffer.
void SetAlmostFullLevel (unsigned int nWords)
 Set the almost full level.
unsigned short GetAlmostFullLevel ()
 Where is the almost full threshold.
void DefineECLOutput (ECLOutputSelect signal)
 Define the ECL PROG_OUT.
ECLOutputSelect GetECLOutputDefinition ()
 What is the ECL PROG_OUT.
unsigned short EventFIFOCount ()
 Return the # events in the fifo.
unsigned long ReadEventFIFO ()
 Return the next event description.
bool isEventFIFOReady ()
 Events in the fifo?
bool isEventFIFOFull ()
 Event fifo full?
unsigned short FIFOEventNumber (unsigned long fifoentry)
 Decode event # from Fifo.
unsigned short FIFOWordCount (unsigned long fifoentry)
 Decode event size from FIFO.
void TriggerMatchMode ()
 Module-> trigger match mode (0x0000).
void ContinuousStorageMode ()
 Module-> cont. store mode (0x0100).
void TransferUntilDone ()
 keep token (0x0300)
void TransferOneAtATime ()
 Give token after 1 word (0x0400).
void LoadDefaultConfig ()
 reset power up config (0x0500)
void SaveUserConfig ()
 Save config->NVRAM (0x0600).
void LoadUserConfig ()
 Load user NVRAM config (0x0700).
void AutoLoadUserConfig ()
 Load user NVRAM on power up (0x0800).
void AutoLoadDefaultConfig ()
 Load defaults on power up (0x0900).
void SetWindowWidth (unsigned int nWidth)
 Set trigger matching window width (0x1000).
void SetWindowOffset (int nOffset)
 Set trigger matching window offset (0x1100).
void SetExtraSearchMargin (unsigned int nMargin)
 Set trigger matching extra margin (0x1200).
void SetRejectMargin (unsigned int nMargin)
 Set trigger matching window reject margin (0x1300).
void EnableTriggerTimeSubtraction ()
 Subtract trigger time from hits (0x1400).
void DisableTriggerTimeSubtraction ()
 Subtract trigger time from hits (0x1500).
TriggerConfiguration GetTriggerConfiguration ()
 Return current trigger config (0x1800).
unsigned int GetMatchWindow (TriggerConfiguration config)
int GetWindowOffset (TriggerConfiguration config)
unsigned int GetExtraSearchMargin (TriggerConfiguration config)
unsigned int GetRejectMargin (TriggerConfiguration config)
bool isTriggerTimeSubtracted (TriggerConfiguration config)
void SetEdgeDetectMode (EdgeMode nEdgeMode)
 Set edge detect config (0x2200).
EdgeMode GetEdgeDetectMode ()
 Read edge detect mode (0x2300).
void SetIndividualLSB (Resolution nResolution)
 Set resolution of lsb. (0x2400).
void SetPairResolutions (LEResolution nLeadingEdge, PWResolution nPulseWidth)
 Set pair resolution info (0x2500).
unsigned short GetResolution ()
 Read module resolution see below (0x2600).
Resolution InterpretEdgeResolution (unsigned short nResolution)
 Interpret resolution as individual edge.
LEResolution InterpretLEResolution (unsigned short nResolution)
 Interpret LE resolution in pair mode.
PWResolution InterpretWidthResolution (unsigned short nResolution)
 Interpret Width resolution in pair mode.
void SetDoubleHitResolution (DeadTime nDead)
 Set dead time between hits. (0x28)).
DeadTime GetDoubleHitResolution ()
 Read double hit dead time (0x2900).
void EnableTDCEncapsulation ()
 Encapsulate data from a tdc (0x3000).
void DisableTDCEncapsulation ()
 Don't encapsulate data from a tdc (0x3100).
bool isTDCEncapsulationOn ()
 true if EnableTDCEncapsulation (0x3200)
void SetMaxHitsPerEvent (HitMax nHits)
 limit hits/event (0x3300)
HitMax GetMaxHitsPerEvent ()
 What's max hits/event (0x3400).
void EnableErrorMark ()
 turn on error mark words (0x3500)
void DisableErrorMark ()
 Turn off error mark words(0x3600).
void EnableBypassOnError ()
 Turn on TDC bypass on error (0x3700).
void DisableBypassOnError ()
 Turn off TDC Bypasson error (0x3800).
void SetErrorEnables (unsigned short nErrors)
 selectively enable error types.
unsigned short GetErrorEnables ()
 Get error enables.
void SetL1Size (L1Size nL1Size)
 Set level 1 fifo size.
L1Size GetL1Size ()
 Get the level 1 fifo size.
void EnableChannel (unsigned short nChannel)
 Enbable 1 channel (0x40nn).
void DisableChannel (unsigned short nChannel)
 Disable a channel (0x41nn).
void EnableAllChannels ()
 Enable all tdc channels (0x4200).
void DisableAllChannels ()
 Disable all tdc channels (0x4300).
void SetChannelEnables (STD(vector)< unsigned short > masks)
 Set enables mask for all chans (0x4400).
void GetChannelEnables (STD(vector)< unsigned short > &masks)
 read enables mask. (0x4500)
void SetChipEnables (unsigned short nChip, unsigned int nMask)
 Set the enables for a single chip. (0x460n).
unsigned int GetChipEnables (unsigned short nChip)
 read enables for a chip. (0x470n)
void SetGlobalOffset (unsigned short nCoarse, unsigned short nVernier)
 Set global coarse/fine offsets (0x5000).
void ReadGlobalOffset (unsigned short &nCoarse, unsigned short &nVernier)
 Fetch the global offsets (0x5100).
void SetChannelOffset (unsigned short nChannel, unsigned short nOffset)
 Set a channel offset (0x52nn).
unsigned short GetChannelOffset (unsigned int nChannel)
 Retrieve channel offset (0x53nn).
void CalibrateDelayLine (unsigned short nChip, unsigned short Tap1Contact, unsigned short Tap2Contact, unsigned short Tap3Contact, unsigned short Tap4Contat)
 Set delayline tap config (0x450n).
void GetDelayLineCalibration (unsigned short nChip, unsigned short &Tap1Contact, unsigned short &Tap2Contact, unsigned short &Tap3Contact, unsigned short &Tap4Contact)
 Get delay line tap config (0x460n).
void SaveDelayLineCalibrations ()
 Write calibrations -> eprom (0x5600).
unsigned int GetChipId (unsigned short nChip)
 Get chip id (0x600n).
void GetuCFirmwareInfo (unsigned short &nRevision, unsigned short &nDay, unsigned short &nMonth, unsigned short &nYear)
 Firmware rev/date (0x6100).
unsigned short GetChipErrors (unsigned short nChip)
 Read errors from 1 chip (0x740n).
void EnableTestMode (unsigned int nValue)
 Chip->Test mode. (0xc500).
void DisableTestMode ()
 Turn off chip test mode (0xc600).
unsigned int ReadData (void *pBuffer, unsigned int nMaxLongs)
 Read up to nMaxLongs.
unsigned int ReadPacket (void *pBuffer, unsigned int nMaxLongs)
 Read trigger matched event up to nMaxLongs.
unsigned int ReadValid (void *pBuffer, unsigned int nMaxLongs)
 Read all valid words, up to nMaxLongs.
void WaitMicroWrite ()
 Wait for micro writable.

Static Public Attributes

static const unsigned short ERR_VERNIER
static const unsigned short ERR_COARSE
static const unsigned short ERR_SELECT
static const unsigned short ERR_L1PARITY
static const unsigned short ERR_TFIFOPARITY
static const unsigned short ERR_MATCHERROR
static const unsigned short ERR_RFIFOPARITY
static const unsigned short ERR_RDOSTATE
static const unsigned short ERR_SUPPARITY
static const unsigned short ERR_CTLPARITY
static const unsigned short ERR_JTAGPARITY
static const unsigned short TAP_CONTACT1
static const unsigned short TAP_CONTACT2
static const unsigned short TAP_CONTACT3

Protected Member Functions

bool ValidBoard (CVmeModule &pROM)
 Is this a 1x90?
void BoardProperties (CVmeModule &pROM)
void WriteCR (unsigned short mask)
 Write mask to status register.
void BitSetCR (unsigned short bit)
 set specified bit# in cr.
void BitClearCR (unsigned short bit)
 clear specified bit# in cr.
void WriteMicro (unsigned short nWord)
 Write word to the micro sequencer.
unsigned short ReadMicro ()
 read a word from the micro sequencer.
void WriteMicroBlock (void *pWords, unsigned int nWords)
 Write words to the micro seqeuncer.
void ReadMicroBlock (void *pWords, unsigned int nWords)
 Reads words from the micro sequencer.
void MicroTransaction (unsigned short opcode, void *pWords, unsigned int nWords)
 Do an opcode and read a block.
unsigned long ReadPromLong (CVmeModule &prombase, unsigned long ByteOffset)

Private Member Functions

 CCAENV1x90 (const CCAENV1x90 &rhs)
CCAENV1x90operator= (const CCAENV1x90 &rhs)
int operator== (const CCAENV1x90 &rhs) const
int operator!= (const CCAENV1x90 &rhs) const

Private Attributes

unsigned long m_nBase
 VME base address of the module.
unsigned int m_nCrate
 VME crate stuffed in.
unsigned int m_nSlot
 Geo value.
CVmeModule m_pRegisters
 Device register pseudo pointer.
unsigned int m_nModel
 Model, e.g. 1190 or 1290.
unsigned char m_cVersion
 Sub-model e.g. A,B or N.
unsigned int m_nSerialNumber
 Module serial number.
unsigned int m_nChipCount
 Number of chips in the board.
unsigned int m_nChannels
 Number of channels on the board.
unsigned int m_nBoardRevision
 Board hardware revision level.
bool m_fCanHiRes
 True if high resolution capable.
bool m_fIsHiResMode
 True if module is in hi res.
bool m_fTriggerMatching

Classes

struct  TriggerConfiguration


Detailed Description

The CCAENV1x90 class provides a C++ class based interface to the CAEN V1190 and V1290 TDC module. These are TDC modules that are based on the CERN TDC chip. For each module of this sort you have in your system, you must create an instance of this class. Note that since CAEN is gravitating away from geographical addressing, this initial version will only support base address access.

This module is a very complex module. Be sure you understand it completely (read the hardware manual) before you attempt to make of it. Did we remember to advise you to read the hardware manual?

From the software point of view, there are two major modes of operation:

The 1290 module has an additional mode: High resolution mode. In that mode, sets of TDC channels are ganged together with phase shifted clocks and recombined to get a time resolution of 25ps. In this mode, the pair trigger mode is not allowed.

Wherever possible, we attempt to enforce all restrictions via software.

Definition at line 92 of file CCAENV1x90.h.


Member Typedef Documentation

typedef enum CCAENV1x90::_ECLOutputSelect CCAENV1x90::ECLOutputSelect

This enum defines the possible signals that the PROG_OUT ECL signal can represent.

typedef enum CCAENV1x90::_EdgeMode CCAENV1x90::EdgeMode

typedef enum CCAENV1x90::_Resolution CCAENV1x90::Resolution

typedef enum CCAENV1x90::_LEResolution CCAENV1x90::LEResolution

typedef enum CCAENV1x90::_PWResolution CCAENV1x90::PWResolution

typedef enum CCAENV1x90::_DeadTime CCAENV1x90::DeadTime

typedef enum CCAENV1x90::_HitMax CCAENV1x90::HitMax

typedef enum CCAENV1x90::_L1Size CCAENV1x90::L1Size


Member Enumeration Documentation

enum CCAENV1x90::_ECLOutputSelect

This enum defines the possible signals that the PROG_OUT ECL signal can represent.

Enumerator:
DATA_READY 
FULL 
ALMOST_FULL 
ERROR 

Definition at line 101 of file CCAENV1x90.h.

enum CCAENV1x90::_EdgeMode

Enumerator:
EdgeMode_Pair 
EdgeMode_Leading 
EdgeMode_Trailing 
EdgeMode_Both 

Definition at line 115 of file CCAENV1x90.h.

enum CCAENV1x90::_Resolution

Enumerator:
Res_25ps 
Res_100ps 
Res_200ps 
Res_800ps 

Definition at line 122 of file CCAENV1x90.h.

enum CCAENV1x90::_LEResolution

Enumerator:
LE_100ps 
LE_200ps 
LE_400ps 
LE_800ps 
LE_1600ps 
LE_3120ps 
LE_6250ps 
LE_12500ps 

Definition at line 128 of file CCAENV1x90.h.

enum CCAENV1x90::_PWResolution

Enumerator:
PW_100ps 
PW_200ps 
PW_400ps 
PW_800ps 
PW_1600ps 
PW_3200ps 
PW_6250ps 
PW_12500ps 
PW_25ns 
PW_50ns 
PW_100ns 
PW_200ns 
PW_400ns 
PW_800ns 

Definition at line 138 of file CCAENV1x90.h.

enum CCAENV1x90::_DeadTime

Enumerator:
DT_5ns 
DT_10ns 
DT_30ns 
DT_100ns 

Definition at line 155 of file CCAENV1x90.h.

enum CCAENV1x90::_HitMax

Enumerator:
HITS_0 
HITS_1 
HITS_2 
HITS_4 
HITS_8 
HITS_16 
HITS_32 
HITS_64 
HITS_128 
HITS_UNLIMITED 

Definition at line 162 of file CCAENV1x90.h.

enum CCAENV1x90::_L1Size

Enumerator:
L1_2wds 
L1_4wds 
L1_8wds 
L1_16wds 
L1_32wds 
L1_64wds 
L1_128wds 
L1_256wds 

Definition at line 174 of file CCAENV1x90.h.


Constructor & Destructor Documentation

CCAENV1x90::CCAENV1x90 ( unsigned int  nSlot,
unsigned int  nCrate,
unsigned long  nBase 
)

geo not supported for these.

Construct an object that represents a single CAEN V1190 or V1290. Access is gotten via VmePtr to the module's register and config rom address spaces. Once the address space is verified to have a supportable module, the member variables are initialized and the config rom address space de-accessed.

Configuration information about the module is set to the module's default power up configuration, and the module is reset.

Parameters:
nSlot (unsigned int in) The slot number of the board. Used program the GEO register of the board as this code does not support GEO addressing.
nCrate (unsigned int in) The number of the VME crate in which the module is inserted.
nBase (unsigned long in) Base address of the module. The module base is assumed to be in the A32 address space.
Exceptions:
DesignByContract::Require if the geographical address or crate are invalid.
CException If the constructor is unable to access the VME crate the module is claimed to be in.
Ensure If the constructor could access the module but it does not appear to be an 1190 or 1290.
string - If the geo register of the module could not be set (module supports geographical addressing, and that's not supported in this release of the device support).
Precondition:
nSlot is in the range [2, 20] (these modules cannot be system controllers).

nCrate is in the range [0,7].

Postcondition:
m_nModel is 1190 or 1290,

m_cVersion is A, B, or N.

Definition at line 197 of file CCAENV1x90.cpp.

References CVmeModule::a32d32, BoardProperties(), CCAENV1x90Registers::ConfigRom(), CCAENV1x90Registers::ConfigRomSize(), m_cVersion, m_nBase, m_nCrate, m_nModel, Reset(), and ValidBoard().

CCAENV1x90::~CCAENV1x90 (  ) 

Destructor: Deaccess the address space of the card.

Our destruction will result in the destruction of the VMEptr. m_pRegisters which will free up all the resources we own.

Definition at line 255 of file CCAENV1x90.cpp.

CCAENV1x90::CCAENV1x90 ( const CCAENV1x90 rhs  )  [private]


Member Function Documentation

CCAENV1x90& CCAENV1x90::operator= ( const CCAENV1x90 rhs  )  [private]

int CCAENV1x90::operator== ( const CCAENV1x90 rhs  )  const [private]

int CCAENV1x90::operator!= ( const CCAENV1x90 rhs  )  const [private]

unsigned int CCAENV1x90::getModel (  )  const [inline]

Definition at line 245 of file CCAENV1x90.h.

References m_nModel.

Referenced by ResEdgeTests::EdgeTest(), and ResEdgeTests::LSBTest().

unsigned char CCAENV1x90::getVersion (  )  const [inline]

Definition at line 248 of file CCAENV1x90.h.

References m_cVersion.

unsigned int CCAENV1x90::getSerialNumber (  )  const [inline]

Definition at line 251 of file CCAENV1x90.h.

References m_nSerialNumber.

unsigned int CCAENV1x90::getChipCount (  )  const [inline]

Definition at line 254 of file CCAENV1x90.h.

References m_nChipCount.

Referenced by ReadoutModes::ChipEnableTest(), MiscTests::ChipIdTest(), AdjustTests::DelayLineTest(), MiscTests::ErrorsTest(), ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

unsigned int CCAENV1x90::getChannelCount (  )  const [inline]

Definition at line 257 of file CCAENV1x90.h.

References m_nChannels.

Referenced by AdjustTests::ChannelOffsetTest(), ReadoutModes::EnableAllTest(), ReadoutModes::IndividualEnableTest(), and ReadoutModes::MaskEnableTest().

unsigned short CCAENV1x90::SR (  ) 

Return the value of the board status register.

Definition at line 2931 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::peekw(), and CCAENV1x90Registers::WStatusRegister().

Referenced by BoardProperties(), isSetSR(), and ReadResolution().

bool CCAENV1x90::isSetSR ( unsigned short  bitnum  ) 

true if sr has 1 << bitnum set.

Checks the state of a bit in the status register.

Parameters:
Bitnum (unsigned short IN) Number of a bit to check numbered from 0.
Returns:
bool
Return values:
true - if the specified bit is set in the module's status register.
false - if the specified bit is not set in the module's status register.

Definition at line 2955 of file CCAENV1x90.cpp.

References SR().

Referenced by AlmostFull(), DataReady(), HadError(), isFull(), isHeaderEnabled(), isPairMode(), isTerminated(), isTriggerMatching(), and WereTriggersLost().

unsigned short CCAENV1x90::ReadCR (  ) 

Return the value of the ctl reg.

Read the current value of the control register.

Returns:
unsigned short
Return values:
The current contents of the control register.

Definition at line 2985 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::peekw(), and CCAENV1x90Registers::WControlRegister().

Referenced by BitClearCR(), BitSetCR(), TriggerTimeTagTests::Disable(), TriggerTimeTagTests::Enable(), isSetCR(), and TerminationTests::SwitchTerminate().

bool CCAENV1x90::isSetCR ( unsigned short  bit  ) 

true if sr has 1<< bitnum set.

Determine if a specific bit is set in the control register.

Parameters:
bit (unsigned short in) number from of the bit to check
Returns:
bool
Return values:
-true if 1 << bit is set in the control register.
-false if 1 << bit is not set in the control register.

Definition at line 271 of file CCAENV1x90.cpp.

References ReadCR().

void CCAENV1x90::Terminate (  ) 

Software terminate module.

Terminate Set the module's software termination. Enables the software to control module termination and turns on termination.

Definition at line 282 of file CCAENV1x90.cpp.

References BitSetCR(), CCAENV1x90Registers::ControlRegister::NTERM(), and CCAENV1x90Registers::ControlRegister::NTERM_SW().

Referenced by TerminationTests::Terminate().

void CCAENV1x90::Unterminate (  ) 

Software unterminate module.

Unterminate set the module to unterminated Enables the software to control module termination and turns off termination.

Definition at line 295 of file CCAENV1x90.cpp.

References BitClearCR(), BitSetCR(), CCAENV1x90Registers::ControlRegister::NTERM(), and CCAENV1x90Registers::ControlRegister::NTERM_SW().

Referenced by TerminationTests::Unterminate().

void CCAENV1x90::TerminateWithSwitch (  ) 

Set termination to be via hardware switch.

TerminateViaSwitches Allow module termination to be controlled via the termination switches mounted on the board. Turns off software control of the module termination. When this is done, the module termination is controlled by a switch on the module itself. Note that this module does not support 'partial' termination.

Definition at line 311 of file CCAENV1x90.cpp.

References BitClearCR(), and CCAENV1x90Registers::ControlRegister::NTERM_SW().

Referenced by TerminationTests::SwitchTerminate().

void CCAENV1x90::EnableTriggerTagTime (  ) 

Put time tag in event.

Enables the module to write extended trigger time tagging information into the event if the module is in trigger matching mode.

Definition at line 323 of file CCAENV1x90.cpp.

References BitSetCR(), and CCAENV1x90Registers::ControlRegister::NTRIGGER_TAG_ENABLE().

Referenced by TriggerTimeTagTests::Enable().

void CCAENV1x90::DisableTriggerTagTime (  ) 

don't put time tag in event.

Disables the module from writing extended trigger time tagging information into the event if the module is in trigger matching mode.

Definition at line 333 of file CCAENV1x90.cpp.

References BitClearCR(), and CCAENV1x90Registers::ControlRegister::NTRIGGER_TAG_ENABLE().

Referenced by TriggerTimeTagTests::Disable().

bool CCAENV1x90::DataReady (  ) 

True if there's data.

Returns true if the module's status register indicates that data is available in the module's fifo.

Returns:
bool
Return values:
true - the module has data.
false - there is no data in the module's data buffer.

Definition at line 348 of file CCAENV1x90.cpp.

References isSetSR(), and CCAENV1x90Registers::StatusRegister::NDATA_READY().

Referenced by ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

bool CCAENV1x90::AlmostFull (  ) 

True if the buffer's almost full.

Returns true if the module's status register indicates that the mulitevent buffer is nearly full. The almost full buffer level is set using the AlmostFull member function.

Returns:
bool
Return values:
true - if the almost full bit is present in the status reg.
false- if the almost ful bit is not set.

Definition at line 365 of file CCAENV1x90.cpp.

References isSetSR(), and CCAENV1x90Registers::StatusRegister::NALM_FULL().

bool CCAENV1x90::isFull (  ) 

True if the buffer is full.

Returns true if the module's status register indicates that the module's multievent buffer is full. The full condition is defined as fewer than 32 free words in the output buffer.

Returns:
bool
Return values:
true - If the module's full bit is set.
false- If the module's full bit is not set.

Definition at line 384 of file CCAENV1x90.cpp.

References isSetSR(), and CCAENV1x90Registers::StatusRegister::NFULL().

bool CCAENV1x90::isTriggerMatching (  ) 

True if module says it's trigger matching.

returns true if the module is in trigger matching mode. In trigger matching mode, the module associates a set of input hits with an event that consists of a time window relative to the time of the trigger input.

Note that by setting this window appropriately, trigger matching mode can simulate both common start and common stop mode TDC's, as well as set the window to be a nearly arbitrary time interval about the trigger input time.

See the hardware manual for a description of the contraints on trigger windows.

Returns:
bool
Return values:
true - Module is in trigger match mode.
false - module is in continuous storage mode.

Definition at line 411 of file CCAENV1x90.cpp.

References isSetSR(), and CCAENV1x90Registers::StatusRegister::NTRG_MATCH().

Referenced by AcqModeTests::AutoLoadTest(), Clear(), AcqModeTests::ContStoreTest(), EventReset(), ConstructTests::GoodConstruct(), AcqModeTests::LoadDefaults(), Reset(), AcqModeTests::SaveLoadUserConfig(), and AcqModeTests::TriggerMatchTest().

bool CCAENV1x90::isHeaderEnabled (  ) 

True if TDC Header enabled.

Returns true if the module has been enabled to produce TDC chip headers in trigger matching mode. See e.g. isTriggerMatching for a description of trigger matching mode.

Returns:
bool
Return values:
- true if TDC chip headers are enabled.
- false if TDC chip headers are disasbled.

Definition at line 428 of file CCAENV1x90.cpp.

References isSetSR(), and CCAENV1x90Registers::StatusRegister::NHEADER_EN().

bool CCAENV1x90::isTerminated (  ) 

True if terminated regardless of how.

Returns true if the module's inputs are terminated regardless of how this is done. See Terminate Unterminate and TerminateViaSwitches for more information about the module termination modes.

Returns:
bool
Return values:
true - The module is terminated either via software or the manual switch.
false - The module is not terminated either via software or the manual switch

Definition at line 446 of file CCAENV1x90.cpp.

References isSetSR(), and CCAENV1x90Registers::StatusRegister::NTERM_ON().

Referenced by TerminationTests::Terminate(), and TerminationTests::Unterminate().

bool CCAENV1x90::HadError ( unsigned int  nChip  ) 

True if the TDC had an error since last reset.

Did the TDC have an error since last reset. Returns true if the status register indicates the specified chip had an error. The status register has a bit for each of the 4 chips that may be present in a board. This function uses the m_nChipCount member data to ensure that the user is asking about a chip that actually exists on the board.

Parameters:
nChip (unsigned int in) TDC Chip number (must be an allowed chip number numbered from zero for the actual board).
Returns:
bool
Return values:
true - the chip has had an error.
false- the chip has not had an error.
Precondition:
nChip < m_nChipCount (number of chips on board).

Definition at line 472 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::StatusRegister::CHIP0_ERROR(), CCAENV1x90Registers::StatusRegister::CHIP1_ERROR(), CCAENV1x90Registers::StatusRegister::CHIP2_ERROR(), CCAENV1x90Registers::StatusRegister::CHIP3_ERROR(), isSetSR(), m_nChipCount, and CCAENV1x90Registers::StatusRegister::NCHIP0_ERROR().

int CCAENV1x90::ReadResolution (  ) 

Return resolution in ps/LSBit.

Reads the status register and decodes the resolution field. The resolution field is returned in ps

Returns:
unsigned int
Return values:
800 - Resolution is 800ps.
200 - Resolution is 200ps.
100 - Resolution is 100ps.
25 - Resolution is 25ps.

Definition at line 511 of file CCAENV1x90.cpp.

References m_fIsHiResMode, CCAENV1x90Registers::StatusRegister::RES_100ps(), CCAENV1x90Registers::StatusRegister::RES_200ps(), CCAENV1x90Registers::StatusRegister::RES_25ps(), CCAENV1x90Registers::StatusRegister::RES_800ps(), CCAENV1x90Registers::StatusRegister::RESOLUTIONMASK(), and SR().

Referenced by isPairMode().

bool CCAENV1x90::isPairMode (  ) 

True if the module is in pair mode.

Reads the module status register and returns true if the module is in edge pair mode. Note that for the 1290, pair mode is only possible when the resolution is not 25ps/channel.

Returns:
bool
Return values:
true - module is in pair mode.
false - module is not in pair mode.

Definition at line 544 of file CCAENV1x90.cpp.

References isSetSR(), m_nModel, CCAENV1x90Registers::StatusRegister::NPAIR(), and ReadResolution().

bool CCAENV1x90::WereTriggersLost (  ) 

True if triggers were lost.

Returns true if the module claims it received triggers that it was not able to process either due to buffer full or pileup conditions.

Returns:
bool
Return values:
true - Triggers have been dropped by the module.
false - Triggers have not been dropped by the module.

Definition at line 566 of file CCAENV1x90.cpp.

References isSetSR(), and CCAENV1x90Registers::StatusRegister::NTRIGGERLOST().

void CCAENV1x90::SetGeographicalID ( unsigned short  nSlot  ) 

Set virtual slot number.

Attempts to set nId in the GEO register of the module. The id must be in the range 0-31. Since it is possible to have a module that understands geographical addressing accessed via base addressing, and since those modules won't allow you to program the GEO address (GEO will unconditionally reflect the slot number of the module), After writing the address, the GEO is read back. If the read back value does not match the written value a string exception will be thrown to indicate this.

Parameters:
nId (unsigned int in) The Desired GEO id for the board.
Exceptions:
string - in the event the GEO register cannot be programmed. This is the case if the module support geographical address recognition.
Precondition:
nSlot >= 0 This is a virtual slot so slot 0 is allowed.

nSlot < 256 Number of used bits in the register.

Definition at line 594 of file CCAENV1x90.cpp.

References GetGeographicalID(), m_pRegisters, MAXGEO(), OffsetW(), CVmeModule::pokew(), and CCAENV1x90Registers::WVirtualSlot().

Referenced by Reset(), and GeoTests::SlotSet().

unsigned short CCAENV1x90::GetGeographicalID (  ) 

Return the geographical id.

Get the current geo Id of the module. The GEO is a virtual slot number for the module when it does not support GEO addressing intrinsically.

Returns:
unsigned short
Return values:
The current geo ID.

Definition at line 623 of file CCAENV1x90.cpp.

References GEOMASK(), m_pRegisters, OffsetW(), CVmeModule::peekw(), and CCAENV1x90Registers::WVirtualSlot().

Referenced by SetGeographicalID(), GeoTests::SlotMatch(), and GeoTests::SlotSet().

void CCAENV1x90::Reset (  ) 

Software rest the module.

Peform a software reset on the module.

Definition at line 634 of file CCAENV1x90.cpp.

References BitSetCR(), isTriggerMatching(), m_fTriggerMatching, m_nSlot, m_pRegisters, CCAENV1x90Registers::ControlRegister::NEVENT_FIFO_ENABLE(), OffsetW(), CVmeModule::pokew(), SetGeographicalID(), WaitMicroWrite(), and CCAENV1x90Registers::WReset().

Referenced by AcqModeTests::AutoLoadTest(), CCAENV1x90(), ConstructTests::GoodConstruct(), AcqModeTests::SaveLoadUserConfig(), TriggerTimeTagTests::setUp(), TerminationTests::setUp(), ResEdgeTests::setUp(), Registertests::setUp(), ReadTests::setUp(), ReadoutModes::setUp(), MiscTests::setUp(), MatchTiming::setUp(), GeoTests::setUp(), AdjustTests::setUp(), and AcqModeTests::setUp().

void CCAENV1x90::Clear (  ) 

Software clear the module.

Performs a module clear:

Definition at line 658 of file CCAENV1x90.cpp.

References isTriggerMatching(), m_fTriggerMatching, m_pRegisters, OffsetW(), CVmeModule::pokew(), and CCAENV1x90Registers::WClear().

void CCAENV1x90::EventReset (  ) 

Resynchronize event counter.

Resynchronizes the TDC chip event counter with the on board event counter. Note that the manual says that this does not clear the onboard event counter.

Definition at line 670 of file CCAENV1x90.cpp.

References isTriggerMatching(), m_fTriggerMatching, m_pRegisters, OffsetW(), CVmeModule::pokew(), and CCAENV1x90Registers::WEventReset().

void CCAENV1x90::Trigger (  ) 

Create a software trigger.

Performs a software trigger of the module. Presumably if the module is in trigger matching mode, this will establish a matching window. I imagine this is mostly used to test the module.

Definition at line 683 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::pokew(), and CCAENV1x90Registers::WSWTrigger().

Referenced by ReadTests::FIFOTest(), ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

unsigned long CCAENV1x90::TriggerCount (  ) 

# Triggers since last clear.

Returns the number of triggers the module has received since the last Clear or Reset function. I think this is meaningless unless the module is in trigger matching mode.

Returns:
unsigned long
Return values:
The number of triggers received since last reset/clr.

Definition at line 698 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::LEventCounter(), m_pRegisters, OffsetL(), and CVmeModule::peekl().

unsigned short CCAENV1x90::EventCount (  ) 

# events in output buffer.

Returns the number of events in the output buffer (only meaningful in trigger matching mode).

Returns:
unsigned short
Return values:
number of complete events in the output buffer.

Definition at line 711 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::peekw(), and CCAENV1x90Registers::WEventStored().

void CCAENV1x90::SetAlmostFullLevel ( unsigned int  nWords  ) 

Set the almost full level.

Sets a new almost full threshold value. When more than nWords longs are stored (backed up in) in the event buffer, the board will indicate an almost full condition. This condition can be detected via the AlmostFull function.

Parameters:
nWords (unsigned int in) New threshold value [1-32767]
Precondition:
nWords >= 1

nWords <= 32735 (Magic number from the hardware manual.

Definition at line 731 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::pokew(), and CCAENV1x90Registers::WAlmostFullLevel().

Referenced by Registertests::AlmostFullLevel().

unsigned short CCAENV1x90::GetAlmostFullLevel (  ) 

Where is the almost full threshold.

Returns the current value of the almost full threshold. This is the alst value set by a call to SetAlmostFullLevel. Note that the power up value of this is 64 longs which is quite small.

Returns:
unsigned short
Return values:
the threshold above which the module declares itself almost full.

Definition at line 756 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::peekw(), and CCAENV1x90Registers::WAlmostFullLevel().

Referenced by Registertests::AlmostFullLevel().

void CCAENV1x90::DefineECLOutput ( CCAENV1x90::ECLOutputSelect  Signal  ) 

Define the ECL PROG_OUT.

Selects which of the four possible meanings the OUT_PROG signal on the ECL output will have. Legal values for Signal are:

Parameters:
Signal (ECLOutputSelect in) Selects the desired signal value.
Precondition:
Signal is a member of the set of legal enum values. unfortunately other than painstaking checking there's no way to know what that set is.

Definition at line 784 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::OutputControl::ALM_FULL(), ALMOST_FULL, CCAENV1x90Registers::OutputControl::DATA_READY(), DATA_READY, CCAENV1x90Registers::OutputControl::ERROR(), ERROR, CCAENV1x90Registers::OutputControl::FULL(), FULL, m_pRegisters, OffsetW(), CVmeModule::pokew(), and CCAENV1x90Registers::WOutputControl().

Referenced by Registertests::ECLOutputSelect().

CCAENV1x90::ECLOutputSelect CCAENV1x90::GetECLOutputDefinition (  ) 

What is the ECL PROG_OUT.

Reads the OUT_PROG control register and returns a value indicating how it has been programmed.

Returns:
ECLOutputSelect. One of the legal values for the ECL OUT_PROG signal:
Return values:
DATA_READY - Asserted when the module has data in its output buffer
FULL - Asserted when the module output buffer is full.
ALMOST_FULL- Asserted when the module is in the almost full condition
ERROR - Asserted when there's an un-reset TDC error condition. Note that these conditions correspond to the state of bits in the module status register.

Definition at line 838 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::OutputControl::ALM_FULL(), ALMOST_FULL, DATA_READY, CCAENV1x90Registers::OutputControl::DATA_READY(), ERROR, CCAENV1x90Registers::OutputControl::ERROR(), FULL, CCAENV1x90Registers::OutputControl::FULL(), m_pRegisters, CCAENV1x90Registers::OutputControl::MASK(), OffsetW(), CVmeModule::peekw(), and CCAENV1x90Registers::WOutputControl().

Referenced by Registertests::ECLOutputSelect().

unsigned short CCAENV1x90::EventFIFOCount (  ) 

Return the # events in the fifo.

Returns the number of events in the output buffer. This software support module turns on the event FIFO. The event FIFO is a handy little register that contains the number of words for each event. It can be used by the caller when the module is in Trigger match mode to know how big a read to issue for an event.

Returns:
unsigned short
Return values:
The number of fifo entries in the FIFO.

Definition at line 876 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::EventFIFO::FIFOCOUNT_MASK(), m_pRegisters, OffsetW(), CVmeModule::peekw(), and CCAENV1x90Registers::WEventFIFOStored().

Referenced by ReadTests::FIFOTest().

unsigned long CCAENV1x90::ReadEventFIFO (  ) 

Return the next event description.

Read the top word of the event fifo. Note that this is a destructive read. Once read the event FIFO for an event can never be re-read. When the module is running in trigger match mode, and data is ready, read the event fifo, and use the result as the word count for the ReadEvent member function call.

Returns:
unsigned long
Precondition:
The event fifo must have data (fifo ready).

Definition at line 943 of file CCAENV1x90.cpp.

References isEventFIFOReady(), CCAENV1x90Registers::LEventFIFO(), m_pRegisters, OffsetL(), and CVmeModule::peekl().

Referenced by ReadTests::FIFOTest(), ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

bool CCAENV1x90::isEventFIFOReady (  ) 

Events in the fifo?

Returns true if the event fifo has any event descriptions in it.

Returns:
bool
Return values:
true - There's at least one entry in the event fifo.,
false - There are no entries in the event fifo.

Definition at line 961 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::FIFOStatus::EVFIFODATA_READY(), m_pRegisters, OffsetW(), CVmeModule::peekw(), and CCAENV1x90Registers::WEventFIFOStatus().

Referenced by ReadTests::FIFOTest(), ReadEventFIFO(), ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

bool CCAENV1x90::isEventFIFOFull (  ) 

Event fifo full?

The event FIFO is 1024 events deep. This function returns true if all of the slots in the event fifo are filled with event descriptions.

Returns:
bool
Return values:
true - True if the event fifo is completely full.
false - False if the event fifo isn't completely full.

Definition at line 978 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::FIFOStatus::EVFIFO_FULL(), m_pRegisters, OffsetW(), CVmeModule::peekw(), and CCAENV1x90Registers::WEventFIFOStatus().

Referenced by ReadTests::FIFOTest(), ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

unsigned short CCAENV1x90::FIFOEventNumber ( unsigned long  fifoentry  ) 

Decode event # from Fifo.

Assumes the fifoentry parameter is a longword read from the event fifo and returns the sequence number of the event that corresponds to it.

Parameters:
fifoentry (unsigned long IN) A longword read from the FIFO via ReadEventFIFO
Returns:
unsigned short
Return values:
Event number corresponding to the fifo entry.

Definition at line 895 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::EventFIFO::EVENTCOUNT_MASK(), and CCAENV1x90Registers::EventFIFO::EVENTCOUNT_RSHIFT().

Referenced by ReadTests::FIFOTest().

unsigned short CCAENV1x90::FIFOWordCount ( unsigned long  fifoentry  ) 

Decode event size from FIFO.

Given a longword read from the event FIFO via ReadEventFIFO, this function will return the number of words in the corresponding event (note that in this case words are really 32 bit longwords).

Parameters:
fifoentry (unsigned long IN) A longword read from the event FIFO via ReadEventFIFO
Returns:
unsigned short
Return values:
Size of event corresponding to the event fifo entry (in longs).

Definition at line 916 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::EventFIFO::WORDCOUNT_MASK(), and CCAENV1x90Registers::EventFIFO::WORDCOUNT_RSHIFT().

Referenced by ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

void CCAENV1x90::TriggerMatchMode (  ) 

Module-> trigger match mode (0x0000).

Enables the module to run in trigger matching mode. In trigger matching mode, the TDC chips will group hits that occur within a programmable matching window of the trigger (software or hardware input) into an event.

Definition at line 994 of file CCAENV1x90.cpp.

References m_fTriggerMatching, CCAENV1x90Opcodes::TRG_MATCH(), WaitMicroWrite(), and WriteMicro().

Referenced by AcqModeTests::AutoLoadTest(), AcqModeTests::ContStoreTest(), ReadTests::FIFOTest(), AcqModeTests::LoadDefaults(), AcqModeTests::SaveLoadUserConfig(), ReadTests::TestReadHeaders(), ReadTests::TestReadNoHeaders(), and AcqModeTests::TriggerMatchTest().

void CCAENV1x90::ContinuousStorageMode (  ) 

Module-> cont. store mode (0x0100).

Enables the module to run in continuous storage mode. In continous storage mode, the TDC chips emit hits continuously regardless of the trigger signal. The timing of hits in this mode is relative to the last module reset. Since the TDC values are only 20 bits (roughly 1E06), in order to time over long periods it will be necessary to arrange to have either some other fiducial against which these are compared or alternatively some periodic source of resets (note however that resets will also reset the TDC programming).

Definition at line 1005 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::CONT_STOR(), m_fTriggerMatching, WaitMicroWrite(), and WriteMicro().

Referenced by AcqModeTests::ContStoreTest().

void CCAENV1x90::TransferUntilDone (  ) 

keep token (0x0300)

The TDC chips on the board are read by passing a readout token to the first TDC chip. When that chip has finished transferring data it passes the token on to the next, until the token is passed from the last TDC chip back to the board logic indicating all chips have been read. TDC chips can operate in two modes:

Definition at line 1029 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::SET_KEEP_TOKEN(), WaitMicroWrite(), and WriteMicro().

void CCAENV1x90::TransferOneAtATime (  ) 

Give token after 1 word (0x0400).

See TransferUntilDone for details about the chip readout scheme. This function tells the TDC chips to release the readout token after each word has been transferred.

Definition at line 1041 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::CLEAR_KEEP_TOKEN(), WaitMicroWrite(), and WriteMicro().

void CCAENV1x90::LoadDefaultConfig (  ) 

reset power up config (0x0500)

Loads the default TDC chip configuration.

Definition at line 1052 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::LOAD_DEF_CONFIG(), WaitMicroWrite(), and WriteMicro().

Referenced by AcqModeTests::LoadDefaults().

void CCAENV1x90::SaveUserConfig (  ) 

Save config->NVRAM (0x0600).

Saves the current TDC chip programming to on board Non-volatile ram. Once saved, the configuration can be bulk loaded via LoadUserConfig or even enabled to load on power up via AutoLoadUserConfig. Use the latter with care on pool modules as the person using the module after you will very likely make assumptions about the power up state of the board which are not correct otherwise. Conversely, with pool modules you may want to call AutoLoadDefaultConfig and LoadDefaultConfig early in your initialization to remove the effect of any prior AutoLoadUserConfig

The items saved are:

Definition at line 1079 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::SAVE_USER_CONFIG(), WaitMicroWrite(), and WriteMicro().

Referenced by AcqModeTests::AutoLoadTest(), and AcqModeTests::SaveLoadUserConfig().

void CCAENV1x90::LoadUserConfig (  ) 

Load user NVRAM config (0x0700).

Reloads the last saved user configuration into the TDC. This can save a bit of time if you have initially set up the TDC and have saved the settings, and wish to re-establish them. See SaveUserConfig for more information about what is restored.

Definition at line 1092 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::LOAD_USER_CONFIG(), WaitMicroWrite(), and WriteMicro().

Referenced by AcqModeTests::SaveLoadUserConfig().

void CCAENV1x90::AutoLoadUserConfig (  ) 

Load user NVRAM on power up (0x0800).

Enables the module to load the last saved user settings on power up or global reset. Refer to SaveUserConfig for information about what is actually loaded. Use this with caution on pool electronics as this will cause the module to power up in an unexpected mode for later users.

Definition at line 1105 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::AUTOLOAD_USER_CONFIG(), WaitMicroWrite(), and WriteMicro().

Referenced by AcqModeTests::AutoLoadTest().

void CCAENV1x90::AutoLoadDefaultConfig (  ) 

Load defaults on power up (0x0900).

Enables the module to load the default settings on power up. If you are not sure of the last user's intent, you will probably want to execute this followed by a global reset rather than assuming the module will power up in the default state (See AutoLoadUserConfig). See SaveUserConfig for information about exactly what gets saved.

Definition at line 1123 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::AUTOLOAD_DEF_CONFIG(), WaitMicroWrite(), and WriteMicro().

Referenced by AcqModeTests::AutoLoadTest().

void CCAENV1x90::SetWindowWidth ( unsigned int  nWidth  ) 

Set trigger matching window width (0x1000).

Sets the trigger matching mode window width. The trigger matching window width effectively determines the full scale range of the TDC in trigger matching mode. There are relationships (constraints) that must be maintained between the width and the offset. See the hardware manual 2.4.1 for information about this.

Precondition:
Width is in the range [0, 0xfff].

Definition at line 1142 of file CCAENV1x90.cpp.

References FormatValue(), MAXMATCHWIDTH(), MINMATCHWIDTH(), CCAENV1x90Opcodes::SET_WIN_WIDTH(), WaitMicroWrite(), and WriteMicro().

Referenced by MatchTiming::MatchWindowTest().

void CCAENV1x90::SetWindowOffset ( int  nOffset  ) 

Set trigger matching window offset (0x1100).

In trigger matching mode, sets the time offset from the trigger to start of the matching window. The window can start anywhere from -2048*25n relative to the trigger to 40*25ns.

Parameters:
nOffset (int in) New offset in 25 ns units.
Precondition:
PreconditionException if the offset is not valid.

Definition at line 1168 of file CCAENV1x90.cpp.

References FormatValue(), MAXWINDOWOFFSET(), MINWINDOWOFFSET(), CCAENV1x90Opcodes::SET_WIN_OFFS(), WaitMicroWrite(), and WriteMicro().

Referenced by MatchTiming::WindowOffsetTest().

void CCAENV1x90::SetExtraSearchMargin ( unsigned int  nMargin  ) 

Set trigger matching extra margin (0x1200).

Since trigger matching is done on digitized hits stored in the Chip level 1 buffer, it is possible that when the search window is complete, there will be hits that are detected but not yet transferred to the buffer. The extra search margin allows the user to specify a 'slop' on the end of the matching window to allow these his to be detected as well. This member allows you to adjust the width of this margin.

Parameters:
nMargin (unsigned int in) New margin in 25ns units.
Precondition:
nMargin in the interval [0, 2047]

Definition at line 1199 of file CCAENV1x90.cpp.

References FormatValue(), MAXEXTRAMARGIN(), MINEXTRAMARGIN(), CCAENV1x90Opcodes::SET_SW_MARGIN(), WaitMicroWrite(), and WriteMicro().

Referenced by MatchTiming::ExtraSearchTest().

void CCAENV1x90::SetRejectMargin ( unsigned int  nMargin  ) 

Set trigger matching window reject margin (0x1300).

The reject margin indicates a time period in which hits in the module L1 buffer at the start of the match window are assumed to be associated with times prior to the match window, and can be purged from the L1 buffer. This function allows the user to select the reject margin.

Parameters:
nMargin (unsigned int IN) reject margin in 25ns units.
Precondition:
Reject margin must be in the interval [0, 2047].

Definition at line 1229 of file CCAENV1x90.cpp.

References FormatValue(), MAXREJECTMARGIN(), MINREJECTMARGIN(), CCAENV1x90Opcodes::SET_REJ_MARGIN(), WaitMicroWrite(), and WriteMicro().

Referenced by MatchTiming::RejectMarginTest().

void CCAENV1x90::EnableTriggerTimeSubtraction (  ) 

Subtract trigger time from hits (0x1400).

When enable trigger time subtraction is turned on, all of the times are expressed in terms of offsets from the beginning of the match window (note that this is not the same as relative to the trigger!!!). This is only effective in trigger matching mode.

Definition at line 1250 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::EN_SUB_TRG(), WaitMicroWrite(), and WriteMicro().

Referenced by MatchTiming::TriggerSubtractTest().

void CCAENV1x90::DisableTriggerTimeSubtraction (  ) 

Subtract trigger time from hits (0x1500).

When enable trigger time subtraction is turned off, all of the times are expressed as offsets from the last bunch reset (CRST input I believe).

Definition at line 1261 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::DIS_SUB_TRG(), WaitMicroWrite(), and WriteMicro().

Referenced by MatchTiming::TriggerSubtractTest().

CCAENV1x90::TriggerConfiguration CCAENV1x90::GetTriggerConfiguration (  ) 

Return current trigger config (0x1800).

Retrieves the current trigger configuration and returns it the function return value. The Trigger configuration is a block of data that can be queried to return information about the trigger setup.

See:

Returns:
TriggerConfiguration
Return values:
a block that can be passed to the get functions that decode the trigger configuration.

Definition at line 1292 of file CCAENV1x90.cpp.

References MicroTransaction(), and CCAENV1x90Opcodes::READ_TRG_CONF().

Referenced by MatchTiming::ExtraSearchTest(), MatchTiming::MatchWindowTest(), MatchTiming::RejectMarginTest(), MatchTiming::TriggerSubtractTest(), and MatchTiming::WindowOffsetTest().

unsigned int CCAENV1x90::GetMatchWindow ( TriggerConfiguration  Config  ) 

This utility function allows you to decode the match window from a trigger configuration block that was returned from the GetTriggerConfiguration function.

Parameters:
Config (const TriggerConfiguration IN) Trigger configuration returned from GetTriggerConfiguration
Returns:
unsigned int
Return values:
the trigger match window widthin 25ns units.

Definition at line 1314 of file CCAENV1x90.cpp.

References MATCHMASK(), and CCAENV1x90::TriggerConfiguration::s_MatchWidth.

Referenced by MatchTiming::MatchWindowTest().

int CCAENV1x90::GetWindowOffset ( TriggerConfiguration  Config  ) 

Utility function to decode the trigger window offset from a trigger configuration block returned from GetTriggerConfiguration.

Parameters:
Config (TriggerConfiguration IN) Trigger configuration returned from GetTriggerConfiguration
Returns:
unsigned int
Return values:
the trigger offset, a value in the range [-2048 - 40]*25ns

Definition at line 1331 of file CCAENV1x90.cpp.

References CCAENV1x90::TriggerConfiguration::s_MatchOffset, and WINDOWOFFSETMASK().

Referenced by MatchTiming::WindowOffsetTest().

unsigned int CCAENV1x90::GetExtraSearchMargin ( TriggerConfiguration  Config  ) 

Utility function that decodes the Extra search margin from a trigger configuration block returned by a call to GetTriggerInformation.

Parameters:
Config (TriggerConfiguration IN) Trigger configuration returned from GetTriggerConfiguration
Returns:
unsigned int
Return values:
the Extra search margin in theragne [0,2047]*25ns.

Definition at line 1359 of file CCAENV1x90.cpp.

References EXTRAMARGINMASK(), and CCAENV1x90::TriggerConfiguration::s_MatchExtra.

Referenced by MatchTiming::ExtraSearchTest().

unsigned int CCAENV1x90::GetRejectMargin ( TriggerConfiguration  Config  ) 

Get extra rejection time margin froma trigger configuration block returned by a call to GetTriggerInformation.

Parameters:
Config (TriggerConfiguration IN) Trigger configuration returned from GetTriggerConfiguration
Returns:
unsigned int
Return values:
the Extra rejection time margin.

Definition at line 1376 of file CCAENV1x90.cpp.

References REJECTMARGINMASK(), and CCAENV1x90::TriggerConfiguration::s_RejectMargin.

Referenced by MatchTiming::RejectMarginTest().

bool CCAENV1x90::isTriggerTimeSubtracted ( TriggerConfiguration  Config  ) 

Determine if the trigger time subtraction is turned on in a Trigger configuration read from the device via GetTriggerConfiguration

Parameters:
Config (TriggerConfiguration IN) Trigger configuration returned by a call to GetTriggerConfiguration.
Returns:
bool
Return values:
true - trigger time subtraction is enabled.
false- trigger time subtraction is disabled.

Definition at line 1396 of file CCAENV1x90.cpp.

References CCAENV1x90::TriggerConfiguration::s_Subtracting, and TRUEBIT().

Referenced by MatchTiming::TriggerSubtractTest().

void CCAENV1x90::SetEdgeDetectMode ( EdgeMode  nEdgeMode  ) 

Set edge detect config (0x2200).

Sets the module edge detection mode. Note that a 1290 in high resolution (25ps) mode cannot do EdgeMode_Pair and an exception is thrown if you attempt to turn on edge detection on a module that is in that mode.

Parameters:
nEdgeMode (EdgeMode in) The edge detection mode. This can be one of:
Precondition:
The nEdgeMode parameter is a valid member of the EdgeMode enum.

If the nEdgeMode parameter is EdgeMode_Pair, the module is not in hires mode.

Definition at line 1474 of file CCAENV1x90.cpp.

References EdgeMode_Both, EdgeMode_Leading, EdgeMode_Pair, EdgeMode_Trailing, m_fCanHiRes, m_fIsHiResMode, CCAENV1x90Opcodes::SET_DETECTION(), WaitMicroWrite(), and WriteMicro().

Referenced by ResEdgeTests::CheckEdge(), ResEdgeTests::EdgeTest(), and ResEdgeTests::PairTest().

CCAENV1x90::EdgeMode CCAENV1x90::GetEdgeDetectMode (  ) 

Read edge detect mode (0x2300).

Returns the current edge detect trigger mode.

Returns:
EdgeMode
Return values:
CCAENV1x90::EdgeMode_Pair - Time between lead/trail edge digitized.
CCAENV1x90::EdgeMode_Leading - Leading edge is detected/timed.
CCAENV1x90::EdgeMode_Trailing - Trailing edge is detected/timed.
CCAENV1x90::EdgeMode_Both - Both leading and trailing edge detected and timed.

Definition at line 1507 of file CCAENV1x90.cpp.

References EDGEDETECTIONMASK(), CCAENV1x90Opcodes::READ_DETECTION(), ReadMicro(), and WriteMicro().

Referenced by ResEdgeTests::CheckEdge(), InterpretEdgeResolution(), InterpretLEResolution(), InterpretWidthResolution(), and SetPairResolutions().

void CCAENV1x90::SetIndividualLSB ( Resolution  nResolution  ) 

Set resolution of lsb. (0x2400).

Sets the TDC resolution. Note that only the 1290 is capable of 25ps resolution and that this resolution is gained at the cost of not being able to run in edge pair detetion mode. The m_fIsHiResMode member data is updated accordingly.

Parameters:
nResolution (Resolution In) The new resolution. This can be one of:
Precondition:
The resolution is valid.

If the resolution is Res_25ps, the module is Hires capable (m_fCanHiRes is true).

Definition at line 1420 of file CCAENV1x90.cpp.

References m_fCanHiRes, m_fIsHiResMode, Res_100ps, Res_200ps, Res_25ps, Res_800ps, CCAENV1x90Opcodes::SET_TR_LEAD_LSB(), WaitMicroWrite(), and WriteMicro().

Referenced by ResEdgeTests::CheckResolution(), ReadoutModes::ChipEnableTest(), ResEdgeTests::EdgeTest(), ResEdgeTests::LSBTest(), and ResEdgeTests::PairTest().

void CCAENV1x90::SetPairResolutions ( LEResolution  nLEResolution,
PWResolution  nPWResolution 
)

Set pair resolution info (0x2500).

This function sets the pair mode resoulution of the device. Pair mode resolution consists of two values, the leading edge arrival time resolution and the pulse width resolution. It is not possible to set one without setting the other.

Parameters:
nLEResolution (LEResolution IN) The desired leading edge resolution, one of :
nPWResolution (PWResolution IN) The desired pulse width resolution. One of:
Precondition:
- Module is pair mode.

- nLEResolution is a valid member of the LEResolution enum.

- nPWResolution is a valid member of the PWResolution enum.

Definition at line 1558 of file CCAENV1x90.cpp.

References EdgeMode_Pair, GetEdgeDetectMode(), LE_100ps, LE_12500ps, LE_1600ps, LE_200ps, LE_3120ps, LE_400ps, LE_6250ps, LE_800ps, PW_100ns, PW_100ps, PW_12500ps, PW_1600ps, PW_200ns, PW_200ps, PW_25ns, PW_3200ps, PW_400ns, PW_400ps, PW_50ns, PW_6250ps, PW_800ns, PW_800ps, PWRESOLUTIONRSHIFT(), CCAENV1x90Opcodes::SET_PAIR_RES(), WaitMicroWrite(), and WriteMicro().

Referenced by ResEdgeTests::CheckPair().

unsigned short CCAENV1x90::GetResolution (  ) 

Read module resolution see below (0x2600).

Returns a word that describes the resolution of the device. This word can only be correctly interpreted knowing the trigger mode. The resolution word can be interpreted via:

Returns:
unsigned short
Return values:
the resolution information that can be passed to interpretation functions.

Definition at line 1621 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::READ_RES(), ReadMicro(), and WriteMicro().

Referenced by ResEdgeTests::CheckPair(), and ResEdgeTests::CheckResolution().

CCAENV1x90::Resolution CCAENV1x90::InterpretEdgeResolution ( unsigned short  nResolution  ) 

Interpret resolution as individual edge.

Returns an encoded resolution. The module must be in one of the edge triggering modes to call this function.

Parameters:
nResolution (unsigned short IN) The resolution word returned from GetResolution
Returns:
Resolution
Return values:
CCAENV1x90::Res_25ps - Module is in 25ps resolution (1290 only).
CCAENV1x90::Res_100ps - Module is at 100ps resolution.
CCAENV1x90::Res_200ps - Module is at 200ps resolution.
CCAENV1x90::Res_800ps - Module is at 800ps resolution.
Precondition:
Module may not be in pair mode.

Definition at line 1645 of file CCAENV1x90.cpp.

References EdgeMode_Pair, EDGERESOLUTIONMASK(), and GetEdgeDetectMode().

Referenced by ResEdgeTests::CheckResolution().

CCAENV1x90::LEResolution CCAENV1x90::InterpretLEResolution ( unsigned short  nResolution  ) 

Interpret LE resolution in pair mode.

Returns the encoded representation of the leading edge resolution decoded when the module is in pair mode. The module must still be in pair mode to call this function.

Parameters:
nResolution (unsigned short IN) The resolution word returned from GetResolution
Returns:
LEResolution
Return values:
CCAENV1x90::LE_100ps Leading edge resolution is 100ps
CCAENV1x90::LE_200ps Leading edge resolution is 200ps
CCAENV1x90::LE_400ps Leading edge resolution is 400ps
CCAENV1x90::LE_800ps Leading edge resolution is 800ps
CCAENV1x90::LE_1600ps Leading edge resolution is 1600ps
CCAENV1x90::LE_3120ps Leading edge resolution is 3120ps
CCAENV1x90::LE_6250ps Leading edge resolution is 6250ps
CCAENV1x90::LE_12500ps Leading edge resolution is 12500ps
Precondition:
Module must be in pair mode.

Definition at line 1680 of file CCAENV1x90.cpp.

References EdgeMode_Pair, GetEdgeDetectMode(), and LERESOLUTIONMASK().

Referenced by ResEdgeTests::CheckPair().

CCAENV1x90::PWResolution CCAENV1x90::InterpretWidthResolution ( unsigned short  nResolution  ) 

Interpret Width resolution in pair mode.

When the module is in pair mode, this function can be called to return the pulse width resolution encoded as a PWResolution value. If the module is not in pair mode, the function throws an exception.

Parameters:
nResolution (unsigned short IN) The resolution word returned from GetResolution
Returns:
PWResolution
Return values:
CCAENV1x90::PW_100ps - 100ps pulse width resolution.
CCAENV1x90::PW_200ps - 200ps pulse width resolution.
CCAENV1x90::PW_400ps - 400ps pulse width resolution.
CCAENV1x90::PW_800ps - 800ps pulse width resolution.
CCAENV1x90::PW_1600ps - 1600ps pulse width resolution.
CCAENV1x90::PW_3200ps - 3200ps pulse width resolution.
CCAENV1x90::PW_6250ps - 6250ps pulse width resolution.
CCAENV1x90::PW_12500ps - 12500ps pulse width resolution.
CCAENV1x90::PW_25ns - 25ns pulse width resolution.
CCAENV1x90::PW_50ns - 50ns pulse width resolution.
CCAENV1x90::PW_100ns - 100ns pulse width resolution.
CCAENV1x90::PW_200ns - 200ns pulse width resolution.
CCAENV1x90::PW_400ns - 400ns pulse width resolution.
CCAENV1x90::PW_800ns - 800ns pulse width resolution.
Precondition:
Module must be in pair mode.

Definition at line 1722 of file CCAENV1x90.cpp.

References EdgeMode_Pair, GetEdgeDetectMode(), PWRESOLUTIONMASK(), and PWRESOLUTIONRSHIFT().

Referenced by ResEdgeTests::CheckPair().

void CCAENV1x90::SetDoubleHitResolution ( DeadTime  nDeadTime  ) 

Set dead time between hits. (0x28)).

Sets the dead time between hits. This is the effective hit-to-hit resolution of the device.

Parameters:
nDeadTime (DeadTime IN) Dead time between hits. This can be one of:
Precondition:
nDeadTime parameter is a legal member of the DeadTime enum.

Definition at line 1750 of file CCAENV1x90.cpp.

References DT_100ns, DT_10ns, DT_30ns, DT_5ns, CCAENV1x90Opcodes::SET_DEAD_TIME(), WaitMicroWrite(), and WriteMicro().

Referenced by ResEdgeTests::CheckDead().

CCAENV1x90::DeadTime CCAENV1x90::GetDoubleHitResolution (  ) 

Read double hit dead time (0x2900).

Returns the hit-to-hit dead time for the module.

Returns:
DeadTime
Return values:
CCAENV1x90::DT_5ns - 5ns hit-to-hit resolution.
CCAENV1x90::DT_10ns - 10ns hit-to-hit resolution.
CCAENV1x90::DT_30ns - 30ns hit-to-hit resolution.
CCAENV1x90::DT_100ns - 100ns hit-to-hit resolution.

Definition at line 1777 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::READ_DEAD_TIME(), ReadMicro(), and WriteMicro().

Referenced by ResEdgeTests::CheckDead().

void CCAENV1x90::EnableTDCEncapsulation (  ) 

Encapsulate data from a tdc (0x3000).

Enables the module to encapsulate the data from a single tdc between a header and trailer word produced by the TDC chip.

Definition at line 1790 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::EN_HEADER_TRAILER(), WaitMicroWrite(), and WriteMicro().

Referenced by ReadoutModes::ChipEncapsulateTest(), and ReadTests::TestReadHeaders().

void CCAENV1x90::DisableTDCEncapsulation (  ) 

Don't encapsulate data from a tdc (0x3100).

Disables the encapsulation of data from a single TDC chip within headers and trailers.

Definition at line 1801 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::DIS_HEADER_TRAILER(), WaitMicroWrite(), and WriteMicro().

Referenced by ReadoutModes::ChipEncapsulateTest(), and ReadTests::TestReadNoHeaders().

bool CCAENV1x90::isTDCEncapsulationOn (  ) 

true if EnableTDCEncapsulation (0x3200)

Determines if the device has TDC data encapsulation enabled.

Returns:
bool
Return values:
If the device is encapsulating the data from a single TDC in chip header/trailer pairs, returns true.
Otherwise,returns false.

Definition at line 1815 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::READ_HEADER_TRAILER(), ReadMicro(), TRUEBIT(), and WriteMicro().

Referenced by ReadoutModes::ChipEncapsulateTest().

void CCAENV1x90::SetMaxHitsPerEvent ( HitMax  nHits  ) 

limit hits/event (0x3300)

Sets the maximum number of hits a tdc chip will contribute to an event (Trigger match mode?). If the number of hits is exceeded, the TDC will assert a size limit exceeded condition which, if error flags are enabled, will result in an error flag word being placed in the output event.

Parameters:
nHits (HitMax IN) This can be one of:
Precondition:
nHits parameter is a valid member of the HitMax enum.

Definition at line 1844 of file CCAENV1x90.cpp.

References HITS_0, HITS_1, HITS_128, HITS_16, HITS_2, HITS_32, HITS_4, HITS_64, HITS_8, HITS_UNLIMITED, CCAENV1x90Opcodes::SET_EVENT_SIZE(), WaitMicroWrite(), and WriteMicro().

Referenced by ReadTests::FIFOTest(), ReadoutModes::MaxHitTest(), ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

CCAENV1x90::HitMax CCAENV1x90::GetMaxHitsPerEvent (  ) 

What's max hits/event (0x3400).

Return the maximum hit count set via SetMaxHitsPerEvent.

Returns:
HitMax
Return values:
CCAENV1x90::HITS_0 - no hits.
CCAENV1x90::HITS_1 - 1 hit.
CCAENV1x90::HITS_2 - 2 hits
CCAENV1x90::HITS_4 - 4 hits
CCAENV1x90::HITS_8 - 8 hits
CCAENV1x90::HITS_16 - 16 hits
CCAENV1x90::HITS_32 - 32 hits
CCAENV1x90::HITS_64 - 64 hits
CCAENV1x90::HITS_128 - 128 hits
CCAENV1x90::HITS_UNLIMITED - no limit

Definition at line 1883 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::READ_EVENT_SIZE(), ReadMicro(), and WriteMicro().

Referenced by ReadoutModes::MaxHitTest().

void CCAENV1x90::EnableErrorMark (  ) 

turn on error mark words (0x3500)

Enables the production of error mark words in the event whenever a global error occurs on an event.

Definition at line 1896 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::EN_ERROR_MARK(), WaitMicroWrite(), and WriteMicro().

void CCAENV1x90::DisableErrorMark (  ) 

Turn off error mark words(0x3600).

Disables the production of error mark words in the event when a global error occurs.

Definition at line 1906 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::DIS_ERROR_MARK(), WaitMicroWrite(), and WriteMicro().

void CCAENV1x90::EnableBypassOnError (  ) 

Turn on TDC bypass on error (0x3700).

Allows the TDC to disable its readout on the existence of a global error condition.

Definition at line 1916 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::EN_ERROR_BYPASS(), WaitMicroWrite(), and WriteMicro().

void CCAENV1x90::DisableBypassOnError (  ) 

Turn off TDC Bypasson error (0x3800).

Allows the TDC to be readout in the presence of a global error condition.

Definition at line 1926 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::DIS_ERROR_BYPASS(), WaitMicroWrite(), and WriteMicro().

void CCAENV1x90::SetErrorEnables ( unsigned short  nErrors  ) 

selectively enable error types.

Determines the set of conditions detected in side the TDC that result in a global error. The parameter is a bitwise or of the legal values. Note that in addition to the errors that can be controlled, there's also the size error bit which cannot be controlled, and indicates the TDC has more hits than allowed.

Parameters:
nErrors (unsigned short IN) A bitwise or of the conditions that you want to produce a global error condition. The legal bits are:
Precondition:
No extraneous bits may be set in the nErrors mask.

Definition at line 1958 of file CCAENV1x90.cpp.

References ERR_CTLPARITY, ERR_JTAGPARITY, ERR_L1PARITY, ERR_MATCHERROR, ERR_RDOSTATE, ERR_RFIFOPARITY, ERR_SELECT, ERR_SUPPARITY, ERR_TFIFOPARITY, ERR_VERNIER, CCAENV1x90Opcodes::SET_ERROR_TYPES(), WaitMicroWrite(), and WriteMicro().

Referenced by ReadoutModes::ErrorEnableTest().

unsigned short CCAENV1x90::GetErrorEnables (  ) 

Get error enables.

Returns the mask of TDC error bits that are enabled..

See CCAENV1x90::SetErrorEnables for more information about the valid bits that may be set in the mask.

Definition at line 1988 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::READ_ERROR_TYPES(), ReadMicro(), and WriteMicro().

Referenced by ReadoutModes::ErrorEnableTest().

void CCAENV1x90::SetL1Size ( L1Size  nL1Size  ) 

Set level 1 fifo size.

Sets the level 1 buffer fifo size. in words.

Parameters:
nL1Size (L1Size IN) the level 1 buffer size. This can be one of:
Precondition:
nL1Size i a valid member of L1Size.

Definition at line 2014 of file CCAENV1x90.cpp.

References L1_128wds, L1_16wds, L1_256wds, L1_2wds, L1_32wds, L1_4wds, L1_64wds, L1_8wds, CCAENV1x90Opcodes::SET_FIFO_SIZE(), WaitMicroWrite(), and WriteMicro().

Referenced by ReadoutModes::L1CacheTest().

CCAENV1x90::L1Size CCAENV1x90::GetL1Size (  ) 

Get the level 1 fifo size.

Returns the size of the L1 buffer fifo. See CCAENV1x90::SetL1size for more information about the L1Size enumerator and its legal values.

Definition at line 2042 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::READ_FIFO_SIZE(), ReadMicro(), and WriteMicro().

Referenced by ReadoutModes::L1CacheTest().

void CCAENV1x90::EnableChannel ( unsigned short  nChannel  ) 

Enbable 1 channel (0x40nn).

Enables a single TDC channel. The actual number of channels supported by a TDC Chip, is determined by the model number of the device. If an invalid chip or channel is selected, an exception will be thrown.

Parameters:
nChannel (unsigned int IN) Number of the channel to enable.
Precondition:
nChannel >= 0

nChannel <= m_nChannels

Definition at line 2065 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::EN_CHANNEL(), m_nChannels, WaitMicroWrite(), and WriteMicro().

Referenced by ReadoutModes::IndividualEnableTest().

void CCAENV1x90::DisableChannel ( unsigned short  nChannel  ) 

Disable a channel (0x41nn).

Disables a single TDC channel. The actual number of channels supported by a TDC Chip, and the number of chips is determined by the model number of the device. If an invalid chip or channel is selected, an exception will be thrown.

Parameters:
nChannel (unsigned int IN) Number of the channel to enable.
Precondition:
nChannel >= 0.

nChannel < m_nChannels.

Definition at line 2087 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::DIS_CHANNEL(), m_nChannels, WaitMicroWrite(), and WriteMicro().

Referenced by ReadoutModes::IndividualEnableTest().

void CCAENV1x90::EnableAllChannels (  ) 

Enable all tdc channels (0x4200).

Enables all of the channels in all of the chips on the module.

Definition at line 2102 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::EN_ALL_CH(), WaitMicroWrite(), and WriteMicro().

Referenced by ReadoutModes::EnableAllTest().

void CCAENV1x90::DisableAllChannels (  ) 

Disable all tdc channels (0x4300).

Dissables all the channels in all the chips on the module.

Definition at line 2111 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::DIS_ALL_CH(), WaitMicroWrite(), and WriteMicro().

Referenced by ReadoutModes::EnableAllTest(), and ReadoutModes::IndividualEnableTest().

void CCAENV1x90::SetChannelEnables ( STD(vector)< unsigned short >  masks  ) 

Set enables mask for all chans (0x4400).

Referenced by ReadoutModes::MaskEnableTest().

void CCAENV1x90::GetChannelEnables ( STD(vector)< unsigned short > &  masks  ) 

read enables mask. (0x4500)

Referenced by ReadoutModes::isEnabled().

void CCAENV1x90::SetChipEnables ( unsigned short  nChip,
unsigned int  nMask 
)

Set the enables for a single chip. (0x460n).

Sets the enables for a single chip of the module as designated by the mask longword. Each channel that has a corresponding bit set is enabled, the others disabled.

Parameters:
nChip (unsigned int IN) Chip number.
nMasks (unsigned int IN) Mask of enable bits.
Precondition:
nChip must be < m_nChipCount (chips are numbered from 0).

Definition at line 2199 of file CCAENV1x90.cpp.

References HI(), LO(), m_nChipCount, WaitMicroWrite(), CCAENV1x90Opcodes::WRITE_EN_PATTERN32(), and WriteMicro().

Referenced by ReadoutModes::TestChip().

unsigned int CCAENV1x90::GetChipEnables ( unsigned short  nChip  ) 

read enables for a chip. (0x470n)

Returns the channel enable mask for a TDC Chip. The mask will have a bit set for each enabled channel.

Parameters:
nChip (unsigned int IN) Chip number.
Returns:
unsigned int
Return values:
The 32 bit mask of channel enables. Channel 0 of the chip will be the LSBit. while channel 31 the MSBit.
Precondition:
nChip < m_nChipCount

Definition at line 2240 of file CCAENV1x90.cpp.

References FormatValue(), m_nChipCount, CCAENV1x90Opcodes::READ_EN_PATTERN32(), ReadMicro(), and WriteMicro().

Referenced by ReadoutModes::TestChip().

void CCAENV1x90::SetGlobalOffset ( unsigned short  nCoarse,
unsigned short  nVernier 
)

Set global coarse/fine offsets (0x5000).

This function sets a global offset on the coarse and fine counter values. The coarse counter offset range is 0-2047, while the fine offset is 0-31.

Parameters:
nCoarse (unsigned short IN) Coarse offset.
nVernier (unsigned short IN) Fine (vernier) offset
Precondition:
nCoarse < 0x1000

nVernier < 0x20

Definition at line 2280 of file CCAENV1x90.cpp.

References COARSEMAX(), FormatValue(), CCAENV1x90Opcodes::SET_GLOB_OFFS(), VERNIERMAX(), WaitMicroWrite(), and WriteMicro().

Referenced by AdjustTests::GlobalOffsetTest().

void CCAENV1x90::ReadGlobalOffset ( unsigned short &  nCoarse,
unsigned short &  nVernier 
)

Fetch the global offsets (0x5100).

Reads the coarse and fine offsets from the module. These offsets are masked so that there will be no bits set other than those set in the offset fields.

Parameters:
nCoarse (unsigned int& OUT) The coarse offset read from the chip.
nVernier (unsigned int& OUT) The fine offset read from the chip.

Definition at line 2314 of file CCAENV1x90.cpp.

References COARSEMASK(), CCAENV1x90Opcodes::READ_GLOB_OFFS(), ReadMicro(), VERNIERMASK(), and WriteMicro().

Referenced by AdjustTests::GlobalOffsetTest().

void CCAENV1x90::SetChannelOffset ( unsigned short  nChannel,
unsigned short  nOffset 
)

Set a channel offset (0x52nn).

Each TDC channel can have an offset applied to it. This function sets the offset for an individual TDC channel.

Parameters:
nChannel (unsigned int IN) channel number
nOffset (unsigned short IN) Offset in the range [0-255].
Precondition:
nChannel is a legal channel number for this module type.

nOffset is i < 0x100.

Definition at line 2339 of file CCAENV1x90.cpp.

References CHANOFFSETMAX(), FormatValue(), m_nChannels, CCAENV1x90Opcodes::SET_ADJUST_CH(), WaitMicroWrite(), and WriteMicro().

Referenced by AdjustTests::ChannelOffsetTest().

unsigned short CCAENV1x90::GetChannelOffset ( unsigned int  nChannel  ) 

Retrieve channel offset (0x53nn).

Returns the offset value that was set for a channel of the TDC via SetChannelOffset.

Parameters:
nChannel (unsigned int IN) Channel Number.
Returns:
unsigned short
Return values:
The channel offset in the range [0,0xff].
Precondition:
nChannel < m_nChannels;

Definition at line 2371 of file CCAENV1x90.cpp.

References CHANOFFSETMASK(), m_nChannels, CCAENV1x90Opcodes::READ_ADJUST_CH(), ReadMicro(), and WriteMicro().

Referenced by AdjustTests::ChannelOffsetTest().

void CCAENV1x90::CalibrateDelayLine ( unsigned short  nChip,
unsigned short  Tap1Contact,
unsigned short  Tap2Contact,
unsigned short  Tap3Contact,
unsigned short  Tap4Contact 
)

Set delayline tap config (0x450n).

Each tap on the delay line has a set of three additional capacitors that can be gated into the circuit. These capacitors affect the exact timing of the delay line tap and can therefore be used to calibrate each tap. This function sets the contact masks for all 12 capacitors (3 contacts per 4 delay line taps) in the delay line.

Parameters:
nChip (Unsigned Short In) TDC chip number.
Tap1Contact (Unsigned short IN) Contact mask for tap 1. For each bit in the contact mask, an additional capacitance is added to the Tap1Contact RC delay. Valid mask bits are:
Tap2Contact Unsigned Short IN Contact mask for tap2
Tap3Contact Unsigned Short IN Contact mask for tap 3
Tap4Contact Unsigned Short IN contact mask for tap 4.
Precondition:
Tap or contact mask only has the bits sest described above.

nChip < m_nChipCount

Definition at line 2416 of file CCAENV1x90.cpp.

References m_nChipCount, CCAENV1x90Opcodes::SET_RC_ADJ(), TAP_CONTACT1, TAP_CONTACT2, TAP_CONTACT3, WaitMicroWrite(), and WriteMicro().

Referenced by AdjustTests::DelayLineTest().

void CCAENV1x90::GetDelayLineCalibration ( unsigned short  nChip,
unsigned short &  Tap1Contact,
unsigned short &  Tap2Contact,
unsigned short &  Tap3Contact,
unsigned short &  Tap4Contact 
)

Get delay line tap config (0x460n).

Returns the contact masks for the delay line calibrations for a single TDC on the board.

Parameters:
nChip (unsigned short IN) The TDC chip number.
Tap1Contact (unsigned short & OUT) Tap 1 contact mask See SetDelayLineCalibration for information about the bits in this mask
Tap2Contact (unsigned short & OUT) Tap 2 contact mask.
Tap3Contact (unsigned short & OUT) Tap 3 contact mask
Tap4Contact (unsigned short & OUT) Tap 4 contact mask.
Precondition:
nChip < m_nChipCount

Definition at line 2469 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::READ_RC_ADJ(), ReadMicro(), TAPCONTACTMASK(), TAPCONTACTRSHIFT(), and WriteMicro().

Referenced by AdjustTests::DelayLineTest().

void CCAENV1x90::SaveDelayLineCalibrations (  ) 

Write calibrations -> eprom (0x5600).

The current set of delay line calibration contact masks are saved to EEPROM on the module. On power up, these settings will be restored to all TDC chips.

Definition at line 2491 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::SAVE_RC_ADJ(), WaitMicroWrite(), and WriteMicro().

unsigned int CCAENV1x90::GetChipId ( unsigned short  nChip  ) 

Get chip id (0x600n).

Returns the chip ID and stepping leve of the specified TDC chip. This should be a hex number like: 0x8470dacx where x is the stepping number. The stepping number is not encoded in any way I can understand. The manual claims that 0xe is revision 1.3 (e = 14 so I don't get it).

Parameters:
nChip (unsigned short IN) Chip number.
Returns:
unsigned int
Return values:
the chip id. See the description.
Precondition:
nChip < m_nChipCount

Definition at line 2515 of file CCAENV1x90.cpp.

References m_nChipCount, CCAENV1x90Opcodes::READ_TDC_ID(), ReadMicro(), and WriteMicro().

Referenced by MiscTests::ChipIdTest().

void CCAENV1x90::GetuCFirmwareInfo ( unsigned short &  nRevision,
unsigned short &  nDay,
unsigned short &  nMonth,
unsigned short &  nYear 
)

Firmware rev/date (0x6100).

Retrieves information about the firmware revision and when it was comitted from the board.

Parameters:
nRevision (unsigned int& OUT) The firmware revision level
nDay (unsigned int& OUT) Day of the month on which the firmware was comitted.
(nMonth unsigned int& OUT) Month of the year on which the firmware was comitted.
nYear (unsigned int & OUT) Year on which the firmware was committed.

Definition at line 2546 of file CCAENV1x90.cpp.

References ReadMicro(), CCAENV1x90Opcodes::REV_DATE_MICRO_FW(), and WriteMicro().

Referenced by MiscTests::FWDTimeTest().

unsigned short CCAENV1x90::GetChipErrors ( unsigned short  nChip  ) 

Read errors from 1 chip (0x740n).

Returns the error mask from the specified TDC chip.

Parameters:
nChip (unsigned int IN) The chip to read.
Precondition:
nChip is invalid for the board.

Definition at line 2571 of file CCAENV1x90.cpp.

References ERR_COARSE, ERR_CTLPARITY, ERR_JTAGPARITY, ERR_L1PARITY, ERR_MATCHERROR, ERR_RDOSTATE, ERR_RFIFOPARITY, ERR_SELECT, ERR_SUPPARITY, ERR_TFIFOPARITY, ERR_VERNIER, m_nChipCount, CCAENV1x90Opcodes::READ_ERROR_STATUS(), ReadMicro(), and WriteMicro().

Referenced by MiscTests::ErrorsTest().

void CCAENV1x90::EnableTestMode ( unsigned int  nValue  ) 

Chip->Test mode. (0xc500).

Requests that the board run in test mode. This is only useful in trigger matching mode. For each gate the tdc will emit (between headers and trailers if enabled) n test words as described in figure 5.2 of the hardware manual. n is the maximum event size programmed for the tdc. I'm not sure what it'll do if that's set to unlimited :-).

Parameters:
nValue (unsigned int IN) The 24 bits of data value to set for this TDC chip's data.
Precondition:
nValue & ~(0xffffff) == 0 (Data word fits in 24 bits).

Definition at line 2609 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::ENABLE_TEST_MODE(), HI(), LO(), MAXTESTVALUE(), WaitMicroWrite(), and WriteMicro().

Referenced by ReadTests::FIFOTest(), ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

void CCAENV1x90::DisableTestMode (  ) 

Turn off chip test mode (0xc600).

Takes the board out of test mode. Test mode is enabled for a chip via a call to EnableTestMode.

Definition at line 2634 of file CCAENV1x90.cpp.

References CCAENV1x90Opcodes::DISABLE_TEST_MODE(), WaitMicroWrite(), and WriteMicro().

unsigned int CCAENV1x90::ReadData ( void *  pBuffer,
unsigned int  nMaxLongs 
)

Read up to nMaxLongs.

The action depends on the TDC module trigger mode:

Please see the description of both of these functions for more information.

Parameters:
pBuffer (void* OUT) Where to put the data.
nMaxLongs (unsigned int IN) Maximum number of Longs to read. The pBuffer parameter must point to storage of at least nMaxLongs*sizeof(long) bytes of data.
Returns:
unsigned int
Return values:
actual number of Longs

Definition at line 2662 of file CCAENV1x90.cpp.

References m_fTriggerMatching, ReadPacket(), and ReadValid().

Referenced by ReadTests::TestReadHeaders(), and ReadTests::TestReadNoHeaders().

unsigned int CCAENV1x90::ReadPacket ( void *  pBuffer,
unsigned int  nMaxLongs 
)

Read trigger matched event up to nMaxLongs.

Reads a data packet that represents an event from the TDC. This is done by reading the TDC word by word and looking for an Event trailer. I suggest that the caller use the Event FIFO to determine how big the event is and allocate an appropriately sized buffer for it. If the event is larger than nMaxLongs, longs will be read from the TDC until the end of event trailer is located. The user buffer will consist of the first nMaxLong-1 data items, a bunch of skipped longs and a final long that will be the trailer long. In that case, the return value of ReadPacket will be nMaxLongs as well. The caller code can detect this by a mismatch between nMaxLongs (the return value) and the size of he event as described in the trailer longword and take appropriate action. This should, of course never happen if you paid attention and used the event FIFO to set the buffersize and nMaxLongs.

Parameters:
pBuffer (void* OUT) Pointer to the buffer into which the data are read.
nMaxLongs (unsigned int IN) Maximum number of longs to read into the buffer.
Returns:
int
Return values:
Number of longs actually read.

Definition at line 2698 of file CCAENV1x90.cpp.

References CCAENV1x90Data::isFiller(), CCAENV1x90Data::isGlobalTrailer(), m_pRegisters, OffsetL(), CCAENV1x90Registers::OutputBuffer(), and CVmeModule::peekl().

Referenced by ReadData().

unsigned int CCAENV1x90::ReadValid ( void *  pBuffer,
unsigned int  nMaxLongs 
)

Read all valid words, up to nMaxLongs.

LongWords are read from the TDC data buffer until either nMaxLongs longwords have been read, or alternatively, until the first pad longword is encountered. Pad longs are not put in the buffer.

Parameters:
pBuffer (void* OUT) Pointer to the buffer into which the TDC data will be read.
nMaxLongs (unsigned int IN) Number of longwords in the buffer.
Returns:
unsigned int
Return values:
The number of longwords placed into the buffer.

Definition at line 2739 of file CCAENV1x90.cpp.

References CCAENV1x90Data::isFiller(), CCAENV1x90Data::isGlobalTrailer(), m_pRegisters, OffsetL(), CCAENV1x90Registers::OutputBuffer(), and CVmeModule::peekl().

Referenced by ReadData().

void CCAENV1x90::WaitMicroWrite (  ) 

Wait for micro writable.

Wait for the micro to be writable.

Definition at line 3056 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::peekw(), CCAENV1x90Registers::WMicroHandshake(), and CCAENV1x90Registers::MicroHandshake::WRITE_OK().

Referenced by AutoLoadDefaultConfig(), AutoLoadUserConfig(), CalibrateDelayLine(), ContinuousStorageMode(), DisableAllChannels(), DisableBypassOnError(), DisableChannel(), DisableErrorMark(), DisableTDCEncapsulation(), DisableTestMode(), DisableTriggerTimeSubtraction(), EnableAllChannels(), EnableBypassOnError(), EnableChannel(), EnableErrorMark(), EnableTDCEncapsulation(), EnableTestMode(), EnableTriggerTimeSubtraction(), LoadDefaultConfig(), LoadUserConfig(), Reset(), SaveDelayLineCalibrations(), SaveUserConfig(), SetChannelOffset(), SetChipEnables(), SetDoubleHitResolution(), SetEdgeDetectMode(), SetErrorEnables(), SetExtraSearchMargin(), SetGlobalOffset(), SetIndividualLSB(), SetL1Size(), SetMaxHitsPerEvent(), SetPairResolutions(), SetRejectMargin(), SetWindowOffset(), SetWindowWidth(), TransferOneAtATime(), TransferUntilDone(), TriggerMatchMode(), and WriteMicro().

bool CCAENV1x90::ValidBoard ( CVmeModule pRom  )  [protected]

Is this a 1x90?

Determines if the module is a module supported by this class.

Parameters:
pROM (CVMEptr IN) pointer like object to the module's configuration rom.
Returns:
bool
Return values:
true -indicates the module is a V1x90 tdc
false - indicates the module is not a V1x90 tdc.

Definition at line 2780 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::ModuleVersion::A(), CCAENV1x90Registers::ModuleVersion::B(), CCAENV1x90Registers::ModuleVersion::N(), OffsetW(), CVmeModule::peekw(), ReadPromLong(), CCAENV1x90Registers::WBoardVersion(), CCAENV1x90Registers::WModelNumber2(), and CCAENV1x90Registers::WOUI2().

Referenced by CCAENV1x90().

void CCAENV1x90::BoardProperties ( CVmeModule pROM  )  [protected]

Fetch the properties of a CAEN V 1x90 board into member data. Stores the following:

Parameters:
pRom (CVmeModule& IN) pointer like object to the module's configuration rom.

Definition at line 2843 of file CCAENV1x90.cpp.

References CCAENV1x90Registers::ModuleVersion::A(), CCAENV1x90Registers::ModuleVersion::B(), m_cVersion, m_fCanHiRes, m_fIsHiResMode, m_fTriggerMatching, m_nBoardRevision, m_nChannels, m_nChipCount, m_nModel, m_nSerialNumber, CCAENV1x90Registers::ModuleVersion::N(), OffsetW(), CVmeModule::peekw(), ReadPromLong(), CCAENV1x90Registers::StatusRegister::RES_25ps(), CCAENV1x90Registers::StatusRegister::RESOLUTIONMASK(), SR(), CCAENV1x90Registers::StatusRegister::TRG_MATCH(), CCAENV1x90Registers::WBoardVersion(), CCAENV1x90Registers::WModelNumber2(), CCAENV1x90Registers::WRevision0(), CCAENV1x90Registers::WRevision3(), CCAENV1x90Registers::WSerialNumber0(), and CCAENV1x90Registers::WSerialNumber1().

Referenced by CCAENV1x90().

void CCAENV1x90::WriteCR ( unsigned short  mask  )  [protected]

Write mask to status register.

Writes the mask to the module's control register. The control register is accessed via the m_pRegisters pseudo pointer.

Parameters:
mask (unsigned short in) New value to write.

Definition at line 2971 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::pokew(), and CCAENV1x90Registers::WControlRegister().

Referenced by BitClearCR(), and BitSetCR().

void CCAENV1x90::BitSetCR ( unsigned short  bit  )  [protected]

set specified bit# in cr.

Sets a specific single bit in the module's control register.

Parameters:
bit (unsigned short in) Number (from 0) of the bit to set.
Returns:
void

Definition at line 2999 of file CCAENV1x90.cpp.

References ReadCR(), and WriteCR().

Referenced by EnableTriggerTagTime(), Reset(), Terminate(), and Unterminate().

void CCAENV1x90::BitClearCR ( unsigned short  bit  )  [protected]

clear specified bit# in cr.

Clears a specific bit in the module's control register.

Parameters:
bit (unsigned short in) Number (from 0) of the bit to clear.

Definition at line 3015 of file CCAENV1x90.cpp.

References ReadCR(), and WriteCR().

Referenced by DisableTriggerTagTime(), TerminateWithSwitch(), and Unterminate().

void CCAENV1x90::WriteMicro ( unsigned short  nWord  )  [protected]

Write word to the micro sequencer.

Writes a single word to the module's micro controller with appropriate handshake. This is a utility function used by the member functions that must interact with the micro controller.

Parameters:
int nWord (unsigned short In) Word to write.

Definition at line 3076 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::pokew(), WaitMicroWrite(), and CCAENV1x90Registers::WMicroData().

Referenced by AutoLoadDefaultConfig(), AutoLoadUserConfig(), CalibrateDelayLine(), ContinuousStorageMode(), DisableAllChannels(), DisableBypassOnError(), DisableChannel(), DisableErrorMark(), DisableTDCEncapsulation(), DisableTestMode(), DisableTriggerTimeSubtraction(), EnableAllChannels(), EnableBypassOnError(), EnableChannel(), EnableErrorMark(), EnableTDCEncapsulation(), EnableTestMode(), EnableTriggerTimeSubtraction(), GetChannelOffset(), GetChipEnables(), GetChipErrors(), GetChipId(), GetDelayLineCalibration(), GetDoubleHitResolution(), GetEdgeDetectMode(), GetErrorEnables(), GetL1Size(), GetMaxHitsPerEvent(), GetResolution(), GetuCFirmwareInfo(), isTDCEncapsulationOn(), LoadDefaultConfig(), LoadUserConfig(), MicroTransaction(), ReadGlobalOffset(), SaveDelayLineCalibrations(), SaveUserConfig(), SetChannelOffset(), SetChipEnables(), SetDoubleHitResolution(), SetEdgeDetectMode(), SetErrorEnables(), SetExtraSearchMargin(), SetGlobalOffset(), SetIndividualLSB(), SetL1Size(), SetMaxHitsPerEvent(), SetPairResolutions(), SetRejectMargin(), SetWindowOffset(), SetWindowWidth(), TransferOneAtATime(), TransferUntilDone(), TriggerMatchMode(), and WriteMicroBlock().

unsigned short CCAENV1x90::ReadMicro (  )  [protected]

read a word from the micro sequencer.

Reads a single word from the micro controller waiting if necessary for the word to become available. Note that it is the caller's responsibility to be sure that the module will have a data word available (one reason this is private), otherwise this function will spin endlessly waiting for the MicroHanshake::READ_OK bit.

Returns:
unsigned short
Return values:
the word returned from the micro-controller.

Definition at line 3101 of file CCAENV1x90.cpp.

References m_pRegisters, OffsetW(), CVmeModule::peekw(), CCAENV1x90Registers::MicroHandshake::READ_OK(), CCAENV1x90Registers::WMicroData(), and CCAENV1x90Registers::WMicroHandshake().

Referenced by GetChannelOffset(), GetChipEnables(), GetChipErrors(), GetChipId(), GetDelayLineCalibration(), GetDoubleHitResolution(), GetEdgeDetectMode(), GetErrorEnables(), GetL1Size(), GetMaxHitsPerEvent(), GetResolution(), GetuCFirmwareInfo(), isTDCEncapsulationOn(), ReadGlobalOffset(), and ReadMicroBlock().

void CCAENV1x90::WriteMicroBlock ( void *  pWords,
unsigned int  nWords 
) [protected]

Write words to the micro seqeuncer.

Calls WriteMicro nWords times to write consecutive words pointed to by pWords. This function is used by members that need to write blocks of several words to the microcontroller.

Parameters:
pWords (void* in) Pointer to words to write.
nWords (unsigned int in) Number of words to write.

Definition at line 3127 of file CCAENV1x90.cpp.

References WriteMicro().

void CCAENV1x90::ReadMicroBlock ( void *  pWords,
unsigned int  nWords 
) [protected]

Reads words from the micro sequencer.

Reads Calls ReadMicro nWords times, storing the results in consecutive memory locations pointed to by pWords. This function is used by members that must transfer blocks of data from the microcontroller.

Parameters:
pWords (void* out) Pointer to a buffer to hold the words.
nWords (unsigned int in) Number of words to read

Definition at line 3149 of file CCAENV1x90.cpp.

References ReadMicro().

Referenced by MicroTransaction().

void CCAENV1x90::MicroTransaction ( unsigned short  opcode,
void *  pWords,
unsigned int  nWords 
) [protected]

Do an opcode and read a block.

Writes opcode to the micro controller followed by a read of nWords from the microcontroller into the buffer pointed to by pWords. This performs a full operation with the microcontroller that requests and transfers data from the micro controller.

Parameters:
opcode (unsigned short IN) The operation code to write to the micro
pWords (unsigned short OUT) Pointer to the buffer to hold the words retreived from the micro
nWords (unsigned int in) Number of words to read from the micro

Definition at line 3174 of file CCAENV1x90.cpp.

References ReadMicroBlock(), and WriteMicro().

Referenced by GetTriggerConfiguration().

unsigned long CCAENV1x90::ReadPromLong ( CVmeModule prombase,
unsigned long  ByteOffset 
) [protected]

Read a longword from the configuration prom. In the config prom, longwords are stored high endian, one byte per long. The valid byte is in the low order byte of each word. Access to the prom is also limited to D16 and the first 16 words of each longword offset is what is significant.

Parameters:
prombase (CVmeModule& in) reference to the module 'map'.
ByteOffset (unsigned long in ) Offset in bytes to the first word to read.
Returns:
long
Return values:
the value of the longword.

Definition at line 3039 of file CCAENV1x90.cpp.

References OffsetW(), and CVmeModule::peekw().

Referenced by BoardProperties(), and ValidBoard().


Member Data Documentation

const unsigned short CCAENV1x90::ERR_VERNIER [static]

Definition at line 190 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::ERR_COARSE [static]

Definition at line 191 of file CCAENV1x90.h.

Referenced by GetChipErrors().

const unsigned short CCAENV1x90::ERR_SELECT [static]

Definition at line 192 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::ERR_L1PARITY [static]

Definition at line 193 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::ERR_TFIFOPARITY [static]

Definition at line 194 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::ERR_MATCHERROR [static]

Definition at line 195 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::ERR_RFIFOPARITY [static]

Definition at line 196 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::ERR_RDOSTATE [static]

Definition at line 197 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::ERR_SUPPARITY [static]

Definition at line 198 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::ERR_CTLPARITY [static]

Definition at line 199 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::ERR_JTAGPARITY [static]

Definition at line 200 of file CCAENV1x90.h.

Referenced by GetChipErrors(), and SetErrorEnables().

const unsigned short CCAENV1x90::TAP_CONTACT1 [static]

Definition at line 204 of file CCAENV1x90.h.

Referenced by CalibrateDelayLine().

const unsigned short CCAENV1x90::TAP_CONTACT2 [static]

Definition at line 205 of file CCAENV1x90.h.

Referenced by CalibrateDelayLine().

const unsigned short CCAENV1x90::TAP_CONTACT3 [static]

Definition at line 206 of file CCAENV1x90.h.

Referenced by CalibrateDelayLine().

unsigned long CCAENV1x90::m_nBase [private]

VME base address of the module.

Definition at line 210 of file CCAENV1x90.h.

Referenced by CCAENV1x90().

unsigned int CCAENV1x90::m_nCrate [private]

VME crate stuffed in.

Definition at line 211 of file CCAENV1x90.h.

Referenced by CCAENV1x90().

unsigned int CCAENV1x90::m_nSlot [private]

Geo value.

Definition at line 212 of file CCAENV1x90.h.

Referenced by Reset().

CVmeModule CCAENV1x90::m_pRegisters [private]

Device register pseudo pointer.

Definition at line 214 of file CCAENV1x90.h.

Referenced by Clear(), DefineECLOutput(), EventCount(), EventFIFOCount(), EventReset(), GetAlmostFullLevel(), GetECLOutputDefinition(), GetGeographicalID(), isEventFIFOFull(), isEventFIFOReady(), ReadCR(), ReadEventFIFO(), ReadMicro(), ReadPacket(), ReadValid(), Reset(), SetAlmostFullLevel(), SetGeographicalID(), SR(), Trigger(), TriggerCount(), WaitMicroWrite(), WriteCR(), and WriteMicro().

unsigned int CCAENV1x90::m_nModel [private]

Model, e.g. 1190 or 1290.

Definition at line 215 of file CCAENV1x90.h.

Referenced by BoardProperties(), CCAENV1x90(), getModel(), and isPairMode().

unsigned char CCAENV1x90::m_cVersion [private]

Sub-model e.g. A,B or N.

Definition at line 216 of file CCAENV1x90.h.

Referenced by BoardProperties(), CCAENV1x90(), and getVersion().

unsigned int CCAENV1x90::m_nSerialNumber [private]

Module serial number.

Definition at line 217 of file CCAENV1x90.h.

Referenced by BoardProperties(), and getSerialNumber().

unsigned int CCAENV1x90::m_nChipCount [private]

Number of chips in the board.

Definition at line 218 of file CCAENV1x90.h.

Referenced by BoardProperties(), CalibrateDelayLine(), getChipCount(), GetChipEnables(), GetChipErrors(), GetChipId(), HadError(), and SetChipEnables().

unsigned int CCAENV1x90::m_nChannels [private]

Number of channels on the board.

Definition at line 219 of file CCAENV1x90.h.

Referenced by BoardProperties(), DisableChannel(), EnableChannel(), getChannelCount(), GetChannelOffset(), and SetChannelOffset().

unsigned int CCAENV1x90::m_nBoardRevision [private]

Board hardware revision level.

Definition at line 220 of file CCAENV1x90.h.

Referenced by BoardProperties().

bool CCAENV1x90::m_fCanHiRes [private]

True if high resolution capable.

Definition at line 221 of file CCAENV1x90.h.

Referenced by BoardProperties(), SetEdgeDetectMode(), and SetIndividualLSB().

bool CCAENV1x90::m_fIsHiResMode [private]

True if module is in hi res.

Definition at line 222 of file CCAENV1x90.h.

Referenced by BoardProperties(), ReadResolution(), SetEdgeDetectMode(), and SetIndividualLSB().

bool CCAENV1x90::m_fTriggerMatching [private]

true if module has got trigger match mode on.

Definition at line 223 of file CCAENV1x90.h.

Referenced by BoardProperties(), Clear(), ContinuousStorageMode(), EventReset(), ReadData(), Reset(), and TriggerMatchMode().


The documentation for this class was generated from the following files:
Generated on Wed Sep 17 08:38:11 2008 for NSCL Device support. by  doxygen 1.5.1