]>
Commit | Line | Data |
---|---|---|
0145e89a | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | // $Id$ | |
17 | ||
18 | #include "AliMUONAttPainter.h" | |
19 | ||
20 | #include <Riostream.h> | |
21 | ||
22 | /// \class AliMUONAttPainter | |
23 | /// | |
24 | /// Basic attributes shared by all AliMUONVPainter objects | |
25 | /// | |
26 | /// One basic attribute is "what side" of the detector part we are representing. | |
27 | /// Take the example of one full chamber. We can represent it as seen from the | |
28 | /// interaction point, i.e. showing all the "cathode0" of all detection elements. | |
29 | /// | |
30 | /// Or we might want to see only the bending (or non bending) planes of all the | |
31 | /// detection elements. | |
32 | /// | |
33 | /// This is governed by the SetCathode() and SetPlane() methods (and retrieved | |
34 | /// using IsCathodeDefined() and IsPlaneDefined() methods. In the first case | |
35 | /// above IsCathodeDefined() would be true and IsPlaneDefined() would be false. | |
36 | /// The second case would be the contrary. | |
37 | /// | |
38 | /// \author Laurent Aphecetche, Subatech | |
39 | ||
40 | ///\cond CLASSIMP | |
41 | ClassImp(AliMUONAttPainter) | |
42 | ///\endcond | |
43 | ||
44 | //_____________________________________________________________________________ | |
45 | AliMUONAttPainter::AliMUONAttPainter() | |
46 | : TObject() | |
47 | { | |
48 | /// ctor | |
49 | SetSingle(kTRUE); | |
50 | SetValid(kTRUE); | |
51 | SetCathodeAndPlaneMutuallyExclusive(kFALSE); | |
52 | SetCathodeAndPlaneDisabled(kFALSE); | |
53 | } | |
54 | ||
55 | //_____________________________________________________________________________ | |
56 | AliMUONAttPainter::~AliMUONAttPainter() | |
57 | { | |
58 | /// dtor | |
59 | } | |
60 | ||
61 | //_____________________________________________________________________________ | |
62 | TString | |
63 | AliMUONAttPainter::Name() const | |
64 | { | |
65 | /// Build our name | |
66 | ||
67 | TString name; | |
68 | ||
69 | if ( !IsValid() ) return "Invalid"; | |
70 | ||
71 | if ( CathodeName().Length() > 0 ) name = CathodeName(); | |
72 | if ( PlaneName().Length() > 0 ) | |
73 | { | |
74 | if ( name.Length() > 0 ) name += "-"; | |
75 | name += PlaneName(); | |
76 | } | |
fcabdc0c | 77 | |
78 | // if ( ViewPointName().Length() > 0 ) | |
79 | // { | |
80 | // if ( name.Length() > 0 ) name += "-"; | |
81 | // name += ViewPointName(); | |
82 | // } | |
0145e89a | 83 | |
84 | return name; | |
85 | } | |
86 | ||
87 | //_____________________________________________________________________________ | |
88 | TString | |
89 | AliMUONAttPainter::CathodeName() const | |
90 | { | |
91 | /// Return cathode name in short form | |
92 | ||
93 | if ( IsCathode0() && IsCathode1() ) return "Both"; | |
94 | else if ( !IsCathode0() && !IsCathode1() ) return ""; | |
95 | else if ( IsCathode0() ) return "0"; | |
96 | else if ( IsCathode1() ) return "1"; | |
97 | return ""; | |
98 | } | |
99 | ||
1ffbeb9d | 100 | //_____________________________________________________________________________ |
101 | void | |
102 | AliMUONAttPainter::Invert() | |
103 | { | |
104 | /// Invert our cathode/plane states | |
105 | ||
106 | if ( IsCathodeDefined() ) | |
107 | { | |
108 | Bool_t cath0(IsCathode0()); | |
109 | Bool_t cath1(IsCathode1()); | |
110 | SetCathode(!cath0,!cath1); | |
111 | } | |
112 | ||
113 | if ( IsPlaneDefined() ) | |
114 | { | |
115 | Bool_t b(IsBendingPlane()); | |
116 | Bool_t nb(IsNonBendingPlane()); | |
117 | ||
118 | SetPlane(!b,!nb); | |
119 | } | |
120 | } | |
121 | ||
0145e89a | 122 | //_____________________________________________________________________________ |
123 | TString | |
124 | AliMUONAttPainter::PlaneName() const | |
125 | { | |
126 | /// Return plane name in short form | |
127 | if ( IsBendingPlane() && IsNonBendingPlane() ) return "Both"; | |
128 | else if ( !IsBendingPlane() && !IsNonBendingPlane() ) return ""; | |
fcabdc0c | 129 | else if ( IsBendingPlane() ) return "Bending"; |
130 | else if ( IsNonBendingPlane() ) return "NonBending"; | |
0145e89a | 131 | return ""; |
132 | } | |
133 | ||
134 | //_____________________________________________________________________________ | |
135 | TString | |
136 | AliMUONAttPainter::ViewPointName() const | |
137 | { | |
138 | /// Return name of view point | |
139 | if ( IsFrontView() ) return "Front"; | |
140 | if ( IsBackView() ) return "Back"; | |
141 | return ""; | |
142 | } | |
143 | ||
144 | //_____________________________________________________________________________ | |
145 | void | |
146 | AliMUONAttPainter::Print(Option_t*) const | |
147 | { | |
148 | /// Printout | |
149 | ||
150 | if ( !IsValid() ) cout << "INVALID : "; | |
151 | ||
152 | if ( IsCathodeDefined() ) | |
153 | { | |
154 | cout << "Cathode-defined " << CathodeName() << ". "; | |
155 | } | |
156 | if ( IsPlaneDefined() ) | |
157 | { | |
158 | cout << "Plane-defined " << PlaneName() << ". "; | |
159 | } | |
160 | if ( IsCathodeAndPlaneMutuallyExclusive() ) | |
161 | { | |
162 | cout << "Cathode and Plane mutually exclusive. "; | |
163 | } | |
164 | cout << ViewPointName() << endl; | |
165 | } |