Public Member Functions | Private Member Functions | Private Attributes | Friends

TGo4MbsSubEvent Class Reference

#include <TGo4MbsSubEvent.h>

Inheritance diagram for TGo4MbsSubEvent:
TGo4EventElement

List of all members.

Public Member Functions

 TGo4MbsSubEvent ()
 TGo4MbsSubEvent (Int_t datasize)
virtual ~TGo4MbsSubEvent ()
virtual Int_t Fill ()
virtual void Clear (Option_t *t="")
virtual void PrintEvent ()
void PrintMbsSubevent (Bool_t longw=kTRUE, Bool_t hexw=kTRUE, Bool_t dataw=kTRUE)
void Set (Int_t dlen, Short_t type=10, Short_t subtype=1, Short_t procid=0, Char_t subcrate=0, Char_t ctrl=0)
void SetDlen (Int_t dlen)
Int_t GetDlen () const
Int_t GetByteLen () const
Int_t GetIntLen () const
void SetType (Short_t type)
Short_t GetType () const
void SetSubtype (Short_t subtype)
Short_t GetSubtype () const
void SetProcid (Short_t procid)
Short_t GetProcid () const
void SetSubcrate (Char_t subcrate)
Char_t GetSubcrate () const
void SetControl (Char_t control)
Char_t GetControl () const
void SetFullId (Int_t fullid)
Int_t GetFullId () const
Int_t GetAllocatedLength () const
Int_t * GetDataField ()
Int_t Data (Int_t i) const
Bool_t IsFilled () const

Private Member Functions

void ReAllocate (Int_t newsize)

Private Attributes

Bool_t fbIsFilled
Bool_t fbIsDataOwner
TGo4SubEventHeader10 fxHeader
Int_t fiAllocLen
Int_t * fiData

Friends

class TGo4MbsSource
class TGo4MbsEvent

Detailed Description

Subevent class for gsi mbs data.

Definition at line 24 of file TGo4MbsSubEvent.h.


Constructor & Destructor Documentation

TGo4MbsSubEvent::TGo4MbsSubEvent (  ) 

Definition at line 21 of file TGo4MbsSubEvent.cxx.

References GO4TRACE.

TGo4MbsSubEvent::TGo4MbsSubEvent ( Int_t  datasize  ) 

Definition at line 33 of file TGo4MbsSubEvent.cxx.

References fbIsDataOwner, fiAllocLen, fiData, and GO4TRACE.

TGo4MbsSubEvent::~TGo4MbsSubEvent (  )  [virtual]

Member Function Documentation

void TGo4MbsSubEvent::Clear ( Option_t *  t = ""  )  [virtual]
Int_t TGo4MbsSubEvent::Data ( Int_t  i  )  const [inline]

Returns the value at position i in the fiData field. If Index i is out of DLen range, zero is returned.

Definition at line 90 of file TGo4MbsSubEvent.h.

References fiData, and GetAllocatedLength().

Referenced by main().

virtual Int_t TGo4MbsSubEvent::Fill (  )  [inline, virtual]

Method called by the event owner (analysis step) to fill the event element from the set event source. Event source can be the source of the analysis step (if this is a raw event) or the event processor (if this is a reduced event). Fill method has to specify how the event source writes to the members of this event structure. Either by calling methods of the source (like myevent.a=fxEventSource->GetA(); etc ), or by direct copy to the member (like fxEventSource->FillMemoryAt(&myevent.a);)

Reimplemented from TGo4EventElement.

Definition at line 38 of file TGo4MbsSubEvent.h.

Int_t TGo4MbsSubEvent::GetAllocatedLength (  )  const [inline]

Return length of allocated memory for data field.

Definition at line 82 of file TGo4MbsSubEvent.h.

References fiAllocLen.

Referenced by Data(), and ~TGo4MbsSubEvent().

Int_t TGo4MbsSubEvent::GetByteLen (  )  const [inline]

Return raw data length in bytes

Definition at line 58 of file TGo4MbsSubEvent.h.

References GetDlen().

Referenced by GetIntLen().

Char_t TGo4MbsSubEvent::GetControl (  )  const [inline]
Int_t* TGo4MbsSubEvent::GetDataField (  )  [inline]

Direct access to the fiData field pointer. User has to care about allocated range as specified in fiAllocLen.

Definition at line 86 of file TGo4MbsSubEvent.h.

References fiData.

Referenced by TXXXUnpackProc::BuildEvent(), TXXXProc::BuildEvent(), TGo4SimpleEventProcessor::BuildSimpleEvent(), PrintMbsSubevent(), TMeshUnpackProc::UnpackBranch1(), TMeshUnpackProc::UnpackBranch2(), and TMeshUnpackProc::UnpackBranch3().

Int_t TGo4MbsSubEvent::GetFullId (  )  const [inline]

Definition at line 79 of file TGo4MbsSubEvent.h.

References TGo4SubEventHeader10::fiFullid, and fxHeader.

Int_t TGo4MbsSubEvent::GetIntLen (  )  const [inline]

Return raw data length in int (4-bytes)

Definition at line 61 of file TGo4MbsSubEvent.h.

