#include "htrbbaseunpacker.h"

HTrbBaseUnpacker


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

class HTrbBaseUnpacker : public HldUnpack

Inheritance Chart:
TObject
<-
HldUnpack
<-
HTrbBaseUnpacker
<-
HHodoTrbUnpacker
HRpcTrbUnpacker
HWallTrbUnpacker

    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)

Data Members


    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!

Class Description

                     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.