#include <TClonesArray.h>
#include "AliMUONRegHeader.h"
#include "AliMUONLocalStruct.h"
ClassImp(AliMUONRegHeader)
const Int_t AliMUONRegHeader::fgkHeaderLength = 5;
const Int_t AliMUONRegHeader::fgkScalerLength = 10;
const UInt_t AliMUONRegHeader::fgkEndOfReg = 0xBEEFFACE;
const UInt_t AliMUONRegHeader::fgkErrorWord = 0xCAFEDEAD;
AliMUONRegHeader::AliMUONRegHeader(TRootIOCtor* )
: TObject(),
fDarcWord(0),
fWord(0),
fMask(0),
fL0(0),
fClk(0),
fHold(0),
fLocalArray(0x0)
{
fInput[0] = fInput[1] = 0;
for (Int_t i = 0; i < 8; i++)
fScaler[i] = 0;
}
AliMUONRegHeader::AliMUONRegHeader()
: TObject(),
fDarcWord(0),
fWord(0),
fMask(0),
fL0(0),
fClk(0),
fHold(0),
fLocalArray(new TClonesArray("AliMUONLocalStruct",16))
{
fInput[0] = fInput[1] = 0;
for (Int_t i = 0; i < 8; i++)
fScaler[i] = 0;
}
AliMUONRegHeader::~AliMUONRegHeader()
{
fLocalArray->Delete();
delete fLocalArray;
}
AliMUONRegHeader::AliMUONRegHeader(const AliMUONRegHeader& event)
: TObject(event),
fDarcWord(event.fDarcWord),
fWord(event.fWord),
fMask(event.fMask),
fL0(event.fL0),
fClk(event.fClk),
fHold(event.fHold),
fLocalArray(new TClonesArray("AliMUONLocalStruct", 16))
{
fInput[0] = event.fInput[0];
fInput[1] = event.fInput[1];
for (Int_t i = 0; i < 8; i++)
fScaler[i] = event.fScaler[i];
for (Int_t index = 0; index < (event.fLocalArray)->GetEntriesFast(); index++) {
{new ((*fLocalArray)[fLocalArray->GetEntriesFast()])
AliMUONLocalStruct(*(AliMUONLocalStruct*)(event.fLocalArray)->At(index));}
}
}
AliMUONRegHeader& AliMUONRegHeader::operator=(const AliMUONRegHeader& event)
{
if (this == &event) return *this;
fDarcWord = event.fDarcWord;
fWord = event.fWord;
fClk = event.fClk;
fHold = event.fHold;
fL0 = event.fL0;
fMask = event.fMask;
fInput[0] = event.fInput[0];
fInput[1] = event.fInput[1];
for (Int_t i = 0; i < 8; i++)
fScaler[i] = event.fScaler[i];
fLocalArray = new TClonesArray("AliMUONLocalStruct", 16);
for (Int_t index = 0; index < (event.fLocalArray)->GetEntriesFast(); index++) {
{new ((*fLocalArray)[fLocalArray->GetEntriesFast()])
AliMUONLocalStruct(*(AliMUONLocalStruct*)(event.fLocalArray)->At(index));}
}
return *this;
}
void AliMUONRegHeader::SetScalersNumbers()
{
fClk = 10000;
fHold = 100;
for (Int_t i = 0; i < 8; i++)
fScaler[i] = i;
}
void AliMUONRegHeader::Clear(Option_t* )
{
fLocalArray->Clear("C");
}