1 #ifndef ALIMUONATTPAINTER_H
2 #define ALIMUONATTPAINTER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONAttPainter
11 /// \brief Basic attributes shared by all painters
13 // Author Laurent Aphecetche, Subatech
22 class AliMUONAttPainter : public TObject
27 kIsCathode0 = BIT(14),
28 kIsCathode1 = BIT(15),
29 kIsBendingPlane = BIT(16),
30 kIsNonBendingPlane = BIT(17),
31 kIsFrontView = BIT(18),
32 kIsBackView = BIT(19),
33 kIsCathodeAndPlaneMutuallyExclusive = BIT(20),
35 kIsSinglePainter = BIT(22),
36 kIsCathodeAndPlaneDisabled = BIT(23)
40 virtual ~AliMUONAttPainter();
43 virtual const char* GetName() const { return Name(); }
47 TString CathodeName() const;
49 TString ViewPointName() const;
51 TString PlaneName() const;
53 /// Whether cathode & plane are disabled
54 Bool_t IsCathodeAndPlaneDisabled() const { return TestBit(kIsCathodeAndPlaneDisabled); }
56 /// Whether we are representing bending plane
57 Bool_t IsBendingPlane() const { return TestBit(kIsBendingPlane); }
59 /// Whether we are representing cathode 0
60 Bool_t IsCathode0() const { return TestBit(kIsCathode0); }
62 /// Whether we are representing cathode 1
63 Bool_t IsCathode1() const { return TestBit(kIsCathode1); }
65 /// Whether we can select both cathode and plane
66 Bool_t IsCathodeAndPlaneMutuallyExclusive() const { return TestBit(kIsCathodeAndPlaneMutuallyExclusive); }
68 /// Whether we are defined by cathode
69 Bool_t IsCathodeDefined() const { return IsCathode0() || IsCathode1(); }
71 /// Whether we are representing non bending plane
72 Bool_t IsNonBendingPlane() const { return TestBit(kIsNonBendingPlane); }
74 /// Whether we are defined by plane
75 Bool_t IsPlaneDefined() const { return IsBendingPlane() || IsNonBendingPlane(); }
77 /// Whether we are valid
78 Bool_t IsValid() const { return TestBit(kIsValid); }
80 /// Set our cathode states
81 void SetCathode(Bool_t cath0, Bool_t cath1) { SetBit(kIsCathode0,cath0); SetBit(kIsCathode1,cath1); }
83 /// Set our plane states
84 void SetPlane(Bool_t bending, Bool_t nonBending) { SetBit(kIsBendingPlane,bending); SetBit(kIsNonBendingPlane,nonBending); }
87 void SetSingle(Bool_t value) { SetBit(kIsSinglePainter,value); }
89 /// Whether the painter is to be represented from front (as seen from IP)
90 Bool_t IsFrontView() const { return TestBit(kIsFrontView); }
92 /// Whether the painter is to be represented from back (as seen from IP)
93 Bool_t IsBackView() const { return TestBit(kIsBackView); }
96 void SetViewPoint(Bool_t front, Bool_t back) { SetBit(kIsFrontView,front); SetBit(kIsBackView,back); }
98 /// Set mutually exclusive flag
99 void SetCathodeAndPlaneMutuallyExclusive(Bool_t value) { SetBit(kIsCathodeAndPlaneMutuallyExclusive,value); }
102 void SetValid(Bool_t value) { SetBit(kIsValid,value); }
104 /// Whether we represent attributes of a single painter (if false, means it's a painter group)
105 Bool_t IsSinglePainter() const { return TestBit(kIsSinglePainter); }
107 /// Set cathode & plane disable flag
108 void SetCathodeAndPlaneDisabled(Bool_t value) { SetBit(kIsCathodeAndPlaneDisabled,value); }
110 void Print(Option_t* opt="") const;
112 ClassDef(AliMUONAttPainter,1) // Basic attributes of painters