CCAENV560 -- Support the CCAENV560 non-latching scaler.


#include <CCAENV560.h>
 class CCAENV560 {

  CCAENV560(unsigned long base, int crate crate = 0);

  bool GetSectStat(int nSection)
          throws std::string;
  void ScalInc();
  void SetVeto();
  void ResetVeto();
  void Clear();
  bool GetVetoStat();
  int ReadCounter(int nChannel)
          throws std::string;


Note this software was contributed by Kevin Carnes from James R. Macdonald Lab Kansas State University.

This class is a driver for the CAEN V560 scaler module. This module is a non-latching scaler. The module can be used both as a 32 bit scaler or channels can be ganged together to create 64 bit scalers.

Public member functions

CCAENV560(unsigned long base, int crate);

Constructs an object through which you can control a single CAEN V560 scaler module. base is the base address of the module as programmed into the module's rotary switches. crate is the number of the VME crate the module is installed in. If not supplied, the crate parameter defaults to 0, which is suitable for single crate systems.

bool GetSectStat(int nSection);

The 16 scaler channels in the module are divided into 8 two channel groups. Each group can be switch selectable to be either two 32 bit scalers or 1 64 bit scaler. This function essentially returns the swtich value for a specific section. Section zero is scalers 1/2, section one is scalers 3/4 and so on. A value of false meanst the group is operating as two 32 bit scalers, while a value of true means the carry from the lower numbered scaler is feeding the increment for the higher numbered scaler in the group (1 64 bit scaler).

void ScalInc(void);

This test function increments all channels fo the scaler. If a group is in 64 bit mode it is not clear to me if both counters in the group are incremented or not.

void SetVeto(void);

Vetoes the module. Scalers will not count if there are inputs.

void ResetVeto(void);

Turns off the veto on all of the channels of the module. This allows the scaler channels to count.

void Clear(void);

Clears all channels of the scaler.

bool GetVetoStat(void);

Returns true if the module is vetoed or false if not.

int ReadCounter(int nChannel);

Reads the counter for channel nChannel. If nChannel is not legal, a string exception is thrown.


Invalid parameters or failure to map the module and find a scaler will result in an std::string exception being thrown.


The CAEN V560 hardware manual.