#ifndef ALIESDVZEROFRIEND_H
#define ALIESDVZEROFRIEND_H
#include <TObject.h>
class AliESDVZEROfriend: public TObject {
public :
AliESDVZEROfriend();
virtual ~AliESDVZEROfriend();
AliESDVZEROfriend(const AliESDVZEROfriend& vzerofriend);
AliESDVZEROfriend& operator = (const AliESDVZEROfriend& vzerofriend);
void Reset();
ULong64_t GetBBScalers(Int_t channel) const
{ return fBBScalers[channel]; }
ULong64_t GetBGScalers(Int_t channel) const
{ return fBGScalers[channel]; }
UInt_t GetTriggerScalers(Int_t num_scaler) const
{ return fScalers[num_scaler]; }
UInt_t GetBunchNumbersMB(Int_t num_bunch) const
{ return fBunchNumbers[num_bunch]; }
UShort_t GetChargeMB(Int_t channel, Int_t num_bunch) const
{ return fChargeMB[channel][num_bunch]; }
Bool_t GetIntMBFlag(Int_t channel, Int_t num_bunch) const
{ return fIsIntMB[channel][num_bunch]; }
Bool_t GetBBMBFlag(Int_t channel, Int_t num_bunch) const
{ return fIsBBMB[channel][num_bunch]; }
Bool_t GetBGMBFlag(Int_t channel, Int_t num_bunch) const
{ return fIsBGMB[channel][num_bunch]; }
Float_t GetADC(Int_t channel) const
{ return fADC[channel][kNEvOfInt/2]; }
Float_t GetPedestal(Int_t channel, Int_t event) const
{ return fADC[channel][event]; }
Bool_t GetIntegratorFlag(Int_t channel, Int_t event) const
{ return fIsInt[channel][event]; }
Bool_t GetBBFlag(Int_t channel, Int_t event) const
{ return fIsBB[channel][event]; }
Bool_t GetBGFlag(Int_t channel, Int_t event) const
{ return fIsBG[channel][event]; }
Float_t GetTime(Int_t channel) const
{ return fTime[channel]; }
Float_t GetWidth(Int_t channel) const
{ return fWidth[channel]; }
void SetBBScalers(Int_t channel, ULong64_t scalers)
{ fBBScalers[channel] = scalers; }
void SetBGScalers(Int_t channel, ULong64_t scalers)
{ fBGScalers[channel] = scalers; }
void SetTriggerScalers(Int_t num_scaler, UInt_t scaler)
{ fScalers[num_scaler] = scaler; }
void SetBunchNumbersMB(Int_t num_bunch, UInt_t bunch)
{ fBunchNumbers[num_bunch] = bunch; }
void SetChargeMB(Int_t channel,Int_t num_bunch, UShort_t charge)
{ fChargeMB[channel][num_bunch] = charge; }
void SetIntMBFlag(Int_t channel,Int_t num_bunch, Bool_t flag)
{ fIsIntMB[channel][num_bunch] = flag; }
void SetBBMBFlag(Int_t channel,Int_t num_bunch, Bool_t flag)
{ fIsBBMB[channel][num_bunch] = flag; }
void SetBGMBFlag(Int_t channel,Int_t num_bunch, Bool_t flag)
{ fIsBGMB[channel][num_bunch] = flag; }
void SetPedestal(Int_t channel, Int_t event, Float_t adc)
{ fADC[channel][event] = adc; }
void SetIntegratorFlag(Int_t channel, Int_t event, Bool_t flag)
{ fIsInt[channel][event] = flag; }
void SetBBFlag(Int_t channel, Int_t event, Bool_t flag)
{ fIsBB[channel][event] = flag; }
void SetBGFlag(Int_t channel, Int_t event, Bool_t flag)
{ fIsBG[channel][event] = flag; }
void SetTime(Int_t channel, Float_t time)
{ fTime[channel] = time; }
void SetWidth(Int_t channel, Float_t width)
{ fWidth[channel] = width; }
UShort_t GetTriggerInputs() const
{ return fTrigger; }
UShort_t GetTriggerInputsMask() const
{ return fTriggerMask; }
void SetTriggerInputs(UShort_t inputs)
{ fTrigger = inputs; }
void SetTriggerInputsMask(UShort_t mask)
{ fTriggerMask = mask; }
enum EESDVZEROfriendParams {
kNChannels = 64,
kNEvOfInt = 21,
kNScalers = 16,
kNBunches = 10
};
private:
ULong64_t fBBScalers[kNChannels];
ULong64_t fBGScalers[kNChannels];
UInt_t fScalers[kNScalers];
UInt_t fBunchNumbers[kNBunches];
UShort_t fChargeMB[kNChannels][kNBunches];
Bool_t fIsIntMB[kNChannels][kNBunches];
Bool_t fIsBBMB[kNChannels][kNBunches];
Bool_t fIsBGMB[kNChannels][kNBunches];
Float_t fADC[kNChannels][kNEvOfInt];
Bool_t fIsInt[kNChannels][kNEvOfInt];
Bool_t fIsBB[kNChannels][kNEvOfInt];
Bool_t fIsBG[kNChannels][kNEvOfInt];
Float_t fTime[kNChannels];
Float_t fWidth[kNChannels];
UShort_t fTrigger;
UShort_t fTriggerMask;
ClassDef(AliESDVZEROfriend, 2)
};
#endif