Adding MUONChamberMaterialBudget.C:
[u/mrichter/AliRoot.git] / MUON / AliMUONPainterMatrix.h
CommitLineData
0145e89a 1#ifndef ALIMUONPAINTERMATRIX_H
2#define ALIMUONPAINTERMATRIX_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5* See cxx source for full Copyright notice */
6
7// $Id$
8
9/// \ingroup graphics
10/// \class AliMUONPainterMatrix
11/// \brief A matrix of AliMUONVPainter
12///
13// Author Laurent Aphecetche, Subatech
14
15#ifndef ROOT_TObject
16# include "TObject.h"
17#endif
18#ifndef ROOT_TString
19# include "TString.h"
20#endif
21#ifndef ALIMUONATTPAINTER_H
22# include "AliMUONAttPainter.h"
23#endif
24
25class AliMUONVPainter;
26class AliMUONVTrackerData;
27class TObjArray;
28
29class AliMUONPainterMatrix : public TObject
30{
31public:
32 AliMUONPainterMatrix(const char* basename="", Int_t nx=1, Int_t ny=1);
33 virtual ~AliMUONPainterMatrix();
34
35 /// Adopt a painter in this matrix
36 void Adopt(AliMUONVPainter* painter);
37
38 using TObject::Clone;
39
40 AliMUONPainterMatrix* Clone(const AliMUONAttPainter& attributes) const;
41
42 void Connect(const char* sourceMethod, const char* destClassName,
43 void* destObject, const char* destMethod);
44
0145e89a 45 /// Get our attributes
46 const AliMUONAttPainter& Attributes() const { return fAttributes; }
47
48 /// Compute the data range for this matrix
49 void ComputeDataRange();
50
51 /// Get the data range for this matrix
52 void GetDataRange(Double_t& dataMin, Double_t& dataMax) const;
53
54 /// Get our name
55 virtual const char* GetName() const { return Name().Data(); }
56
57 static TString NameIt(const TString& basename, const AliMUONAttPainter& att);
58
59 /// Matrix name
60 virtual TString Name() const { return fName; }
61
62 /// Base name (short name)
63 virtual TString Basename() const { return fBasename; }
64
65 void GetTypes(TObjArray& types) const;
66
67 /// Number of painters to arrange in x-direction
68 Int_t Nx() const { return fNx; }
69
70 /// Number of painters to arrange in y-direction
71 Int_t Ny() const { return fNy; }
72
73 /// Get a painter
74 AliMUONVPainter* Painter(Int_t index) const;
75
76 /// Printout
77 void Print(Option_t* opt="") const;
78
79 AliMUONVTrackerData* Data() const;
80
81 TString DataPattern() const;
82
83 Int_t DataIndex() const;
84
85 void SetData(const char* pattern, AliMUONVTrackerData* d, Int_t indexInData);
86
87 /// Force a given data range for all painter groups belonging to this matrix
88 void SetDataRange(Double_t min, Double_t max);
89
90 void SetOutlined(const char* pattern, Bool_t value);
91
92 void SetResponder(const char* pattern);
93
94 /// Number of painters (should be <= Nx*Ny)
95 Int_t Size() const;
96
97 /// Normalize attributes
98 AliMUONAttPainter Validate(const AliMUONAttPainter& att) const;
99
100private:
101 /// Not implemented
102 AliMUONPainterMatrix(const AliMUONPainterMatrix& rhs);
103 /// Not implemented
104 AliMUONPainterMatrix& operator=(const AliMUONPainterMatrix& rhs);
105
106 void UpdateAttributes();
107
108private:
109 TString fBasename; ///< base name of that matrix
110 TString fName; ///< complete name
111 Int_t fNx; ///< number of rows
112 Int_t fNy; ///< number of columns
113 TObjArray* fPainters; ///< painters in that matrix
114 AliMUONAttPainter fAttributes; ///< attributes of our painter(s)
115
116 ClassDef(AliMUONPainterMatrix,1) // Matrix of AliMUONVPainter
117};
118
119#endif