#ifndef ALIAODCALOTRIGGER_H
#define ALIAODCALOTRIGGER_H
#include "AliVCaloTrigger.h"
class TArrayI;
class AliAODCaloTrigger : public AliVCaloTrigger
{
public:
AliAODCaloTrigger();
AliAODCaloTrigger(const char* name, const char* title);
AliAODCaloTrigger(const AliAODCaloTrigger& ctrig);
virtual ~AliAODCaloTrigger();
AliAODCaloTrigger& operator=(const AliAODCaloTrigger& ctrig);
Bool_t IsEmpty() {return (fNEntries == 0);}
virtual void Reset() {fCurrent = -1;}
void Allocate(Int_t size);
void DeAllocate( );
Bool_t Add(Int_t col, Int_t row, Float_t amp, Float_t time, Int_t trgtimes[], Int_t ntrgtimes, Int_t trgts, Int_t trgbits);
void SetL1Threshold(Int_t i, Int_t thr) {fL1Threshold[i] = thr;}
void SetL1V0(const Int_t* v) {for (int i = 0; i < 2; i++) fL1V0[i] = v[i];}
void SetL1FrameMask(Int_t m) {fL1FrameMask = m;}
void GetPosition( Int_t& col, Int_t& row ) const;
void GetAmplitude( Float_t& amp ) const;
void GetTime( Float_t& time ) const;
void GetTriggerBits( Int_t& bits ) const;
void GetNL0Times( Int_t& ntimes ) const;
void GetL0Times( Int_t times[] ) const;
Int_t GetEntries( ) const {return fNEntries;}
void GetL1TimeSum( Int_t& timesum ) const;
Int_t GetL1Threshold( Int_t i ) const {return fL1Threshold[i];}
Int_t GetL1V0( Int_t i ) const {return fL1V0[i];}
Int_t GetL1FrameMask( ) const {return fL1FrameMask;}
virtual Bool_t Next();
virtual void Copy(TObject& obj) const;
virtual void Print(const Option_t* opt = "") const;
private:
Int_t fNEntries;
Int_t fCurrent;
Int_t* fColumn;
Int_t* fRow;
Float_t* fAmplitude;
Float_t* fTime;
Int_t* fNL0Times;
TArrayI* fL0Times;
Int_t* fL1TimeSum;
Int_t* fTriggerBits;
Int_t fL1Threshold[4];
Int_t fL1V0[2];
Int_t fL1FrameMask;
ClassDef(AliAODCaloTrigger, 3)
};
#endif