#include <TGo4MbsSubEvent.h>
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 |
Subevent class for gsi mbs data.
Definition at line 24 of file TGo4MbsSubEvent.h.
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] |
Definition at line 50 of file TGo4MbsSubEvent.cxx.
References Clear(), TGo4Log::Debug(), fbIsDataOwner, fiData, GetAllocatedLength(), and GO4TRACE.
void TGo4MbsSubEvent::Clear | ( | Option_t * | t = "" |
) | [virtual] |
Reimplemented from TGo4EventElement.
Definition at line 146 of file TGo4MbsSubEvent.cxx.
References TGo4SubEventHeader10::Clear(), fbIsDataOwner, fbIsFilled, TGo4MbsSource::fguLONGBYSHORT, fiAllocLen, fiData, fxHeader, GetDlen(), GO4TRACE, and Set().
Referenced by TGo4MbsEvent::Clear(), ReAllocate(), and ~TGo4MbsSubEvent().
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] |
Definition at line 76 of file TGo4MbsSubEvent.h.
References TGo4SubEventHeader10::fcControl, and fxHeader.
Referenced by TGo4MbsEvent::AddSubEvent(), TGo4MbsEvent::GetSubEvent(), and PrintMbsSubevent().
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::GetDlen | ( | ) | const [inline] |
Definition at line 55 of file TGo4MbsSubEvent.h.
References TGo4GSIEventHeader::fiDlen, TGo4SubEventHeader10::fxGSIHeader, and fxHeader.
Referenced by TGo4SimpleEventProcessor::BuildSimpleEvent(), Clear(), GetByteLen(), 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] |
Definition at line 70 of file TGo4MbsSubEvent.h.
References TGo4SubEventHeader10::fsProcid, and fxHeader.
Referenced by TGo4MbsEvent::AddSubEvent(), TGo4SimpleEventProcessor::BuildSimpleEvent(), TGo4MbsEvent::GetSubEvent(), TGo4MbsEvent::PrintMbsEvent(), and PrintMbsSubevent().
Char_t TGo4MbsSubEvent::GetSubcrate | ( | ) | const [inline] |
Definition at line 73 of file TGo4MbsSubEvent.h.
References TGo4SubEventHeader10::fcSubcrate, and fxHeader.
Referenced by TGo4MbsEvent::AddSubEvent(), TXXXUnpackProc::BuildEvent(), TXXXProc::BuildEvent(), TGo4MbsEvent::GetSubEvent(), PrintMbsSubevent(), TMeshUnpackProc::UnpackBranch1(), TMeshUnpackProc::UnpackBranch2(), and TMeshUnpackProc::UnpackBranch3().
Short_t TGo4MbsSubEvent::GetSubtype | ( | ) | const [inline] |
Definition at line 67 of file TGo4MbsSubEvent.h.
References TGo4GSIEventHeader::fsSubtype, TGo4SubEventHeader10::fxGSIHeader, and fxHeader.
Referenced by PrintMbsSubevent().
Short_t TGo4MbsSubEvent::GetType | ( | ) | const [inline] |
Definition at line 64 of file TGo4MbsSubEvent.h.
References TGo4GSIEventHeader::fsType, TGo4SubEventHeader10::fxGSIHeader, and fxHeader.
Referenced by PrintMbsSubevent().
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
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] |
Definition at line 75 of file TGo4MbsSubEvent.h.
References TGo4SubEventHeader10::fcControl, and fxHeader.
Referenced by TGo4MbsEvent::SimpleInit(), and TGo4MbsEvent::TGo4MbsEvent().
void TGo4MbsSubEvent::SetDlen | ( | Int_t | dlen | ) | [inline] |
Definition at line 54 of file TGo4MbsSubEvent.h.
References TGo4GSIEventHeader::fiDlen, TGo4SubEventHeader10::fxGSIHeader, and fxHeader.
Referenced by TGo4MbsEvent::AddSubEvent(), and Set().
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] |
Definition at line 69 of file TGo4MbsSubEvent.h.
References TGo4SubEventHeader10::fsProcid, and fxHeader.
Referenced by TGo4MbsEvent::SimpleInit(), and TGo4MbsEvent::TGo4MbsEvent().
void TGo4MbsSubEvent::SetSubcrate | ( | Char_t | subcrate | ) | [inline] |
Definition at line 72 of file TGo4MbsSubEvent.h.
References TGo4SubEventHeader10::fcSubcrate, and fxHeader.
Referenced by TGo4MbsEvent::SimpleInit(), and TGo4MbsEvent::TGo4MbsEvent().
void TGo4MbsSubEvent::SetSubtype | ( | Short_t | subtype | ) | [inline] |
Definition at line 66 of file TGo4MbsSubEvent.h.
References TGo4GSIEventHeader::fsSubtype, TGo4SubEventHeader10::fxGSIHeader, and fxHeader.
Referenced by TGo4MbsSource::BuildMbsEvent(), and Set().
void TGo4MbsSubEvent::SetType | ( | Short_t | type | ) | [inline] |
Definition at line 63 of file TGo4MbsSubEvent.h.
References TGo4GSIEventHeader::fsType, TGo4SubEventHeader10::fxGSIHeader, and fxHeader.
Referenced by TGo4MbsSource::BuildMbsEvent(), and Set().
friend class TGo4MbsEvent [friend] |
Definition at line 27 of file TGo4MbsSubEvent.h.
friend class TGo4MbsSource [friend] |
Definition at line 26 of file TGo4MbsSubEvent.h.
Bool_t TGo4MbsSubEvent::fbIsDataOwner [private] |
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().
Definition at line 111 of file TGo4MbsSubEvent.h.
Referenced by TGo4MbsEvent::AddSubEvent(), Clear(), GetControl(), GetDlen(), GetFullId(), GetProcid(), GetSubcrate(), GetSubtype(), GetType(), SetControl(), SetDlen(), SetFullId(), SetProcid(), SetSubcrate(), SetSubtype(), and SetType().