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
26 /// Internal status bits
28 kIsCathode0 = BIT(14),
29 kIsCathode1 = BIT(15),
30 kIsBendingPlane = BIT(16),
31 kIsNonBendingPlane = BIT(17),
32 kIsFrontView = BIT(18),
33 kIsBackView = BIT(19),
34 kIsCathodeAndPlaneMutuallyExclusive = BIT(20),
36 kIsSinglePainter = BIT(22),
37 kIsCathodeAndPlaneDisabled = BIT(23)
41 virtual ~AliMUONAttPainter();
44 virtual const char* GetName() const { return Name(); }
48 TString CathodeName() const;
50 TString ViewPointName() const;
52 TString PlaneName() const;
54 /// Whether cathode & plane are disabled
55 Bool_t IsCathodeAndPlaneDisabled() const { return TestBit(kIsCathodeAndPlaneDisabled); }
57 /// Whether we are representing bending plane
58 Bool_t IsBendingPlane() const { return TestBit(kIsBendingPlane); }
60 /// Whether we are representing cathode 0
61 Bool_t IsCathode0() const { return TestBit(kIsCathode0); }
63 /// Whether we are representing cathode 1
64 Bool_t IsCathode1() const { return TestBit(kIsCathode1); }
66 /// Whether we can select both cathode and plane
67 Bool_t IsCathodeAndPlaneMutuallyExclusive() const { return TestBit(kIsCathodeAndPlaneMutuallyExclusive); }
69 /// Whether we are defined by cathode
70 Bool_t IsCathodeDefined() const { return IsCathode0() || IsCathode1(); }
72 /// Whether we are representing non bending plane
73 Bool_t IsNonBendingPlane() const { return TestBit(kIsNonBendingPlane); }
75 /// Whether we are defined by plane
76 Bool_t IsPlaneDefined() const { return IsBendingPlane() || IsNonBendingPlane(); }
78 /// Whether we are valid
79 Bool_t IsValid() const { return TestBit(kIsValid); }
83 /// Set our cathode states
84 void SetCathode(Bool_t cath0, Bool_t cath1) { SetBit(kIsCathode0,cath0); SetBit(kIsCathode1,cath1); }
86 /// Set our plane states
87 void SetPlane(Bool_t bending, Bool_t nonBending) { SetBit(kIsBendingPlane,bending); SetBit(kIsNonBendingPlane,nonBending); }
90 void SetSingle(Bool_t value) { SetBit(kIsSinglePainter,value); }
92 /// Whether the painter is to be represented from front (as seen from IP)
93 Bool_t IsFrontView() const { return TestBit(kIsFrontView); }
95 /// Whether the painter is to be represented from back (as seen from IP)
96 Bool_t IsBackView() const { return TestBit(kIsBackView); }
99 void SetViewPoint(Bool_t front, Bool_t back) { SetBit(kIsFrontView,front); SetBit(kIsBackView,back); }
101 /// Set mutually exclusive flag
102 void SetCathodeAndPlaneMutuallyExclusive(Bool_t value) { SetBit(kIsCathodeAndPlaneMutuallyExclusive,value); }
105 void SetValid(Bool_t value) { SetBit(kIsValid,value); }
107 /// Whether we represent attributes of a single painter (if false, means it's a painter group)
108 Bool_t IsSinglePainter() const { return TestBit(kIsSinglePainter); }
110 /// Set cathode & plane disable flag
111 void SetCathodeAndPlaneDisabled(Bool_t value) { SetBit(kIsCathodeAndPlaneDisabled,value); }
113 void Print(Option_t* opt="") const;
115 ClassDef(AliMUONAttPainter,1) // Basic attributes of painters