#include "AliLog.h"
#include "AliTOFGeometry.h"
#include "AliTOFrawData.h"
ClassImp(AliTOFrawData)
AliTOFrawData::AliTOFrawData() :
TObject(),
fACQflag(-1),
fPSbit(-1),
fTRM(-1),
fTRMchain(-1),
fTDC(-1),
fTDCchannel(-1),
fLeading(-1),
fTrailing(-1),
fToT(-1),
fTime(-1),
fError(-1),
fDeltaBC(-1),
fL0L1Latency(-1)
{
}
AliTOFrawData::AliTOFrawData(Int_t a, Int_t b, Int_t c, Int_t d, Int_t e,
Int_t f, Int_t g, Int_t h, Int_t l) :
TObject(),
fACQflag(h),
fPSbit(g),
fTRM(a),
fTRMchain(b),
fTDC(c),
fTDCchannel(d),
fLeading(-1),
fTrailing(-1),
fToT(f),
fTime(e),
fError(l),
fDeltaBC(0),
fL0L1Latency(0)
{
}
AliTOFrawData::AliTOFrawData(Int_t a, Int_t b, Int_t c, Int_t d, Int_t e,
Int_t f, Int_t ee, Int_t ff, Int_t g, Int_t h, Int_t l, Int_t deltaBC, Int_t l0l1) :
TObject(),
fACQflag(h),
fPSbit(g),
fTRM(a),
fTRMchain(b),
fTDC(c),
fTDCchannel(d),
fLeading(ee),
fTrailing(ff),
fToT(f),
fTime(e),
fError(l),
fDeltaBC(deltaBC),
fL0L1Latency(l0l1)
{
if (fTime==-1) fTime = fLeading;
}
AliTOFrawData::AliTOFrawData(const AliTOFrawData& r) :
TObject(),
fACQflag(-1),
fPSbit(-1),
fTRM(-1),
fTRMchain(-1),
fTDC(-1),
fTDCchannel(-1),
fLeading(-1),
fTrailing(-1),
fToT(-1),
fTime(-1),
fError(-1),
fDeltaBC(-1),
fL0L1Latency(-1)
{
fACQflag = r.fACQflag;
fPSbit = r.fPSbit;
fTRM = r.fTRM;
fTRMchain = r.fTRMchain;
fTDC = r.fTDC;
fTDCchannel = r.fTDCchannel;
fLeading = r.fLeading;
fTrailing = r.fTrailing;
fToT = r.fToT;
fTime = r.fTime;
fError = r.fError;
fDeltaBC = r.fDeltaBC;
fL0L1Latency = r.fL0L1Latency;
}
AliTOFrawData& AliTOFrawData::operator=(const AliTOFrawData& r)
{
if (this == &r)
return *this;
TObject::operator=(r);
fACQflag = r.fACQflag;
fPSbit = r.fPSbit;
fTRM = r.fTRM;
fTRMchain = r.fTRMchain;
fTDC = r.fTDC;
fTDCchannel = r.fTDCchannel;
fLeading = r.fLeading;
fTrailing = r.fTrailing;
fToT = r.fToT;
fTime = r.fTime;
fError = r.fError;
fDeltaBC = r.fDeltaBC;
fL0L1Latency= r.fL0L1Latency;
return *this;
}
void AliTOFrawData::Update(Int_t tof, Int_t tot, Int_t leading, Int_t trailing, Int_t psBit, Int_t acq, Int_t errorFlag)
{
AliDebug(2,Form(" %d %d %d %d %d %d",tof, tot, leading, psBit, acq, errorFlag));
if (fLeading!=-1 && fToT==-1 && trailing!=-1) {
fTrailing = trailing;
fTime = fLeading;
fToT = Int_t((trailing - fLeading)*AliTOFGeometry::TdcBinWidth()/AliTOFGeometry::ToTBinWidth());
}
}
Int_t AliTOFrawData::GetTOT() const
{
Int_t dummyToT = 0;
if (fLeading!=-1 && fToT==-1) dummyToT = 0;
else dummyToT = fToT;
return dummyToT;
}