#include "AliMUONPainterGroup.h"
#include "AliMUONVPainter.h"
#include "AliMUONVTrackerData.h"
#include "AliLog.h"
#include <Riostream.h>
#include <TObjArray.h>
#include <float.h>
using std::cout;
using std::endl;
ClassImp(AliMUONPainterGroup)
AliMUONPainterGroup::AliMUONPainterGroup()
: TObject(),
fType(""),
fIsResponder(kFALSE),
fIsVisible(kTRUE),
fData(0x0),
fDataIndex(-1),
fDataMin(FLT_MAX),
fDataMax(-FLT_MAX),
fPainters(0x0),
fDepth(-1),
fIsOutlined(kTRUE)
{
}
AliMUONPainterGroup::AliMUONPainterGroup(const char* type, Int_t depth)
: TObject(),
fType(type),
fIsResponder(kFALSE),
fIsVisible(kTRUE),
fData(0x0),
fDataIndex(-1),
fDataMin(FLT_MAX),
fDataMax(-FLT_MAX),
fPainters(0x0),
fDepth(depth),
fIsOutlined(kTRUE)
{
if ( fType == "" || fDepth < 0 )
{
AliFatal("Sorry guy.");
}
}
AliMUONPainterGroup::~AliMUONPainterGroup()
{
delete fPainters;
}
Bool_t
AliMUONPainterGroup::Add(AliMUONVPainter* painter)
{
if ( fType != painter->Type() )
{
AliError(Form("Cannot add painter of type %s to this = %s",
painter->Type(), fType.Data()));
return kFALSE;
}
if ( fDepth != painter->Depth() )
{
AliError(Form("Cannot add painter of depth %d to this = %d",
painter->Depth(), fDepth));
return kFALSE;
}
if (!fPainters)
{
fPainters = new TObjArray;
}
painter->SetMotherGroup(this);
fPainters->Add(painter);
return kTRUE;
}
Int_t
AliMUONPainterGroup::Compare(const TObject* obj) const
{
const AliMUONPainterGroup* group = static_cast<const AliMUONPainterGroup*>(obj);
return fType.CompareTo(group->Type());
}
void
AliMUONPainterGroup::ComputeDataRange(Double_t& dataMin, Double_t& dataMax)
{
dataMin = FLT_MAX;
dataMax = -FLT_MAX;
if ( !fData || fDataIndex < 0 ) return;
TIter next(fPainters);
AliMUONVPainter* p;
while ( ( p = static_cast<AliMUONVPainter*>(next()) ) )
{
Double_t min, max;
p->ComputeDataRange(*fData,fDataIndex,min,max);
dataMin = TMath::Min(min,dataMin);
dataMax = TMath::Max(max,dataMax);
}
}
void
AliMUONPainterGroup::Draw(Option_t* opt)
{
TIter next(fPainters);
TObject* o;
while ( ( o = next() ) )
{
o->Draw(opt);
}
}
AliMUONVPainter*
AliMUONPainterGroup::First() const
{
if ( fPainters )
{
return static_cast<AliMUONVPainter*>(fPainters->First());
}
return 0x0;
}
Int_t
AliMUONPainterGroup::GetLineColor() const
{
if ( fPainters )
{
return static_cast<AliMUONVPainter*>(fPainters->First())->GetLineColor();
}
return 1;
}
Int_t
AliMUONPainterGroup::GetLineWidth() const
{
if ( fPainters )
{
return static_cast<AliMUONVPainter*>(fPainters->First())->GetLineWidth();
}
return 1;
}
Bool_t
AliMUONPainterGroup::Matches(const char* pattern) const
{
TString spattern(pattern);
if ( spattern == "*" || fType.Contains(pattern) )
{
return kTRUE;
}
return kFALSE;
}
void
AliMUONPainterGroup::Print(Option_t* opt) const
{
cout << "Type " << fType.Data() << " Depth " << fDepth;
if ( IsResponder() ) cout << " is responder ";
if ( IsVisible() ) cout << " is visible ";
if ( IsPlotter() )
{
cout << Form(" is plotter for data %p %s dimension %d %s plot range = %e, %e",
fData,(fData ? fData->Name() : ""),
fDataIndex,( (fData && fDataIndex>=0 ) ?
fData->DimensionName(fDataIndex).Data() : ""),
DataMin(),DataMax());
}
if ( IsOutlined() )
{
cout << " is outlined";
}
if ( fPainters )
{
cout << " contains " << fPainters->GetLast()+1 << " painters";
}
cout << endl;
TString sopt(opt);
sopt.ToUpper();
if ( sopt == "FULL" )
{
TIter next(fPainters);
AliMUONVPainter* painter;
while ( ( painter = static_cast<AliMUONVPainter*>(next()) ) )
{
cout << " ";
painter->Print();
}
}
}
void
AliMUONPainterGroup::SetData(AliMUONVTrackerData* data, Int_t dataIndex)
{
fData = data;
fDataIndex = dataIndex;
fDataMax = -FLT_MAX;
fDataMin = FLT_MAX;
}
void
AliMUONPainterGroup::SetLine(Int_t lineColor, Int_t lineWidth)
{
TIter next(fPainters);
AliMUONVPainter* painter;
while ( ( painter = static_cast<AliMUONVPainter*>(next()) ) )
{
painter->SetLineColor(lineColor);
painter->SetLineWidth(lineWidth);
}
}
AliMUONPainterGroup.cxx:1 AliMUONPainterGroup.cxx:2 AliMUONPainterGroup.cxx:3 AliMUONPainterGroup.cxx:4 AliMUONPainterGroup.cxx:5 AliMUONPainterGroup.cxx:6 AliMUONPainterGroup.cxx:7 AliMUONPainterGroup.cxx:8 AliMUONPainterGroup.cxx:9 AliMUONPainterGroup.cxx:10 AliMUONPainterGroup.cxx:11 AliMUONPainterGroup.cxx:12 AliMUONPainterGroup.cxx:13 AliMUONPainterGroup.cxx:14 AliMUONPainterGroup.cxx:15 AliMUONPainterGroup.cxx:16 AliMUONPainterGroup.cxx:17 AliMUONPainterGroup.cxx:18 AliMUONPainterGroup.cxx:19 AliMUONPainterGroup.cxx:20 AliMUONPainterGroup.cxx:21 AliMUONPainterGroup.cxx:22 AliMUONPainterGroup.cxx:23 AliMUONPainterGroup.cxx:24 AliMUONPainterGroup.cxx:25 AliMUONPainterGroup.cxx:26 AliMUONPainterGroup.cxx:27 AliMUONPainterGroup.cxx:28 AliMUONPainterGroup.cxx:29 AliMUONPainterGroup.cxx:30 AliMUONPainterGroup.cxx:31 AliMUONPainterGroup.cxx:32 AliMUONPainterGroup.cxx:33 AliMUONPainterGroup.cxx:34 AliMUONPainterGroup.cxx:35 AliMUONPainterGroup.cxx:36 AliMUONPainterGroup.cxx:37 AliMUONPainterGroup.cxx:38 AliMUONPainterGroup.cxx:39 AliMUONPainterGroup.cxx:40 AliMUONPainterGroup.cxx:41 AliMUONPainterGroup.cxx:42 AliMUONPainterGroup.cxx:43 AliMUONPainterGroup.cxx:44 AliMUONPainterGroup.cxx:45 AliMUONPainterGroup.cxx:46 AliMUONPainterGroup.cxx:47 AliMUONPainterGroup.cxx:48 AliMUONPainterGroup.cxx:49 AliMUONPainterGroup.cxx:50 AliMUONPainterGroup.cxx:51 AliMUONPainterGroup.cxx:52 AliMUONPainterGroup.cxx:53 AliMUONPainterGroup.cxx:54 AliMUONPainterGroup.cxx:55 AliMUONPainterGroup.cxx:56 AliMUONPainterGroup.cxx:57 AliMUONPainterGroup.cxx:58 AliMUONPainterGroup.cxx:59 AliMUONPainterGroup.cxx:60 AliMUONPainterGroup.cxx:61 AliMUONPainterGroup.cxx:62 AliMUONPainterGroup.cxx:63 AliMUONPainterGroup.cxx:64 AliMUONPainterGroup.cxx:65 AliMUONPainterGroup.cxx:66 AliMUONPainterGroup.cxx:67 AliMUONPainterGroup.cxx:68 AliMUONPainterGroup.cxx:69 AliMUONPainterGroup.cxx:70 AliMUONPainterGroup.cxx:71 AliMUONPainterGroup.cxx:72 AliMUONPainterGroup.cxx:73 AliMUONPainterGroup.cxx:74 AliMUONPainterGroup.cxx:75 AliMUONPainterGroup.cxx:76 AliMUONPainterGroup.cxx:77 AliMUONPainterGroup.cxx:78 AliMUONPainterGroup.cxx:79 AliMUONPainterGroup.cxx:80 AliMUONPainterGroup.cxx:81 AliMUONPainterGroup.cxx:82 AliMUONPainterGroup.cxx:83 AliMUONPainterGroup.cxx:84 AliMUONPainterGroup.cxx:85 AliMUONPainterGroup.cxx:86 AliMUONPainterGroup.cxx:87 AliMUONPainterGroup.cxx:88 AliMUONPainterGroup.cxx:89 AliMUONPainterGroup.cxx:90 AliMUONPainterGroup.cxx:91 AliMUONPainterGroup.cxx:92 AliMUONPainterGroup.cxx:93 AliMUONPainterGroup.cxx:94 AliMUONPainterGroup.cxx:95 AliMUONPainterGroup.cxx:96 AliMUONPainterGroup.cxx:97 AliMUONPainterGroup.cxx:98 AliMUONPainterGroup.cxx:99 AliMUONPainterGroup.cxx:100 AliMUONPainterGroup.cxx:101 AliMUONPainterGroup.cxx:102 AliMUONPainterGroup.cxx:103 AliMUONPainterGroup.cxx:104 AliMUONPainterGroup.cxx:105 AliMUONPainterGroup.cxx:106 AliMUONPainterGroup.cxx:107 AliMUONPainterGroup.cxx:108 AliMUONPainterGroup.cxx:109 AliMUONPainterGroup.cxx:110 AliMUONPainterGroup.cxx:111 AliMUONPainterGroup.cxx:112 AliMUONPainterGroup.cxx:113 AliMUONPainterGroup.cxx:114 AliMUONPainterGroup.cxx:115 AliMUONPainterGroup.cxx:116 AliMUONPainterGroup.cxx:117 AliMUONPainterGroup.cxx:118 AliMUONPainterGroup.cxx:119 AliMUONPainterGroup.cxx:120 AliMUONPainterGroup.cxx:121 AliMUONPainterGroup.cxx:122 AliMUONPainterGroup.cxx:123 AliMUONPainterGroup.cxx:124 AliMUONPainterGroup.cxx:125 AliMUONPainterGroup.cxx:126 AliMUONPainterGroup.cxx:127 AliMUONPainterGroup.cxx:128 AliMUONPainterGroup.cxx:129 AliMUONPainterGroup.cxx:130 AliMUONPainterGroup.cxx:131 AliMUONPainterGroup.cxx:132 AliMUONPainterGroup.cxx:133 AliMUONPainterGroup.cxx:134 AliMUONPainterGroup.cxx:135 AliMUONPainterGroup.cxx:136 AliMUONPainterGroup.cxx:137 AliMUONPainterGroup.cxx:138 AliMUONPainterGroup.cxx:139 AliMUONPainterGroup.cxx:140 AliMUONPainterGroup.cxx:141 AliMUONPainterGroup.cxx:142 AliMUONPainterGroup.cxx:143 AliMUONPainterGroup.cxx:144 AliMUONPainterGroup.cxx:145 AliMUONPainterGroup.cxx:146 AliMUONPainterGroup.cxx:147 AliMUONPainterGroup.cxx:148 AliMUONPainterGroup.cxx:149 AliMUONPainterGroup.cxx:150 AliMUONPainterGroup.cxx:151 AliMUONPainterGroup.cxx:152 AliMUONPainterGroup.cxx:153 AliMUONPainterGroup.cxx:154 AliMUONPainterGroup.cxx:155 AliMUONPainterGroup.cxx:156 AliMUONPainterGroup.cxx:157 AliMUONPainterGroup.cxx:158 AliMUONPainterGroup.cxx:159 AliMUONPainterGroup.cxx:160 AliMUONPainterGroup.cxx:161 AliMUONPainterGroup.cxx:162 AliMUONPainterGroup.cxx:163 AliMUONPainterGroup.cxx:164 AliMUONPainterGroup.cxx:165 AliMUONPainterGroup.cxx:166 AliMUONPainterGroup.cxx:167 AliMUONPainterGroup.cxx:168 AliMUONPainterGroup.cxx:169 AliMUONPainterGroup.cxx:170 AliMUONPainterGroup.cxx:171 AliMUONPainterGroup.cxx:172 AliMUONPainterGroup.cxx:173 AliMUONPainterGroup.cxx:174 AliMUONPainterGroup.cxx:175 AliMUONPainterGroup.cxx:176 AliMUONPainterGroup.cxx:177 AliMUONPainterGroup.cxx:178 AliMUONPainterGroup.cxx:179 AliMUONPainterGroup.cxx:180 AliMUONPainterGroup.cxx:181 AliMUONPainterGroup.cxx:182 AliMUONPainterGroup.cxx:183 AliMUONPainterGroup.cxx:184 AliMUONPainterGroup.cxx:185 AliMUONPainterGroup.cxx:186 AliMUONPainterGroup.cxx:187 AliMUONPainterGroup.cxx:188 AliMUONPainterGroup.cxx:189 AliMUONPainterGroup.cxx:190 AliMUONPainterGroup.cxx:191 AliMUONPainterGroup.cxx:192 AliMUONPainterGroup.cxx:193 AliMUONPainterGroup.cxx:194 AliMUONPainterGroup.cxx:195 AliMUONPainterGroup.cxx:196 AliMUONPainterGroup.cxx:197 AliMUONPainterGroup.cxx:198 AliMUONPainterGroup.cxx:199 AliMUONPainterGroup.cxx:200 AliMUONPainterGroup.cxx:201 AliMUONPainterGroup.cxx:202 AliMUONPainterGroup.cxx:203 AliMUONPainterGroup.cxx:204 AliMUONPainterGroup.cxx:205 AliMUONPainterGroup.cxx:206 AliMUONPainterGroup.cxx:207 AliMUONPainterGroup.cxx:208 AliMUONPainterGroup.cxx:209 AliMUONPainterGroup.cxx:210 AliMUONPainterGroup.cxx:211 AliMUONPainterGroup.cxx:212 AliMUONPainterGroup.cxx:213 AliMUONPainterGroup.cxx:214 AliMUONPainterGroup.cxx:215 AliMUONPainterGroup.cxx:216 AliMUONPainterGroup.cxx:217 AliMUONPainterGroup.cxx:218 AliMUONPainterGroup.cxx:219 AliMUONPainterGroup.cxx:220 AliMUONPainterGroup.cxx:221 AliMUONPainterGroup.cxx:222 AliMUONPainterGroup.cxx:223 AliMUONPainterGroup.cxx:224 AliMUONPainterGroup.cxx:225 AliMUONPainterGroup.cxx:226 AliMUONPainterGroup.cxx:227 AliMUONPainterGroup.cxx:228 AliMUONPainterGroup.cxx:229 AliMUONPainterGroup.cxx:230 AliMUONPainterGroup.cxx:231 AliMUONPainterGroup.cxx:232 AliMUONPainterGroup.cxx:233 AliMUONPainterGroup.cxx:234 AliMUONPainterGroup.cxx:235 AliMUONPainterGroup.cxx:236 AliMUONPainterGroup.cxx:237 AliMUONPainterGroup.cxx:238 AliMUONPainterGroup.cxx:239 AliMUONPainterGroup.cxx:240 AliMUONPainterGroup.cxx:241 AliMUONPainterGroup.cxx:242 AliMUONPainterGroup.cxx:243 AliMUONPainterGroup.cxx:244 AliMUONPainterGroup.cxx:245 AliMUONPainterGroup.cxx:246 AliMUONPainterGroup.cxx:247 AliMUONPainterGroup.cxx:248 AliMUONPainterGroup.cxx:249 AliMUONPainterGroup.cxx:250 AliMUONPainterGroup.cxx:251 AliMUONPainterGroup.cxx:252 AliMUONPainterGroup.cxx:253 AliMUONPainterGroup.cxx:254 AliMUONPainterGroup.cxx:255 AliMUONPainterGroup.cxx:256 AliMUONPainterGroup.cxx:257 AliMUONPainterGroup.cxx:258 AliMUONPainterGroup.cxx:259 AliMUONPainterGroup.cxx:260 AliMUONPainterGroup.cxx:261 AliMUONPainterGroup.cxx:262 AliMUONPainterGroup.cxx:263 AliMUONPainterGroup.cxx:264 AliMUONPainterGroup.cxx:265 AliMUONPainterGroup.cxx:266 AliMUONPainterGroup.cxx:267 AliMUONPainterGroup.cxx:268 AliMUONPainterGroup.cxx:269 AliMUONPainterGroup.cxx:270 AliMUONPainterGroup.cxx:271 AliMUONPainterGroup.cxx:272 AliMUONPainterGroup.cxx:273 AliMUONPainterGroup.cxx:274 AliMUONPainterGroup.cxx:275 AliMUONPainterGroup.cxx:276