#include "AliMUONPainterPlotSelector.h"
#include "AliMUONPainterGroup.h"
#include "AliMUONPainterInterfaceHelper.h"
#include "AliMUONPainterMatrix.h"
#include "AliMUONPainterDataRegistry.h"
#include "AliMUONVPainter.h"
#include "AliMUONVTrackerData.h"
#include "AliLog.h"
#include <Riostream.h>
#include <TGButton.h>
#include <TGButtonGroup.h>
#include <TObjArray.h>
#include <TObjString.h>
ClassImp(AliMUONPainterPlotSelector)
const char* AliMUONPainterPlotSelector::fgkDefaultSourceName = "none";
AliMUONPainterPlotSelector::AliMUONPainterPlotSelector(const TGWindow* window, UInt_t w, UInt_t h)
: TGCompositeFrame(window,w,h,kHorizontalFrame),
fTypes(0x0),
fDataSourceNames(0x0),
fDataSourceDimensions(0x0),
fDimensionButtonMap(new TMap),
fCurrentType(""),
fCurrentData(0x0),
fCurrentDimension(-1)
{
fTypes = new TGButtonGroup(this,"Plot");
fDataSourceNames = new TGButtonGroup(this,"Sources");
AliMUONPainterDataRegistry* reg = AliMUONPainterDataRegistry::Instance();
reg->Connect("DataSourceWasRegistered(AliMUONVTrackerData*)",
"AliMUONPainterPlotSelector",
this,
"DataSourceWasRegistered(AliMUONVTrackerData*)");
reg->Connect("DataSourceWasUnregistered(AliMUONVTrackerData*)",
"AliMUONPainterPlotSelector",
this,
"DataSourceWasUnregistered(AliMUONVTrackerData*)");
AliMUONPainterInterfaceHelper::AddRadioButton(*fDataSourceNames,
fgkDefaultSourceName,
0x0,
kTRUE);
CreateDimensionButtons(fgkDefaultSourceName);
fDataSourceDimensions = new TGButtonGroup(this,0,3,5,0,"Dimensions");
for ( Int_t i = 0; i < reg->NumberOfDataSources(); ++i )
{
AliMUONVTrackerData* data = reg->DataSource(i);
DataSourceWasRegistered(data);
}
fDataSourceNames->Connect("Clicked(Int_t)","AliMUONPainterPlotSelector",
this,
"SourceButtonWasClicked(Int_t)");
AddFrame(fTypes);
AddFrame(fDataSourceNames);
AddFrame(fDataSourceDimensions);
}
AliMUONPainterPlotSelector::~AliMUONPainterPlotSelector()
{
}
void
AliMUONPainterPlotSelector::BackupDimensionButtons()
{
TString name = fDataSourceDimensions->GetTitle();
AliDebug(1,Form("name %s",name.Data()));
if ( name != fgkDefaultSourceName )
{
TGButtonGroup* group = static_cast<TGButtonGroup*>(fDimensionButtonMap->GetValue(name));
if (!group)
{
AliError(Form("Did not find group %s",name.Data()));
}
else
{
AliMUONPainterInterfaceHelper::Copy(*fDataSourceDimensions,*group);
}
}
fDataSourceDimensions->Disconnect("Clicked(Int_t)",
this,
"DimensionButtonWasClicked(Int_t)");
}
void
AliMUONPainterPlotSelector::CreateDimensionButtons(const char* dataSourceName)
{
AliDebug(1,Form("Creating dimension buttons for dataSource %s",dataSourceName));
AliMUONVTrackerData* data = AliMUONPainterDataRegistry::Instance()->DataSource(dataSourceName);
TGButtonGroup* bg = new TGButtonGroup(this,0,3,5,0,dataSourceName);
if ( data )
{
for ( Int_t i = 0; i < data->NumberOfDimensions(); ++i )
{
AliMUONPainterInterfaceHelper::AddRadioButton(*bg,
data->DimensionName(i),
reinterpret_cast<void*>(i));
}
}
fDimensionButtonMap->Add(new TObjString(dataSourceName),bg);
AliDebug(1,Form("bg is %p Count=%d",bg,bg->GetCount()));
StdoutToAliDebug(1,AliMUONPainterInterfaceHelper::Dump(*bg));
bg->Connect("Clicked(Int_t)","AliMUONPainterPlotSelector",this,
"DimensionButtonWasClicked(Int_t)");
}
void
AliMUONPainterPlotSelector::CreateTypeButtons(const TObjArray& types)
{
AliMUONPainterInterfaceHelper::ClearButtons(*fTypes);
TIter nextType(&types);
TObjString* str;
while ( ( str = static_cast<TObjString*>(nextType()) ) )
{
AliMUONPainterInterfaceHelper::AddRadioButton(*fTypes,str->String());
}
fTypes->Connect("Clicked(Int_t)","AliMUONPainterPlotSelector",this,
"TypeButtonWasClicked(Int_t)");
fTypes->Show();
}
void
AliMUONPainterPlotSelector::DataSourceWasChanged()
{
DataSourceWasChanged(fCurrentType.Data(),fCurrentData,fCurrentDimension);
}
void
AliMUONPainterPlotSelector::DataSourceWasChanged(const char* type,
AliMUONVTrackerData* data,
Int_t dataIndex)
{
AliDebug(1,Form("type=%s data=%s (%s)",
type,
( data ? data->GetName() : "" ),
( ( data && dataIndex >= 0 ) ? data->DimensionName(dataIndex).Data() :
"")));
UpdateTypeButton();
Long_t param[] = { (Long_t)type, (Long_t)data,
(Long_t)dataIndex };
Emit("DataSourceWasChanged(const char*,AliMUONVTrackerData*,Int_t)",param);
}
void
AliMUONPainterPlotSelector::DataSourceWasRegistered(AliMUONVTrackerData* data)
{
AliDebug(1,Form("Registering %s",data->GetName()));
AliMUONPainterInterfaceHelper::AddRadioButton(*fDataSourceNames,
data->GetName(),
data);
data->Connect("NumberOfEventsChanged()",
"AliMUONPainterPlotSelector",
this,
"NumberOfEventsChanged()");
CreateDimensionButtons(data->GetName());
fDataSourceNames->Show();
Layout();
}
void
AliMUONPainterPlotSelector::NumberOfEventsChanged()
{
}
void
AliMUONPainterPlotSelector::DataSourceWasUnregistered(AliMUONVTrackerData* data)
{
TGButton* button = AliMUONPainterInterfaceHelper::FindButtonByUserData(*fDataSourceNames,data);
TGButton* bd = AliMUONPainterInterfaceHelper::FindDownButton(*fDataSourceNames);
if ( bd == button )
{
SourceButtonWasClicked(1);
}
AliMUONPainterInterfaceHelper::RemoveButton(*fDataSourceNames,button);
fDataSourceNames->Connect("Clicked(Int_t)","AliMUONPainterPlotSelector",
this,
"SourceButtonWasClicked(Int_t)");
TObject* o = fDimensionButtonMap->Remove(new TObjString(data->GetName()));
if (!o)
{
AliError("Remove failed. Please check");
}
fDataSourceNames->Show();
Layout();
}
void
AliMUONPainterPlotSelector::DimensionButtonWasClicked(Int_t id)
{
AliDebug(1,Form("id=%d",id));
TGTextButton* button = (TGTextButton*)fDataSourceDimensions->GetButton(id);
SetCurrentDimension(reinterpret_cast<Long_t>(button->GetUserData()));
if ( fCurrentDimension >= 0 )
{
AliMUONPainterInterfaceHelper::SetState(*fTypes,kTRUE);
AliMUONPainterInterfaceHelper::Select(*fTypes,fCurrentType.Data(),kFALSE);
fTypes->Show();
}
AliDebug(1,Form("fCurrentDimension=%ld fCurrentData=%p fCurrentType=%s",
fCurrentDimension,fCurrentData,fCurrentType.Data()));
DataSourceWasChanged();
}
void
AliMUONPainterPlotSelector::ResetDimensionButtonMap()
{
TIter next(fDimensionButtonMap);
TObjString* str;
while ( ( str = static_cast<TObjString*>(next()) ) )
{
TGButtonGroup* bg = static_cast<TGButtonGroup*>(fDimensionButtonMap->GetValue(str->String()));
AliMUONPainterInterfaceHelper::Unselect(*bg,"*");
}
}
void
AliMUONPainterPlotSelector::RestoreDimensionButtons(const char* dataSourceName,
Bool_t updateCurrentDimension)
{
AliDebug(1,Form("name %s",dataSourceName));
TGButtonGroup* group = static_cast<TGButtonGroup*>(fDimensionButtonMap->GetValue(dataSourceName));
AliMUONPainterInterfaceHelper::Copy(*group,*fDataSourceDimensions);
fDataSourceDimensions->Connect("Clicked(Int_t)",
"AliMUONPainterPlotSelector",this,
"DimensionButtonWasClicked(Int_t)");
if ( updateCurrentDimension )
{
TGButton* button = AliMUONPainterInterfaceHelper::FindDownButton(*fDataSourceDimensions);
if ( button )
{
SetCurrentDimension(reinterpret_cast<Long_t>(button->GetUserData()));
}
else
{
SetCurrentDimension(-1);
}
}
fDataSourceDimensions->Show();
}
void
AliMUONPainterPlotSelector::SetCurrentData(AliMUONVTrackerData* data)
{
AliDebug(1,Form("fCurrentData %p -> %p",fCurrentData,data));
fCurrentData = data;
}
void
AliMUONPainterPlotSelector::SetCurrentDimension(Long_t i)
{
AliDebug(1,Form("fCurrentDimension %ld -> %ld",fCurrentDimension,i));
fCurrentDimension = i;
}
void
AliMUONPainterPlotSelector::SetCurrentType(const char* type)
{
AliDebug(1,Form("fCurrentType %s -> %s",fCurrentType.Data(),type));
fCurrentType = type;
}
void
AliMUONPainterPlotSelector::SourceButtonWasClicked(Int_t id)
{
AliDebug(1,Form("BEGIN id %d fCurrentDimension=%ld fCurrentData=%p fCurrentType=%s",
id,
fCurrentDimension,fCurrentData,fCurrentType.Data()));
BackupDimensionButtons();
TGButton* button = fDataSourceNames->GetButton(id);
if ( !button )
{
StdoutToAliDebug(1,AliMUONPainterInterfaceHelper::Dump(*fDataSourceNames));
AliFatal(Form("Could not get DataSource button id=%d",id));
}
AliMUONVTrackerData* data = reinterpret_cast<AliMUONVTrackerData*>(button->GetUserData());
TString name = data ? data->GetName() : fgkDefaultSourceName;
RestoreDimensionButtons(name,kTRUE);
if ( data != 0 &&
fCurrentDimension >= 0 &&
fCurrentDimension < (Long_t)(data->NumberOfDimensions()) )
{
AliMUONPainterInterfaceHelper::SetState(*fTypes,kTRUE);
}
else
{
AliMUONPainterInterfaceHelper::SetState(*fTypes,kFALSE);
}
SetCurrentData(data);
UpdateTypeButton();
fDataSourceNames->Show();
fDataSourceDimensions->Show();
fTypes->Show();
Resize();
Layout();
AliDebug(1,Form("END fCurrentDimension=%ld fCurrentData=%p fCurrentType=%s",
fCurrentDimension,fCurrentData,fCurrentType.Data()));
DataSourceWasChanged();
}
void
AliMUONPainterPlotSelector::TypeButtonWasClicked(Int_t id)
{
AliDebug(1,Form("fCurrentDimension=%ld fCurrentData=%p",
fCurrentDimension,fCurrentData));
TGTextButton* button = (TGTextButton*)fTypes->GetButton(id);
SetCurrentType(button->GetTitle());
AliDebug(1,Form("fCurrentType=%s",fCurrentType.Data()));
DataSourceWasChanged();
}
void AliMUONPainterPlotSelector::Update(const AliMUONPainterMatrix& painterMatrix)
{
AliDebug(1,"BEGIN");
SetCurrentType("");
SetCurrentData(0x0);
SetCurrentDimension(-1);
AliMUONPainterInterfaceHelper::Unselect(*fDataSourceNames,"*");
AliMUONPainterInterfaceHelper::Unselect(*fDataSourceDimensions,"*");
ResetDimensionButtonMap();
TObjArray types;
types.SetOwner(kTRUE);
painterMatrix.GetTypes(types);
CreateTypeButtons(types);
if ( painterMatrix.Size() > 0 )
{
AliMUONVPainter* painter = painterMatrix.Painter(painterMatrix.Size()-1);
AliMUONPainterGroup* plotterGroup = painter->PlotterGroup();
if ( plotterGroup )
{
SetCurrentData(plotterGroup->Data());
SetCurrentDimension(plotterGroup->DataIndex());
SetCurrentType(plotterGroup->Type());
}
}
AliDebug(1,Form("After update type=%s data=%p dim=%ld",
fCurrentType.Data(),fCurrentData,fCurrentDimension));
AliDebug(1,"Will update source buttons");
UpdateSourceButton();
AliDebug(1,"Will update dimension buttons");
UpdateDimensionButton();
AliDebug(1,"Will update type buttons");
UpdateTypeButton();
Resize();
Layout();
AliDebug(1,Form("END fCurrentType=%s fCurrentData=%p fCurrentDimension=%ld",
fCurrentType.Data(),fCurrentData,
fCurrentDimension));
}
void
AliMUONPainterPlotSelector::UpdateDimensionButton()
{
TGTextButton* button = static_cast<TGTextButton*>
(AliMUONPainterInterfaceHelper::FindButtonByUserData(*fDataSourceDimensions,
reinterpret_cast<void*>(fCurrentDimension)));
if ( button )
{
AliMUONPainterInterfaceHelper::Select(*fDataSourceDimensions,button->GetTitle());
}
else
{
AliMUONPainterInterfaceHelper::Unselect(*fDataSourceDimensions,"*");
}
fDataSourceDimensions->Show();
}
void
AliMUONPainterPlotSelector::UpdateSourceButton()
{
TGTextButton* button = static_cast<TGTextButton*>
(AliMUONPainterInterfaceHelper::FindButtonByUserData(*fDataSourceNames,
fCurrentData));
if ( button )
{
AliMUONPainterInterfaceHelper::Select(*fDataSourceNames,button->GetTitle());
RestoreDimensionButtons(button->GetTitle(),kFALSE);
}
fDataSourceNames->Show();
}
void
AliMUONPainterPlotSelector::UpdateTypeButton()
{
AliDebug(1,Form("fCurrentType=%s",fCurrentType.Data()));
if (!fCurrentData)
{
AliMUONPainterInterfaceHelper::SetState(*fTypes,kFALSE);
}
else
{
TGTextButton* padButton = static_cast<TGTextButton*>
(AliMUONPainterInterfaceHelper::FindButtonByName(*fTypes,"PAD"));
if (padButton)
{
padButton->SetEnabled(fCurrentData->IsChannelLevelEnabled());
}
TGTextButton* manuButton = static_cast<TGTextButton*>
(AliMUONPainterInterfaceHelper::FindButtonByName(*fTypes,"MANU"));
if (manuButton)
{
manuButton->SetEnabled(fCurrentData->IsManuLevelEnabled());
}
TGTextButton* busPatchButton = static_cast<TGTextButton*>
(AliMUONPainterInterfaceHelper::FindButtonByName(*fTypes,"BUSPATCH"));
if (busPatchButton)
{
busPatchButton->SetEnabled(fCurrentData->IsBusPatchLevelEnabled());
}
TGTextButton* pcbButton = static_cast<TGTextButton*>
(AliMUONPainterInterfaceHelper::FindButtonByName(*fTypes,"PCB"));
if (pcbButton)
{
pcbButton->SetEnabled(fCurrentData->IsPCBLevelEnabled());
}
}
TGTextButton* button = static_cast<TGTextButton*>
(AliMUONPainterInterfaceHelper::FindButtonByName(*fTypes,fCurrentType));
if ( button )
{
AliMUONPainterInterfaceHelper::Select(*fTypes,button->GetTitle());
}
else
{
AliMUONPainterInterfaceHelper::Unselect(*fTypes,"*");
}
fTypes->Show();
}
AliMUONPainterPlotSelector.cxx:1 AliMUONPainterPlotSelector.cxx:2 AliMUONPainterPlotSelector.cxx:3 AliMUONPainterPlotSelector.cxx:4 AliMUONPainterPlotSelector.cxx:5 AliMUONPainterPlotSelector.cxx:6 AliMUONPainterPlotSelector.cxx:7 AliMUONPainterPlotSelector.cxx:8 AliMUONPainterPlotSelector.cxx:9 AliMUONPainterPlotSelector.cxx:10 AliMUONPainterPlotSelector.cxx:11 AliMUONPainterPlotSelector.cxx:12 AliMUONPainterPlotSelector.cxx:13 AliMUONPainterPlotSelector.cxx:14 AliMUONPainterPlotSelector.cxx:15 AliMUONPainterPlotSelector.cxx:16 AliMUONPainterPlotSelector.cxx:17 AliMUONPainterPlotSelector.cxx:18 AliMUONPainterPlotSelector.cxx:19 AliMUONPainterPlotSelector.cxx:20 AliMUONPainterPlotSelector.cxx:21 AliMUONPainterPlotSelector.cxx:22 AliMUONPainterPlotSelector.cxx:23 AliMUONPainterPlotSelector.cxx:24 AliMUONPainterPlotSelector.cxx:25 AliMUONPainterPlotSelector.cxx:26 AliMUONPainterPlotSelector.cxx:27 AliMUONPainterPlotSelector.cxx:28 AliMUONPainterPlotSelector.cxx:29 AliMUONPainterPlotSelector.cxx:30 AliMUONPainterPlotSelector.cxx:31 AliMUONPainterPlotSelector.cxx:32 AliMUONPainterPlotSelector.cxx:33 AliMUONPainterPlotSelector.cxx:34 AliMUONPainterPlotSelector.cxx:35 AliMUONPainterPlotSelector.cxx:36 AliMUONPainterPlotSelector.cxx:37 AliMUONPainterPlotSelector.cxx:38 AliMUONPainterPlotSelector.cxx:39 AliMUONPainterPlotSelector.cxx:40 AliMUONPainterPlotSelector.cxx:41 AliMUONPainterPlotSelector.cxx:42 AliMUONPainterPlotSelector.cxx:43 AliMUONPainterPlotSelector.cxx:44 AliMUONPainterPlotSelector.cxx:45 AliMUONPainterPlotSelector.cxx:46 AliMUONPainterPlotSelector.cxx:47 AliMUONPainterPlotSelector.cxx:48 AliMUONPainterPlotSelector.cxx:49 AliMUONPainterPlotSelector.cxx:50 AliMUONPainterPlotSelector.cxx:51 AliMUONPainterPlotSelector.cxx:52 AliMUONPainterPlotSelector.cxx:53 AliMUONPainterPlotSelector.cxx:54 AliMUONPainterPlotSelector.cxx:55 AliMUONPainterPlotSelector.cxx:56 AliMUONPainterPlotSelector.cxx:57 AliMUONPainterPlotSelector.cxx:58 AliMUONPainterPlotSelector.cxx:59 AliMUONPainterPlotSelector.cxx:60 AliMUONPainterPlotSelector.cxx:61 AliMUONPainterPlotSelector.cxx:62 AliMUONPainterPlotSelector.cxx:63 AliMUONPainterPlotSelector.cxx:64 AliMUONPainterPlotSelector.cxx:65 AliMUONPainterPlotSelector.cxx:66 AliMUONPainterPlotSelector.cxx:67 AliMUONPainterPlotSelector.cxx:68 AliMUONPainterPlotSelector.cxx:69 AliMUONPainterPlotSelector.cxx:70 AliMUONPainterPlotSelector.cxx:71 AliMUONPainterPlotSelector.cxx:72 AliMUONPainterPlotSelector.cxx:73 AliMUONPainterPlotSelector.cxx:74 AliMUONPainterPlotSelector.cxx:75 AliMUONPainterPlotSelector.cxx:76 AliMUONPainterPlotSelector.cxx:77 AliMUONPainterPlotSelector.cxx:78 AliMUONPainterPlotSelector.cxx:79 AliMUONPainterPlotSelector.cxx:80 AliMUONPainterPlotSelector.cxx:81 AliMUONPainterPlotSelector.cxx:82 AliMUONPainterPlotSelector.cxx:83 AliMUONPainterPlotSelector.cxx:84 AliMUONPainterPlotSelector.cxx:85 AliMUONPainterPlotSelector.cxx:86 AliMUONPainterPlotSelector.cxx:87 AliMUONPainterPlotSelector.cxx:88 AliMUONPainterPlotSelector.cxx:89 AliMUONPainterPlotSelector.cxx:90 AliMUONPainterPlotSelector.cxx:91 AliMUONPainterPlotSelector.cxx:92 AliMUONPainterPlotSelector.cxx:93 AliMUONPainterPlotSelector.cxx:94 AliMUONPainterPlotSelector.cxx:95 AliMUONPainterPlotSelector.cxx:96 AliMUONPainterPlotSelector.cxx:97 AliMUONPainterPlotSelector.cxx:98 AliMUONPainterPlotSelector.cxx:99 AliMUONPainterPlotSelector.cxx:100 AliMUONPainterPlotSelector.cxx:101 AliMUONPainterPlotSelector.cxx:102 AliMUONPainterPlotSelector.cxx:103 AliMUONPainterPlotSelector.cxx:104 AliMUONPainterPlotSelector.cxx:105 AliMUONPainterPlotSelector.cxx:106 AliMUONPainterPlotSelector.cxx:107 AliMUONPainterPlotSelector.cxx:108 AliMUONPainterPlotSelector.cxx:109 AliMUONPainterPlotSelector.cxx:110 AliMUONPainterPlotSelector.cxx:111 AliMUONPainterPlotSelector.cxx:112 AliMUONPainterPlotSelector.cxx:113 AliMUONPainterPlotSelector.cxx:114 AliMUONPainterPlotSelector.cxx:115 AliMUONPainterPlotSelector.cxx:116 AliMUONPainterPlotSelector.cxx:117 AliMUONPainterPlotSelector.cxx:118 AliMUONPainterPlotSelector.cxx:119 AliMUONPainterPlotSelector.cxx:120 AliMUONPainterPlotSelector.cxx:121 AliMUONPainterPlotSelector.cxx:122 AliMUONPainterPlotSelector.cxx:123 AliMUONPainterPlotSelector.cxx:124 AliMUONPainterPlotSelector.cxx:125 AliMUONPainterPlotSelector.cxx:126 AliMUONPainterPlotSelector.cxx:127 AliMUONPainterPlotSelector.cxx:128 AliMUONPainterPlotSelector.cxx:129 AliMUONPainterPlotSelector.cxx:130 AliMUONPainterPlotSelector.cxx:131 AliMUONPainterPlotSelector.cxx:132 AliMUONPainterPlotSelector.cxx:133 AliMUONPainterPlotSelector.cxx:134 AliMUONPainterPlotSelector.cxx:135 AliMUONPainterPlotSelector.cxx:136 AliMUONPainterPlotSelector.cxx:137 AliMUONPainterPlotSelector.cxx:138 AliMUONPainterPlotSelector.cxx:139 AliMUONPainterPlotSelector.cxx:140 AliMUONPainterPlotSelector.cxx:141 AliMUONPainterPlotSelector.cxx:142 AliMUONPainterPlotSelector.cxx:143 AliMUONPainterPlotSelector.cxx:144 AliMUONPainterPlotSelector.cxx:145 AliMUONPainterPlotSelector.cxx:146 AliMUONPainterPlotSelector.cxx:147 AliMUONPainterPlotSelector.cxx:148 AliMUONPainterPlotSelector.cxx:149 AliMUONPainterPlotSelector.cxx:150 AliMUONPainterPlotSelector.cxx:151 AliMUONPainterPlotSelector.cxx:152 AliMUONPainterPlotSelector.cxx:153 AliMUONPainterPlotSelector.cxx:154 AliMUONPainterPlotSelector.cxx:155 AliMUONPainterPlotSelector.cxx:156 AliMUONPainterPlotSelector.cxx:157 AliMUONPainterPlotSelector.cxx:158 AliMUONPainterPlotSelector.cxx:159 AliMUONPainterPlotSelector.cxx:160 AliMUONPainterPlotSelector.cxx:161 AliMUONPainterPlotSelector.cxx:162 AliMUONPainterPlotSelector.cxx:163 AliMUONPainterPlotSelector.cxx:164 AliMUONPainterPlotSelector.cxx:165 AliMUONPainterPlotSelector.cxx:166 AliMUONPainterPlotSelector.cxx:167 AliMUONPainterPlotSelector.cxx:168 AliMUONPainterPlotSelector.cxx:169 AliMUONPainterPlotSelector.cxx:170 AliMUONPainterPlotSelector.cxx:171 AliMUONPainterPlotSelector.cxx:172 AliMUONPainterPlotSelector.cxx:173 AliMUONPainterPlotSelector.cxx:174 AliMUONPainterPlotSelector.cxx:175 AliMUONPainterPlotSelector.cxx:176 AliMUONPainterPlotSelector.cxx:177 AliMUONPainterPlotSelector.cxx:178 AliMUONPainterPlotSelector.cxx:179 AliMUONPainterPlotSelector.cxx:180 AliMUONPainterPlotSelector.cxx:181 AliMUONPainterPlotSelector.cxx:182 AliMUONPainterPlotSelector.cxx:183 AliMUONPainterPlotSelector.cxx:184 AliMUONPainterPlotSelector.cxx:185 AliMUONPainterPlotSelector.cxx:186 AliMUONPainterPlotSelector.cxx:187 AliMUONPainterPlotSelector.cxx:188 AliMUONPainterPlotSelector.cxx:189 AliMUONPainterPlotSelector.cxx:190 AliMUONPainterPlotSelector.cxx:191 AliMUONPainterPlotSelector.cxx:192 AliMUONPainterPlotSelector.cxx:193 AliMUONPainterPlotSelector.cxx:194 AliMUONPainterPlotSelector.cxx:195 AliMUONPainterPlotSelector.cxx:196 AliMUONPainterPlotSelector.cxx:197 AliMUONPainterPlotSelector.cxx:198 AliMUONPainterPlotSelector.cxx:199 AliMUONPainterPlotSelector.cxx:200 AliMUONPainterPlotSelector.cxx:201 AliMUONPainterPlotSelector.cxx:202 AliMUONPainterPlotSelector.cxx:203 AliMUONPainterPlotSelector.cxx:204 AliMUONPainterPlotSelector.cxx:205 AliMUONPainterPlotSelector.cxx:206 AliMUONPainterPlotSelector.cxx:207 AliMUONPainterPlotSelector.cxx:208 AliMUONPainterPlotSelector.cxx:209 AliMUONPainterPlotSelector.cxx:210 AliMUONPainterPlotSelector.cxx:211 AliMUONPainterPlotSelector.cxx:212 AliMUONPainterPlotSelector.cxx:213 AliMUONPainterPlotSelector.cxx:214 AliMUONPainterPlotSelector.cxx:215 AliMUONPainterPlotSelector.cxx:216 AliMUONPainterPlotSelector.cxx:217 AliMUONPainterPlotSelector.cxx:218 AliMUONPainterPlotSelector.cxx:219 AliMUONPainterPlotSelector.cxx:220 AliMUONPainterPlotSelector.cxx:221 AliMUONPainterPlotSelector.cxx:222 AliMUONPainterPlotSelector.cxx:223 AliMUONPainterPlotSelector.cxx:224 AliMUONPainterPlotSelector.cxx:225 AliMUONPainterPlotSelector.cxx:226 AliMUONPainterPlotSelector.cxx:227 AliMUONPainterPlotSelector.cxx:228 AliMUONPainterPlotSelector.cxx:229 AliMUONPainterPlotSelector.cxx:230 AliMUONPainterPlotSelector.cxx:231 AliMUONPainterPlotSelector.cxx:232 AliMUONPainterPlotSelector.cxx:233 AliMUONPainterPlotSelector.cxx:234 AliMUONPainterPlotSelector.cxx:235 AliMUONPainterPlotSelector.cxx:236 AliMUONPainterPlotSelector.cxx:237 AliMUONPainterPlotSelector.cxx:238 AliMUONPainterPlotSelector.cxx:239 AliMUONPainterPlotSelector.cxx:240 AliMUONPainterPlotSelector.cxx:241 AliMUONPainterPlotSelector.cxx:242 AliMUONPainterPlotSelector.cxx:243 AliMUONPainterPlotSelector.cxx:244 AliMUONPainterPlotSelector.cxx:245 AliMUONPainterPlotSelector.cxx:246 AliMUONPainterPlotSelector.cxx:247 AliMUONPainterPlotSelector.cxx:248 AliMUONPainterPlotSelector.cxx:249 AliMUONPainterPlotSelector.cxx:250 AliMUONPainterPlotSelector.cxx:251 AliMUONPainterPlotSelector.cxx:252 AliMUONPainterPlotSelector.cxx:253 AliMUONPainterPlotSelector.cxx:254 AliMUONPainterPlotSelector.cxx:255 AliMUONPainterPlotSelector.cxx:256 AliMUONPainterPlotSelector.cxx:257 AliMUONPainterPlotSelector.cxx:258 AliMUONPainterPlotSelector.cxx:259 AliMUONPainterPlotSelector.cxx:260 AliMUONPainterPlotSelector.cxx:261 AliMUONPainterPlotSelector.cxx:262 AliMUONPainterPlotSelector.cxx:263 AliMUONPainterPlotSelector.cxx:264 AliMUONPainterPlotSelector.cxx:265 AliMUONPainterPlotSelector.cxx:266 AliMUONPainterPlotSelector.cxx:267 AliMUONPainterPlotSelector.cxx:268 AliMUONPainterPlotSelector.cxx:269 AliMUONPainterPlotSelector.cxx:270 AliMUONPainterPlotSelector.cxx:271 AliMUONPainterPlotSelector.cxx:272 AliMUONPainterPlotSelector.cxx:273 AliMUONPainterPlotSelector.cxx:274 AliMUONPainterPlotSelector.cxx:275 AliMUONPainterPlotSelector.cxx:276 AliMUONPainterPlotSelector.cxx:277 AliMUONPainterPlotSelector.cxx:278 AliMUONPainterPlotSelector.cxx:279 AliMUONPainterPlotSelector.cxx:280 AliMUONPainterPlotSelector.cxx:281 AliMUONPainterPlotSelector.cxx:282 AliMUONPainterPlotSelector.cxx:283 AliMUONPainterPlotSelector.cxx:284 AliMUONPainterPlotSelector.cxx:285 AliMUONPainterPlotSelector.cxx:286 AliMUONPainterPlotSelector.cxx:287 AliMUONPainterPlotSelector.cxx:288 AliMUONPainterPlotSelector.cxx:289 AliMUONPainterPlotSelector.cxx:290 AliMUONPainterPlotSelector.cxx:291 AliMUONPainterPlotSelector.cxx:292 AliMUONPainterPlotSelector.cxx:293 AliMUONPainterPlotSelector.cxx:294 AliMUONPainterPlotSelector.cxx:295 AliMUONPainterPlotSelector.cxx:296 AliMUONPainterPlotSelector.cxx:297 AliMUONPainterPlotSelector.cxx:298 AliMUONPainterPlotSelector.cxx:299 AliMUONPainterPlotSelector.cxx:300 AliMUONPainterPlotSelector.cxx:301 AliMUONPainterPlotSelector.cxx:302 AliMUONPainterPlotSelector.cxx:303 AliMUONPainterPlotSelector.cxx:304 AliMUONPainterPlotSelector.cxx:305 AliMUONPainterPlotSelector.cxx:306 AliMUONPainterPlotSelector.cxx:307 AliMUONPainterPlotSelector.cxx:308 AliMUONPainterPlotSelector.cxx:309 AliMUONPainterPlotSelector.cxx:310 AliMUONPainterPlotSelector.cxx:311 AliMUONPainterPlotSelector.cxx:312 AliMUONPainterPlotSelector.cxx:313 AliMUONPainterPlotSelector.cxx:314 AliMUONPainterPlotSelector.cxx:315 AliMUONPainterPlotSelector.cxx:316 AliMUONPainterPlotSelector.cxx:317 AliMUONPainterPlotSelector.cxx:318 AliMUONPainterPlotSelector.cxx:319 AliMUONPainterPlotSelector.cxx:320 AliMUONPainterPlotSelector.cxx:321 AliMUONPainterPlotSelector.cxx:322 AliMUONPainterPlotSelector.cxx:323 AliMUONPainterPlotSelector.cxx:324 AliMUONPainterPlotSelector.cxx:325 AliMUONPainterPlotSelector.cxx:326 AliMUONPainterPlotSelector.cxx:327 AliMUONPainterPlotSelector.cxx:328 AliMUONPainterPlotSelector.cxx:329 AliMUONPainterPlotSelector.cxx:330 AliMUONPainterPlotSelector.cxx:331 AliMUONPainterPlotSelector.cxx:332 AliMUONPainterPlotSelector.cxx:333 AliMUONPainterPlotSelector.cxx:334 AliMUONPainterPlotSelector.cxx:335 AliMUONPainterPlotSelector.cxx:336 AliMUONPainterPlotSelector.cxx:337 AliMUONPainterPlotSelector.cxx:338 AliMUONPainterPlotSelector.cxx:339 AliMUONPainterPlotSelector.cxx:340 AliMUONPainterPlotSelector.cxx:341 AliMUONPainterPlotSelector.cxx:342 AliMUONPainterPlotSelector.cxx:343 AliMUONPainterPlotSelector.cxx:344 AliMUONPainterPlotSelector.cxx:345 AliMUONPainterPlotSelector.cxx:346 AliMUONPainterPlotSelector.cxx:347 AliMUONPainterPlotSelector.cxx:348 AliMUONPainterPlotSelector.cxx:349 AliMUONPainterPlotSelector.cxx:350 AliMUONPainterPlotSelector.cxx:351 AliMUONPainterPlotSelector.cxx:352 AliMUONPainterPlotSelector.cxx:353 AliMUONPainterPlotSelector.cxx:354 AliMUONPainterPlotSelector.cxx:355 AliMUONPainterPlotSelector.cxx:356 AliMUONPainterPlotSelector.cxx:357 AliMUONPainterPlotSelector.cxx:358 AliMUONPainterPlotSelector.cxx:359 AliMUONPainterPlotSelector.cxx:360 AliMUONPainterPlotSelector.cxx:361 AliMUONPainterPlotSelector.cxx:362 AliMUONPainterPlotSelector.cxx:363 AliMUONPainterPlotSelector.cxx:364 AliMUONPainterPlotSelector.cxx:365 AliMUONPainterPlotSelector.cxx:366 AliMUONPainterPlotSelector.cxx:367 AliMUONPainterPlotSelector.cxx:368 AliMUONPainterPlotSelector.cxx:369 AliMUONPainterPlotSelector.cxx:370 AliMUONPainterPlotSelector.cxx:371 AliMUONPainterPlotSelector.cxx:372 AliMUONPainterPlotSelector.cxx:373 AliMUONPainterPlotSelector.cxx:374 AliMUONPainterPlotSelector.cxx:375 AliMUONPainterPlotSelector.cxx:376 AliMUONPainterPlotSelector.cxx:377 AliMUONPainterPlotSelector.cxx:378 AliMUONPainterPlotSelector.cxx:379 AliMUONPainterPlotSelector.cxx:380 AliMUONPainterPlotSelector.cxx:381 AliMUONPainterPlotSelector.cxx:382 AliMUONPainterPlotSelector.cxx:383 AliMUONPainterPlotSelector.cxx:384 AliMUONPainterPlotSelector.cxx:385 AliMUONPainterPlotSelector.cxx:386 AliMUONPainterPlotSelector.cxx:387 AliMUONPainterPlotSelector.cxx:388 AliMUONPainterPlotSelector.cxx:389 AliMUONPainterPlotSelector.cxx:390 AliMUONPainterPlotSelector.cxx:391 AliMUONPainterPlotSelector.cxx:392 AliMUONPainterPlotSelector.cxx:393 AliMUONPainterPlotSelector.cxx:394 AliMUONPainterPlotSelector.cxx:395 AliMUONPainterPlotSelector.cxx:396 AliMUONPainterPlotSelector.cxx:397 AliMUONPainterPlotSelector.cxx:398 AliMUONPainterPlotSelector.cxx:399 AliMUONPainterPlotSelector.cxx:400 AliMUONPainterPlotSelector.cxx:401 AliMUONPainterPlotSelector.cxx:402 AliMUONPainterPlotSelector.cxx:403 AliMUONPainterPlotSelector.cxx:404 AliMUONPainterPlotSelector.cxx:405 AliMUONPainterPlotSelector.cxx:406 AliMUONPainterPlotSelector.cxx:407 AliMUONPainterPlotSelector.cxx:408 AliMUONPainterPlotSelector.cxx:409 AliMUONPainterPlotSelector.cxx:410 AliMUONPainterPlotSelector.cxx:411 AliMUONPainterPlotSelector.cxx:412 AliMUONPainterPlotSelector.cxx:413 AliMUONPainterPlotSelector.cxx:414 AliMUONPainterPlotSelector.cxx:415 AliMUONPainterPlotSelector.cxx:416 AliMUONPainterPlotSelector.cxx:417 AliMUONPainterPlotSelector.cxx:418 AliMUONPainterPlotSelector.cxx:419 AliMUONPainterPlotSelector.cxx:420 AliMUONPainterPlotSelector.cxx:421 AliMUONPainterPlotSelector.cxx:422 AliMUONPainterPlotSelector.cxx:423 AliMUONPainterPlotSelector.cxx:424 AliMUONPainterPlotSelector.cxx:425 AliMUONPainterPlotSelector.cxx:426 AliMUONPainterPlotSelector.cxx:427 AliMUONPainterPlotSelector.cxx:428 AliMUONPainterPlotSelector.cxx:429 AliMUONPainterPlotSelector.cxx:430 AliMUONPainterPlotSelector.cxx:431 AliMUONPainterPlotSelector.cxx:432 AliMUONPainterPlotSelector.cxx:433 AliMUONPainterPlotSelector.cxx:434 AliMUONPainterPlotSelector.cxx:435 AliMUONPainterPlotSelector.cxx:436 AliMUONPainterPlotSelector.cxx:437 AliMUONPainterPlotSelector.cxx:438 AliMUONPainterPlotSelector.cxx:439 AliMUONPainterPlotSelector.cxx:440 AliMUONPainterPlotSelector.cxx:441 AliMUONPainterPlotSelector.cxx:442 AliMUONPainterPlotSelector.cxx:443 AliMUONPainterPlotSelector.cxx:444 AliMUONPainterPlotSelector.cxx:445 AliMUONPainterPlotSelector.cxx:446 AliMUONPainterPlotSelector.cxx:447 AliMUONPainterPlotSelector.cxx:448 AliMUONPainterPlotSelector.cxx:449 AliMUONPainterPlotSelector.cxx:450 AliMUONPainterPlotSelector.cxx:451 AliMUONPainterPlotSelector.cxx:452 AliMUONPainterPlotSelector.cxx:453 AliMUONPainterPlotSelector.cxx:454 AliMUONPainterPlotSelector.cxx:455 AliMUONPainterPlotSelector.cxx:456 AliMUONPainterPlotSelector.cxx:457 AliMUONPainterPlotSelector.cxx:458 AliMUONPainterPlotSelector.cxx:459 AliMUONPainterPlotSelector.cxx:460 AliMUONPainterPlotSelector.cxx:461 AliMUONPainterPlotSelector.cxx:462 AliMUONPainterPlotSelector.cxx:463 AliMUONPainterPlotSelector.cxx:464 AliMUONPainterPlotSelector.cxx:465 AliMUONPainterPlotSelector.cxx:466 AliMUONPainterPlotSelector.cxx:467 AliMUONPainterPlotSelector.cxx:468 AliMUONPainterPlotSelector.cxx:469 AliMUONPainterPlotSelector.cxx:470 AliMUONPainterPlotSelector.cxx:471 AliMUONPainterPlotSelector.cxx:472 AliMUONPainterPlotSelector.cxx:473 AliMUONPainterPlotSelector.cxx:474 AliMUONPainterPlotSelector.cxx:475 AliMUONPainterPlotSelector.cxx:476 AliMUONPainterPlotSelector.cxx:477 AliMUONPainterPlotSelector.cxx:478 AliMUONPainterPlotSelector.cxx:479 AliMUONPainterPlotSelector.cxx:480 AliMUONPainterPlotSelector.cxx:481 AliMUONPainterPlotSelector.cxx:482 AliMUONPainterPlotSelector.cxx:483 AliMUONPainterPlotSelector.cxx:484 AliMUONPainterPlotSelector.cxx:485 AliMUONPainterPlotSelector.cxx:486 AliMUONPainterPlotSelector.cxx:487 AliMUONPainterPlotSelector.cxx:488 AliMUONPainterPlotSelector.cxx:489 AliMUONPainterPlotSelector.cxx:490 AliMUONPainterPlotSelector.cxx:491 AliMUONPainterPlotSelector.cxx:492 AliMUONPainterPlotSelector.cxx:493 AliMUONPainterPlotSelector.cxx:494 AliMUONPainterPlotSelector.cxx:495 AliMUONPainterPlotSelector.cxx:496 AliMUONPainterPlotSelector.cxx:497 AliMUONPainterPlotSelector.cxx:498 AliMUONPainterPlotSelector.cxx:499 AliMUONPainterPlotSelector.cxx:500 AliMUONPainterPlotSelector.cxx:501 AliMUONPainterPlotSelector.cxx:502 AliMUONPainterPlotSelector.cxx:503 AliMUONPainterPlotSelector.cxx:504 AliMUONPainterPlotSelector.cxx:505 AliMUONPainterPlotSelector.cxx:506 AliMUONPainterPlotSelector.cxx:507 AliMUONPainterPlotSelector.cxx:508 AliMUONPainterPlotSelector.cxx:509 AliMUONPainterPlotSelector.cxx:510 AliMUONPainterPlotSelector.cxx:511 AliMUONPainterPlotSelector.cxx:512 AliMUONPainterPlotSelector.cxx:513 AliMUONPainterPlotSelector.cxx:514 AliMUONPainterPlotSelector.cxx:515 AliMUONPainterPlotSelector.cxx:516 AliMUONPainterPlotSelector.cxx:517 AliMUONPainterPlotSelector.cxx:518 AliMUONPainterPlotSelector.cxx:519 AliMUONPainterPlotSelector.cxx:520 AliMUONPainterPlotSelector.cxx:521 AliMUONPainterPlotSelector.cxx:522 AliMUONPainterPlotSelector.cxx:523 AliMUONPainterPlotSelector.cxx:524 AliMUONPainterPlotSelector.cxx:525 AliMUONPainterPlotSelector.cxx:526 AliMUONPainterPlotSelector.cxx:527 AliMUONPainterPlotSelector.cxx:528 AliMUONPainterPlotSelector.cxx:529 AliMUONPainterPlotSelector.cxx:530 AliMUONPainterPlotSelector.cxx:531 AliMUONPainterPlotSelector.cxx:532 AliMUONPainterPlotSelector.cxx:533 AliMUONPainterPlotSelector.cxx:534 AliMUONPainterPlotSelector.cxx:535 AliMUONPainterPlotSelector.cxx:536 AliMUONPainterPlotSelector.cxx:537 AliMUONPainterPlotSelector.cxx:538 AliMUONPainterPlotSelector.cxx:539 AliMUONPainterPlotSelector.cxx:540 AliMUONPainterPlotSelector.cxx:541 AliMUONPainterPlotSelector.cxx:542 AliMUONPainterPlotSelector.cxx:543 AliMUONPainterPlotSelector.cxx:544 AliMUONPainterPlotSelector.cxx:545 AliMUONPainterPlotSelector.cxx:546 AliMUONPainterPlotSelector.cxx:547 AliMUONPainterPlotSelector.cxx:548 AliMUONPainterPlotSelector.cxx:549 AliMUONPainterPlotSelector.cxx:550 AliMUONPainterPlotSelector.cxx:551 AliMUONPainterPlotSelector.cxx:552 AliMUONPainterPlotSelector.cxx:553 AliMUONPainterPlotSelector.cxx:554 AliMUONPainterPlotSelector.cxx:555 AliMUONPainterPlotSelector.cxx:556 AliMUONPainterPlotSelector.cxx:557 AliMUONPainterPlotSelector.cxx:558 AliMUONPainterPlotSelector.cxx:559 AliMUONPainterPlotSelector.cxx:560 AliMUONPainterPlotSelector.cxx:561 AliMUONPainterPlotSelector.cxx:562 AliMUONPainterPlotSelector.cxx:563 AliMUONPainterPlotSelector.cxx:564 AliMUONPainterPlotSelector.cxx:565 AliMUONPainterPlotSelector.cxx:566 AliMUONPainterPlotSelector.cxx:567 AliMUONPainterPlotSelector.cxx:568 AliMUONPainterPlotSelector.cxx:569 AliMUONPainterPlotSelector.cxx:570 AliMUONPainterPlotSelector.cxx:571 AliMUONPainterPlotSelector.cxx:572 AliMUONPainterPlotSelector.cxx:573 AliMUONPainterPlotSelector.cxx:574 AliMUONPainterPlotSelector.cxx:575 AliMUONPainterPlotSelector.cxx:576 AliMUONPainterPlotSelector.cxx:577 AliMUONPainterPlotSelector.cxx:578 AliMUONPainterPlotSelector.cxx:579 AliMUONPainterPlotSelector.cxx:580 AliMUONPainterPlotSelector.cxx:581 AliMUONPainterPlotSelector.cxx:582 AliMUONPainterPlotSelector.cxx:583 AliMUONPainterPlotSelector.cxx:584 AliMUONPainterPlotSelector.cxx:585 AliMUONPainterPlotSelector.cxx:586 AliMUONPainterPlotSelector.cxx:587 AliMUONPainterPlotSelector.cxx:588 AliMUONPainterPlotSelector.cxx:589 AliMUONPainterPlotSelector.cxx:590 AliMUONPainterPlotSelector.cxx:591 AliMUONPainterPlotSelector.cxx:592 AliMUONPainterPlotSelector.cxx:593 AliMUONPainterPlotSelector.cxx:594 AliMUONPainterPlotSelector.cxx:595 AliMUONPainterPlotSelector.cxx:596 AliMUONPainterPlotSelector.cxx:597 AliMUONPainterPlotSelector.cxx:598 AliMUONPainterPlotSelector.cxx:599 AliMUONPainterPlotSelector.cxx:600 AliMUONPainterPlotSelector.cxx:601 AliMUONPainterPlotSelector.cxx:602 AliMUONPainterPlotSelector.cxx:603 AliMUONPainterPlotSelector.cxx:604 AliMUONPainterPlotSelector.cxx:605 AliMUONPainterPlotSelector.cxx:606 AliMUONPainterPlotSelector.cxx:607 AliMUONPainterPlotSelector.cxx:608 AliMUONPainterPlotSelector.cxx:609 AliMUONPainterPlotSelector.cxx:610 AliMUONPainterPlotSelector.cxx:611 AliMUONPainterPlotSelector.cxx:612 AliMUONPainterPlotSelector.cxx:613 AliMUONPainterPlotSelector.cxx:614 AliMUONPainterPlotSelector.cxx:615 AliMUONPainterPlotSelector.cxx:616 AliMUONPainterPlotSelector.cxx:617 AliMUONPainterPlotSelector.cxx:618 AliMUONPainterPlotSelector.cxx:619 AliMUONPainterPlotSelector.cxx:620 AliMUONPainterPlotSelector.cxx:621 AliMUONPainterPlotSelector.cxx:622 AliMUONPainterPlotSelector.cxx:623