#include "AliMUONPainterMatrix.h"
#include "AliLog.h"
#include "AliMUONPainterGroup.h"
#include "AliMUONPainterHelper.h"
#include "AliMUONVPainter.h"
#include "AliMUONVTrackerData.h"
#include "TCanvas.h"
#include "TGClient.h"
#include "TPaveLabel.h"
#include <Riostream.h>
#include <TBox.h>
#include <TMath.h>
#include <TObjArray.h>
#include <TObjString.h>
#include <TROOT.h>
#include <TVirtualPad.h>
#include <float.h>
using std::cout;
using std::endl;
ClassImp(AliMUONPainterMatrix)
AliMUONPainterMatrix::AliMUONPainterMatrix(const char* name, Int_t nx, Int_t ny)
: TObject(),
fBasename(name),
fWhatname(""),
fNx(nx),
fNy(ny),
fPainters(new TObjArray(fNx*fNy)),
fAttributes()
{
fPainters->SetOwner(kTRUE);
if ( fNx*fNy > 1 )
{
fAttributes.SetSingle(kFALSE);
}
}
AliMUONPainterMatrix::~AliMUONPainterMatrix()
{
delete fPainters;
}
void
AliMUONPainterMatrix::Adopt(AliMUONVPainter* painter)
{
fPainters->AddLast(painter);
UpdateAttributes();
}
void
AliMUONPainterMatrix::UpdateAttributes()
{
Bool_t cathode0(kFALSE);
Bool_t cathode1(kFALSE);
Bool_t bending(kFALSE);
Bool_t nonbending(kFALSE);
Bool_t front(kFALSE);
Bool_t back(kFALSE);
Bool_t cathplaneexclusive(kFALSE);
Bool_t cathplanedisabled(kFALSE);
for ( Int_t i = 0; i < Size(); ++i )
{
AliMUONAttPainter att = Painter(i)->Attributes();
if ( att.IsCathodeDefined() )
{
if ( att.IsCathode0() ) cathode0 = kTRUE;
if ( att.IsCathode1() ) cathode1 = kTRUE;
}
if ( att.IsPlaneDefined() )
{
if ( att.IsBendingPlane() ) bending = kTRUE;
if ( att.IsNonBendingPlane() ) nonbending = kTRUE;
}
if ( att.IsFrontView() ) front = kTRUE;
if ( att.IsBackView() ) back = kTRUE;
if ( att.IsCathodeAndPlaneMutuallyExclusive() ) cathplaneexclusive = kTRUE;
if ( att.IsCathodeAndPlaneDisabled() ) cathplanedisabled = kTRUE;
}
fAttributes.SetCathode(cathode0,cathode1);
fAttributes.SetPlane(bending,nonbending);
fAttributes.SetViewPoint(front,back);
fAttributes.SetCathodeAndPlaneMutuallyExclusive(cathplaneexclusive);
fAttributes.SetCathodeAndPlaneDisabled(cathplanedisabled);
}
const char*
AliMUONPainterMatrix::Name() const
{
return NameIt(fWhatname.Data(),fBasename.Data(),fAttributes).Data();
}
TString
AliMUONPainterMatrix::NameIt(const char* whatname, const char* basename, const AliMUONAttPainter& att)
{
if ( strlen(whatname) > 0 )
{
return Form("%s-%s-%s",whatname,basename,att.Name().Data());
}
else
{
return Form("noda-%s-%s",basename,att.Name().Data());
}
}
void
AliMUONPainterMatrix::ComputeDataRange()
{
Double_t dataMin(FLT_MAX);
Double_t dataMax(-FLT_MAX);
Bool_t atLeastOnePlotter(kFALSE);
for ( Int_t i = 0; i < Size(); ++i )
{
AliMUONVPainter* p = Painter(i);
AliMUONPainterGroup* g = p->PlotterGroup();
Double_t min(FLT_MAX);
Double_t max(-FLT_MAX);
if ( g )
{
atLeastOnePlotter = kTRUE;
g->ComputeDataRange(min,max);
if ( min <= max )
{
dataMin = TMath::Min(min,dataMin);
dataMax = TMath::Max(max,dataMax);
}
}
AliDebug(1,Form("painter %s group %s min %e max %e dataMin,Max=%7.3f,%7.3f",
p->GetName(),
g ? g->Type() : "none",
min,max,
dataMin,dataMax));
}
if ( dataMin > dataMax && atLeastOnePlotter )
{
AliError(Form("data min %e > max %e : setting both to 0.0",
dataMin,dataMax));
dataMin = dataMax = 0.0;
}
AliDebug(1,Form("Final dataMin,Max=%7.3f,%7.3f",dataMin,dataMax));
SetDataRange(dataMin,dataMax);
}
void
AliMUONPainterMatrix::Connect(const char* sourceMethod, const char* destClassName,
void* destObject, const char* destMethod)
{
for ( Int_t i = 0; i < Size(); ++i )
{
Painter(i)->Connect(sourceMethod,destClassName,destObject,destMethod);
}
}
TCanvas*
AliMUONPainterMatrix::CreateCanvas(Int_t x, Int_t y, Int_t w, Int_t h)
{
Int_t mw = ( w <= 0 ? TMath::Nint(gClient->GetDisplayWidth()*0.9) : w );
Int_t mh = ( h <= 0 ? TMath::Nint(gClient->GetDisplayHeight()*0.9) : h );
TString name(Name());
TCanvas* d = new TCanvas(name.Data(),name.Data(),x,y,mw,mh);
TVirtualPad* pTitle = new TPad(Form("%s-title",name.Data()),Form("%s-title",name.Data()),0,0.9,1.0,0.99);
pTitle->Draw();
pTitle->cd();
TPaveLabel* text = new TPaveLabel(0,0,1,1,"");
text->SetFillStyle(0);
text->SetFillColor(0);
text->SetTextColor(4);
text->SetBorderSize(0);
text->SetLabel(name.Data());
text->Draw();
d->cd();
TVirtualPad* pMatrix = new TPad(Form("%s-matrix",name.Data()),Form("%s-matrix",name.Data()),0,0,0.9,0.89);
pMatrix->Draw();
pMatrix->cd();
Draw();
d->cd();
TVirtualPad* pColor = new TPad(Form("%s-color",name.Data()),Form("%s-color",name.Data()),0.91,0.01,0.99,0.89);
pColor->Range(0,0,1,1);
pColor->Draw();
pColor->cd();
Int_t ndivisions(20);
Double_t rangeXmin(0.1);
Double_t rangeXmax(0.9);
Double_t ymin, ymax;
GetDataRange(ymin,ymax);
Double_t min(0.0);
Double_t max(1.0);
Double_t step = (max-min)/ndivisions;
Double_t hsize = 1.0/(ndivisions+2);
Double_t ypos = 1.0;
for ( Int_t i = -1; i < ndivisions+1; ++i )
{
Double_t value = max - (min + step*i);
Int_t color = AliMUONPainterHelper::Instance()->ColorFromValue(value,min,max);
Bool_t limit(kFALSE);
TString label;
TString sign;
Double_t yvalue(0.0);
if ( i == -1 )
{
yvalue = ymax;
limit = kTRUE;
sign = ">";
}
else if ( i == ndivisions )
{
yvalue = ymin;
limit = kTRUE;
sign = "<=";
}
if (limit)
{
if ( TMath::Abs(yvalue) < 1E5 )
{
label = Form("%s %7.2f",sign.Data(),yvalue);
}
else
{
label = Form("%s %e",sign.Data(),yvalue);
}
}
TPaveLabel* box = new TPaveLabel(rangeXmin,TMath::Max(0.001,ypos-hsize),rangeXmax,ypos,label.Data(),"");
ypos -= hsize;
box->SetFillColor(color);
box->SetTextColor( i == -1 ? 0 : 1 );
box->SetBorderSize(1);
box->SetLineColor(1);
box->Draw();
}
d->SetEditable(kFALSE);
return d;
}
void
AliMUONPainterMatrix::GetDataRange(Double_t& dataMin, Double_t& dataMax) const
{
dataMin=FLT_MAX;
dataMax=-FLT_MAX;
for ( Int_t i = 0; i < Size(); ++i )
{
AliMUONVPainter* p = Painter(i);
if ( p )
{
AliMUONPainterGroup* g = p->PlotterGroup();
if ( g )
{
dataMin = TMath::Min(dataMin,g->DataMin());
dataMax = TMath::Max(dataMax,g->DataMax());
}
}
}
}
void
AliMUONPainterMatrix::GetTypes(TObjArray& types) const
{
types.SetOwner(kTRUE);
types.Clear();
for ( Int_t i = 0; i < Size(); ++i )
{
AliMUONVPainter* p = Painter(i);
TObjArray ptypes;
p->GetTypes(ptypes);
TIter next(&ptypes);
TObject* o;
while ( ( o = next() ) )
{
if ( ! types.FindObject(o) )
{
types.AddLast(o->Clone());
}
}
}
}
void
AliMUONPainterMatrix::Draw(Option_t*)
{
if (!gPad)
{
gROOT->MakeDefCanvas();
}
TVirtualPad* pad = gPad;
gPad->Divide(Nx(),Ny());
for ( Int_t i = 0; i < Size(); ++i )
{
AliMUONVPainter* painter = Painter(i);
pad->cd(i+1);
painter->Draw("R");
}
AppendPad("");
}
AliMUONVPainter*
AliMUONPainterMatrix::Painter(Int_t index) const
{
if ( index <= fPainters->GetLast() )
{
return static_cast<AliMUONVPainter*>(fPainters->At(index));
}
return 0x0;
}
AliMUONVTrackerData*
AliMUONPainterMatrix::Data() const
{
AliMUONPainterGroup* group = Painter(0)->PlotterGroup();
return ( group ? group->Data() : 0x0 );
}
TString
AliMUONPainterMatrix::DataPattern() const
{
AliMUONPainterGroup* group = Painter(0)->PlotterGroup();
return ( group ? group->Type() : "" );
}
Int_t
AliMUONPainterMatrix::DataIndex() const
{
AliMUONPainterGroup* group = Painter(0)->PlotterGroup();
return ( group ? group->DataIndex() : -1 );
}
void
AliMUONPainterMatrix::SetData(const char* pattern, AliMUONVTrackerData* d,
Int_t indexInData)
{
for ( Int_t i = 0; i < Size(); ++i )
{
AliMUONVPainter* painter = Painter(i);
painter->SetData(pattern,d,indexInData);
}
if ( d )
{
fWhatname = Form("%s-%s",d->GetName(),d->DimensionName(indexInData).Data());
}
else
{
fWhatname = "";
}
}
void
AliMUONPainterMatrix::SetDataRange(Double_t dataMin, Double_t dataMax)
{
for ( Int_t i = 0; i < Size(); ++i )
{
AliMUONVPainter* p = Painter(i);
AliMUONPainterGroup* g = p->PlotterGroup();
if ( g )
{
g->SetDataRange(dataMin,dataMax);
}
}
}
Int_t
AliMUONPainterMatrix::Size() const
{
return fPainters->GetLast()+1;
}
void
AliMUONPainterMatrix::Print(Option_t*) const
{
cout << "Whatname=" << fWhatname.Data() << "Basename=" << fBasename.Data()
<< " Nx=" << fNx << " Ny=" << fNy << " Att=" << fAttributes.GetName() << endl;
}
AliMUONPainterMatrix*
AliMUONPainterMatrix::Clone(const AliMUONAttPainter& attributes) const
{
AliMUONPainterMatrix* clone = new AliMUONPainterMatrix(Basename(),Nx(),Ny());
for ( Int_t i = 0; i < Size(); ++i )
{
AliMUONVPainter* oldPainter = Painter(i);
AliMUONVPainter* newPainter(0x0);
newPainter = AliMUONVPainter::CreatePainter(oldPainter->ClassName(),
attributes,
oldPainter->ID0(),
oldPainter->ID1());
if (newPainter)
{
newPainter->UpdateGroupsFrom(*(oldPainter->Master()));
clone->Adopt(newPainter);
}
else
{
AliError(Form("Failed to create painter of class %s ID0 %d ID1 %d",
oldPainter->ClassName(),
oldPainter->ID0(),
oldPainter->ID1()));
}
}
return clone;
}
void
AliMUONPainterMatrix::SetOutlined(const char* pattern, Bool_t value)
{
for ( Int_t i = 0; i < Size(); ++i )
{
Painter(i)->SetOutlined(pattern,value);
}
}
void
AliMUONPainterMatrix::SetResponder(const char* pattern)
{
for ( Int_t i = 0; i < Size(); ++i )
{
Painter(i)->SetResponder(pattern);
}
}
AliMUONAttPainter
AliMUONPainterMatrix::Validate(const AliMUONAttPainter& att) const
{
AliMUONAttPainter a;
for ( Int_t i = 0; i < Size() && a.IsValid(); ++i )
{
a = Painter(i)->Validate(att);
}
return a;
}
AliMUONPainterMatrix.cxx:1 AliMUONPainterMatrix.cxx:2 AliMUONPainterMatrix.cxx:3 AliMUONPainterMatrix.cxx:4 AliMUONPainterMatrix.cxx:5 AliMUONPainterMatrix.cxx:6 AliMUONPainterMatrix.cxx:7 AliMUONPainterMatrix.cxx:8 AliMUONPainterMatrix.cxx:9 AliMUONPainterMatrix.cxx:10 AliMUONPainterMatrix.cxx:11 AliMUONPainterMatrix.cxx:12 AliMUONPainterMatrix.cxx:13 AliMUONPainterMatrix.cxx:14 AliMUONPainterMatrix.cxx:15 AliMUONPainterMatrix.cxx:16 AliMUONPainterMatrix.cxx:17 AliMUONPainterMatrix.cxx:18 AliMUONPainterMatrix.cxx:19 AliMUONPainterMatrix.cxx:20 AliMUONPainterMatrix.cxx:21 AliMUONPainterMatrix.cxx:22 AliMUONPainterMatrix.cxx:23 AliMUONPainterMatrix.cxx:24 AliMUONPainterMatrix.cxx:25 AliMUONPainterMatrix.cxx:26 AliMUONPainterMatrix.cxx:27 AliMUONPainterMatrix.cxx:28 AliMUONPainterMatrix.cxx:29 AliMUONPainterMatrix.cxx:30 AliMUONPainterMatrix.cxx:31 AliMUONPainterMatrix.cxx:32 AliMUONPainterMatrix.cxx:33 AliMUONPainterMatrix.cxx:34 AliMUONPainterMatrix.cxx:35 AliMUONPainterMatrix.cxx:36 AliMUONPainterMatrix.cxx:37 AliMUONPainterMatrix.cxx:38 AliMUONPainterMatrix.cxx:39 AliMUONPainterMatrix.cxx:40 AliMUONPainterMatrix.cxx:41 AliMUONPainterMatrix.cxx:42 AliMUONPainterMatrix.cxx:43 AliMUONPainterMatrix.cxx:44 AliMUONPainterMatrix.cxx:45 AliMUONPainterMatrix.cxx:46 AliMUONPainterMatrix.cxx:47 AliMUONPainterMatrix.cxx:48 AliMUONPainterMatrix.cxx:49 AliMUONPainterMatrix.cxx:50 AliMUONPainterMatrix.cxx:51 AliMUONPainterMatrix.cxx:52 AliMUONPainterMatrix.cxx:53 AliMUONPainterMatrix.cxx:54 AliMUONPainterMatrix.cxx:55 AliMUONPainterMatrix.cxx:56 AliMUONPainterMatrix.cxx:57 AliMUONPainterMatrix.cxx:58 AliMUONPainterMatrix.cxx:59 AliMUONPainterMatrix.cxx:60 AliMUONPainterMatrix.cxx:61 AliMUONPainterMatrix.cxx:62 AliMUONPainterMatrix.cxx:63 AliMUONPainterMatrix.cxx:64 AliMUONPainterMatrix.cxx:65 AliMUONPainterMatrix.cxx:66 AliMUONPainterMatrix.cxx:67 AliMUONPainterMatrix.cxx:68 AliMUONPainterMatrix.cxx:69 AliMUONPainterMatrix.cxx:70 AliMUONPainterMatrix.cxx:71 AliMUONPainterMatrix.cxx:72 AliMUONPainterMatrix.cxx:73 AliMUONPainterMatrix.cxx:74 AliMUONPainterMatrix.cxx:75 AliMUONPainterMatrix.cxx:76 AliMUONPainterMatrix.cxx:77 AliMUONPainterMatrix.cxx:78 AliMUONPainterMatrix.cxx:79 AliMUONPainterMatrix.cxx:80 AliMUONPainterMatrix.cxx:81 AliMUONPainterMatrix.cxx:82 AliMUONPainterMatrix.cxx:83 AliMUONPainterMatrix.cxx:84 AliMUONPainterMatrix.cxx:85 AliMUONPainterMatrix.cxx:86 AliMUONPainterMatrix.cxx:87 AliMUONPainterMatrix.cxx:88 AliMUONPainterMatrix.cxx:89 AliMUONPainterMatrix.cxx:90 AliMUONPainterMatrix.cxx:91 AliMUONPainterMatrix.cxx:92 AliMUONPainterMatrix.cxx:93 AliMUONPainterMatrix.cxx:94 AliMUONPainterMatrix.cxx:95 AliMUONPainterMatrix.cxx:96 AliMUONPainterMatrix.cxx:97 AliMUONPainterMatrix.cxx:98 AliMUONPainterMatrix.cxx:99 AliMUONPainterMatrix.cxx:100 AliMUONPainterMatrix.cxx:101 AliMUONPainterMatrix.cxx:102 AliMUONPainterMatrix.cxx:103 AliMUONPainterMatrix.cxx:104 AliMUONPainterMatrix.cxx:105 AliMUONPainterMatrix.cxx:106 AliMUONPainterMatrix.cxx:107 AliMUONPainterMatrix.cxx:108 AliMUONPainterMatrix.cxx:109 AliMUONPainterMatrix.cxx:110 AliMUONPainterMatrix.cxx:111 AliMUONPainterMatrix.cxx:112 AliMUONPainterMatrix.cxx:113 AliMUONPainterMatrix.cxx:114 AliMUONPainterMatrix.cxx:115 AliMUONPainterMatrix.cxx:116 AliMUONPainterMatrix.cxx:117 AliMUONPainterMatrix.cxx:118 AliMUONPainterMatrix.cxx:119 AliMUONPainterMatrix.cxx:120 AliMUONPainterMatrix.cxx:121 AliMUONPainterMatrix.cxx:122 AliMUONPainterMatrix.cxx:123 AliMUONPainterMatrix.cxx:124 AliMUONPainterMatrix.cxx:125 AliMUONPainterMatrix.cxx:126 AliMUONPainterMatrix.cxx:127 AliMUONPainterMatrix.cxx:128 AliMUONPainterMatrix.cxx:129 AliMUONPainterMatrix.cxx:130 AliMUONPainterMatrix.cxx:131 AliMUONPainterMatrix.cxx:132 AliMUONPainterMatrix.cxx:133 AliMUONPainterMatrix.cxx:134 AliMUONPainterMatrix.cxx:135 AliMUONPainterMatrix.cxx:136 AliMUONPainterMatrix.cxx:137 AliMUONPainterMatrix.cxx:138 AliMUONPainterMatrix.cxx:139 AliMUONPainterMatrix.cxx:140 AliMUONPainterMatrix.cxx:141 AliMUONPainterMatrix.cxx:142 AliMUONPainterMatrix.cxx:143 AliMUONPainterMatrix.cxx:144 AliMUONPainterMatrix.cxx:145 AliMUONPainterMatrix.cxx:146 AliMUONPainterMatrix.cxx:147 AliMUONPainterMatrix.cxx:148 AliMUONPainterMatrix.cxx:149 AliMUONPainterMatrix.cxx:150 AliMUONPainterMatrix.cxx:151 AliMUONPainterMatrix.cxx:152 AliMUONPainterMatrix.cxx:153 AliMUONPainterMatrix.cxx:154 AliMUONPainterMatrix.cxx:155 AliMUONPainterMatrix.cxx:156 AliMUONPainterMatrix.cxx:157 AliMUONPainterMatrix.cxx:158 AliMUONPainterMatrix.cxx:159 AliMUONPainterMatrix.cxx:160 AliMUONPainterMatrix.cxx:161 AliMUONPainterMatrix.cxx:162 AliMUONPainterMatrix.cxx:163 AliMUONPainterMatrix.cxx:164 AliMUONPainterMatrix.cxx:165 AliMUONPainterMatrix.cxx:166 AliMUONPainterMatrix.cxx:167 AliMUONPainterMatrix.cxx:168 AliMUONPainterMatrix.cxx:169 AliMUONPainterMatrix.cxx:170 AliMUONPainterMatrix.cxx:171 AliMUONPainterMatrix.cxx:172 AliMUONPainterMatrix.cxx:173 AliMUONPainterMatrix.cxx:174 AliMUONPainterMatrix.cxx:175 AliMUONPainterMatrix.cxx:176 AliMUONPainterMatrix.cxx:177 AliMUONPainterMatrix.cxx:178 AliMUONPainterMatrix.cxx:179 AliMUONPainterMatrix.cxx:180 AliMUONPainterMatrix.cxx:181 AliMUONPainterMatrix.cxx:182 AliMUONPainterMatrix.cxx:183 AliMUONPainterMatrix.cxx:184 AliMUONPainterMatrix.cxx:185 AliMUONPainterMatrix.cxx:186 AliMUONPainterMatrix.cxx:187 AliMUONPainterMatrix.cxx:188 AliMUONPainterMatrix.cxx:189 AliMUONPainterMatrix.cxx:190 AliMUONPainterMatrix.cxx:191 AliMUONPainterMatrix.cxx:192 AliMUONPainterMatrix.cxx:193 AliMUONPainterMatrix.cxx:194 AliMUONPainterMatrix.cxx:195 AliMUONPainterMatrix.cxx:196 AliMUONPainterMatrix.cxx:197 AliMUONPainterMatrix.cxx:198 AliMUONPainterMatrix.cxx:199 AliMUONPainterMatrix.cxx:200 AliMUONPainterMatrix.cxx:201 AliMUONPainterMatrix.cxx:202 AliMUONPainterMatrix.cxx:203 AliMUONPainterMatrix.cxx:204 AliMUONPainterMatrix.cxx:205 AliMUONPainterMatrix.cxx:206 AliMUONPainterMatrix.cxx:207 AliMUONPainterMatrix.cxx:208 AliMUONPainterMatrix.cxx:209 AliMUONPainterMatrix.cxx:210 AliMUONPainterMatrix.cxx:211 AliMUONPainterMatrix.cxx:212 AliMUONPainterMatrix.cxx:213 AliMUONPainterMatrix.cxx:214 AliMUONPainterMatrix.cxx:215 AliMUONPainterMatrix.cxx:216 AliMUONPainterMatrix.cxx:217 AliMUONPainterMatrix.cxx:218 AliMUONPainterMatrix.cxx:219 AliMUONPainterMatrix.cxx:220 AliMUONPainterMatrix.cxx:221 AliMUONPainterMatrix.cxx:222 AliMUONPainterMatrix.cxx:223 AliMUONPainterMatrix.cxx:224 AliMUONPainterMatrix.cxx:225 AliMUONPainterMatrix.cxx:226 AliMUONPainterMatrix.cxx:227 AliMUONPainterMatrix.cxx:228 AliMUONPainterMatrix.cxx:229 AliMUONPainterMatrix.cxx:230 AliMUONPainterMatrix.cxx:231 AliMUONPainterMatrix.cxx:232 AliMUONPainterMatrix.cxx:233 AliMUONPainterMatrix.cxx:234 AliMUONPainterMatrix.cxx:235 AliMUONPainterMatrix.cxx:236 AliMUONPainterMatrix.cxx:237 AliMUONPainterMatrix.cxx:238 AliMUONPainterMatrix.cxx:239 AliMUONPainterMatrix.cxx:240 AliMUONPainterMatrix.cxx:241 AliMUONPainterMatrix.cxx:242 AliMUONPainterMatrix.cxx:243 AliMUONPainterMatrix.cxx:244 AliMUONPainterMatrix.cxx:245 AliMUONPainterMatrix.cxx:246 AliMUONPainterMatrix.cxx:247 AliMUONPainterMatrix.cxx:248 AliMUONPainterMatrix.cxx:249 AliMUONPainterMatrix.cxx:250 AliMUONPainterMatrix.cxx:251 AliMUONPainterMatrix.cxx:252 AliMUONPainterMatrix.cxx:253 AliMUONPainterMatrix.cxx:254 AliMUONPainterMatrix.cxx:255 AliMUONPainterMatrix.cxx:256 AliMUONPainterMatrix.cxx:257 AliMUONPainterMatrix.cxx:258 AliMUONPainterMatrix.cxx:259 AliMUONPainterMatrix.cxx:260 AliMUONPainterMatrix.cxx:261 AliMUONPainterMatrix.cxx:262 AliMUONPainterMatrix.cxx:263 AliMUONPainterMatrix.cxx:264 AliMUONPainterMatrix.cxx:265 AliMUONPainterMatrix.cxx:266 AliMUONPainterMatrix.cxx:267 AliMUONPainterMatrix.cxx:268 AliMUONPainterMatrix.cxx:269 AliMUONPainterMatrix.cxx:270 AliMUONPainterMatrix.cxx:271 AliMUONPainterMatrix.cxx:272 AliMUONPainterMatrix.cxx:273 AliMUONPainterMatrix.cxx:274 AliMUONPainterMatrix.cxx:275 AliMUONPainterMatrix.cxx:276 AliMUONPainterMatrix.cxx:277 AliMUONPainterMatrix.cxx:278 AliMUONPainterMatrix.cxx:279 AliMUONPainterMatrix.cxx:280 AliMUONPainterMatrix.cxx:281 AliMUONPainterMatrix.cxx:282 AliMUONPainterMatrix.cxx:283 AliMUONPainterMatrix.cxx:284 AliMUONPainterMatrix.cxx:285 AliMUONPainterMatrix.cxx:286 AliMUONPainterMatrix.cxx:287 AliMUONPainterMatrix.cxx:288 AliMUONPainterMatrix.cxx:289 AliMUONPainterMatrix.cxx:290 AliMUONPainterMatrix.cxx:291 AliMUONPainterMatrix.cxx:292 AliMUONPainterMatrix.cxx:293 AliMUONPainterMatrix.cxx:294 AliMUONPainterMatrix.cxx:295 AliMUONPainterMatrix.cxx:296 AliMUONPainterMatrix.cxx:297 AliMUONPainterMatrix.cxx:298 AliMUONPainterMatrix.cxx:299 AliMUONPainterMatrix.cxx:300 AliMUONPainterMatrix.cxx:301 AliMUONPainterMatrix.cxx:302 AliMUONPainterMatrix.cxx:303 AliMUONPainterMatrix.cxx:304 AliMUONPainterMatrix.cxx:305 AliMUONPainterMatrix.cxx:306 AliMUONPainterMatrix.cxx:307 AliMUONPainterMatrix.cxx:308 AliMUONPainterMatrix.cxx:309 AliMUONPainterMatrix.cxx:310 AliMUONPainterMatrix.cxx:311 AliMUONPainterMatrix.cxx:312 AliMUONPainterMatrix.cxx:313 AliMUONPainterMatrix.cxx:314 AliMUONPainterMatrix.cxx:315 AliMUONPainterMatrix.cxx:316 AliMUONPainterMatrix.cxx:317 AliMUONPainterMatrix.cxx:318 AliMUONPainterMatrix.cxx:319 AliMUONPainterMatrix.cxx:320 AliMUONPainterMatrix.cxx:321 AliMUONPainterMatrix.cxx:322 AliMUONPainterMatrix.cxx:323 AliMUONPainterMatrix.cxx:324 AliMUONPainterMatrix.cxx:325 AliMUONPainterMatrix.cxx:326 AliMUONPainterMatrix.cxx:327 AliMUONPainterMatrix.cxx:328 AliMUONPainterMatrix.cxx:329 AliMUONPainterMatrix.cxx:330 AliMUONPainterMatrix.cxx:331 AliMUONPainterMatrix.cxx:332 AliMUONPainterMatrix.cxx:333 AliMUONPainterMatrix.cxx:334 AliMUONPainterMatrix.cxx:335 AliMUONPainterMatrix.cxx:336 AliMUONPainterMatrix.cxx:337 AliMUONPainterMatrix.cxx:338 AliMUONPainterMatrix.cxx:339 AliMUONPainterMatrix.cxx:340 AliMUONPainterMatrix.cxx:341 AliMUONPainterMatrix.cxx:342 AliMUONPainterMatrix.cxx:343 AliMUONPainterMatrix.cxx:344 AliMUONPainterMatrix.cxx:345 AliMUONPainterMatrix.cxx:346 AliMUONPainterMatrix.cxx:347 AliMUONPainterMatrix.cxx:348 AliMUONPainterMatrix.cxx:349 AliMUONPainterMatrix.cxx:350 AliMUONPainterMatrix.cxx:351 AliMUONPainterMatrix.cxx:352 AliMUONPainterMatrix.cxx:353 AliMUONPainterMatrix.cxx:354 AliMUONPainterMatrix.cxx:355 AliMUONPainterMatrix.cxx:356 AliMUONPainterMatrix.cxx:357 AliMUONPainterMatrix.cxx:358 AliMUONPainterMatrix.cxx:359 AliMUONPainterMatrix.cxx:360 AliMUONPainterMatrix.cxx:361 AliMUONPainterMatrix.cxx:362 AliMUONPainterMatrix.cxx:363 AliMUONPainterMatrix.cxx:364 AliMUONPainterMatrix.cxx:365 AliMUONPainterMatrix.cxx:366 AliMUONPainterMatrix.cxx:367 AliMUONPainterMatrix.cxx:368 AliMUONPainterMatrix.cxx:369 AliMUONPainterMatrix.cxx:370 AliMUONPainterMatrix.cxx:371 AliMUONPainterMatrix.cxx:372 AliMUONPainterMatrix.cxx:373 AliMUONPainterMatrix.cxx:374 AliMUONPainterMatrix.cxx:375 AliMUONPainterMatrix.cxx:376 AliMUONPainterMatrix.cxx:377 AliMUONPainterMatrix.cxx:378 AliMUONPainterMatrix.cxx:379 AliMUONPainterMatrix.cxx:380 AliMUONPainterMatrix.cxx:381 AliMUONPainterMatrix.cxx:382 AliMUONPainterMatrix.cxx:383 AliMUONPainterMatrix.cxx:384 AliMUONPainterMatrix.cxx:385 AliMUONPainterMatrix.cxx:386 AliMUONPainterMatrix.cxx:387 AliMUONPainterMatrix.cxx:388 AliMUONPainterMatrix.cxx:389 AliMUONPainterMatrix.cxx:390 AliMUONPainterMatrix.cxx:391 AliMUONPainterMatrix.cxx:392 AliMUONPainterMatrix.cxx:393 AliMUONPainterMatrix.cxx:394 AliMUONPainterMatrix.cxx:395 AliMUONPainterMatrix.cxx:396 AliMUONPainterMatrix.cxx:397 AliMUONPainterMatrix.cxx:398 AliMUONPainterMatrix.cxx:399 AliMUONPainterMatrix.cxx:400 AliMUONPainterMatrix.cxx:401 AliMUONPainterMatrix.cxx:402 AliMUONPainterMatrix.cxx:403 AliMUONPainterMatrix.cxx:404 AliMUONPainterMatrix.cxx:405 AliMUONPainterMatrix.cxx:406 AliMUONPainterMatrix.cxx:407 AliMUONPainterMatrix.cxx:408 AliMUONPainterMatrix.cxx:409 AliMUONPainterMatrix.cxx:410 AliMUONPainterMatrix.cxx:411 AliMUONPainterMatrix.cxx:412 AliMUONPainterMatrix.cxx:413 AliMUONPainterMatrix.cxx:414 AliMUONPainterMatrix.cxx:415 AliMUONPainterMatrix.cxx:416 AliMUONPainterMatrix.cxx:417 AliMUONPainterMatrix.cxx:418 AliMUONPainterMatrix.cxx:419 AliMUONPainterMatrix.cxx:420 AliMUONPainterMatrix.cxx:421 AliMUONPainterMatrix.cxx:422 AliMUONPainterMatrix.cxx:423 AliMUONPainterMatrix.cxx:424 AliMUONPainterMatrix.cxx:425 AliMUONPainterMatrix.cxx:426 AliMUONPainterMatrix.cxx:427 AliMUONPainterMatrix.cxx:428 AliMUONPainterMatrix.cxx:429 AliMUONPainterMatrix.cxx:430 AliMUONPainterMatrix.cxx:431 AliMUONPainterMatrix.cxx:432 AliMUONPainterMatrix.cxx:433 AliMUONPainterMatrix.cxx:434 AliMUONPainterMatrix.cxx:435 AliMUONPainterMatrix.cxx:436 AliMUONPainterMatrix.cxx:437 AliMUONPainterMatrix.cxx:438 AliMUONPainterMatrix.cxx:439 AliMUONPainterMatrix.cxx:440 AliMUONPainterMatrix.cxx:441 AliMUONPainterMatrix.cxx:442 AliMUONPainterMatrix.cxx:443 AliMUONPainterMatrix.cxx:444 AliMUONPainterMatrix.cxx:445 AliMUONPainterMatrix.cxx:446 AliMUONPainterMatrix.cxx:447 AliMUONPainterMatrix.cxx:448 AliMUONPainterMatrix.cxx:449 AliMUONPainterMatrix.cxx:450 AliMUONPainterMatrix.cxx:451 AliMUONPainterMatrix.cxx:452 AliMUONPainterMatrix.cxx:453 AliMUONPainterMatrix.cxx:454 AliMUONPainterMatrix.cxx:455 AliMUONPainterMatrix.cxx:456 AliMUONPainterMatrix.cxx:457 AliMUONPainterMatrix.cxx:458 AliMUONPainterMatrix.cxx:459 AliMUONPainterMatrix.cxx:460 AliMUONPainterMatrix.cxx:461 AliMUONPainterMatrix.cxx:462 AliMUONPainterMatrix.cxx:463 AliMUONPainterMatrix.cxx:464 AliMUONPainterMatrix.cxx:465 AliMUONPainterMatrix.cxx:466 AliMUONPainterMatrix.cxx:467 AliMUONPainterMatrix.cxx:468 AliMUONPainterMatrix.cxx:469 AliMUONPainterMatrix.cxx:470 AliMUONPainterMatrix.cxx:471 AliMUONPainterMatrix.cxx:472 AliMUONPainterMatrix.cxx:473 AliMUONPainterMatrix.cxx:474 AliMUONPainterMatrix.cxx:475 AliMUONPainterMatrix.cxx:476 AliMUONPainterMatrix.cxx:477 AliMUONPainterMatrix.cxx:478 AliMUONPainterMatrix.cxx:479 AliMUONPainterMatrix.cxx:480 AliMUONPainterMatrix.cxx:481 AliMUONPainterMatrix.cxx:482 AliMUONPainterMatrix.cxx:483 AliMUONPainterMatrix.cxx:484 AliMUONPainterMatrix.cxx:485 AliMUONPainterMatrix.cxx:486 AliMUONPainterMatrix.cxx:487 AliMUONPainterMatrix.cxx:488 AliMUONPainterMatrix.cxx:489 AliMUONPainterMatrix.cxx:490 AliMUONPainterMatrix.cxx:491 AliMUONPainterMatrix.cxx:492 AliMUONPainterMatrix.cxx:493 AliMUONPainterMatrix.cxx:494 AliMUONPainterMatrix.cxx:495 AliMUONPainterMatrix.cxx:496 AliMUONPainterMatrix.cxx:497 AliMUONPainterMatrix.cxx:498 AliMUONPainterMatrix.cxx:499 AliMUONPainterMatrix.cxx:500 AliMUONPainterMatrix.cxx:501 AliMUONPainterMatrix.cxx:502 AliMUONPainterMatrix.cxx:503 AliMUONPainterMatrix.cxx:504 AliMUONPainterMatrix.cxx:505 AliMUONPainterMatrix.cxx:506 AliMUONPainterMatrix.cxx:507 AliMUONPainterMatrix.cxx:508 AliMUONPainterMatrix.cxx:509 AliMUONPainterMatrix.cxx:510 AliMUONPainterMatrix.cxx:511 AliMUONPainterMatrix.cxx:512 AliMUONPainterMatrix.cxx:513 AliMUONPainterMatrix.cxx:514 AliMUONPainterMatrix.cxx:515 AliMUONPainterMatrix.cxx:516 AliMUONPainterMatrix.cxx:517 AliMUONPainterMatrix.cxx:518 AliMUONPainterMatrix.cxx:519 AliMUONPainterMatrix.cxx:520 AliMUONPainterMatrix.cxx:521 AliMUONPainterMatrix.cxx:522 AliMUONPainterMatrix.cxx:523 AliMUONPainterMatrix.cxx:524 AliMUONPainterMatrix.cxx:525 AliMUONPainterMatrix.cxx:526 AliMUONPainterMatrix.cxx:527 AliMUONPainterMatrix.cxx:528 AliMUONPainterMatrix.cxx:529 AliMUONPainterMatrix.cxx:530 AliMUONPainterMatrix.cxx:531 AliMUONPainterMatrix.cxx:532 AliMUONPainterMatrix.cxx:533 AliMUONPainterMatrix.cxx:534 AliMUONPainterMatrix.cxx:535 AliMUONPainterMatrix.cxx:536 AliMUONPainterMatrix.cxx:537 AliMUONPainterMatrix.cxx:538 AliMUONPainterMatrix.cxx:539 AliMUONPainterMatrix.cxx:540 AliMUONPainterMatrix.cxx:541 AliMUONPainterMatrix.cxx:542 AliMUONPainterMatrix.cxx:543 AliMUONPainterMatrix.cxx:544 AliMUONPainterMatrix.cxx:545 AliMUONPainterMatrix.cxx:546 AliMUONPainterMatrix.cxx:547 AliMUONPainterMatrix.cxx:548 AliMUONPainterMatrix.cxx:549 AliMUONPainterMatrix.cxx:550 AliMUONPainterMatrix.cxx:551 AliMUONPainterMatrix.cxx:552 AliMUONPainterMatrix.cxx:553 AliMUONPainterMatrix.cxx:554 AliMUONPainterMatrix.cxx:555 AliMUONPainterMatrix.cxx:556 AliMUONPainterMatrix.cxx:557 AliMUONPainterMatrix.cxx:558 AliMUONPainterMatrix.cxx:559 AliMUONPainterMatrix.cxx:560 AliMUONPainterMatrix.cxx:561 AliMUONPainterMatrix.cxx:562 AliMUONPainterMatrix.cxx:563 AliMUONPainterMatrix.cxx:564 AliMUONPainterMatrix.cxx:565 AliMUONPainterMatrix.cxx:566 AliMUONPainterMatrix.cxx:567 AliMUONPainterMatrix.cxx:568 AliMUONPainterMatrix.cxx:569 AliMUONPainterMatrix.cxx:570 AliMUONPainterMatrix.cxx:571 AliMUONPainterMatrix.cxx:572 AliMUONPainterMatrix.cxx:573 AliMUONPainterMatrix.cxx:574 AliMUONPainterMatrix.cxx:575 AliMUONPainterMatrix.cxx:576 AliMUONPainterMatrix.cxx:577 AliMUONPainterMatrix.cxx:578 AliMUONPainterMatrix.cxx:579 AliMUONPainterMatrix.cxx:580 AliMUONPainterMatrix.cxx:581 AliMUONPainterMatrix.cxx:582 AliMUONPainterMatrix.cxx:583 AliMUONPainterMatrix.cxx:584 AliMUONPainterMatrix.cxx:585 AliMUONPainterMatrix.cxx:586 AliMUONPainterMatrix.cxx:587 AliMUONPainterMatrix.cxx:588 AliMUONPainterMatrix.cxx:589 AliMUONPainterMatrix.cxx:590 AliMUONPainterMatrix.cxx:591 AliMUONPainterMatrix.cxx:592 AliMUONPainterMatrix.cxx:593 AliMUONPainterMatrix.cxx:594 AliMUONPainterMatrix.cxx:595 AliMUONPainterMatrix.cxx:596 AliMUONPainterMatrix.cxx:597 AliMUONPainterMatrix.cxx:598 AliMUONPainterMatrix.cxx:599 AliMUONPainterMatrix.cxx:600 AliMUONPainterMatrix.cxx:601 AliMUONPainterMatrix.cxx:602 AliMUONPainterMatrix.cxx:603 AliMUONPainterMatrix.cxx:604 AliMUONPainterMatrix.cxx:605 AliMUONPainterMatrix.cxx:606 AliMUONPainterMatrix.cxx:607 AliMUONPainterMatrix.cxx:608 AliMUONPainterMatrix.cxx:609 AliMUONPainterMatrix.cxx:610 AliMUONPainterMatrix.cxx:611