+ AddRecentSource(dsName);
+
+ if ( app )
+ {
+
+ TString name(dsName);
+ name.ToUpper();
+
+ if ( name.Contains("PED") )
+ {
+ CreatePedestalCanvases(reader->Data());
+ }
+ }
+ }
+}
+
+//_____________________________________________________________________________
+void
+AliMUONPainterDataSourceFrame::CreatePedestalCanvases(AliMUONVTrackerData* data,
+ Double_t pedMin, Double_t pedMax,
+ Double_t sigmaMin, Double_t sigmaMax)
+{
+ /// Create 4 canvases with the pedestals contained in data
+ /// to show mean and sigma, for bending and non bending, with given limits
+
+ TList matrices;
+
+ AliMUONAttPainter att[2];
+
+ att[0].SetViewPoint(kTRUE,kFALSE);
+ att[0].SetCathode(kFALSE,kFALSE);
+ att[0].SetPlane(kTRUE,kFALSE);
+
+ att[1].SetViewPoint(kTRUE,kFALSE);
+ att[1].SetCathode(kFALSE,kFALSE);
+ att[1].SetPlane(kFALSE,kTRUE);
+
+ for ( Int_t iatt = 0; iatt < 2; ++iatt )
+ {
+ matrices.Add(CreateFullTracker(data,0,pedMin,pedMax,att[iatt]));
+ matrices.Add(CreateFullTracker(data,1,sigmaMin,sigmaMax,att[iatt]));
+ }
+
+ TIter next(&matrices);
+ AliMUONPainterMatrix* matrix;
+
+ Int_t w = TMath::Nint(gClient->GetDisplayWidth()*0.9);
+ Int_t h = TMath::Nint(gClient->GetDisplayHeight()*0.9);
+
+ Int_t x[] = { 0, 0, 20 + w/2, 20 + w/2 };
+ Int_t y[] = { 0, h/2+30, 0, h/2+30 };
+
+ Int_t i(0);
+
+ while ( ( matrix = static_cast<AliMUONPainterMatrix*>(next())) )
+ {
+ TCanvas* c = matrix->CreateCanvas(x[i],y[i],w/2,h/2);
+ c->Draw();
+ c->SaveAs(Form("%s.png",c->GetName()));
+ ++i;
+ }
+}
+
+//_____________________________________________________________________________
+AliMUONPainterMatrix*
+AliMUONPainterDataSourceFrame::CreateFullTracker(AliMUONVTrackerData* data,
+ Int_t dim,
+ Double_t xmin, Double_t xmax,
+ const AliMUONAttPainter& att)
+{
+ /// Generate, draw and register a matrix of 10 painters to show all the tracker
+ /// chambers
+
+ AliMUONPainterMatrix* matrix = new AliMUONPainterMatrix("Tracker",5,2);
+
+ for ( Int_t ichamber = 0; ichamber < 10; ++ichamber )
+ {
+ AliMUONVPainter* painter = new AliMUONChamberPainter(att,ichamber);
+
+ painter->SetResponder("BUSPATCH");
+
+ painter->SetOutlined("*",kFALSE);
+
+ matrix->Adopt(painter);