#ifndef ALIVVZERO_H
#define ALIVVZERO_H
#include "TObject.h"
#include "TMath.h"
class AliVVZERO : public TObject
{
public:
AliVVZERO() { }
AliVVZERO(const AliVVZERO& source);
AliVVZERO &operator=(const AliVVZERO& source);
virtual ~AliVVZERO() { }
enum {
kCorrectedLeadingTime = BIT(14),
kTriggerBitsFilled = BIT(15),
kDecisionFilled = BIT(16),
kOnlineBitsFilled = BIT(17),
kCorrectedForSaturation = BIT(18),
kRobustMeanTime = BIT(19),
kTriggerChargeBitsFilled = BIT(20)
};
enum Decision { kV0Invalid = -1, kV0Empty = 0, kV0BB, kV0BG, kV0Fake };
enum TriggerBits {
kBBAandBBC = 0,
kBBAorBBC = 1,
kBGAandBBC = 2,
kBGA = 3,
kBGCandBBA = 4,
kBGC = 5,
kCTA1andCTC1 = 6,
kCTA1orCTC1 = 7,
kCTA2andCTC2 = 8,
kCTA2orCTC2 = 9,
kMTAandMTC = 10,
kMTAorMTC = 11,
kBBA = 12,
kBBC = 13,
kBGAorBGC = 14,
kBGAandBBCorBGCandBBA = 15
};
virtual Short_t GetNbPMV0A() const = 0;
virtual Short_t GetNbPMV0C() const = 0;
virtual Float_t GetMTotV0A() const = 0;
virtual Float_t GetMTotV0C() const = 0;
virtual Float_t GetMRingV0A(Int_t ring) const = 0;
virtual Float_t GetMRingV0C(Int_t ring) const = 0;
virtual Float_t GetMultiplicity(Int_t i) const = 0;
virtual Float_t GetMultiplicityV0A(Int_t i) const = 0;
virtual Float_t GetMultiplicityV0C(Int_t i) const = 0;
virtual Bool_t BBTriggerV0A(Int_t i) const = 0;
virtual Bool_t BGTriggerV0A(Int_t i) const = 0;
virtual Bool_t BBTriggerV0C(Int_t i) const = 0;
virtual Bool_t BGTriggerV0C(Int_t i) const = 0;
virtual Bool_t GetBBFlag(Int_t i) const = 0;
virtual Bool_t GetBGFlag(Int_t i) const = 0;
virtual Float_t GetV0ATime() const = 0;
virtual Float_t GetV0CTime() const = 0;
virtual Decision GetV0ADecision() const = 0;
virtual Decision GetV0CDecision() const = 0;
virtual UShort_t GetTriggerChargeA() const = 0;
virtual UShort_t GetTriggerChargeC() const = 0;
virtual UShort_t GetTriggerBits() const = 0;
static Float_t GetVZEROAvgPhi(Int_t channel)
{ return TMath::Pi() / 8 + TMath::Pi() / 4 * (channel%8); }
static Float_t GetVZEROEtaMin(Int_t channel);
static Float_t GetVZEROEtaMax(Int_t channel);
protected:
Bool_t OutOfRange(Int_t i, const char *s, Int_t upper) const;
ClassDef(AliVVZERO,2)
};
#endif