#include <CScaler.h>
classCScaler
{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();
};
CScaler
is an abstract base class for
objects that read out scaler hardware. Concrete classes have to be
made by deriving from this class.
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.