#ifndef ALIMUONATTPAINTER_H
#define ALIMUONATTPAINTER_H
#ifndef ROOT_TObject
# include "TObject.h"
#endif
#ifndef ROOT_TString
# include "TString.h"
#endif
class AliMUONAttPainter : public TObject
{
public:
enum EBits {
kIsCathode0 = BIT(14),
kIsCathode1 = BIT(15),
kIsBendingPlane = BIT(16),
kIsNonBendingPlane = BIT(17),
kIsFrontView = BIT(18),
kIsBackView = BIT(19),
kIsCathodeAndPlaneMutuallyExclusive = BIT(20),
kIsValid = BIT(21),
kIsSinglePainter = BIT(22),
kIsCathodeAndPlaneDisabled = BIT(23)
};
AliMUONAttPainter();
virtual ~AliMUONAttPainter();
virtual const char* GetName() const { return Name(); }
TString Name() const;
TString CathodeName() const;
TString ViewPointName() const;
TString PlaneName() const;
Bool_t IsCathodeAndPlaneDisabled() const { return TestBit(kIsCathodeAndPlaneDisabled); }
Bool_t IsBendingPlane() const { return TestBit(kIsBendingPlane); }
Bool_t IsCathode0() const { return TestBit(kIsCathode0); }
Bool_t IsCathode1() const { return TestBit(kIsCathode1); }
Bool_t IsCathodeAndPlaneMutuallyExclusive() const { return TestBit(kIsCathodeAndPlaneMutuallyExclusive); }
Bool_t IsCathodeDefined() const { return IsCathode0() || IsCathode1(); }
Bool_t IsNonBendingPlane() const { return TestBit(kIsNonBendingPlane); }
Bool_t IsPlaneDefined() const { return IsBendingPlane() || IsNonBendingPlane(); }
Bool_t IsValid() const { return TestBit(kIsValid); }
void Invert();
void SetCathode(Bool_t cath0, Bool_t cath1) { SetBit(kIsCathode0,cath0); SetBit(kIsCathode1,cath1); }
void SetPlane(Bool_t bending, Bool_t nonBending) { SetBit(kIsBendingPlane,bending); SetBit(kIsNonBendingPlane,nonBending); }
void SetSingle(Bool_t value) { SetBit(kIsSinglePainter,value); }
Bool_t IsFrontView() const { return TestBit(kIsFrontView); }
Bool_t IsBackView() const { return TestBit(kIsBackView); }
void SetViewPoint(Bool_t front, Bool_t back) { SetBit(kIsFrontView,front); SetBit(kIsBackView,back); }
void SetCathodeAndPlaneMutuallyExclusive(Bool_t value) { SetBit(kIsCathodeAndPlaneMutuallyExclusive,value); }
void SetValid(Bool_t value) { SetBit(kIsValid,value); }
Bool_t IsSinglePainter() const { return TestBit(kIsSinglePainter); }
void SetCathodeAndPlaneDisabled(Bool_t value) { SetBit(kIsCathodeAndPlaneDisabled,value); }
void Print(Option_t* opt="") const;
ClassDef(AliMUONAttPainter,1)
};
#endif