#include "AliMUONDspHeader.h"
#include "AliMUONBusStruct.h"
#include <Riostream.h>
using std::cout;
using std::endl;
ClassImp(AliMUONDspHeader)
const Int_t AliMUONDspHeader::fgkHeaderLength = 10;
const UInt_t AliMUONDspHeader::fgkDefaultDataKey = 0xF000000F;
const UInt_t AliMUONDspHeader::fgkDefaultPaddingWord = 0xBEEFFACE;
AliMUONDspHeader::AliMUONDspHeader(TRootIOCtor* )
: TObject(),
fDataKey(0),
fTotalLength(0),
fLength(0),
fDspId(0),
fBlkL1ATrigger(0),
fMiniEventId(0),
fL1ATrigger(0),
fL1RTrigger(0),
fPaddingWord(0),
fErrorWord(0),
fBusPatchArray(0x0)
{
}
AliMUONDspHeader::AliMUONDspHeader()
: TObject(),
fDataKey(0),
fTotalLength(0),
fLength(0),
fDspId(0),
fBlkL1ATrigger(0),
fMiniEventId(0),
fL1ATrigger(0),
fL1RTrigger(0),
fPaddingWord(0),
fErrorWord(0),
fBusPatchArray(new TClonesArray("AliMUONBusStruct",5))
{
}
AliMUONDspHeader::~AliMUONDspHeader()
{
fBusPatchArray->Delete();
delete fBusPatchArray;
}
AliMUONDspHeader::AliMUONDspHeader(const AliMUONDspHeader& event)
: TObject(event),
fDataKey(event.fDataKey),
fTotalLength(event.fTotalLength),
fLength(event.fLength),
fDspId(event.fDspId),
fBlkL1ATrigger(event.fBlkL1ATrigger),
fMiniEventId(event.fMiniEventId),
fL1ATrigger(event.fL1ATrigger),
fL1RTrigger(event.fL1RTrigger),
fPaddingWord(event.fPaddingWord),
fErrorWord(event.fErrorWord),
fBusPatchArray(new TClonesArray("AliMUONBusStruct", 5))
{
for (Int_t index = 0; index < (event.fBusPatchArray)->GetEntriesFast(); index++) {
{new ((*fBusPatchArray)[fBusPatchArray->GetEntriesFast()])
AliMUONBusStruct(*(AliMUONBusStruct*)(event.fBusPatchArray)->At(index));}
}
}
AliMUONDspHeader& AliMUONDspHeader::operator=(const AliMUONDspHeader& event)
{
if (this == &event) return *this;
fDataKey = event.fDataKey;
fTotalLength = event.fTotalLength;
fLength = event.fLength;
fDspId = event.fDspId;
fBlkL1ATrigger = event.fBlkL1ATrigger;
fMiniEventId = event.fMiniEventId;
fL1ATrigger = event.fL1ATrigger;
fL1RTrigger = event.fL1RTrigger;
fPaddingWord = event.fPaddingWord;
fErrorWord = event.fErrorWord;
fBusPatchArray = new TClonesArray("AliMUONBusStruct", 5);
for (Int_t index = 0; index < (event.fBusPatchArray)->GetEntriesFast(); index++) {
{new ((*fBusPatchArray)[fBusPatchArray->GetEntriesFast()])
AliMUONBusStruct(*(AliMUONBusStruct*)(event.fBusPatchArray)->At(index));}
}
return *this;
}
void AliMUONDspHeader::AddBusPatch(const AliMUONBusStruct& busPatch)
{
TClonesArray &eventArray = *fBusPatchArray;
new(eventArray[eventArray.GetEntriesFast()]) AliMUONBusStruct(busPatch);
}
void AliMUONDspHeader::Clear(Option_t* )
{
fBusPatchArray->Clear("C");
}
void AliMUONDspHeader::Print(Option_t* ) const
{
cout << "FRT info" << endl;
cout << "DataKey: " << fDataKey << endl;
cout << "TotalLength: " << fTotalLength << endl;
cout << "Length : " << fLength << endl;
cout << "DspId: " << fDspId << endl;
cout << "BlkL1ATrigger: " << fBlkL1ATrigger << endl;
cout << "MiniEventId: " << fMiniEventId << endl;
cout << "L1ATrigger: " << fL1ATrigger << endl;
cout << "L1RTrigger: " << fL1RTrigger << endl;
cout << "PaddingWord: " << fPaddingWord << endl;
cout << "ErrorWord: " << fErrorWord << endl;
}