Previous commit had the bad side-effect of changing the behaviour of Raw QA to comput...
[u/mrichter/AliRoot.git] / MUON / AliMUONAttPainter.cxx
CommitLineData
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
41ClassImp(AliMUONAttPainter)
42///\endcond
43
44//_____________________________________________________________________________
45AliMUONAttPainter::AliMUONAttPainter()
46: TObject()
47{
48 /// ctor
49 SetSingle(kTRUE);
50 SetValid(kTRUE);
51 SetCathodeAndPlaneMutuallyExclusive(kFALSE);
52 SetCathodeAndPlaneDisabled(kFALSE);
53}
54
55//_____________________________________________________________________________
56AliMUONAttPainter::~AliMUONAttPainter()
57{
58 /// dtor
59}
60
61//_____________________________________________________________________________
62TString
63AliMUONAttPainter::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 }
77 if ( ViewPointName().Length() > 0 )
78 {
79 if ( name.Length() > 0 ) name += "-";
80 name += ViewPointName();
81 }
82
83 return name;
84}
85
86//_____________________________________________________________________________
87TString
88AliMUONAttPainter::CathodeName() const
89{
90 /// Return cathode name in short form
91
92 if ( IsCathode0() && IsCathode1() ) return "Both";
93 else if ( !IsCathode0() && !IsCathode1() ) return "";
94 else if ( IsCathode0() ) return "0";
95 else if ( IsCathode1() ) return "1";
96 return "";
97}
98
99//_____________________________________________________________________________
1ffbeb9d 100void
101AliMUONAttPainter::Invert()
102{
103 /// Invert our cathode/plane states
104
105 if ( IsCathodeDefined() )
106 {
107 Bool_t cath0(IsCathode0());
108 Bool_t cath1(IsCathode1());
109 SetCathode(!cath0,!cath1);
110 }
111
112 if ( IsPlaneDefined() )
113 {
114 Bool_t b(IsBendingPlane());
115 Bool_t nb(IsNonBendingPlane());
116
117 SetPlane(!b,!nb);
118 }
119}
120
121//_____________________________________________________________________________
0145e89a 122TString
123AliMUONAttPainter::PlaneName() const
124{
125 /// Return plane name in short form
126 if ( IsBendingPlane() && IsNonBendingPlane() ) return "Both";
127 else if ( !IsBendingPlane() && !IsNonBendingPlane() ) return "";
128 else if ( IsBendingPlane() ) return "B";
129 else if ( IsNonBendingPlane() ) return "NB";
130 return "";
131}
132
133//_____________________________________________________________________________
134TString
135AliMUONAttPainter::ViewPointName() const
136{
137 /// Return name of view point
138 if ( IsFrontView() ) return "Front";
139 if ( IsBackView() ) return "Back";
140 return "";
141}
142
143//_____________________________________________________________________________
144void
145AliMUONAttPainter::Print(Option_t*) const
146{
147 /// Printout
148
149 if ( !IsValid() ) cout << "INVALID : ";
150
151 if ( IsCathodeDefined() )
152 {
153 cout << "Cathode-defined " << CathodeName() << ". ";
154 }
155 if ( IsPlaneDefined() )
156 {
157 cout << "Plane-defined " << PlaneName() << ". ";
158 }
159 if ( IsCathodeAndPlaneMutuallyExclusive() )
160 {
161 cout << "Cathode and Plane mutually exclusive. ";
162 }
163 cout << ViewPointName() << endl;
164}