* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.16 2001/07/25 15:23:50 hristov
-Changes needed to run with Root 3.01 (R.Brun)
-
-Revision 1.15 2001/05/16 14:57:22 alibrary
-New files for folders and Stack
-
-Revision 1.14 2001/01/26 19:58:48 hristov
-Major upgrade of AliRoot code
-
-Revision 1.13 2000/12/21 15:30:18 fca
-Correcting coding convention violations
-
-Revision 1.12 2000/12/12 13:18:59 hristov
-Protection against FPE
-
-Revision 1.11 2000/11/30 07:12:48 alibrary
-Introducing new Rndm and QA classes
-
-Revision 1.10 2000/10/02 21:28:14 fca
-Removal of useless dependecies via forward declarations
-
-Revision 1.9 2000/07/13 16:19:09 fca
-Mainly coding conventions + some small bug fixes
-
-Revision 1.8 2000/07/11 18:24:59 fca
-Coding convention corrections + few minor bug fixes
-
-Revision 1.7 1999/11/10 07:37:06 fca
-Pads do not inherit editability from canvas any more
-
-Revision 1.6 1999/11/09 07:38:52 fca
-Changes for compatibility with version 2.23 of ROOT
-
-Revision 1.5 1999/09/29 09:24:29 fca
-Introduction of the Copyright and cvs Log
-
-*/
-
+/* $Id$ */
//////////////////////////////////////////////////////////////////////////
// //
// //
//////////////////////////////////////////////////////////////////////////
-#include <TTree.h>
+#include <RVersion.h>
+#include <TArc.h>
#include <TButton.h>
#include <TCanvas.h>
-#include <TView.h>
+#include <TDiamond.h>
+#include <TGaxis.h>
+#include <TMath.h>
#include <TPaveLabel.h>
#include <TPaveText.h>
-#include <TDiamond.h>
-#include <TArc.h>
#include <TSlider.h>
#include <TSliderBox.h>
-#include <TGaxis.h>
+//#include <TTree.h>
+#if ROOT_VERSION_CODE>= 331523
+#include <TView3D.h>
+#else
+#include <TView.h>
+#endif
#include <TVirtualX.h>
-#include <TMath.h>
-#include "AliRun.h"
+#include "AliLog.h"
#include "AliDetector.h"
#include "AliDisplay.h"
+#include "AliHeader.h"
#include "AliPoints.h"
-#include "TParticle.h"
+#include "AliRun.h"
+#include "AliStack.h"
#include "TGeometry.h"
-#include "AliHeader.h"
+#include "TParticle.h"
+#include "AliMC.h"
+
+const Float_t AliDisplay::fgkPtCutMax = 2;
+const Float_t AliDisplay::fgkEtaCutMax = 1.5;
+const Int_t AliDisplay::fgkMaxZooms = 20;
-static const Float_t kptcutmax = 2;
-static const Float_t ketacutmax = 1.5;
ClassImp(AliDisplay)
-//_____________________________________________________________________________
-AliDisplay::AliDisplay()
+//_______________________________________________________________________
+AliDisplay::AliDisplay():
+ fZoomMode(0),
+ fDrawAllViews(0),
+ fDrawParticles(0),
+ fDrawHits(0),
+ fPTcut(0),
+ fTheta(0),
+ fPhi(0),
+ fPsi(0),
+ fRrange(0),
+ fZrange(0),
+ fZooms(0),
+ fHitsCuts(0),
+ fCanvas(0),
+ fTrigPad(0),
+ fCutPad(0),
+ fEtaPad(0),
+ fButtons(0),
+ fPad(0),
+ fCutSlider(0),
+ fEtaSlider(0),
+ fRangeSlider(0),
+ fPickButton(0),
+ fZoomButton(0),
+ fArcButton(0),
+ fFruits(0),
+ fTracksToDisplay(0),
+ fNTracksToDisplay(0)
{
//
// Default constructor
//
- fCanvas = 0;
- fTrigPad = 0;
- fCutPad = 0;
- fEtaPad = 0;
- fButtons = 0;
- fPad = 0;
- fCutSlider = 0;
- fEtaSlider = 0;
- fRangeSlider = 0;
- fPickButton = 0;
- fZoomButton = 0;
- fArcButton = 0;
- fFruits = 0;
}
//_____________________________________________________________________________
-AliDisplay::AliDisplay(Int_t size)
+AliDisplay::AliDisplay(Int_t size):
+ fZoomMode(1),
+ fDrawAllViews(kFALSE),
+ fDrawParticles(kTRUE),
+ fDrawHits(kTRUE),
+ fPTcut(0),
+ fTheta(0),
+ fPhi(-90),
+ fPsi(0),
+ fRrange(0),
+ fZrange(0),
+ fZooms(1),
+ fHitsCuts(0),
+ fCanvas(0),
+ fTrigPad(0),
+ fCutPad(0),
+ fEtaPad(0),
+ fButtons(0),
+ fPad(0),
+ fCutSlider(0),
+ fEtaSlider(0),
+ fRangeSlider(0),
+ fPickButton(0),
+ fZoomButton(0),
+ fArcButton(0),
+ fFruits(0),
+ fTracksToDisplay(0),
+ fNTracksToDisplay(0)
{
// Create an event display object.
// A canvas named "edisplay" is created with a vertical size in pixels
*/
//End_Html
- fPad = 0;
- gAlice->SetDisplay(this);
-
- // Initialize display default parameters
- SetRange();
- SetPTcut();
-
- // Set front view by default
- fTheta = 0;
- fPhi = -90;
- fPsi = 0;
- fDrawAllViews = kFALSE;
- fDrawHits = kTRUE;
- fDrawParticles = kTRUE;
- fZoomMode = 1;
- fZooms = 0;
- fHitsCuts = 0;
-
- // Create display canvas
- Int_t ysize = size;
- if (ysize < 100) ysize = 750;
- Int_t xsize = Int_t(size*830./ysize);
- fCanvas = new TCanvas("Canvas", "ALICE Event Display",14,47,xsize,ysize);
- fCanvas->ToggleEventStatus();
+ gAlice->SetDisplay(this);
- // Create main display pad
- fPad = new TPad("viewpad", "Alice display",0.15,0,0.97,0.96);
- fPad->Draw();
- fPad->Modified();
- fPad->SetFillColor(1);
- fPad->SetBorderSize(2);
-
- // Create user interface control pad
- DisplayButtons();
- fCanvas->cd();
-
- // Create Range and mode pad
- Float_t dxtr = 0.15;
- Float_t dytr = 0.45;
- fTrigPad = new TPad("trigger", "range and mode pad",0,0,dxtr,dytr);
- fTrigPad->Draw();
- fTrigPad->cd();
- fTrigPad->SetFillColor(22);
- fTrigPad->SetBorderSize(2);
- fRangeSlider = new TSlider("range","range",0.7,0.42,0.9,0.98);
- fRangeSlider->SetObject(this);
- char pickmode[] = "gAlice->Display()->SetPickMode()";
- Float_t db = 0.09;
- fPickButton = new TButton("Pick",pickmode,0.05,0.32,0.65,0.32+db);
- fPickButton->SetFillColor(38);
- fPickButton->Draw();
- char zoommode[] = "gAlice->Display()->SetZoomMode()";
- fZoomButton = new TButton("Zoom",zoommode,0.05,0.21,0.65,0.21+db);
- fZoomButton->SetFillColor(38);
- fZoomButton->Draw();
- fArcButton = new TArc(.8,fZoomButton->GetYlowNDC()+0.5*db,0.33*db);
- fArcButton->SetFillColor(kGreen);
- fArcButton->Draw();
- char butUnzoom[] = "gAlice->Display()->UnZoom()";
- TButton *button = new TButton("UnZoom",butUnzoom,0.05,0.05,0.95,0.15);
- button->SetFillColor(38);
- button->Draw();
- AppendPad(); // append display object as last object to force selection
-
- // Create momentum cut slider pad
- fCanvas->cd();
- fCutPad = new TPad("cutSlider", "pcut slider pad",dxtr,.96,1,1);
- fCutPad->Draw();
- fCutPad->cd();
- fCutPad->SetFillColor(22);
- fCutPad->SetBorderSize(2);
- fCutSlider = new TSlider("pcut","Momentum cut",0,0,1,1);
- fCutSlider->SetRange(fPTcut/kptcutmax,1);
- fCutSlider->SetObject(this);
- fCutSlider->SetFillColor(45);
- TSliderBox *sbox = (TSliderBox*)fCutSlider->GetListOfPrimitives()->First();
- sbox->SetFillColor(46);
- fCutSlider->cd();
- TGaxis *cutaxis = new TGaxis(0.02,0.8,0.98,0.8,0,kptcutmax,510,"");
- cutaxis->SetLabelSize(0.5);
- cutaxis->SetTitleSize(0.6);
- cutaxis->SetTitleOffset(0.5);
- cutaxis->SetTitle("pcut . ");
- fCutSlider->GetListOfPrimitives()->AddFirst(cutaxis);
-
- // Create rapidity cut slider pad
- fCanvas->cd();
- fEtaPad = new TPad("EtaSlider", "Eta slider pad",0.97,0,1,0.96);
- fEtaPad->Draw();
- fEtaPad->cd();
- fEtaPad->SetFillColor(22);
- fEtaPad->SetBorderSize(2);
- fEtaSlider = new TSlider("etacut","Rapidity cut",0,0,1,1);
- fEtaSlider->SetObject(this);
- fEtaSlider->SetFillColor(45);
- TSliderBox *sbox2 = (TSliderBox*)fEtaSlider->GetListOfPrimitives()->First();
- sbox2->SetFillColor(46);
- fEtaSlider->cd();
- TGaxis *etaaxis = new TGaxis(0.9,0.02,0.9,0.98,-ketacutmax,ketacutmax,510,"");
- etaaxis->SetLabelSize(0.5);
- etaaxis->SetTitleSize(0.6);
- etaaxis->SetTitleOffset(0.2);
- cutaxis->SetTitle("Etacut . ");
- fEtaSlider->GetListOfPrimitives()->AddFirst(etaaxis);
- fCanvas->cd();
-
- fTrigPad->SetEditable(kFALSE);
- fButtons->SetEditable(kFALSE);
-
-
- fCanvas->cd();
- fCanvas->Update();
+ // Initialize display default parameters
+ SetRange();
+ SetPTcut();
+
+ // Create display canvas
+ Int_t ysize = size;
+ if (ysize < 100) ysize = 750;
+ Int_t xsize = Int_t(size*830./ysize);
+ fCanvas = new TCanvas("Canvas", "ALICE Event Display",14,47,xsize,ysize);
+ fCanvas->ToggleEventStatus();
+
+ // Create main display pad
+ fPad = new TPad("viewpad", "Alice display",0.15,0,0.97,0.96);
+ fPad->Draw();
+ fPad->Modified();
+ fPad->SetFillColor(1);
+ fPad->SetBorderSize(2);
+
+ // Create user interface control pad
+ DisplayButtons();
+ fCanvas->cd();
+
+ // Create Range and mode pad
+ Float_t dxtr = 0.15;
+ Float_t dytr = 0.45;
+ fTrigPad = new TPad("trigger", "range and mode pad",0,0,dxtr,dytr);
+ fTrigPad->Draw();
+ fTrigPad->cd();
+ fTrigPad->SetFillColor(22);
+ fTrigPad->SetBorderSize(2);
+ fRangeSlider = new TSlider("range","range",0.7,0.42,0.9,0.98);
+ fRangeSlider->SetObject(this);
+ char pickmode[] = "gAlice->Display()->SetPickMode()";
+ Float_t db = 0.09;
+ fPickButton = new TButton("Pick",pickmode,0.05,0.32,0.65,0.32+db);
+ fPickButton->SetFillColor(38);
+ fPickButton->Draw();
+ char zoommode[] = "gAlice->Display()->SetZoomMode()";
+ fZoomButton = new TButton("Zoom",zoommode,0.05,0.21,0.65,0.21+db);
+ fZoomButton->SetFillColor(38);
+ fZoomButton->Draw();
+ fArcButton = new TArc(.8,fZoomButton->GetYlowNDC()+0.5*db,0.33*db);
+ fArcButton->SetFillColor(kGreen);
+ fArcButton->Draw();
+ char butUnzoom[] = "gAlice->Display()->UnZoom()";
+ TButton *button = new TButton("UnZoom",butUnzoom,0.05,0.05,0.95,0.15);
+ button->SetFillColor(38);
+ button->Draw();
+ AppendPad(); // append display object as last object to force selection
+ // Create momentum cut slider pad
+ fCanvas->cd();
+ fCutPad = new TPad("cutSlider", "pcut slider pad",dxtr,.96,1,1);
+ fCutPad->Draw();
+ fCutPad->cd();
+ fCutPad->SetFillColor(22);
+ fCutPad->SetBorderSize(2);
+ fCutSlider = new TSlider("pcut","Momentum cut",0,0,1,1);
+ fCutSlider->SetRange(fPTcut/fgkPtCutMax,1);
+ fCutSlider->SetObject(this);
+ fCutSlider->SetFillColor(45);
+ TSliderBox *sbox = dynamic_cast<TSliderBox*>(fCutSlider->GetListOfPrimitives()->First());
+ sbox->SetFillColor(46);
+ fCutSlider->cd();
+ TGaxis *cutaxis = new TGaxis(0.02,0.8,0.98,0.8,0,fgkPtCutMax,510,"");
+ cutaxis->SetLabelSize(0.5);
+ cutaxis->SetTitleSize(0.6);
+ cutaxis->SetTitleOffset(0.5);
+ cutaxis->SetTitle("pcut . ");
+ fCutSlider->GetListOfPrimitives()->AddFirst(cutaxis);
+ // Create rapidity cut slider pad
+ fCanvas->cd();
+ fEtaPad = new TPad("EtaSlider", "Eta slider pad",0.97,0,1,0.96);
+ fEtaPad->Draw();
+ fEtaPad->cd();
+ fEtaPad->SetFillColor(22);
+ fEtaPad->SetBorderSize(2);
+ fEtaSlider = new TSlider("etacut","Rapidity cut",0,0,1,1);
+ fEtaSlider->SetObject(this);
+ fEtaSlider->SetFillColor(45);
+ TSliderBox *sbox2 = dynamic_cast<TSliderBox*>(fEtaSlider->GetListOfPrimitives()->First());
+ sbox2->SetFillColor(46);
+ fEtaSlider->cd();
+ TGaxis *etaaxis = new TGaxis(0.9,0.02,0.9,0.98,-fgkEtaCutMax,fgkEtaCutMax,510,"");
+ etaaxis->SetLabelSize(0.5);
+ etaaxis->SetTitleSize(0.6);
+ etaaxis->SetTitleOffset(0.2);
+ cutaxis->SetTitle("Etacut . ");
+ fEtaSlider->GetListOfPrimitives()->AddFirst(etaaxis);
+ fCanvas->cd();
+
+ fTrigPad->SetEditable(kFALSE);
+ fButtons->SetEditable(kFALSE);
+ fTracksToDisplay =0;
+ fNTracksToDisplay =0;
+
+ fCanvas->cd();
+ fCanvas->Update();
}
-//_____________________________________________________________________________
-AliDisplay::AliDisplay(const AliDisplay &disp)
+//_______________________________________________________________________
+AliDisplay::AliDisplay(const AliDisplay &disp):
+ TObject(disp),
+ fZoomMode(0),
+ fDrawAllViews(0),
+ fDrawParticles(0),
+ fDrawHits(0),
+ fPTcut(0),
+ fTheta(0),
+ fPhi(0),
+ fPsi(0),
+ fRrange(0),
+ fZrange(0),
+ fZooms(0),
+ fHitsCuts(0),
+ fCanvas(0),
+ fTrigPad(0),
+ fCutPad(0),
+ fEtaPad(0),
+ fButtons(0),
+ fPad(0),
+ fCutSlider(0),
+ fEtaSlider(0),
+ fRangeSlider(0),
+ fPickButton(0),
+ fZoomButton(0),
+ fArcButton(0),
+ fFruits(0),
+ fTracksToDisplay(0),
+ fNTracksToDisplay(0)
{
//
// Copy constructor
}
//_____________________________________________________________________________
-void AliDisplay::Copy(AliDisplay &disp) const
+void AliDisplay::Copy(TObject &) const
{
//
// Copy *this onto disp -- not implemented
//
- Fatal("Copy","Not implemented~\n");
+ AliFatal("Not implemented");
}
//----------------------------------------------------------------------------
//
// Display track idx
//
- AliDetector *mTPC=(AliDetector*)gAlice->GetModule("TPC");
+ AliDetector *mTPC=dynamic_cast<AliDetector*>(gAlice->GetModule("TPC"));
TObjArray *points=mTPC->Points();
int ntracks=points->GetEntriesFast();
for (int track=0;track<ntracks;track++) {
- AliPoints *pm = (AliPoints*)points->UncheckedAt(track);
+ AliPoints *pm = dynamic_cast<AliPoints*>(points->UncheckedAt(track));
if (!pm) continue;
if (idx == pm->GetIndex()) {
pm->SetMarkerColor(2);
// fPad->Modified();
// TClonesArray *particles=gAlice->Particles();
// TParticle *p = (TParticle*)particles->UncheckedAt(idx);
- TParticle *p = gAlice->Particle(idx);
- printf("\nTrack index %d\n",idx);
- printf("Particle ID %d\n",p->GetPdgCode());
- printf("Parent %d\n",p->GetFirstMother());
- printf("First child %d\n",p->GetFirstDaughter());
- printf("Px,Py,Pz %f %f %f\n",p->Px(),p->Py(),p->Pz());
+ TParticle *p = gAlice->GetMCApp()->Particle(idx);
+ AliInfo(Form("Track index %d",idx));
+ AliInfo(Form("Particle ID %d",p->GetPdgCode()));
+ AliInfo(Form("Parent %d",p->GetFirstMother()));
+ AliInfo(Form("First child %d",p->GetFirstDaughter()));
+ AliInfo(Form("Px,Py,Pz %f %f %f",p->Px(),p->Py(),p->Pz()));
return;
}
}
}
//----------------------------------------------------------------------------
-void AliDisplay::HideTrack(Int_t idx) {
+void AliDisplay::HideTrack(Int_t idx) const
+{
//
// Hide track on display
//
- AliDetector *mTPC=(AliDetector*)gAlice->GetModule("TPC");
+ AliDetector *mTPC=dynamic_cast<AliDetector*>(gAlice->GetModule("TPC"));
TObjArray *points=mTPC->Points();
int ntracks=points->GetEntriesFast();
for (int track=0;track<ntracks;track++) {
- AliPoints *pm = (AliPoints*)points->UncheckedAt(track);
+ AliPoints *pm = dynamic_cast<AliPoints*>(points->UncheckedAt(track));
if (!pm) continue;
if (idx == pm->GetIndex()) {
pm->SetMarkerColor(5);
{
// Disable detector name from graphics views
- AliModule *module = (AliModule*)gAlice->Modules()->FindObject(name);
+ AliModule *module = dynamic_cast<AliModule*>(gAlice->Modules()->FindObject(name));
if (!module) return;
module->Disable();
Draw();
//Get cut slider
smax = fCutSlider->GetMaximum();
smin = fCutSlider->GetMinimum();
- cutmin = kptcutmax*smin;
- if (smax < 0.98) cutmax = kptcutmax*smax;
+ cutmin = fgkPtCutMax*smin;
+ if (smax < 0.98) cutmax = fgkPtCutMax*smax;
else cutmax = 100000;
//Get eta slider
smax = fEtaSlider->GetMaximum();
smin = fEtaSlider->GetMinimum();
- etamin = ketacutmax*(2*smin-1);
- etamax = ketacutmax*(2*smax-1);
+ etamin = fgkEtaCutMax*(2*smin-1);
+ etamax = fgkEtaCutMax*(2*smax-1);
if (smin < 0.02) etamin = -1000;
if (smax > 0.98) etamax = 1000;
TIter next(gAlice->Modules());
AliModule *module;
fHitsCuts = 0;
- while((module = (AliModule*)next())) {
+ while((module = dynamic_cast<AliModule*>(next()))) {
if (!module->IsActive()) continue;
points = module->Points();
if (!points) continue;
ntracks = points->GetEntriesFast();
for (track=0;track<ntracks;track++) {
- pm = (AliPoints*)points->UncheckedAt(track);
+ pm = dynamic_cast<AliPoints*>(points->UncheckedAt(track));
if (!pm) continue;
particle = pm->GetParticle();
if (!particle) continue;
char ptitle[100];
sprintf(ptitle,"Alice event: %d, Run:%d",gAlice->GetHeader()->GetEvent(), gAlice->GetHeader()->GetRun());
title->AddText(ptitle);
- Int_t nparticles = gAlice->Particles()->GetEntriesFast();
+ Int_t nparticles = gAlice->GetMCApp()->Particles()->GetEntriesFast();
sprintf(ptitle,"Nparticles = %d Nhits = %d",nparticles, fHitsCuts);
title->AddText(ptitle);
} else {
gPad->Clear();
Int_t iret;
+#if ROOT_VERSION_CODE>= 331523
+ Double_t rmin[]={-1,-1,-1};
+ Double_t rmax[]={ 1, 1, 1};
+ TView *view = new TView3D(1,rmin,rmax);
+#else
TView *view = new TView(1);
+#endif
Float_t range = fRrange*fRangeSlider->GetMaximum();
view->SetRange(-range,-range,-range,range, range, range);
fZoomX0[0] = -1;
{
// Draw current view using OPENGL
- TPad *pad = (TPad*)gPad->GetPadSave();
+ TPad *pad = dynamic_cast<TPad*>(gPad->GetPadSave());
pad->cd();
TView *view = pad->GetView();
if (!view) return;
{
// Draw current view using X3D
- TPad *pad = (TPad*)gPad->GetPadSave();
+ TPad *pad = dynamic_cast<TPad*>(gPad->GetPadSave());
pad->cd();
TView *view = pad->GetView();
if (!view) return;
{
// Enable detector name in graphics views
- AliModule *module = (AliModule*)gAlice->Modules()->FindObject(name);
+ AliModule *module = dynamic_cast<AliModule*>(gAlice->Modules()->FindObject(name));
if (!module) return;
module->Enable();
Draw();
if (x1 < x0) {temp = x0; x0 = x1; x1 = temp;}
if (y1 < y0) {temp = y0; y0 = y1; y1 = temp;}
gPad->Range(x0,y0,x1,y1);
- if (fZooms < kMAXZOOMS-1) {
+ if (fZooms < fgkMaxZooms-1) {
fZooms++;
fZoomX0[fZooms] = x0;
fZoomY0[fZooms] = y0;
}
+
+void AliDisplay::SetTracksToDisplay(Int_t *tracks, Int_t n){
+ //
+ // set tracks to display - MI
+ fTracksToDisplay = tracks;
+ fNTracksToDisplay = n;
+}
//___________________________________________
void AliDisplay::LoadPoints()
{
gAlice->ResetPoints();
TIter next(gAlice->Modules());
AliModule *module;
- Int_t ntracks = gAlice->GetNtrack();
- for (Int_t track=0; track<ntracks;track++) {
+ Int_t ntracks = gAlice->GetMCApp()->GetNtrack();
+
+ while((module = (AliModule*)next()))
+ {
+ AliDetector* detector = dynamic_cast<AliDetector*>(module);
+ if(detector) detector->SetTreeAddress();
+ }
+ next.Reset();
+
+ // load only wanted tracks
+ if (fNTracksToDisplay>0)
+ {
+ Int_t nprim = gAlice->Stack()->GetNprimary();
+ for (Int_t track=0; track<fNTracksToDisplay;track++)
+ {
+ gAlice->ResetHits();
+ Int_t nev = nprim-1-gAlice->GetMCApp()->GetPrimary(fTracksToDisplay[track]);
+ while((module = (AliModule*)next()))
+ {
+ AliDetector* detector = dynamic_cast<AliDetector*>(module);
+ if(detector)
+ {
+ detector->TreeH()->GetEvent(nev);
+ module->LoadPoints(nprim-1-gAlice->GetMCApp()->GetPrimary(fTracksToDisplay[track]));
+ }
+ }
+ next.Reset();
+ }
+ }
+ else
+ {
+
+ for (Int_t track=0; track<ntracks;track++) {
gAlice->ResetHits();
- gAlice->TreeH()->GetEvent(track);
while((module = (AliModule*)next())) {
- module->LoadPoints(track);
+ AliDetector* detector = dynamic_cast<AliDetector*>(module);
+ if(detector)
+ {
+ if (detector->TreeH()->GetEvent(track))
+ detector->LoadPoints(track);
+ }
}
next.Reset();
+ }
}
}
// delta = -1 show previous event
if (delta) {
- gAlice->Clear();
- Int_t currentEvent = gAlice->GetHeader()->GetEvent();
+// gAlice->Clear();
+ //Int_t currentEvent = gAlice->GetHeader()->GetEvent();//event number is not filled correctly
+ Int_t currentEvent = gAlice->GetRunLoader()->GetEventNumber();
Int_t newEvent = currentEvent + delta;
gAlice->GetEvent(newEvent);
- if (!gAlice->TreeH()) return;
+ AliInfo(Form("delta = %d currentEvent = %d newEvent = %d",
+ delta, currentEvent, newEvent));
}
LoadPoints();
fPad->cd();
//
if (fZooms <= 0) return;
fZooms--;
- TPad *pad = (TPad*)gPad->GetPadSave();
+ TPad *pad = dynamic_cast<TPad*>(gPad->GetPadSave());
pad->Range(fZoomX0[fZooms],fZoomY0[fZooms], fZoomX1[fZooms],fZoomY1[fZooms]);
pad->Modified();
}