#include "tdc3377board.hh"

CRT::CrtTdc3377Board


class description - source file - inheritance tree (.ps)

class CRT::CrtTdc3377Board : public CRT::CrtTdcAdcBoard

Inheritance Chart:
TObject
<-
TNamed
<-
CRT::CrtBoard
<-
CRT::CrtCamacBoard
<-
CRT::CrtTdcAdcBoard
<-
CRT::CrtTdc3377Board

    public:
CRT::CrtTdc3377Board CrtTdc3377Board() CRT::CrtTdc3377Board CrtTdc3377Board(const Char_t* inName, Int_t inIdent, CRT::CrtCamacCrate* inCrate) CRT::CrtTdc3377Board CrtTdc3377Board(const CRT::CrtTdc3377Board&) void ~CrtTdc3377Board() virtual Int_t Assign(Int_t inChannel, Int_t inValue) const static TClass* Class() virtual Int_t Clear(Int_t inFlag, Int_t inChannel = 0) const virtual Int_t Disable(Int_t inFlag, Int_t inChannel = 0) const virtual Int_t Enable(Int_t inFlag, Int_t inChannel = 0) const virtual Int_t GetNumberOfChannels() const virtual Int_t HasData() const virtual Int_t Initialize() const virtual TClass* IsA() const CRT::CrtTdc3377Board& operator=(const CRT::CrtTdc3377Board&) virtual Int_t Prepare() const virtual Int_t Query(Int_t inChannel, Int_t* outValue) const virtual Int_t ReadModuleAllHitsAndClear(Int_t* outChannels) const virtual Int_t ReadModuleAndClear(Int_t* outChannels) const virtual Int_t ReadModuleAndClear(Int_t* outChannels, Int_t inLowerLimit, Int_t inUpperLimit) const virtual Int_t Send(Int_t inCommand) const virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual Int_t Test(Int_t inFlag, Int_t inChannel = 0) const

Data Members

    private:
Int_t fOk equals 1 if initialization succeeded Int_t fIdents[7] identifiers for camac crate with all subadresses public:
static const CRT::CrtTdc3377Board::Tdc3377Flags F_TDC3377_LAM static const CRT::CrtTdc3377Board::Tdc3377Flags F_TDC3377_BufferingInProgress static const CRT::CrtTdc3377Board::Tdc3377Flags F_TDC3377_BUSY static const CRT::CrtTdc3377Board::Tdc3377Flags F_TDC3377_ACQUISITION static const CRT::CrtTdc3377Board::Tdc3377Flags F_TDC3377_EVENT_RDY static const CRT::CrtTdc3377Board::Tdc3377Flags F_TDC3377_FIFO_TAG static const CRT::CrtTdc3377Board::Tdc3377Commands C_TDC3377_ClearModule static const CRT::CrtTdc3377Board::Tdc3377Commands C_TDC3377_TestModule

Class Description

 Cosmic Ray Telescope Data Aquisition Software

 generic driver for Camac module: LeCroy 3377 TDC

 This module features:
 - 32 channels, 16 bits each
 - read-out is sequentially, i.e. 32 times reading of "channel" 0
   gives the 32 values
 - has seven control/test registers (encoded here as channel 1 to 8)



CrtTdc3377Board() : CrtTdcAdcBoard()
 default constructor

CrtTdc3377Board(const Char_t *inName, Int_t inBoardNumber, CrtCamacCrate *inCrate) : CrtTdcAdcBoard(inName, inBoardNumber, inCrate)
 constructor
 inBoardNumber is the number of the Camac slot
 inCrate       is a pointer to the Camac crate object

~CrtTdc3377Board()
 destructor

Int_t Send(Int_t inCommand) const
 sends command to board
 available commands:
 CrtTdc3377Board::C_TDC3377_ClearModule
 CrtTdc3377Board::C_TDC3377_TestModule

Int_t Enable(Int_t inFlag, Int_t) const
 enables board features
 Available features:
 CrtTdc3377Board::F_TDC3377_LAM (Look-At-Me)
 CrtTdc3377Board::F_TDC3377_ACQUISITION

Int_t Disable(Int_t inFlag, Int_t) const
 disables board features
 Available features:
 CrtTdc3377Board::F_TDC3377_LAM (Look-At-Me)
 CrtTdc3377Board::F_TDC3377_ACQUISITION

Int_t Clear(Int_t inFlag, Int_t) const
 clears board features
 Available features:
 CrtTdc3377Board::F_TDC3377_LAM (Look-At-Me)

Int_t Test(Int_t inFlag, Int_t) const
 tests board features
 Available features:
 CrtTdc3377Board::F_TDC3377_LAM (Look-At-Me)
 CrtTdc3377Board::F_TDC3377_BufferingInProgress
 CrtTdc3377Board::F_TDC3377_BUSY
 CrtTdc3377Board::F_TDC3377_EVENT_RDY
 CrtTdc3377Board::F_TDC3377_FIFO_TAG

Int_t Query(Int_t inChannel, Int_t *outValue) const
 queries channels
 available channels:
 0: sequentially read data of all 32 channels
    return value encodes the value and the channel number
 1: control register 0
 2: control register 1
 3: control register 2
 4: control register 3
 5: control register 4
 6: control register 5
 7: CAMAC test register

Int_t Assign(Int_t inChannel, Int_t inValue) const
 assigns channels
 available channels:
 0: FIFO
 1: control register 0
 2: control register 1
 3: control register 2
 4: control register 3
 5: control register 4
 6: control register 5
 7: FIFO tag bit

Int_t Initialize() const
 initializes the board

Int_t Prepare() const
 prepares the board for data taking

Int_t HasData() const
 tests whether the module has data available

Int_t ReadModuleAndClear(Int_t *outChannels) const
 reads all channels and clears the data afterwards.
 returns only first reported hit in each channel.
 This is actually the one with the highest time value.

Int_t ReadModuleAndClear(Int_t *outChannels, Int_t inLowerLimit, Int_t inUpperLimit) const
 reads all channels and clears the data afterwards.
 returns at most one hit in each channel.
 In case there are no hits inside the limits, reports the earliest hit
 In case there are hits inside the limits, reports the earliest of the hits inside the limits

Int_t ReadModuleAllHitsAndClear(Int_t *outChannels) const
 reads all hits on all channels and clears the data afterwards.
 The array given has to have the size
 MAX_HITS * MAX_CHANNELS = 16 * 32 = 512,
 the data will be ordered: hit_in_channel * 32 + channel_no

Int_t GetNumberOfChannels() const



Inline Functions


                      TClass* Class()
                      TClass* IsA() const
                         void ShowMembers(TMemberInspector& insp, char* parent)
                         void Streamer(TBuffer& b)
                         void StreamerNVirtual(TBuffer& b)
         CRT::CrtTdc3377Board CrtTdc3377Board(const CRT::CrtTdc3377Board&)
        CRT::CrtTdc3377Board& operator=(const CRT::CrtTdc3377Board&)


Author: Thomas Hadig (Group EB SLAC Stanford CA USA)
Last update: $Date: 2003/08/27 19:51:12 $
Copyright Thomas Hadig, hadig@slac.stanford.edu


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.