References GetByteLen().

Referenced by TXXXUnpackProc::BuildEvent(), TXXXProc::BuildEvent(), and PrintMbsSubevent().

Short_t TGo4MbsSubEvent::GetProcid (  )  const [inline]
Short_t TGo4MbsSubEvent::GetSubtype (  )  const [inline]
Short_t TGo4MbsSubEvent::GetType (  )  const [inline]
Bool_t TGo4MbsSubEvent::IsFilled (  )  const [inline]

true if this subevent was filled since the last Clear()

Definition at line 94 of file TGo4MbsSubEvent.h.

References fbIsFilled.

Referenced by TGo4MbsEvent::NextSubEvent().

void TGo4MbsSubEvent::PrintEvent (  )  [virtual]

Print event with default arguments

Reimplemented from TGo4EventElement.

Definition at line 66 of file TGo4MbsSubEvent.cxx.

References GO4TRACE, and PrintMbsSubevent().

void TGo4MbsSubEvent::PrintMbsSubevent ( Bool_t  longw = kTRUE,
Bool_t  hexw = kTRUE,
Bool_t  dataw = kTRUE 
)

Print MBS subevent

Parameters:
longw - data in long format (4 bytes)
hexw - print in hex format
dataw - print raw data

Definition at line 95 of file TGo4MbsSubEvent.cxx.

References GetControl(), GetDataField(), GetDlen(), GetIntLen(), GetProcid(), GetSubcrate(), GetSubtype(), GetType(), and l.

Referenced by PrintEvent(), and TGo4MbsEvent::PrintMbsEvent().

void TGo4MbsSubEvent::ReAllocate ( Int_t  newsize  )  [private]

Allocate the data field with newsize. Free the previously allocated field before, and set new fiAllocLen value.

Definition at line 171 of file TGo4MbsSubEvent.cxx.

References Clear(), TGo4Log::Debug(), fbIsDataOwner, fiAllocLen, fiData, and GO4TRACE.

Referenced by TGo4MbsEvent::AddSubEvent().

void TGo4MbsSubEvent::Set ( Int_t  dlen,
Short_t  type = 10,
Short_t  subtype = 1,
Short_t  procid = 0,
Char_t  subcrate = 0,
Char_t  ctrl = 0 
)

Definition at line 131 of file TGo4MbsSubEvent.cxx.

References SetDlen(), SetSubtype(), and SetType().

Referenced by Clear().

void TGo4MbsSubEvent::SetControl ( Char_t  control  )  [inline]
void TGo4MbsSubEvent::SetDlen ( Int_t  dlen  )  [inline]
void TGo4MbsSubEvent::SetFullId ( Int_t  fullid  )  [inline]

Definition at line 78 of file TGo4MbsSubEvent.h.

References TGo4SubEventHeader10::fiFullid, and fxHeader.

void TGo4MbsSubEvent::SetProcid ( Short_t  procid  )  [inline]
void TGo4MbsSubEvent::SetSubcrate ( Char_t  subcrate  )  [inline]
void TGo4MbsSubEvent::SetSubtype ( Short_t  subtype  )  [inline]
void TGo4MbsSubEvent::SetType ( Short_t  type  )  [inline]

Friends And Related Function Documentation

friend class TGo4MbsEvent [friend]

Definition at line 27 of file TGo4MbsSubEvent.h.

friend class TGo4MbsSource [friend]

Definition at line 26 of file TGo4MbsSubEvent.h.


Member Data Documentation

True if subevent owns data field. note that this should not be streamed to root file!

Definition at line 108 of file TGo4MbsSubEvent.h.

Referenced by TGo4MbsEvent::AddSubEvent(), Clear(), ReAllocate(), TGo4MbsSubEvent(), and ~TGo4MbsSubEvent().

Bool_t TGo4MbsSubEvent::fbIsFilled [private]

True if this subevent has already been filled in this event cycle. For subsequent subevents of identical header ids, prevents overwriting.

Definition at line 104 of file TGo4MbsSubEvent.h.

Referenced by TGo4MbsEvent::AddSubEvent(), Clear(), and IsFilled().

Int_t TGo4MbsSubEvent::fiAllocLen [private]

Length of the allocated data field. Is _not_ equal to the subevent data length which can be smaller. On filling the subevent, it is tested if the source data fits into the already allocated field; if the source data is larger, we will re-allocate the field with the larger size before filling it. If the source data is smaller, we leave the data field as is and use only the first DLen words.

Definition at line 121 of file TGo4MbsSubEvent.h.

Referenced by TGo4MbsEvent::AddSubEvent(), Clear(), GetAllocatedLength(), ReAllocate(), and TGo4MbsSubEvent().

Int_t* TGo4MbsSubEvent::fiData [private]

Pointer to external integer field containing the subevent data. Length of this field may be changed dynamically depending on the maximum length of the incoming subevent of this type.

Definition at line 127 of file TGo4MbsSubEvent.h.

Referenced by TGo4MbsEvent::AddSubEvent(), Clear(), Data(), GetDataField(), ReAllocate(), TGo4MbsSubEvent(), and ~TGo4MbsSubEvent().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines