#ifndef ALIESDTOFHIT_H
#define ALIESDTOFHIT_H
#include "AliVTOFHit.h"
class AliESDTOFHit : public AliVTOFHit
{
public:
AliESDTOFHit();
AliESDTOFHit(Double_t time,Double_t timeraw, Double_t tot, Int_t channel, Int_t label[3],Int_t latency,Int_t deltabc,Int_t cluster,Float_t z,Float_t r,Float_t phi);
AliESDTOFHit(AliESDTOFHit &source);
virtual ~AliESDTOFHit() {}
AliESDTOFHit & operator=(const AliESDTOFHit & source);
virtual Int_t GetESDTOFClusterIndex() const {return GetUniqueID();};
virtual void SetESDTOFClusterIndex(Int_t ind) {SetUniqueID(ind);};
virtual void SetTime(Double_t time) {fTime = time;}
virtual void SetTimeRaw(Double_t timeraw) {fTimeRaw=timeraw;};
virtual void SetTOT(Double_t tot) {fTOT = tot;};
virtual void SetL0L1Latency(Int_t latency) {fL0L1Latency = latency;};
virtual void SetDeltaBC(Int_t deltabc) {fDeltaBC = deltabc;};
virtual void SetTOFchannel(Int_t tofch) {fTOFchannel = tofch;};
virtual Double_t GetTimeRaw() const {return fTimeRaw;};
virtual Double_t GetTOT() const {return fTOT;};
virtual Int_t GetL0L1Latency() const {return fL0L1Latency;};
virtual Int_t GetDeltaBC() const {return fDeltaBC;};
virtual Int_t GetTOFchannel() const {return fTOFchannel;};
virtual Double_t GetTime() const {return fTime;}
virtual Int_t GetTOFLabel(Int_t i) const {return (i >=0 && i < 3) ? fTOFLabel[i] : -1;}
virtual void SetTOFLabel(const Int_t label[3]) {for(Int_t i=3;i--;) fTOFLabel[i] = label[i];}
Float_t GetR() const {return fR;};
Float_t GetZ() const {return fZ;};
Float_t GetPhi() const {return fPhi;};
void SetR(Float_t val) {fR=val;};
void SetZ(Float_t val) {fZ=val;};
void SetPhi(Float_t val) {fPhi=val;};
void Print(const Option_t *opt=0) const;
protected:
Double32_t fTimeRaw;
Double32_t fTime;
Double32_t fTOT;
Int_t fTOFLabel[3];
Int_t fL0L1Latency;
Int_t fDeltaBC;
Int_t fTOFchannel;
Float_t fZ;
Float_t fR;
Float_t fPhi;
ClassDef(AliESDTOFHit, 1)
};
#endif