class HMatchUUnpacker: public HldUnpack


 HMatchUUnpacker

 Unpacks the MatchingUnit data into its corresonding data categories.

 The following inline functions are defined:
 Bool_t isDebugMode(void)
   Returns the status of the global debugging flag.
 Int_t getSubEvtId(void) const
   Returns the sub event id that the unpacker feels responsible for.
 Int_t getRichEmptyCount()
   Return the RICH empty counter

 To set debugging modes:
 void setDebugMode(Bool_t dm)
   Set the global debug mode.
 void setRichDebugMode(Bool_t dm)
   Enable debugging messages from the RICH part.
 void setShowerDebugMode(Bool_t dm)
   Enable debugging messages from the SHOWER part.
 void setLoggingMode(Bool_t flog)
   Enable logging mode to text file


Function Members (Methods)

public:
HMatchUUnpacker(const HMatchUUnpacker&)
HMatchUUnpacker(Int_t id, Int_t units, Bool_t compression = kFALSE)
HMatchUUnpacker(Int_t unites = 0, Bool_t compression = kFALSE, Int_t flog = 0, TString vers = "aug04")
virtual~HMatchUUnpacker()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual Int_texecute()
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual Bool_tHldUnpack::finalize()
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
HldUnpack::HPPHldUnpack::getpSubEvt()
Int_tgetRichEmptyCount()
virtual Int_tgetSubEvtId() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual Bool_tinit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tisDebugMode()
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
HMatchUUnpacker&operator=(const HMatchUUnpacker&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual Bool_treinit()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidHldUnpack::setCategory(HCategory* aCat)
voidsetDebugMode(Bool_t dm)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetLoggingMode(Bool_t flog)
static voidTObject::SetObjectStat(Bool_t stat)
voidsetRichDebugMode(Bool_t dm)
voidsetShowerDebugMode(Bool_t dm)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
Bool_tcheckRichLSW(UInt_t d)
Bool_tcheckRichMSW(UInt_t d)
Int_tdecodeIpuRich(UInt_t* pData, Int_t maxLength)
Int_tdecodeIpuShower(UInt_t* pData, Int_t maxLength)
Int_tdecodeIpuTof(UInt_t* pData, Int_t maxLength)
Int_tdecodeMUData(UInt_t* pData, Int_t maxLength)
Int_tdecodeRich(UInt_t* pData, Int_t maxLength)
Int_tdecodeShower(UInt_t* pData, Int_t maxLength)
Int_tdecodeShowerOld(UInt_t* pData, Int_t maxLength)
Int_tdecodeTof(UInt_t* pData, Int_t maxLength)
UInt_t*expansion(UInt_t* d, Int_t longueur)
Int_tfillTofData(HMatchUTof* mtof, UInt_t dataWord)
voidgetExpanded(Int_t d)
Int_tgetLeptonDetBit(Int_t d)
Int_tgetLeptonFlag(Int_t d)
Int_tgetLeptonMetaNr(Int_t d)
Float_tgetLeptonMom(Int_t d)
Int_tgetLeptonRichNr(Int_t d)
Int_tgetLeptonSector(Int_t d)
Int_tgetRichColumPattern(UInt_t d)
Int_tgetRichFifoNb(UInt_t d)
Int_tgetRichRow(UInt_t d)
UInt_tgetRichSecHeader(UInt_t d)
Int_tgetRichSegId(UInt_t d)
Int_tgetRichSize(UInt_t d)
Int_tgetScaler(UInt_t d)
Int_tgetShowBuildID(Int_t d)
Int_tgetShowColumn(Int_t d)
Int_tgetShowFrameCount(Int_t d)
Int_tgetShowRowPattern(Int_t d)
Int_tgetTofId(UInt_t d)
Int_tgetTofTriggerCode(UInt_t d)
Int_tgetTofTriggerTag(UInt_t d)
Int_tgetTofVeto(UInt_t d)
Bool_tisShowTrailer(UInt_t d)
Int_tmapAngles()
voidsetDefaults()
voidsetLogging()
HShowerSubIdPar*showerParamConfigure(HShowerUnpackParam* param, Int_t subEvtId)
Int_tstoreShowElements(Int_t buildID, Int_t rowPattern, Int_t col)

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Bool_tfDebugModeglobal debug mode
Bool_tfRichDebugModerich spec. debug mode
Bool_tfShowerDebugModeshower spec. debug mode
Int_tkSubEvtIdSubevent Id for which the unpacker is responsible
HCategory*HldUnpack::pRawCat! pointer to category where data will be stored;
HldSubEvt*HldUnpack::pSubEvt! pointer to subevent where data are read from
Int_trichccount for rich empty content
private:
Int_tMUDataFormatVersion of MU data format
UInt_tMU_sec_pattern_RichPattern mask for RICH MU dat
UInt_tMU_sec_pattern_ShowerPattern mask for SHOWER MU data
UInt_tMU_sec_pattern_TofPattern mask for TOF MU data
UInt_tRichSecPatternMaskPattern mask for RICH data
TArrayC*Rich_Sector_MapMapping of RICH IPU address to sector number
Int_tRow_OffsetRow offset in RICH
UInt_tShowerSecPatternMaskPattern mask for SHOWER data
Int_tTofIpuNrwhich tof ipu
UInt_tTofSecPatternMaskPattern mask for TOF data
UInt_t*dataPointer to dataword
HRecEvent*eventPointer to event structure
Int_tevtEvent counter
EXPANDexpandExpanded dataword (defined as: struct {Int_t dataw1; Int_t dataw2;})
HCategory*fCatDiLeptonsOutput category for dileptons
HCategory*fCatLeptonsOutput category for leptons
HCategory*fCatRichOutput category for Rich
HCategory*fCatScalersOutput category for scalers
HCategory*fCatShowerOutput category for Shower
HCategory*fCatTofOutput category for Tof
HLocationfLocAddress to be used when writing to category
Int_tfLoglog flag
FILE*fMU_logfilelog file
HShowerUnpackParam*fShowerParamshower unpacker parameters
HTriggerParRichMap*fTrigParRichrich mapping parameters
HTriggerParShowerMap*fTrigParShoshower mapping parameters
HTriggerSetup*fTrigSetuptrigger setup container
Int_tfUnitConversion flag: 0-DEG 1-RAD
Int_thitpersec[6]Number of hits per sector in RICH
Bool_tisCompressedflag for the new format
Bool_tisInitializedInitalization flag
TIterator*iterLeptonIterator over lepton category.
Int_tmapNrRich[6][100]Number of mapped TOF hits per sector
Int_tmapNrShower[6][100]Number of mapped SHOWER hits per sector
Int_tmapNrTof[6][100]Number of matched RICH hits per sector
HMUData*muDataMatching unit data
HMUScalers*muScalersMatching unit scaler data
Int_tnShower[6]Number of hits per sector in SHOWER
Int_tnTof[6]Number of hits per sector in TOF
UInt_tsec_countCounter for sectors
Int_tsec_oldOld sector number
Int_tshowerLepNumber of SHOWER leptons
Int_tshowerNrNumber of SHOWER datawords
Int_ttofLepNumber of TOF leptons
Int_ttofNrNumber of TOF datawords
Int_ttriggerCodeTrigger code of actual event
Int_tversionswitch different beamtimes

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HMatchUUnpacker(Int_t id, Int_t units, Bool_t compression = kFALSE)
 Default constructor

 Input parameters:
  Int_t id
    Sub event ID of the matching unit
  Int_t units
    Conversion flag: 0-DEG, 1-RAD
  Bool_t compression
    flag for the new format
  Bool_t flog
    Flag for logfile: 0 no logfile(default), 1 create logfile

 Output parameters:
    none

 Return code:
    none
HMatchUUnpacker(Int_t unites = 0, Bool_t compression = kFALSE, Int_t flog = 0, TString vers = "aug04")
 Depreciated old constructor, use HMatchUUnpacker(Int_t id, Int_t units,
    Bool_t compression, Bool_t flog)  instead.

 Input Parameters:
  Int_t units
    Conversion flag: 0-DEG(default) 1-RAD
  Bool_t compression
    flag for the new format
  Bool_t flog
    Flag for logfile: 0 no logfile(default), 1 create logfile
  TString version
    version=old   -> before 309oct02
    version=nov02 -> 311oct02 configuration
    version=sep03 -> sep03 configuration
    version=aug04 (default) -> aug04 configuration and later
 parameters:
    none

 Return code:
    none
~HMatchUUnpacker(void)
 Destructor

 Input parameters:
   none

 Output parameters:
   none

 Return code:
   none
void setDefaults(void)
 Set default values for the internal variables.

 Input parameters:
    none

 Output parameters:
    none

 Return code:
    none
void setLogging(void)
 logging  mechanism
Bool_t reinit(void)
 	if(!isInitialized)
 		{
 			Rich_Sector_Map = fTrigSetup->getMap();
 			Row_Offset = fTrigSetup->getRowOffset();
      MUDataFormat = fTrigSetup ->getMuDataFormat();
      isInitialized = kTRUE;
 		}
Bool_t init(void)
 Initalization function for unpacker. Called from Hades::init().
 If one parameter container is not found, a message is printed to identify the missing container.

 Input parameters:
    none

 Output parameters:
    none

 Return code:
  kTRUE if all containers and needed categories are found, otherwise kFALSE.
Int_t decodeMUData(UInt_t* pData, Int_t maxLength)
 Decode the data from the matching unit.

 Input Parameters:
  UInt_t *pData
    Pointer to datastructure containing MU part of the MU sub event
  Int_t maxLength
    Length of the datablock

 Output parameters:
  none

 Return code:
  number of bytes read from datablock
Int_t decodeRich(UInt_t* pData, Int_t maxLength)
 Decode the RICH part of the MU subevent

 Input parameters:
  UInt_t *pData
    Pointer to the datastructure containing the RICH part of the MU subevent
  Int_t maxLength
    Size of the datablock in bytes

 Output parameters:
   none

 Return code:
  Number of bytes read from datablock
Int_t decodeIpuRich(UInt_t* pData, Int_t maxLength)
 Decode the RICH IPU part of the MU subevent.
 The trigger code inthe first dataword is skipped!

 Input parameters:
  UInt_t *pData
    Pointer to the datastructure containing the RICH IPU part of the MU subevent
  Int_t maxLength
    Number of bytes in the datastructure

 Output parameters:
  none

 Return code:
  number of bytes in the Rich subEvent or
  -1 for error.
Int_t decodeTof(UInt_t* pData, Int_t maxLength)
 Decode the TOF part of the MU subevent

 Input parameters:
  UInt_t *pData
    Pointer to datastructure containing TOF part of the MU subevent
  Int_t maxLength
    Number of bytes in the datablock

 Output parameters:
  none

 Return code:
  Number of bytes read from datastructure, -1 n case of error.
Int_t decodeIpuTof(UInt_t* pData, Int_t maxLength)
 Decode the TOF IPU part of the MU subevent

 Input parameters:
  UInt_t *pDat
    Pointer to datastructure with TOF IPU data
  Int_t maxLength
    Number of bytes in data block

 Output parameters:
  none

 Return code:
  Number of bytes in Tof subevent. -1 n case of error
Int_t fillTofData(HMatchUTof* mtof, UInt_t dataWord)
 Fill data of TOF MU information in datacontainer.

 Input parameters:
  HMatchUTof *mtof
    Pointer to TOF datacontainer with MU information

  UInt_t dataword
    Dataword to be stored in mtof

 Output parameters:
  none

 Return code:
  Number of sector decoded from dataword.
Int_t storeShowElements(Int_t buildID, Int_t rowPattern, Int_t col)
 Store the Shower information.

 Input parameters:
   Int_t buildId
     Number of the IPC module
   Int_t rowPattern
     pattern which encodes the y information of several hits
   Int_t col
     Number of the column the row pattern codes.

 Output parameters:
   none

 Return code:
  Returns always 0!
HShowerSubIdPar* showerParamConfigure(HShowerUnpackParam* param, Int_t subEvtId)
 Get pointer to SHOWER SubId parameter container.

 Input parameters:
   HShowerUnpackParams *param
     Pointer to SHOWER unpacker parameters

   Int_t subEvtId
     Sub event ID for which to get the parameters

 Output parameters:
   none

 Return code:
    Pointer to the SHOWER subId parameters.
    Return NULL if parameters are not found.
Int_t decodeShower(UInt_t* pData, Int_t maxLength)
 Decode SHOWER part of MU data.

 Input parameters:
   UInt_t *pData
     Pointer to the SHOWER part of the MU data.

   Int_t maxLength
     Length of the datablock

 Output parameters:
   none

 Return code:
    Number of Bytes read from datablock, -1 in case of error.
Int_t decodeIpuShower(UInt_t* pData, Int_t maxLength)
 Decode SHOWER IPU part of the MU data.

 Input Parameters:
   UInt_t *pData
     Pointer to the SHOWER IPU data.

   Int_t maxLength
     Length of datablock

 Output Parameters:
   none

 Return code:
   Number of bytes read from datablock.
Int_t decodeShowerOld(UInt_t* pData, Int_t maxLength)
Return the number of bytes in the Shower subEvent or
-1 for error. pData is a pointer to de subevent's data
Each 16bit word goes to a 32bit word.
Int_t mapAngles(void)
 Map Angles of Leptons.

 Input parameters:
   none

 Output parameters:
   none

 Return code:
   Return o always!
Int_t execute(void)
 Execute function of the unpacker. Called for each event.

 Input Parameters:
   none

 Output parameters:
  none

 Return code:
   0 in case of success, -1 else.
UInt_t* expansion(UInt_t* d, Int_t longueur)
 Expand dataword.

 Input parameters:
   UInt_t *d
     Dataword to be expanded
   Int_t longueur
     Length to which the dataword will be expanded

 Output parameters:
   none

 Return code:
   Pointer to expanded dataword. Has to be deleted by calling function!
Int_t getRichSize(UInt_t d)
rich decoding
{return ((d >> 8) & 0x00ff);}
Bool_t checkRichMSW(UInt_t d)
{return ((d & 0x0F00) == 0)?kTRUE:kFALSE; }
Bool_t checkRichLSW(UInt_t d)
{return ((d & 0xE380) == 0)?kTRUE:kFALSE; }
Int_t getRichFifoNb(UInt_t d)
{return (d & 0xF00) >> 8; }
Int_t getRichColumPattern(UInt_t d)
{ return (d & 0x00FF); }
Int_t getRichSegId(UInt_t d)
{ return ((d >> 10 ) & 0x7); }
Int_t getRichRow(UInt_t d)
{ return (d & 0x7F); }
UInt_t getRichSecHeader(UInt_t d)
{ return ( (d>>10) & 0x7); }
Int_t getShowColumn(Int_t d)
 Shower decoding
{ return (( d >> 16 ) & 0x1F); }
Int_t getShowRowPattern(Int_t d)
{ return ( d & 0xFFFF); }
Int_t getShowBuildID(Int_t d)
{return ( (d >> 16) & 0xfff ) ; }
Bool_t isShowTrailer(UInt_t d)
{ return ( d ==0x0000A511)?kTRUE:kFALSE;}
Int_t getShowFrameCount(Int_t d)
{ return ( d & 0x1f ); }
Int_t getTofTriggerTag(UInt_t d)
 tof decoding
{ return (d & 0x7f); }
Int_t getTofTriggerCode(UInt_t d)
{return ( (d>>8) & 0xf); }
Int_t getTofId(UInt_t d)
{ return ( (d>>13) & 0x1); }
Int_t getTofVeto(UInt_t d)
{return ( (d>>12) & 0x1); }
Int_t getLeptonSector(Int_t d)
 Lepton decoding
{ return (d & 0xF);}
Int_t getLeptonRichNr(Int_t d)
{ return ( (d >> 4) & 0x7f ); }
Int_t getLeptonMetaNr(Int_t d)
{ return ( (d >> 12) & 0xff ); }
Int_t getLeptonDetBit(Int_t d)
{ return ( ( d >> 20) & 0x1 ); }
Int_t getLeptonFlag(Int_t d)
{ return ( ( d >> 21) & 0x1 ); }
Float_t getLeptonMom(Int_t d)
{ return ( (d >> 24) & 0xff);}
Int_t getScaler(UInt_t d)
Scalers decoding
{ return (d & 0xffffffff);}
void getExpanded(Int_t d)
 new IPU format
HMatchUUnpacker(Int_t unites = 0, Bool_t compression = kFALSE, Int_t flog = 0, TString vers = "aug04")
Bool_t isDebugMode(void)
{ return fDebugMode; }
Int_t getSubEvtId(void)
{return kSubEvtId;}
void setDebugMode(Bool_t dm)
{ fDebugMode = dm; }
void setRichDebugMode(Bool_t dm)
{ fRichDebugMode = dm; }
void setShowerDebugMode(Bool_t dm)
{ fShowerDebugMode = dm; }
void setLoggingMode(Bool_t flog)
{ fLog = flog; }
Int_t getRichEmptyCount()
{ return richc+1; }

Last change: Sat May 22 12:59:26 2010
Last generated: 2010-05-22 12:59

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.