#include "htrbbaseunpacker.h" |
HTrbBaseUnpacker
class description - source file - inheritance tree (.pdf)
protected:
HTrbBaseUnpacker(UInt_t id = 0)
virtual ~HTrbBaseUnpacker()
public:
HTrbBaseUnpacker(const HTrbBaseUnpacker&)
static TClass* Class()
void clearAll()
virtual Int_t correctOverflow()
virtual Int_t correctRefTimeCh31()
virtual Int_t decode()
virtual Int_t execute()
Bool_t fill_lead(Int_t ch, Int_t d)
Bool_t fill_trail(Int_t ch, Int_t d)
virtual Int_t getSubEvtId() const
virtual Bool_t init()
virtual TClass* IsA() const
HTrbBaseUnpacker& operator=(const HTrbBaseUnpacker&)
void PrintTdcError(UInt_t e)
void setDebugFlag(Int_t db)
void setDebugFlag1(Int_t db)
void setQuietMode()
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
protected:
HTrbLookup* lookup
UInt_t subEvtId
Int_t trbLeadingTime[128][10]
Int_t trbTrailingTime[128][10]
Int_t trbADC[128][10]
Int_t trbLeadingMult[128]
Int_t trbTrailingMult[128]
Int_t debugFlag allows to print subevent information
Int_t debugFlag1 used for special purpuses
Bool_t quietMode ! do not print errors!
HTrbBaseUnpacker
Base class for TRB data unpacking.
Any detector connected to TRB board should use this class to decode the subevent.
Decode() method fills the arrays with information about:
channel number (0-127),
measured time,
measured ADC.
The goal is to provide data which can be directly used by subsystems
(tof, start, hodo, wall) in order to directly fill raw categories.
The most important information is stored in:
trbLeadingTime[ TrbChanNb ][ hitNb ],
trbADC[ TrbChanNb ][ hitNb ].
trbLeadingMult[ TrbChanNb ]
In case of Leading and Trailing mode the leading time and trailing time
are delivered in separate data words. In this mode it can happen that
a trailing time is missing. In such case trailing time is set to -1000000
and ADC is set to -1.
The information in Arrays is ordered in following way:
1. Leading Time has to exist -> fill trbLeadingTime[ TrbChanNb ][ hitNb ];
2. If Trailing time is found we try to marge it with last Leading Time.
If Trailing time does not exist trbLeadingTime[ TrbChanNb ][ hitNb ] = -1000000
If more than 1 Trailing time exist for one Leading Time the last one is used.
3. ADC is calculated only if Trailing time exist.
Max. number of hits per channel is currently set to 10.
In addition this class should perform basic data corrections and error handling.
(in preparation)
HTrbBaseUnpacker(UInt_t id)
constructor
void clearAll(void)
Int_t correctRefTimeCh31(void)
Reference signal from channel 31
ist used for TDC correction
this is not the final version of
hardware design
call this function only if channel 31 contains
reference time
Int_t correctOverflow(void)
TDC overflow has to be corrected
This is not necessary if the substract window bit is set in the TDCs
Bool_t fill_lead(Int_t ch,Int_t time)
Stores the given time in the next data element
and sets the multiplicity.
Return false if 10 hits are already stored.
Bool_t fill_trail(Int_t ch,Int_t time)
Calculates the time between trailing and LAST(!) leading hit.
No other check if its really the right one,
i am depending on the TDC to deliver the right order
Return kFALSE if no leading yet or more than 4 Hits
void PrintTdcError(UInt_t e)
Int_t decode(void)
Int_t decode(void)
Inline Functions
void ~HTrbBaseUnpacker()
Int_t getSubEvtId() const
Int_t execute()
Bool_t init()
void setQuietMode()
void setDebugFlag(Int_t db)
void setDebugFlag1(Int_t db)
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
HTrbBaseUnpacker HTrbBaseUnpacker(const HTrbBaseUnpacker&)
HTrbBaseUnpacker& operator=(const HTrbBaseUnpacker&)
Last update: Mon Feb 5 16:53:54 2007
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.