ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/

// $Id$

#include "AliMUONAttPainter.h"

#include <Riostream.h>

/// \class AliMUONAttPainter
///
/// Basic attributes shared by all AliMUONVPainter objects
///
/// One basic attribute is "what side" of the detector part we are representing.
/// Take the example of one full chamber. We can represent it as seen from the
/// interaction point, i.e. showing all the "cathode0" of all detection elements.
///
/// Or we might want to see only the bending (or non bending) planes of all the
/// detection elements.
///
/// This is governed by the SetCathode() and SetPlane() methods (and retrieved
/// using IsCathodeDefined() and IsPlaneDefined() methods. In the first case
/// above IsCathodeDefined() would be true and IsPlaneDefined() would be false.
/// The second case would be the contrary.
///
/// \author Laurent Aphecetche, Subatech

using std::cout;
using std::endl;
///\cond CLASSIMP
ClassImp(AliMUONAttPainter)
///\endcond

//_____________________________________________________________________________
AliMUONAttPainter::AliMUONAttPainter()
: TObject()
{
  /// ctor
  SetSingle(kTRUE);
  SetValid(kTRUE);
  SetCathodeAndPlaneMutuallyExclusive(kFALSE);
  SetCathodeAndPlaneDisabled(kFALSE);
}

//_____________________________________________________________________________
AliMUONAttPainter::~AliMUONAttPainter()
{
  /// dtor
}

//_____________________________________________________________________________
TString
AliMUONAttPainter::Name() const
{
  /// Build our name
  
  TString name;
  
  if ( !IsValid() ) return "Invalid";
  
  if ( CathodeName().Length() > 0 ) name = CathodeName();
  if ( PlaneName().Length() > 0 ) 
  {
    if ( name.Length() > 0 ) name += "-";
    name += PlaneName();
  }

//  if ( ViewPointName().Length() > 0 ) 
//  {
//    if ( name.Length() > 0 ) name += "-";
//    name += ViewPointName();
//  }
  
  return name;
}

//_____________________________________________________________________________
TString
AliMUONAttPainter::CathodeName() const
{
  /// Return cathode name in short form

  if ( IsCathode0() && IsCathode1() ) return "Both";
  else if ( !IsCathode0() && !IsCathode1() ) return "";
  else if ( IsCathode0() ) return "0";
  else if ( IsCathode1() ) return "1";
  return "";
}

//_____________________________________________________________________________
void
AliMUONAttPainter::Invert()
{
  /// Invert our cathode/plane states
  
  if ( IsCathodeDefined() ) 
  {
    Bool_t cath0(IsCathode0());
    Bool_t cath1(IsCathode1());
    SetCathode(!cath0,!cath1);
  }

  if ( IsPlaneDefined() ) 
  {
    Bool_t b(IsBendingPlane());
    Bool_t nb(IsNonBendingPlane());
    
    SetPlane(!b,!nb);
  }
}

//_____________________________________________________________________________
TString
AliMUONAttPainter::PlaneName() const
{
  /// Return plane name in short form
  if ( IsBendingPlane() && IsNonBendingPlane() ) return "Both";
  else if ( !IsBendingPlane() && !IsNonBendingPlane() ) return "";
  else if ( IsBendingPlane() ) return "Bending";
  else if ( IsNonBendingPlane() ) return "NonBending";
  return "";
}

//_____________________________________________________________________________
TString
AliMUONAttPainter::ViewPointName() const
{
  /// Return name of view point
  if ( IsFrontView() ) return "Front";
  if ( IsBackView() ) return "Back";
  return "";
}

