CScaler

Name

CScaler -- Base class for scaler readout classes

Synopsis


#include <CScaler.h>
         

          class  CScaler {
            
  virtual void initialize();
              virtual void clear();
              virtual void disable();
              virtual = 0 std::vector<uint32_t> read();
              virtual const bool isComposite();
               virtual  uint64_t timestamp();
               virtual  int sourceId();
  
  };
         

Description

CScaler is an abstract base class for objects that read out scaler hardware. Concrete classes have to be made by deriving from this class.

Public member functions

virtual void initialize();

Called by the framework to initialize the scaler hardware prior to starting data taking.

virtual void clear();

Called by the framework to clear scaler hardware both prior to starting data taking and after reading a scaler event.

virtual void disable();

Called by the framework to disable the scaler hardware prior to terminating data taking.

virtual = 0 std::vector<uint32_t> read();

Called by the framework to read this module's scaler(s). The return value is a std::vector consisting of the data read from the hardware

virtual const bool isComposite();

Should return false if the scaler is not a container for other scalers (see e.g. CScalerBank(3sbsReadout)). Should return false if the scaler is a container and implements the interface defined by CScalerBank(3sbsReadout).

virtual uint64_t timestamp();

Override this if you want to associate a real timestamp with scaler events. In that case, the read method should read and save the timestamp which is returned by this method. You are guaranteed that all scaler read methods will be called before any timestamp methods.

If you don't override this method, the default is to return NULL_TIMESTAMP. See CScalerBank for a description of how the final timestamp will be chosen from amongst those returned by the various Scaler objects.

virtual int sourceId();

Override this if you want a source Id other than the one specified on the command line (via --sourceid) to be put in the scaler event's body header. If you do not override this, -1 is returned, requesting that the --sourceid value be used.

See CScalerBank for a description of how the source id value is computed when there are more than one CScaler objects in use.

SEE ALSO

CScalerBank(3sbsReadout)