//_____________________________________________________________________________
void
AliMUONAttPainter::Print(Option_t*) const
{
  /// Printout
  
  if ( !IsValid() ) cout << "INVALID : ";
  
  if ( IsCathodeDefined() ) 
  {
    cout << "Cathode-defined " << CathodeName() << ". ";
  }
  if ( IsPlaneDefined() ) 
  {
    cout << "Plane-defined " << PlaneName() << ". ";
  }
  if ( IsCathodeAndPlaneMutuallyExclusive() )
  {
    cout << "Cathode and Plane mutually exclusive. ";
  }
  cout << ViewPointName() << endl;
}
 AliMUONAttPainter.cxx:1
 AliMUONAttPainter.cxx:2
 AliMUONAttPainter.cxx:3
 AliMUONAttPainter.cxx:4
 AliMUONAttPainter.cxx:5
 AliMUONAttPainter.cxx:6
 AliMUONAttPainter.cxx:7
 AliMUONAttPainter.cxx:8
 AliMUONAttPainter.cxx:9
 AliMUONAttPainter.cxx:10
 AliMUONAttPainter.cxx:11
 AliMUONAttPainter.cxx:12
 AliMUONAttPainter.cxx:13
 AliMUONAttPainter.cxx:14
 AliMUONAttPainter.cxx:15
 AliMUONAttPainter.cxx:16
 AliMUONAttPainter.cxx:17
 AliMUONAttPainter.cxx:18
 AliMUONAttPainter.cxx:19
 AliMUONAttPainter.cxx:20
 AliMUONAttPainter.cxx:21
 AliMUONAttPainter.cxx:22
 AliMUONAttPainter.cxx:23
 AliMUONAttPainter.cxx:24
 AliMUONAttPainter.cxx:25
 AliMUONAttPainter.cxx:26
 AliMUONAttPainter.cxx:27
 AliMUONAttPainter.cxx:28
 AliMUONAttPainter.cxx:29
 AliMUONAttPainter.cxx:30
 AliMUONAttPainter.cxx:31
 AliMUONAttPainter.cxx:32
 AliMUONAttPainter.cxx:33
 AliMUONAttPainter.cxx:34
 AliMUONAttPainter.cxx:35
 AliMUONAttPainter.cxx:36
 AliMUONAttPainter.cxx:37
 AliMUONAttPainter.cxx:38
 AliMUONAttPainter.cxx:39
 AliMUONAttPainter.cxx:40
 AliMUONAttPainter.cxx:41
 AliMUONAttPainter.cxx:42
 AliMUONAttPainter.cxx:43
 AliMUONAttPainter.cxx:44
 AliMUONAttPainter.cxx:45
 AliMUONAttPainter.cxx:46
 AliMUONAttPainter.cxx:47
 AliMUONAttPainter.cxx:48
 AliMUONAttPainter.cxx:49
 AliMUONAttPainter.cxx:50
 AliMUONAttPainter.cxx:51
 AliMUONAttPainter.cxx:52
 AliMUONAttPainter.cxx:53
 AliMUONAttPainter.cxx:54
 AliMUONAttPainter.cxx:55
 AliMUONAttPainter.cxx:56
 AliMUONAttPainter.cxx:57
 AliMUONAttPainter.cxx:58
 AliMUONAttPainter.cxx:59
 AliMUONAttPainter.cxx:60
 AliMUONAttPainter.cxx:61
 AliMUONAttPainter.cxx:62
 AliMUONAttPainter.cxx:63
 AliMUONAttPainter.cxx:64
 AliMUONAttPainter.cxx:65
 AliMUONAttPainter.cxx:66
 AliMUONAttPainter.cxx:67
 AliMUONAttPainter.cxx:68
 AliMUONAttPainter.cxx:69
 AliMUONAttPainter.cxx:70
 AliMUONAttPainter.cxx:71
 AliMUONAttPainter.cxx:72
 AliMUONAttPainter.cxx:73
 AliMUONAttPainter.cxx:74
 AliMUONAttPainter.cxx:75
 AliMUONAttPainter.cxx:76
 AliMUONAttPainter.cxx:77
 AliMUONAttPainter.cxx:78
 AliMUONAttPainter.cxx:79
 AliMUONAttPainter.cxx:80
 AliMUONAttPainter.cxx:81
 AliMUONAttPainter.cxx:82
 AliMUONAttPainter.cxx:83
 AliMUONAttPainter.cxx:84
 AliMUONAttPainter.cxx:85
 AliMUONAttPainter.cxx:86
 AliMUONAttPainter.cxx:87
 AliMUONAttPainter.cxx:88
 AliMUONAttPainter.cxx:89
 AliMUONAttPainter.cxx:90
 AliMUONAttPainter.cxx:91
 AliMUONAttPainter.cxx:92
 AliMUONAttPainter.cxx:93
 AliMUONAttPainter.cxx:94
 AliMUONAttPainter.cxx:95
 AliMUONAttPainter.cxx:96
 AliMUONAttPainter.cxx:97
 AliMUONAttPainter.cxx:98
 AliMUONAttPainter.cxx:99
 AliMUONAttPainter.cxx:100
 AliMUONAttPainter.cxx:101
 AliMUONAttPainter.cxx:102
 AliMUONAttPainter.cxx:103
 AliMUONAttPainter.cxx:104
 AliMUONAttPainter.cxx:105
 AliMUONAttPainter.cxx:106
 AliMUONAttPainter.cxx:107
 AliMUONAttPainter.cxx:108
 AliMUONAttPainter.cxx:109
 AliMUONAttPainter.cxx:110
 AliMUONAttPainter.cxx:111
 AliMUONAttPainter.cxx:112
 AliMUONAttPainter.cxx:113
 AliMUONAttPainter.cxx:114
 AliMUONAttPainter.cxx:115
 AliMUONAttPainter.cxx:116
 AliMUONAttPainter.cxx:117
 AliMUONAttPainter.cxx:118
 AliMUONAttPainter.cxx:119
 AliMUONAttPainter.cxx:120
 AliMUONAttPainter.cxx:121
 AliMUONAttPainter.cxx:122
 AliMUONAttPainter.cxx:123
 AliMUONAttPainter.cxx:124
 AliMUONAttPainter.cxx:125
 AliMUONAttPainter.cxx:126
 AliMUONAttPainter.cxx:127
 AliMUONAttPainter.cxx:128
 AliMUONAttPainter.cxx:129
 AliMUONAttPainter.cxx:130
 AliMUONAttPainter.cxx:131
 AliMUONAttPainter.cxx:132
 AliMUONAttPainter.cxx:133
 AliMUONAttPainter.cxx:134
 AliMUONAttPainter.cxx:135
 AliMUONAttPainter.cxx:136
 AliMUONAttPainter.cxx:137
 AliMUONAttPainter.cxx:138
 AliMUONAttPainter.cxx:139
 AliMUONAttPainter.cxx:140
 AliMUONAttPainter.cxx:141
 AliMUONAttPainter.cxx:142
 AliMUONAttPainter.cxx:143
 AliMUONAttPainter.cxx:144
 AliMUONAttPainter.cxx:145
 AliMUONAttPainter.cxx:146
 AliMUONAttPainter.cxx:147
 AliMUONAttPainter.cxx:148
 AliMUONAttPainter.cxx:149
 AliMUONAttPainter.cxx:150
 AliMUONAttPainter.cxx:151
 AliMUONAttPainter.cxx:152
 AliMUONAttPainter.cxx:153
 AliMUONAttPainter.cxx:154
 AliMUONAttPainter.cxx:155
 AliMUONAttPainter.cxx:156
 AliMUONAttPainter.cxx:157
 AliMUONAttPainter.cxx:158
 AliMUONAttPainter.cxx:159
 AliMUONAttPainter.cxx:160
 AliMUONAttPainter.cxx:161
 AliMUONAttPainter.cxx:162
 AliMUONAttPainter.cxx:163
 AliMUONAttPainter.cxx:164
 AliMUONAttPainter.cxx:165
 AliMUONAttPainter.cxx:166
 AliMUONAttPainter.cxx:167