]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - DISPLAY/AliDisplay2.cxx
One class per file. Coding conventions. Removing warnings on Sun
[u/mrichter/AliRoot.git] / DISPLAY / AliDisplay2.cxx
index 8b571a86ea3b0fbb152837ff373952ed9e38bf5f..6df56f8b9f1b6ee9142d4f98e7464fcf0cf87239 100644 (file)
  * about the suitability of this software for any purpose. It is          *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
+/////////////////////////////////////////////////////////////////////////
+// ALICE EVENT DISPLAY CLASS                                           //
+// Author: Mayeul   ROUSSELET                                          //
+// e-mail: Mayeul.Rousselet@cern.ch                                    //
+// Last update:26/08/2003                                              //
+/////////////////////////////////////////////////////////////////////////
 
 #define do_mc
 
 
 //ROOT
 
-#include <TGButton.h>
-#include <TStopwatch.h>
 #include <TTree.h>
-#include <TGIcon.h>
-#include <TApplication.h>
-#include <TGFileDialog.h>
-#include <TGMenu.h>
-#include <TGTab.h>
-#include <TView.h>
 #include <TGLayout.h>
-#include <TGeometry.h>
-#include <TFile.h>
 #include <TObjArray.h>
-#include <TBranch.h>
-#include <TVirtualX.h>
-#include <TPolyMarker3D.h>
-#include <TGNumberEntry.h>
 #include <TSystem.h>
-#include <TRootHelpDialog.h>
-#include <TParticle.h>
-#include <TGShutter.h>
 #include <TGWindow.h>
 #include <TEnv.h>
-#include <TGLabel.h>
-#include <TCanvas.h>
-#include <TClonesArray.h>
+#include <TPad.h>
 
 //AliRoot Module
 #include "AliModule.h"
 #include "AliDetector.h"
-#include "AliHeader.h"
-#include "AliPoints.h"
 #include "AliRun.h"
-#include "AliStack.h"
-#include "AliITSclusterV2.h"
-#include "AliITSgeom.h"
-#include "AliITSLoader.h"
-#include "AliITS.h"
-#include "AliTPCcluster.h"
-#include "AliTPCLoader.h"
-#include "AliTPC.h"
-#include "AliClusters.h"
-#include "AliTPCParam.h"
 #include "AliMC.h"
 
-#ifdef ALI_HLT
-//HLT Module 
-#include "AliL3Logging.h"
-#include "AliL3Display.h"
-#include "AliL3Transform.h"
-#include "AliL3Track.h"
-#include "AliL3TrackArray.h"
-#include "AliL3SpacePointData.h"
-#include "AliL3MemHandler.h"
-#endif
+#include "AliModuleInfo.h"
+#include "AliSliderFrame.h"
+#include "AliShutterFrame.h"
+#include "AliDisplayFrame.h"
+#include "AliInfoFrame.h"
+#include "AliDetectorFrame.h"
+#include "AliMenu.h"
 
 #include "AliDisplay2.h"
 
- AliDisplay2 *gAliDisplay2;
-
-//extern filetypes;
-const char *filetypes[] = {"ROOT files","*.root","All files","*",0,0};
-const char *imgtypes[] = {"GIF files","*.gif",0,0};
-
-ClassImp(AliModuleInfo);
-
-//_____________________________________________________________
-AliModuleInfo::AliModuleInfo(int n)
-{
-  fName = new char*[n];
-  fId = new Int_t[n];
-  fEnabled = new Bool_t[n];
-  fNb = 0;
-}
-
-//_____________________________________________________________
-AliModuleInfo::~AliModuleInfo(){
-  delete [] fName;
-  delete [] fId;
-  delete [] fEnabled;
-}
 
-//_____________________________________________________________
-void AliModuleInfo::Add(const char *name,Int_t i)
-{
-  fName[fNb]=new char[strlen(name)];
-  strcpy(fName[fNb],name);
-  fId[fNb]=i;
-  fEnabled[fNb]=kTRUE;
-  fNb++;
-}
+ AliDisplay2 *gAliDisplay2;
 
-//_____________________________________________________________
-void AliModuleInfo::SetId(char *name,Int_t id)
-{
-  Int_t i=0;
-  while((strcmp(name,fName[i])!=0)&&(i!=fNb)) i++;
-  if(strcmp(name,fName[i])==0) fId[i]=id;
-}
 
+ClassImp(AliDisplay2);
 //_____________________________________________________________
-char* AliModuleInfo::Name(Int_t id)
+AliDisplay2::AliDisplay2(const TGWindow *p, UInt_t w, UInt_t h)
+                       :TObject()
 {
-  Int_t i=0;
-  while((fId[i]!=id)&&(i!=fNb)) i++;
-  if(fId[i]==id) return fName[i];
-  return 0;
-}
+  //  Constructor
+  //gAlice->SetDisplay(this);
+  gAliDisplay2=this;
+  fSliderUpdate = kFALSE;
+  fZoomMode = kFALSE;
+  fZoomStep = 1.2;
+  fZoomFactor = 1.5;
+  fNbParticles = 0;
+  fEventNumber = 0;
+  fNbHits = 0;
+  fSliderStep = 0.01;
+  fClustersLoaded = kFALSE;
+  fHitsLoaded = kFALSE;
+  fHLTLoaded = kFALSE;
+  fTracksLoaded = kFALSE;
+  fMode =0;
+  FindModules();
   
-//_____________________________________________________________
-Int_t AliModuleInfo::Id(char *name)
-{
-  Int_t i=0;
-  while((strcmp(name,fName[i])!=0)&&(i!=fNb)) i++;
-  if(strcmp(name,fName[i])==0) return fId[i];
-  return -1;
-}
-
-//_____________________________________________________________
-Bool_t AliModuleInfo::IsEnabled(Int_t id)
-{
-  //return the current status of the detector
-  Int_t i=0;
-  while((fId[i]!=id)&&(i!=fNb)) i++;
-  if(fId[i]==id) return fEnabled[i];
-  return kFALSE;
-}
-
-//_____________________________________________________________
-void AliModuleInfo::Disable(Int_t id)
-{
-  //Disable the detector 
-  Int_t i=0;
-  while((fId[i]!=id)&&(i!=fNb)) i++;
-  if(fId[i]==id) fEnabled[i]=kFALSE;
-}
-
-//_____________________________________________________________
-void AliModuleInfo::Enable(Int_t id)
-{
-  //Enable the detector 
-  Int_t i=0;
-  while((fId[i]!=id)&&(i!=fNb)) i++;
-  if(fId[i]==id) fEnabled[i]=kTRUE;
-}
-
-//_____________________________________________________________
-void AliModuleInfo::Print()
-{
-  printf("\n***Modules***");
-  printf("\nName\tId\tEnabled"); 
-  for(Int_t i=0;i<fNb;i++){
-    printf("\n%s",fName[i]);
-    printf("\t%d",fId[i]);
-    printf("\t%d",fEnabled[i]);
-  }
-}
-
-
-ClassImp(AliDisplayClusters);
-
-//_____________________________________________________________
-AliDisplayClusters::AliDisplayClusters()
-{
-  fPoints = new TPolyMarker3D[gAliDisplay2->GetNbModules()];
-  fName = new char*[gAliDisplay2->GetNbModules()];
-  fNb=0;
-  for(Int_t i=0;i<gAliDisplay2->GetNbModules();i++){
-    fPoints[i].SetMarkerSize(0.2); 
-    fPoints[i].SetMarkerColor(2); 
-    fPoints[i].SetMarkerStyle(1);
-  }
-}
-
-//_____________________________________________________________
-AliDisplayClusters::~AliDisplayClusters()
-{
-  delete [] fPoints;
-}
-
-//_____________________________________________________________
-Int_t AliDisplayClusters::GetNbClusters()
-{
-  Int_t r=0;
-  for(Int_t i=0;i<fNb;i++){
-     if(gAliDisplay2->GetModuleInfo()->IsEnabled(fName[i])) r+=fPoints[i].GetN();
-  }
-  return r;
-}
-
-//_____________________________________________________________
-void AliDisplayClusters::LoadClusters(char *name,Int_t nevent)
-{
-  if(strstr(name,"ITS")) LoadITSClusters(nevent);
-  if(strstr(name,"TPC")) LoadTPCClusters(nevent);
-}
-
-//_____________________________________________________________
-void AliDisplayClusters::LoadITSClusters(Int_t nevent)
-{
-  fName[fNb]=new char[strlen("ITS")];
-  strcpy(fName[fNb],"ITS");
-  AliRunLoader *rl = AliRunLoader::Open("galice.root");
-  if(!rl) {
-    cerr<<"Can't open galice.root";
-    return;
-  }
-  AliITSLoader *itsl = (AliITSLoader*)rl->GetLoader("ITSLoader");
-  AliITS *its  = (AliITS*)gAlice->GetModule("ITS");
+  fIconsPath = new char[32];
+  strcpy(fIconsPath,gSystem->Getenv("ALICE_ROOT"));
+  strcat(fIconsPath,"/DISPLAY/icons/");
+  LoadFromRC();
+  fMainFrame = new TGMainFrame(p,w,h,kVerticalFrame);
+  fSubFrame = new TGCompositeFrame(fMainFrame,w,h,kHorizontalFrame);
+  fLeftFrame = new TGCompositeFrame(fSubFrame,150,h,kVerticalFrame|kFixedWidth);
+  fRightFrame = new TGCompositeFrame(fSubFrame,600,h,kVerticalFrame);
+  //fMainFrame->Connect("ProcessedEvent(Event_t*)", "AliDisplay2", this,"HandleMouseWheel(Event_t*)");
+  fMainFrame->Connect("ProcessedEvent(Event_t*)", "AliDisplay2",this,"HandleResize(Event_t*)");
+  //MenuBar
+  fMenu = new AliMenu(fMainFrame,1,1,kRaisedFrame|kHorizontalFrame);
   
-  rl->GetEvent(nevent);
-  itsl->LoadRecPoints();
-  TTree *cTree=itsl->TreeR();
-  if(!cTree)
-  {
-    cerr<<"Error occured during ITS clusters load";
-    return;
-  }
-
-  AliITSgeom *geom=its->GetITSgeom();
-  Int_t count = 0;
-
-  TClonesArray *clusters=new TClonesArray("AliITSclusterV2",10000);
-  TBranch *branch=cTree->GetBranch("Clusters");
-  branch->SetAddress(&clusters);
-  Int_t nentr=(Int_t)cTree->GetEntries();
-  for (Int_t i=0; i<nentr; i++) {
-       if (!cTree->GetEvent(i)) continue;
-
-       Double_t rot[9];     
-       geom->GetRotMatrix(i,rot);
-               Int_t lay,lad,det; 
-       geom->GetModuleId(i,lay,lad,det);
-       Float_t tx,ty,tz;  
-       geom->GetTrans(lay,lad,det,tx,ty,tz);     
-
-       Double_t r=-tx*rot[1]+ty*rot[0];          
-       if (lay==1) r=-r;
-       Double_t phi=TMath::ATan2(rot[1],rot[0]); 
-       if (lay==1) phi-=3.1415927;
-       Double_t cp=TMath::Cos(phi), sp=TMath::Sin(phi);
-
-       Int_t ncl=clusters->GetEntriesFast();
-               while (ncl--) {
-               AliITSclusterV2 *c=(AliITSclusterV2*)clusters->UncheckedAt(ncl);
-               Double_t g[3];
-               g[0]= r*cp + c->GetY()*sp; //
-               g[1]=-r*sp + c->GetY()*cp; //
-               g[2]=c->GetZ();
-               fPoints[fNb].SetPoint(count,g[0],g[1],g[2]);
-               count++;
-               }
-   }
-  fNb++;
-}
-
-//_____________________________________________________________
-void AliDisplayClusters::LoadTPCClusters(Int_t nevent)
-{ 
+  //Slider Frame
+  fSliderFrameLayout = new TGLayoutHints( kLHintsBottom| kLHintsRight| kLHintsExpandX | kLHintsCenterX, 2, 2, 2, 2);
+  fSliderFrame  = new AliSliderFrame(fRightFrame,600,150);
+  fRightFrame->AddFrame(fSliderFrame->GetSliderFrame(),fSliderFrameLayout);
   
-  fName[fNb]=new char[strlen("TPC")];
-  strcpy(fName[fNb],"TPC");
-  TFile *file = TFile::Open("galice.root");
-  AliTPCParam *dig=(AliTPCParam *)file->Get("75x40_100x60_150x60");
-  if (!dig) {cerr<<"TPC parameters have not been found !\n";}
-  file->Close();
-
-  AliRunLoader *rl = AliRunLoader::Open("galice.root");
-  if(!rl) {
-    cerr<<"Can't open galice.root";
-    return;
-  }
-  AliTPCLoader *itsl = (AliTPCLoader*)rl->GetLoader("TPCLoader");
-  if(!itsl){
-    cerr<<"Can't find Loader";
-    return;
-  }
+  //Info Frame
+  fInfoFrameLayout = new TGLayoutHints( kLHintsTop | kLHintsLeft  | kLHintsExpandX  ,0,0,0,0);
+  fInfoFrame = new AliInfoFrame(fLeftFrame,150,200);
+  fLeftFrame->AddFrame(fInfoFrame->GetInfoFrame(),fInfoFrameLayout);
   
-  rl->GetEvent(nevent);
-  itsl->LoadRecPoints();
-  TTree *cTree=itsl->TreeR();
-  if(!cTree)
-  {
-    cerr<<"Error during TPC clusters load";
-    return;
-  }
-
-  Int_t count = 0;
-  Float_t noiseth = 10;
-
-   AliClusters *clusters=new AliClusters(); 
-   clusters->SetClass("AliTPCcluster");
-
-   cTree->SetBranchAddress("Segment",&clusters);
-
-   Int_t nrows=Int_t(cTree->GetEntries());
-   for (Int_t n=0; n<nrows; n++) {
-       cTree->GetEvent(n);
-       Int_t sec,row;
-       dig->AdjustSectorRow(clusters->GetID(),sec,row);
-       TClonesArray &clrow=*clusters->GetArray();
-       Int_t ncl=clrow.GetEntriesFast();
-       while (ncl--) {
-           AliTPCcluster *cl=(AliTPCcluster*)clrow[ncl];
-           Double_t x=dig->GetPadRowRadii(sec,row), y=cl->GetY(), z=cl->GetZ();
-          if (cl->GetQ()<noiseth) continue;
-           Float_t cs, sn, tmp;
-           dig->AdjustCosSin(sec,cs,sn);
-           tmp = x*cs-y*sn; y= x*sn+y*cs; x=tmp;
-          fPoints[fNb].SetPoint(count,x,y,z);
-          count++;
-       }
-       clrow.Clear();
-      
-   }
-   delete cTree;
-   delete dig;
-   fNb++;
   
-}
-
-//_____________________________________________________________
-void AliDisplayClusters::Draw()
-{
-  for(Int_t i=0;i<fNb;i++){
-    if(gAliDisplay2->GetModuleInfo()->IsEnabled(fName[i])) fPoints[i].Draw();
-  }
-}
-
-
-ClassImp(AliDisplayHLT);
-
-//_____________________________________________________________
-AliDisplayHLT::AliDisplayHLT()
-{
-  fPoints = new TPolyMarker3D[gAliDisplay2->GetNbModules()];
-  fName = new char*[gAliDisplay2->GetNbModules()];
-  fNb=0;
-  for(Int_t i=0;i<gAliDisplay2->GetNbModules();i++){
-    fPoints[i].SetMarkerSize(0.2); 
-    fPoints[i].SetMarkerColor(2); 
-    fPoints[i].SetMarkerStyle(1);
-  }
-}
-
-//_____________________________________________________________
-AliDisplayHLT::~AliDisplayHLT()
-{
-  delete [] fPoints;
-}
-
-//_____________________________________________________________
-void AliDisplayHLT::LoadHLT(char *name,Int_t nevent)
-{
-  if(strstr(name,"TPC")) LoadHLTTPC(nevent);
-}
-
-//_____________________________________________________________
-void AliDisplayHLT::LoadHLTTPC(Int_t nevent)
-{
-#ifdef ALI_HLT
-  //load TPC Clusters from the raw data
-  //raw data must be in the directorie $ALICE_ROOT/raw
-  //First we read the data from files
-  //do_mc MUST BE DEFINED AND USED FOR RAW DATA GENERATION
-
-  fName[fNb]=new char[strlen("TPC")];
-  strcpy(fName[fNb],"TPC");
-  Char_t fname[256];
-  AliL3MemHandler *clusterfile[36][6];
-  AliL3SpacePointData *fClusters[36][6];
-  UInt_t fNcl[36][6];
-  memset(fClusters,0,36*6*sizeof(AliL3SpacePointData*));
-  //  strcpy(path,gSystem->Getenv("ALICE_ROOT"));
-  //strcat(path,"/raw");
-  //printf("\nRaw data path %s",path);
-  char path[128];
-  strcpy(path,gAliDisplay2->GetRawDataPath());
-  for(Int_t s=0; s<36; s++)
-    {
-      for(Int_t p=0; p<AliL3Transform::GetNPatches(); p++)
-       {
-         Int_t patch;
-         patch=-1;
-         clusterfile[s][p] = new AliL3MemHandler();
-         if(nevent<0)
-           sprintf(fname,"%s/points_%d_%d.raw",path,s,patch);
-         else
-           sprintf(fname,"%s/points_%d_%d_%d.raw",path,nevent,s,patch);
-         if(!clusterfile[s][p]->SetBinaryInput(fname))
-           {
-             LOG(AliL3Log::kError,"AliL3Evaluation::Setup","File Open")
-               <<"Inputfile "<<fname<<" does not exist"<<ENDLOG; 
-             delete clusterfile[s][p];
-              clusterfile[s][p] = 0; 
-             continue;
-           }
-         fClusters[s][p] = (AliL3SpacePointData*)clusterfile[s][p]->Allocate();
-         clusterfile[s][p]->Binary2Memory(fNcl[s][p],fClusters[s][p]);
-         clusterfile[s][p]->CloseBinaryInput();
-         break;
-       }
-    }
-
-  //Second step: we assign the clusters to the fPoints array
-  Int_t nbc=0;
-  for(Int_t s=0; s<36; s++){
-      for(Int_t p=0;p<6;p++){
-         AliL3SpacePointData *points = fClusters[s][p];
-         if(!points) continue;
-         Float_t xyz[3];
-         for(UInt_t i=0; i<fNcl[s][p]; i++){
-             xyz[0] = points[i].fX;
-             xyz[1] = points[i].fY;
-             xyz[2] = points[i].fZ;
-             fPoints[fNb].SetPoint(i+nbc,xyz[0],xyz[1],xyz[2]);
-           }
-           nbc += fNcl[s][p];
-       }
-    }
-  fNb++;
-#else
-  printf("This is event %d\n",nevent);
-#endif
-}
-
-//_____________________________________________________________
-void AliDisplayHLT::Draw()
-{
-  for(Int_t i=0;i<fNb;i++){
-   if(gAliDisplay2->GetModuleInfo()->IsEnabled(fName[i])) fPoints[i].Draw();
-  }
-}
-
-
-ClassImp(AliSliderFrame);
-
-//_____________________________________________________________
-AliSliderFrame::AliSliderFrame(const TGWindow *p, UInt_t w, UInt_t h)
-{
-       fMainFrame = new TGCompositeFrame(p, w, h, kVerticalFrame | kRaisedFrame);
-       fLayout = new TGLayoutHints( kLHintsBottom | kLHintsRight | kLHintsExpandX,5,5,2,2);
-
-       //Momentum Slider
-       fMomentumFrame = new TGCompositeFrame(fMainFrame,0,0, kHorizontalFrame);
-       fMomentumLayout = new TGLayoutHints( kLHintsLeft | kLHintsTop | kLHintsExpandX ,5,5,2,2);
-       fMomentumSlider = new TGDoubleHSlider(fMomentumFrame, 400, kDoubleScaleBoth, kIdsMOMENTUM);
-       fMomentumSlider->Connect("PositionChanged()","AliSliderFrame",this,"DoSlider()");
-       fMomentumSlider->Connect("PositionChanged()","AliSliderFrame",this,"DoPositionChanged(Int_t)");
-       fMomentumSlider->Connect("Released()","AliSliderFrame",this,"DoReleased()");
-       SetMomentumRange(0,2);
-       fMomentumSlider->SetPosition(0,2);
-       fMomentumLabel = new TGLabel(fMomentumFrame,"Momentum");
-       
-       fMomentumMinValue = new TGNumberEntry(fMomentumFrame,GetMomentumMin(),7,kIdsMomentumMIN);
-       fMomentumMinValue->Connect("ValueChanged(Long_t)","AliSliderFrame",this,"DoField(Long_t)");
-       fMomentumMinValue->GetNumberEntry()->Connect("ReturnPressed()","AliSliderFrame",this,"DoField(Long_t)");
-       fMomentumMinValue->SetButtonToNum(kFALSE);
-       
-       fMomentumMaxValue = new TGNumberEntry(fMomentumFrame,GetMomentumMax(),7,kIdsMomentumMAX);
-       fMomentumMaxValue->Connect("ValueChanged(Long_t)","AliSliderFrame",this,"DoField(Long_t)");
-       fMomentumMaxValue->GetNumberEntry()->Connect("ReturnPressed()","AliSliderFrame",this,"DoField(Long_t)");
-       fMomentumMaxValue->SetButtonToNum(kFALSE);
-       
-       fMomentumFrame->AddFrame(fMomentumLabel,new TGLayoutHints( kLHintsLeft | kLHintsCenterY,5,5,2,2));
-       fMomentumFrame->AddFrame(fMomentumMinValue,new TGLayoutHints( kLHintsLeft ,5,5,2,2));
-       fMomentumFrame->AddFrame(fMomentumSlider,fMomentumLayout);
-       fMomentumFrame->AddFrame(fMomentumMaxValue,new TGLayoutHints( kLHintsRight,5,5,2,2));
-       fMomentumFrame->Resize(700,100);
-
-
-       //Rapidity Slider
-       fRapidityFrame = new TGCompositeFrame(fMainFrame,0,0, kHorizontalFrame);
-       fRapidityLayout = new TGLayoutHints( kLHintsLeft | kLHintsTop | kLHintsExpandX,5,5,2,2);
-       fRapiditySlider = new TGDoubleHSlider(fRapidityFrame, 400, kDoubleScaleBoth, kIdsRAPIDITY);
-       fRapiditySlider->Connect("PositionChanged()","AliSliderFrame",this,"DoSlider()");
-       fRapiditySlider->Connect("PositionChanged()","AliSliderFrame",this,"DoPositionChanged(Int_t)");
-       fRapiditySlider->Connect("Released()","AliSliderFrame",this,"DoReleased()");
-       SetRapidityRange(-1.5,1.5);
-       fRapiditySlider->SetPosition(-1.5,1.5);
-       fRapidityLabel = new TGLabel(fRapidityFrame,"Rapidity    ");
-       fRapidityMinValue = new TGNumberEntry(fRapidityFrame,GetRapidityMin(),7,kIdsRapidityMIN);
-       fRapidityMinValue->Connect("ValueChanged(Long_t)","AliSliderFrame",this,"DoField(Long_t)");
-       fRapidityMinValue->SetButtonToNum(kFALSE);
-       fRapidityMinValue->GetNumberEntry()->Connect("ReturnPressed()","AliSliderFrame",this,"DoField(Long_t)");
-       
-       fRapidityMaxValue = new TGNumberEntry(fRapidityFrame,GetRapidityMax(),7,kIdsRapidityMAX);
-       fRapidityMaxValue->Connect("ValueChanged(Long_t)","AliSliderFrame",this,"DoField(Long_t)");
-       fRapidityMaxValue->SetButtonToNum(kFALSE);
-       fRapidityMaxValue->GetNumberEntry()->Connect("ReturnPressed()","AliSliderFrame",this,"DoField(Long_t)");
-       
-       fRapidityFrame->AddFrame(fRapidityLabel,new TGLayoutHints( kLHintsLeft | kLHintsCenterY,5,5,2,2));
-       fRapidityFrame->AddFrame(fRapidityMinValue,new TGLayoutHints( kLHintsLeft ,5,5,2,2));
-       fRapidityFrame->AddFrame(fRapiditySlider,fRapidityLayout);
-       fRapidityFrame->AddFrame(fRapidityMaxValue,new TGLayoutHints( kLHintsRight ,5,5,2,2));
-       fRapidityFrame->Resize(700,100);
-       
-       fMainFrame->AddFrame(fMomentumFrame,fLayout);
-       fMainFrame->AddFrame(fRapidityFrame,fLayout);
-       fMainFrame->MapSubwindows();
-       fMainFrame->MapWindow();
-       fMainFrame->Resize(700,100);
-       LoadFromRC();
-}
-
-//_____________________________________________________________
-AliSliderFrame::~AliSliderFrame(void)
-{
-       delete fLayout;
-       delete fRapidityLayout;
-       delete fMomentumLayout;
-       delete fMomentumMinValue;
-       delete fMomentumMaxValue;
-       delete fMainFrame;
-       delete fRapidityFrame;
-       delete fMomentumFrame;
-       delete fMomentumSlider;
-       delete fRapiditySlider;
-       delete fMomentumLabel;
-       delete fRapidityLabel;
-       delete fRapidityMinValue;
-       delete fRapidityMaxValue;
-}
-
-//_____________________________________________________________
-void AliSliderFrame::CloseWindow(void)
-{
-       delete this;
-}
-
-//_____________________________________________________________
-void AliSliderFrame::DoSlider(Int_t /*pos*/)
-{
-       TGFrame *frame = (TGFrame *) gTQSender;
-       TGDoubleSlider * ds = (TGDoubleSlider *) frame;
-       int id = ds->WidgetId();
-       char min[8];
-       char max[8];
-       switch(id){
-       case kIdsMOMENTUM:{
-               //sprintf(buf,"momentum min:%f max:%f",GetMomentumMin(),GetMomentumMax());
-               //printf("\n%s",buf);
-               sprintf(min,"%.4f",GetMomentumMin());
-               sprintf(max,"%.4f",GetMomentumMax());
-               fMomentumMaxValue->SetText(max);
-               fMomentumMinValue->SetText(min);
-                                                       }
-               break;
-       case kIdsRAPIDITY:{
-               sprintf(min,"%.4f",GetRapidityMin());
-               sprintf(max,"%.4f",GetRapidityMax());
-               fRapidityMaxValue->SetText(max);
-               fRapidityMinValue->SetText(min);
-                                                       }
-               break;
-       default:break;
-       }
-}
-
-//_____________________________________________________________
-void AliSliderFrame::DoReleased(Int_t /*pos*/)
-{
-       TGFrame *frame = (TGFrame *) gTQSender;
-       TGDoubleSlider * ds = (TGDoubleSlider *) frame;
-       int id = ds->WidgetId();
-       switch(id){
-       case kIdsRAPIDITY:
-       case kIdsMOMENTUM:
-               gAliDisplay2->Update(kmCUTS);
-               break;
-       default: break;
-       }
-}
-
-//_____________________________________________________________
-void AliSliderFrame::DoPositionChanged(Int_t /*pos*/)
-{
-        if(!gAliDisplay2->GetSliderUpdate()) return;
-       TGFrame *frame = (TGFrame *) gTQSender;
-       TGDoubleSlider * ds = (TGDoubleSlider *) frame;
-       int id = ds->WidgetId();
-       switch(id){
-       case kIdsRapidityMIN:
-       case kIdsRapidityMAX:
-       case kIdsMomentumMIN:
-       case kIdsMomentumMAX:{
-               gAliDisplay2->Update(kmCUTS);
-       }
-               break;
-       default: break;
-       }
-}
-
-//_____________________________________________________________
-void AliSliderFrame::DoField(Long_t pos)
-{
-       TGNumberEntry *ne = (TGNumberEntry *) gTQSender;
-       int id = ne->WidgetId();
-       char max[8],min[8];
-       Int_t sign=0;
-       Float_t step=gAliDisplay2->GetSliderStep();
-       if((pos/10000)==0){//Up button pressed
-               sign = 1;
-       }
-       else sign = -1;
-
-       switch(id){
-       case kIdsMomentumMIN:{
-               fMomentumMinValue->SetNumber(fMomentumMinValue->GetNumber()+step*sign);
-               sprintf(min,"%.4f",fMomentumMinValue->GetNumber());
-               fMomentumMinValue->SetText(min);
-                                                                }
-               break;
-       case kIdsMomentumMAX:{
-               fMomentumMaxValue->SetNumber(fMomentumMaxValue->GetNumber()+step*sign);
-               sprintf(max,"%.4f",fMomentumMaxValue->GetNumber());
-               fMomentumMaxValue->SetText(max);
-                                                                }
-               break;
-       case kIdsRapidityMIN:{
-               fRapidityMinValue->SetNumber(fRapidityMinValue->GetNumber()+step*sign);
-               sprintf(min,"%.4f",fRapidityMinValue->GetNumber());
-               fRapidityMinValue->SetText(min);
-                                                                }
-               break;
-       case kIdsRapidityMAX:{
-               fRapidityMaxValue->SetNumber(fRapidityMaxValue->GetNumber()+step*sign);
-               sprintf(max,"%.4f",fRapidityMaxValue->GetNumber());
-               fRapidityMaxValue->SetText(max);
-                                                                }
-               break;
-       default:break;
-       }
-
-       fMomentumSlider->SetPosition(fMomentumMinValue->GetNumber(),fMomentumMaxValue->GetNumber());
-       fRapiditySlider->SetPosition(fRapidityMinValue->GetNumber(),fRapidityMaxValue->GetNumber());
-//     gAliDisplay2->Draw();
-       gAliDisplay2->Update(kmCUTS);
-}
-
-//_____________________________________________________________
-void AliSliderFrame::SaveToRC()
-{
-       TEnv *rc=new TEnv(".alidisplayrc");
-       rc->SetValue("AliDisplay.MomentumMin",GetMomentumMin());
-       rc->SetValue("AliDisplay.MomentumMax",GetMomentumMax());
-       rc->SetValue("AliDisplay.RapidityMin",GetRapidityMin());
-       rc->SetValue("AliDisplay.RapidityMax",GetRapidityMax());
-       rc->SaveLevel(kEnvLocal);
-       rc->Save();
-}
-
-//_____________________________________________________________        
-void AliSliderFrame::LoadFromRC()
-{
-  TEnv *rc=new TEnv(".alidisplayrc");
-  Float_t a,b;
-  a=rc->GetValue("AliDisplay.MomentumMin",0);
-  b=rc->GetValue("AliDisplay.MomentumMax",2);
-  fMomentumSlider->SetPosition(a,b);
-  a=rc->GetValue("AliDisplay.RapidityMin",-1.5);
-  b=rc->GetValue("AliDisplay.RapidityMax",1.5);
-  fRapiditySlider->SetPosition(a,b);
-}
-
-
-ClassImp(AliDetectorFrame);
-
-int AliDetectorFrame::fgBaseId = 1000;
-
-//_____________________________________________________________
-AliDetectorFrame::AliDetectorFrame(const TGWindow *p, Int_t w, Int_t h,UInt_t bgc)
-{
-       fMainFrame = new TGCompositeFrame(p,w,h,kVerticalFrame,bgc);
-       TGLayoutHints *layout = new TGLayoutHints(kLHintsTop | kLHintsLeft,2,2,2,2);
-       TGLayoutHints *layout2 = new TGLayoutHints(kLHintsTop | kLHintsRight,2,2,2,2);
-       TGLayoutHints *layout3 = new TGLayoutHints(kLHintsTop | kLHintsExpandX,2,2,2,2);
-       fCheckButton = new TGCheckButton*[gAliDisplay2->GetNbModules()];
-       fCheckedButton = new Bool_t[gAliDisplay2->GetNbModules()];
-       fCheckButtonId = new Int_t[gAliDisplay2->GetNbModules()];
-       TGCompositeFrame *dframe;
-       TGButton                 *button;
-       char                     text[32];
-       AliModule       *mod;
-       fCheckedMode = kFALSE;
-       for(Int_t i=0;i<gAliDisplay2->GetNbModules();i++){
-               mod = dynamic_cast<AliModule*> (gAliDisplay2->GetModules()->At(i));
-               if(!mod) continue;
-               dframe = new TGCompositeFrame(fMainFrame,150,20,kHorizontalFrame);
-               fCheckButton[i] = new TGCheckButton(dframe,mod->GetName(),fgBaseId);
-               fCheckButtonId[i]=fgBaseId;
-               fCheckButton[i]->Connect("Clicked()","AliDetectorFrame",this,"DoCheckButton(Int_t)");           
-               fCheckedButton[i]=kTRUE;
-               dframe->AddFrame(fCheckButton[i],layout);
-               fCheckButton[i]->SetState(kButtonDown);
-               sprintf(text,"Specific %s view",mod->GetName());
-               button = new TGTextButton(dframe,"Display",fgBaseId);
-               button->SetToolTipText(text);
-               button->Connect("Clicked()","AliDetectorFrame",this,"DoSpecific()");
-               dframe->AddFrame(button,layout2);
-               fMainFrame->AddFrame(dframe,layout3);
-               gAliDisplay2->GetModuleInfo()->SetId((char*)mod->GetName(),fgBaseId);
-               fgBaseId++;
-       }       
-       gAliDisplay2->GetModuleInfo()->Print();
-       fButtonFrame = new TGCompositeFrame(fMainFrame,w,100,kHorizontalFrame,bgc);
-       fButtonAll = new TGTextButton(fButtonFrame,"All",kIdbSelectALL);
-       fButtonAll->Connect("Clicked()","AliDetectorFrame",this,"DoButton(Int_t)");
-       fButtonFrame->AddFrame(fButtonAll,new TGLayoutHints(kLHintsBottom | kLHintsLeft,2,2,2,2));
-       fButtonInvert = new TGTextButton(fButtonFrame,"Invert",kIdbSelectINVERT);
-       fButtonInvert->Connect("Clicked()","AliDetectorFrame",this,"DoButton(Int_t)");
-       fButtonFrame->AddFrame(fButtonInvert,new TGLayoutHints(kLHintsBottom | kLHintsRight,2,2,2,2));
-       fMainFrame->AddFrame(fButtonFrame,new TGLayoutHints(kLHintsBottom | kLHintsLeft|kLHintsExpandX,0,0,2,2));               
-       fCheckedMode = kTRUE;
-}
-
-//_____________________________________________________________
-AliDetectorFrame::~AliDetectorFrame()
-{
-       for(Int_t i=0;i<gAliDisplay2->GetNbModules();i++){
-               delete fCheckButton[i];
-       }
-       delete fCheckButton;
-       delete fCheckedButton;
-       delete fCheckButtonId;
-       //delete [] fDetectorName;
-       delete fButtonFrame;
-       delete fMainFrame;
-       delete fButtonAll;
-       delete fButtonInvert;
-}
-
-//_____________________________________________________________
-void AliDetectorFrame::DoButton(Int_t /*pos*/)
-{
-       TGFrame *frame = (TGFrame *) gTQSender;
-       TGButton *bu= (TGButton *) frame;
-       int id = bu->WidgetId();        
-       fCheckedMode = kFALSE;
-       AliModule *mo;
-       switch(id){
-       case kIdbSelectALL:{
-                       for(Int_t i=0;i<gAliDisplay2->GetNbModules();i++){
-                               mo = dynamic_cast<AliModule *> (gAliDisplay2->GetModules()->At(i));
-                               if(!mo) continue;
-                               fCheckButton[i]->SetState(kButtonDown);
-                               fCheckedButton[i]=kTRUE;
-                               gAliDisplay2->EnableDetector(mo->GetName());
-                       }
-                                                         }
-               break;
-       case kIdbSelectINVERT:{
-                       for(Int_t i=0;i<gAliDisplay2->GetNbModules();i++){
-                               mo = dynamic_cast<AliModule *> (gAliDisplay2->GetModules()->At(i));
-                               if(!mo) continue;
-                               if(fCheckedButton[i]==kTRUE) {
-                                       fCheckButton[i]->SetState(kButtonUp);
-                                       fCheckedButton[i]=kFALSE;
-                                       gAliDisplay2->DisableDetector(mo->GetName());
-                               }
-                               else if(fCheckedButton[i]==kFALSE)  {
-                                       fCheckButton[i]->SetState(kButtonDown);
-                                       fCheckedButton[i]=kTRUE;
-                                       gAliDisplay2->EnableDetector(mo->GetName());
-                               }
-                       }
-                                                                 }
-               break;
-       default:break;
-       }
-       gAliDisplay2->Update(kmMODULES);
-       fCheckedMode = kTRUE;
-}
-
-//_____________________________________________________________
-void AliDetectorFrame::DoCheckButton(Int_t /*pos*/)
-{
-       if(fCheckedMode == kFALSE) return;
-       TGFrame *frame = (TGFrame *) gTQSender;
-       TGCheckButton *bu= (TGCheckButton *) frame;
-       Int_t id = bu->WidgetId();
-       AliModule *mo;
-       for(Int_t i=0;i<gAliDisplay2->GetNbModules();i++){
-               mo = dynamic_cast<AliModule *> (gAliDisplay2->GetModules()->At(i));
-               if(!mo) continue;
-               if(id==fCheckButtonId[i]){
-                       if(fCheckedButton[i]==kTRUE) {
-                               fCheckedButton[i]=kFALSE;
-                               gAliDisplay2->DisableDetector(mo->GetName());
-                               }
-                       else {
-                       fCheckedButton[i]=kTRUE;
-                       gAliDisplay2->EnableDetector(mo->GetName());
-                       }
-               }
-       }
-       gAliDisplay2->Update(kmMODULES);
-}
-
-//_____________________________________________________________
-void AliDetectorFrame::DoSpecific()
-{
-       TGFrame *frame = (TGFrame *) gTQSender;
-       TGCheckButton *bu= (TGCheckButton *) frame;
-       Int_t id = bu->WidgetId();
-       AliModule *mo;
-       for(Int_t i=0;i<gAliDisplay2->GetNbModules();i++){
-               mo = dynamic_cast<AliModule *> (gAliDisplay2->GetModules()->At(i));
-               if(!mo) continue;
-               if(id==fCheckButtonId[i]){
-                       gAliDisplay2->DrawDetector(mo->GetName());
-               }
-       }
-}
-
-
-ClassImp(AliShutterItem);
-
-//_____________________________________________________________
-AliShutterItem::AliShutterItem(TGShutter *s,char *text, UInt_t id)
-{
-       fShutterItem = new TGShutterItem(s, new TGHotString(text), id);
-       fMainFrame = (TGCompositeFrame *) fShutterItem->GetContainer();
-       s->AddItem(fShutterItem);
-}
-
-//_____________________________________________________________
-AliShutterItem::~AliShutterItem(void)
-{
-       delete fButton;
-       delete fShutterItem;
-       delete fMainFrame;
-}
-
-//_____________________________________________________________
-void AliShutterItem::AddTextButton(char* text,char *tiptext, UInt_t idb)
-{
-       //Add a TGTextButton in the TGShutterItem. This button will execute the fonction
-       fButton = new TGTextButton(fMainFrame,new TGHotString(text),idb);
-       fButton->Resize(100,fButton->GetDefaultHeight());
-       fButton->Connect("Clicked()","AliShutterItem",this,"DoButton(Int_t)");
-       fButton->SetToolTipText(tiptext);
-       //fButton->Connect("Clicked()","AliDisplay2",gAliDisplay2,"DoViews(Int_t)");
-       fMainFrame->AddFrame(fButton, new TGLayoutHints( kLHintsTop | kLHintsCenterX ,5,5,10,10));
-}
-
-//_____________________________________________________________
-void AliShutterItem::AddPictureButton(char* file, char *tiptext, UInt_t idb)
-{
-       //Add a TGPictureButton in the TGShutterItem. The icon file must be in DISPLAY/icons
-       TString filename=StrDup(gAliDisplay2->GetIconsPath());
-       filename.Append(file);
-       TGPicture *picture = (TGPicture *) gClient->GetPicture(filename);
-       fButton = new TGPictureButton(fMainFrame,picture,idb);          
-       fButton->SetToolTipText(tiptext);
-       fButton->Connect("Clicked()","AliShutterItem",this,"DoButton(Int_t)");
-       fMainFrame->AddFrame(fButton, new TGLayoutHints( kLHintsTop | kLHintsCenterX ,5,5,10,10));
-}
-
-//_____________________________________________________________
-void AliShutterItem::AddCheckButton(char *text,Int_t idb)
-{
-       fButton = new TGCheckButton(fMainFrame,new TGHotString(text),idb);
-       fButton->Resize(100,fButton->GetDefaultHeight());
-       fButton->Connect("Clicked()","AliShutterItem",this,"DoButton(Int_t)");
-       fMainFrame->AddFrame(fButton, new TGLayoutHints( kLHintsTop | kLHintsLeft ,5,5,10,10));
-}
-
-//_____________________________________________________________
-void AliShutterItem::DoButton(Int_t /*pos*/){
-       TGFrame *frame = (TGFrame *) gTQSender;
-       TGButton *bu= (TGButton *) frame;
-       int id = bu->WidgetId();
-       switch(id){
-       case kIdbNextEVENT:{
-               gAliDisplay2->ShowNextEvent(1);
-                                                         }
-               break;
-       case kIdbPrevEVENT:{
-               gAliDisplay2->ShowNextEvent(-1);
-                                                         }
-               break;
-       case kIdbCheckHITS:{
-         if(gAliDisplay2->IsEnabled(kHits)) gAliDisplay2->Disable(kHits);
-         else gAliDisplay2->Enable(kHits);       
-               }
-               break;
-       case kIdbCheckCLUSTERS:{
-         if(gAliDisplay2->IsEnabled(kClusters)) gAliDisplay2->Disable(kClusters);
-         else gAliDisplay2->Enable(kClusters);
-       }
-               break;
-       case kIdbCheckHLT:{
-         if(gAliDisplay2->IsEnabled(kHLT)) gAliDisplay2->Disable(kHLT);
-         else gAliDisplay2->Enable(kHLT);
-       }
-         break;
-       case kIdbCheckTRACKS:{
-         if(gAliDisplay2->IsEnabled(kTracks)) gAliDisplay2->Disable(kTracks);
-         else gAliDisplay2->Enable(kTracks);
-       }
-         break;
-       case kIdbSIDEVIEW:{
-               gAliDisplay2->DoView(kIdbSIDEVIEW);
-                                                       }
-               break;
-       case kIdbFRONTVIEW:{
-               gAliDisplay2->DoView(kIdbFRONTVIEW);
-                                                        }
-               break;
-       case kIdbTOPVIEW:{
-               gAliDisplay2->DoView(kIdbTOPVIEW);
-                                                 }
-               break;
-       case kIdbALLVIEW:{
-               gAliDisplay2->DoView(kIdbALLVIEW);
-                                                 }
-               break;
-       default:break;
-       }
-}
-
-ClassImp(AliShutterFrame);
-
-//_____________________________________________________________
-AliShutterFrame::AliShutterFrame(TGCompositeFrame *p, UInt_t /*w*/, UInt_t h){
-       fShutter = new TGShutter(p,kSunkenFrame);
-       fLayout = new TGLayoutHints(kLHintsExpandY | kLHintsTop | kLHintsLeft);
-       fMainFrame = (TGCompositeFrame *) fShutter;
-       
-       //Event Shutter
-       AliShutterItem *item = new AliShutterItem(fShutter,"Event",kIdsEVENT);
-       
-       item->AddPictureButton("next.xpm","Show next event",kIdbNextEVENT);
-       item->AddPictureButton("prev.xpm","Show previous event",kIdbPrevEVENT);
-
-       //View Shutter
-       item = new AliShutterItem(fShutter,"View",kIdsVIEW);
-       item->AddPictureButton("top.xpm","Top view",kIdbTOPVIEW);
-       item->AddPictureButton("side.xpm","Side view",kIdbSIDEVIEW);
-       item->AddPictureButton("front.xpm","Front view",kIdbFRONTVIEW);
-       item->AddPictureButton("four.xpm","Four views",kIdbALLVIEW);
-
-       //Detector Shutter
-       item = new AliShutterItem(fShutter,"Detectors",kIdsDETECTORS);
-       TGCompositeFrame *frame = item->GetShutterItemFrame();
-       fDetectorFrameLayout = new TGLayoutHints( kLHintsTop | kLHintsLeft| kLHintsExpandX | kLHintsCenterX,5,5,5,5);
-       fDetectorFrame = new AliDetectorFrame(frame,200,200,item->GetShutterItem()->GetDefaultFrameBackground());
-       frame->AddFrame(fDetectorFrame->GetDetectorFrame(),fDetectorFrameLayout);
-       
-       //Options Shutter
-       item = new AliShutterItem(fShutter,"Options",kIdsOPTIONS);
-       item->AddCheckButton("Display Hits",kIdbCheckHITS);
-       item->AddCheckButton("Display Clusters",kIdbCheckCLUSTERS);
-       item->AddCheckButton("Display HLT Clusters",kIdbCheckHLT);
-       //      item->AddCheckButton("Display Tracks",kIdbCheckTRACKS);
-
-       fMainFrame->Resize(150,h);
-}
-
-//_____________________________________________________________
-AliShutterFrame::~AliShutterFrame(void)
-{
-       delete fLayout;
-       delete fShutter;
-       delete fMainFrame;
-       delete fDetectorFrame;
-       delete fDetectorFrameLayout;
-}
-
-
-ClassImp(AliDisplayFrame);
-
-//_____________________________________________________________
-AliDisplayFrame::AliDisplayFrame(const TGWindow *p, UInt_t w, UInt_t h)
-{
-       fClipMin=-20;
-       fClipMax=20;
-       fPreviousW=0;
-       fPreviousH=0;
-       fRange = 500;
-       fPolyMarkers = new TObjArray(1000);
-       
-       fMainFrame = new TGCompositeFrame(p,w,h);
-       fMainTab = new TGTab(fMainFrame, w, h);
-       TGCompositeFrame *fFrame1 = fMainTab->AddTab("Main View");
-       fMainEmbeddedCanvas = new TRootEmbeddedCanvas("Main12",fFrame1,w,h,kFixedWidth);
-       fFrame1->AddFrame(fMainEmbeddedCanvas,new TGLayoutHints( kLHintsTop | kLHintsLeft|kLHintsExpandX| kLHintsExpandY, 0, 0, 0, 0));
-       fMainCanvas = fMainEmbeddedCanvas->GetCanvas();
-       fMainCanvas->SetFillColor(1);
-       fMainCanvas->SetBorderMode(0);
-       fMainCanvas->cd();
-       fMainCanvas->SetFixedAspectRatio();
-       fMainCanvas->Connect("ProcessedEvent(Int_t,Int_t,Int_t,TObject*)","AliDisplayFrame",this,"ExecuteEvent(Int_t,Int_t,Int_t,TObject*)");
-       //fView = new TView(1);
-       //DoView(kIdbFRONTVIEW);
-       
-       gAliDisplay2->SetCurrentView(kIdbFRONTVIEW);    
-       
-       TGCompositeFrame  *fFrame2 = fMainTab->AddTab("No detector");
-       fSelectionEmbeddedCanvas = new TRootEmbeddedCanvas("Selection",fFrame2,w,h);
-       fSelectionCanvas = fSelectionEmbeddedCanvas->GetCanvas();
-       fSelectionCanvas->SetFillColor(1);
-       fSelectionCanvas->SetBorderMode(0);
-       fSelectionCanvas->cd();
-       fFrame2->AddFrame(fSelectionEmbeddedCanvas,new TGLayoutHints( kLHintsTop | kLHintsLeft|kLHintsExpandX| kLHintsExpandY, 0, 0, 0, 0));
-       fMainFrame->AddFrame(fMainTab,new TGLayoutHints( kLHintsTop | kLHintsLeft|kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
-       fAllViews = kFALSE;
-       fMainFrame->MapSubwindows();
-       fMainFrame->MapWindow();
-}
-
-//_____________________________________________________________
-AliDisplayFrame::~AliDisplayFrame(void)
-{
-       delete fMainTab;
-       delete fSelectionEmbeddedCanvas;
-       delete fMainEmbeddedCanvas;
-       delete fFrame1;
-       delete fFrame2;
-       delete fMainCanvas;
-       delete fSelectionCanvas;
-       delete fPoints2;
-       delete fPoints;
-       delete fModules;
-       delete fMainFrame;
-       delete [] fActivePoints;
-       delete [] fClustersPos;
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::DoView(Int_t view)
-{
-       Int_t x,y;
-       char vname[16];
-       y=fMainFrame->GetDefaultHeight();
-       x=fMainFrame->GetDefaultWidth();
-       gAliDisplay2->SetCurrentView(view);
-       switch(view){
-       case kIdbALLVIEW:{
-               fAllViews=kTRUE;
-               strcpy(vname,"All views");      
-               fMainCanvas->cd();
-               gPad->Clear();
-               fMainCanvas->SetFillColor(15);
-               fMainCanvas->Divide(2,2,0.005,0.005,1);
-               
-               fMainCanvas->cd(1);
-               Draw(30,30,0);
-
-               gAliDisplay2->SetCurrentView(kIdbTOPVIEW);
-               fMainCanvas->cd(2);
-               Draw(90,-90,90);
-
-               gAliDisplay2->SetCurrentView(kIdbSIDEVIEW);
-               fMainCanvas->cd(3);             
-               Draw(90,0,-90);
-               
-               gAliDisplay2->SetCurrentView(kIdbFRONTVIEW);
-               fMainCanvas->cd(4);
-               Draw(0,-90,0);
-               
-               //fMainCanvas->cd();
-               
-       }
-               break;
-       case kIdbTOPVIEW:{
-               strcpy(vname,"Top view  ");
-               fAllViews=kFALSE;       
-               fMainCanvas->cd();                                                                                      
-               gPad->SetFillColor(1);
-               gPad->Clear();
-               gPad->Draw();
-               Draw(90,-90,90);
-       }
-               break;
-       case kIdbSIDEVIEW:{
-               strcpy(vname,"Side view");
-               fAllViews=kFALSE;       
-               fMainCanvas->cd();              
-               gPad->SetFillColor(1);
-               gPad->Clear();
-               gPad->Draw();
-               Draw(90,0,-90);
-       }
-               break;
-       case kIdbFRONTVIEW:{
-               strcpy(vname,"Front view");
-               fAllViews=kFALSE;       
-               fMainCanvas->cd();
-               gPad->SetFillColor(1);
-               gPad->Clear();
-               gPad->Draw();
-               
-               Draw(0,-90,0);
-       }
-               break;
-       default: break;
-       }
-       (fMainTab->GetTabTab(0))->SetText(new TGString(vname));
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::DrawDetector(const char *name)
-{
-       (fMainTab->GetTabTab(1))->SetText(new TGString(name));
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::EnableDetector(const char *name)
-{
-       AliModule *module = dynamic_cast<AliModule*>(gAlice->Modules()->FindObject(name));
-       if(!module) return;
-       gAliDisplay2->GetModuleInfo()->Enable((char*)name);
-       module->Enable();
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::DisableDetector(const char *name)
-{
-       AliModule *module = dynamic_cast<AliModule*>(gAlice->Modules()->FindObject(name));
-       if(!module) return;
-       gAliDisplay2->GetModuleInfo()->Disable((char*)name);
-       module->Disable();
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::Draw(Float_t theta, Float_t phi, Float_t psi)
-{
-  //clock_t t1,t2;
-  time_t t1,t2;
-  //t1 = clock();
-  TStopwatch timer;
-  timer.Start();
-  time(&t1);
-       gPad->SetCursor(kWatch);
-       gPad->SetEditable(kTRUE);
-       gPad->SetFillColor(1);
-       gPad->Clear();
-       
-       Int_t iret;
-       
-       TView *view = new TView(1);
-       TGDimension dim=((TGCanvas*)fMainEmbeddedCanvas)->GetViewPort()->GetDefaultSize();
-       Float_t aspectRatio = dim.fWidth/(Float_t) dim.fHeight;
-       //printf("Dimension %d %d",dim.fWidth,dim.fHeight);
-       if(gAliDisplay2->GetCurrentView()==kIdbFRONTVIEW){
-               view->SetRange(-fRange*aspectRatio,-fRange,-fRange,fRange*aspectRatio,fRange,fRange);
-       }
-       if(gAliDisplay2->GetCurrentView()==kIdbTOPVIEW){
-               view->SetRange(-fRange,-fRange,-fRange*aspectRatio,fRange,fRange,fRange*aspectRatio);
-       }
-       if(gAliDisplay2->GetCurrentView()==kIdbSIDEVIEW){
-               view->SetRange(-fRange,-fRange,-fRange*aspectRatio,fRange,fRange,fRange*aspectRatio);
-       }
-       
-       gAlice->GetGeometry()->Draw("same");
-       if(gAliDisplay2->IsEnabled(kHits)) DrawHits();
-       if(gAliDisplay2->IsEnabled(kClusters)) fClusters->Draw();
-       if(gAliDisplay2->IsEnabled(kHLT)) fHLT->Draw();
-
-       gAliDisplay2->AppendPad();
-       view->SetView(phi,theta,psi,iret);
-       
-       view->ZoomView(gPad,gAliDisplay2->GetZoomFactor());
-       //t2 = clock();
-       time(&t2);
-       //      printf("\nDrawn in....%f sec", ((double)t2-t1)/(10000*CLK_TCK));
-       printf("\nDrawn in....%2lf sec", difftime(t2,t1));
-       timer.Stop();
-       timer.Print("m");
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::DrawHits()
-{
-       AliPoints *p;
-       if(!fPoints2) return;
-       for(Int_t i=0;i<fPoints2->GetEntries();i++){
-               if(fActivePoints[i]){
-                       p=dynamic_cast<AliPoints *>(fPoints2->UncheckedAt(i));  
-                       if(!p) continue;
-                       p->Draw();
-               }
-       }
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::LoadEnabledModules()
-{
-       clock_t t1,t2;
-       t1=clock(); 
-       TIter next(gAlice->Modules());
-       AliModule *module;
-       fModules = new TObjArray(0,32);
-       while((module = dynamic_cast <AliModule*> (next()))){
-               if(!module) continue;
-               if(!module->IsActive()) continue;
-               fModules->AddLast(module);
-       }
-       t2=clock();
-       fNbModules = fModules->GetEntriesFast();
-       //      printf("\nModules loaded in.....%f sec", ((double)t2-t1)/(10000*CLK_TCK));
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::LoadClusters(Int_t nevent)
-{
-       fClusters = new AliDisplayClusters();
-       fClusters->LoadClusters("ITS TPC",nevent);
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::LoadHLTClusters(Int_t nevent)
-{
-  fHLT = new AliDisplayHLT();
-  fHLT->LoadHLT("TPC",nevent);
-}
-       
-//_____________________________________________________________
-void AliDisplayFrame::LoadHits()
-{
-       clock_t t1,t2;
-
-       t1=clock(); 
-       fPoints2 = new TObjArray(0,1000);
-       AliModule *module;
-       TObjArray *points;
-       for(Int_t i=0;i<fNbModules;i++){
-               module = dynamic_cast<AliModule*>(fModules->UncheckedAt(i));
-               if(!module) continue;
-               points = module->Points();
-               if(!points) {
-                       continue;
-               }
-               for(Int_t j=0;j<points->GetEntriesFast();j++){
-                       if(!points->UncheckedAt(j)) continue;
-                       fPoints2->AddLast((points->UncheckedAt(j)));
-               }       
-       }
-       fActivePoints = new Bool_t[fPoints2->GetEntries()];
-       for(Int_t k=0;k<fPoints2->GetEntriesFast();k++){
-               fActivePoints[k]=kTRUE;
-       }
-       printf("\n nb hits %d",fPoints2->GetEntries());
-       t2=clock();
-       //      printf("\nPoints loaded in....%f sec", ((double)t2-t1)/(10000*CLK_TCK));
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::ApplyCuts()
-{
-       clock_t t1,t2;
-       t1=clock();
-       
-       Float_t         *pxyz;
-       Float_t         r,theta,eta,cutmin,cutmax,etamin,etamax,pmom,smin,smax;
-       Int_t           nbhits=0;
-       AliPoints *pm;
-       TParticle *particle;
-       
-       //Get momentum cut
-       smin = gAliDisplay2->GetMomentumMin();
-       smax = gAliDisplay2->GetMomentumMax();
-       cutmin = 2.0*smin;
-       if(smax<0.98)   cutmax = 2.0*smax;
-       else                    cutmax = 100000;
-       
-       //Get rapidity cut
-       smax = gAliDisplay2->GetRapidityMax();
-       smin = gAliDisplay2->GetRapidityMin();
-       //etamin = 1.5*(2*smin-1);
-       //etamax = 1.5*(2*smax-1);
-       etamin = smin;
-       etamax = smax;
-       if(smin<-1.46) etamin = -1000;
-       if(smax>1.46) etamax = 1000;
-       
-
-       if(!fPoints2) return;
-       for(Int_t i=0;i<fPoints2->GetEntries();i++){
-               pm = dynamic_cast<AliPoints*>(fPoints2->UncheckedAt(i));
-               if(!pm) {
-                       fActivePoints[i]=kFALSE;
-                       continue;
-               }
-               particle = pm->GetParticle();
-               if(!particle) {
-                       fActivePoints[i]=kFALSE;
-                       continue;
-               }
-               pmom = particle->P();
-               if(pmom < cutmin) {
-                       fActivePoints[i]=kFALSE;
-                       continue;
-               }
-               if(pmom > cutmax) {
-                       fActivePoints[i]=kFALSE;
-                       continue;
-               }
-               pxyz = pm->GetP();
-               r = TMath::Sqrt(pxyz[0]*pxyz[0]+pxyz[1]*pxyz[1]);
-               theta = TMath::ATan2(r,TMath::Abs(pxyz[2]));
-               if(theta) eta = -TMath::Log(TMath::Abs(TMath::Tan(0.5*theta)));
-               else eta = 1e10;
-               if(pxyz[2] < 0) eta = -eta;
-               if((eta < etamin) || (eta > etamax)) {
-                       fActivePoints[i]=kFALSE;
-                       continue;
-               }
-               fActivePoints[i]=kTRUE;
-               //pm->Draw();
-               nbhits += pm->GetN();
-       }
-       gAliDisplay2->SetNbHits(nbhits);
-       t2=clock();
-       //      printf("\nCuts applied in....%f sec", ((double)t2-t1)/(10000*CLK_TCK));
-       gAliDisplay2->SetNbParticles(GetNbActivePoints()); 
-}
-
-//_____________________________________________________________
-Int_t AliDisplayFrame::GetNbActivePoints()
-{
-       Int_t ans=0;
-       for(Int_t i=0;i<fPoints2->GetEntries();i++){
-               if(fActivePoints[i]) ans++;
-       }
-       return ans;
-}
-//_____________________________________________________________
-void AliDisplayFrame::DrawX3d()
-{
-       TPad *pad = dynamic_cast<TPad*>(gPad);
-       pad->cd();
-       TView *view = pad->GetView();
-       if(!view) return;
-       pad->x3d();
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::SavePadGIF(const char *file)
-{
-  if(!gPad){
-    printf("\nThere is no active pad");
-    return;
-  }
-  gPad->SaveAs(file);
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::DrawGL()
-{
-       TPad *pad = dynamic_cast<TPad*>(gPad);
-       pad->cd();
-       TView *view = pad->GetView();
-       if(!view) return;
-       pad->x3d("OPENGL");
-}
-
-//_____________________________________________________________
-void AliDisplayFrame::ExecuteEvent(Int_t event, Int_t px,Int_t py,TObject *)
-{
-       static Float_t x0,y0,x1,y1;
-       static Int_t pxold,pyold;
-       static Int_t px0,py0;
-       static Int_t linedrawn;
-       Float_t temp;
-       
-       
-       switch(event){
-       case kMouseMotion:{
-                       
-                       AliPoints *p=dynamic_cast<AliPoints*> (gPad->GetSelected());
-                       if(p){
-                               gAliDisplay2->SetStatusBar(p->GetName(),1);
-                               gAliDisplay2->SetStatusBar(p->GetDetector()->GetName(),2);
-                               }
-                       }
-                       break;
-               default:break;
-       }       
-       
-       if((!gAliDisplay2->GetZoomMode())&&(gPad->GetView())){
-               gPad->GetView()->ExecuteRotateView(event,px,py);
-               return;
-       }
-       
-
-       
-       if(gAliDisplay2->GetZoomMode()==kTRUE){
-               switch(event){
-                       
-               case kButton1Down:{
-                       gVirtualX->SetLineColor(-1);
-                       gPad->TAttLine::Modify();
-                       x0 = gPad->AbsPixeltoX(px);
-                       y0 = gPad->AbsPixeltoY(py);
-                       px0 = px;
-                       py0 = py;
-                       pxold = px;
-                       pyold = py;
-                       linedrawn = 0;
-               }
-               break;
-               case kButton1Motion:{
-                       if(linedrawn) gVirtualX->DrawBox(px0,py0,pxold,pyold,TVirtualX::kHollow);
-                       pxold = px;
-                       pyold = py;
-                       linedrawn = 1;
-                       gVirtualX->DrawBox(px0,py0,pxold,pyold,TVirtualX::kHollow);
-               }
-               break;
-               
-               case kButton1Up:{
-                       gPad->GetCanvas()->FeedbackMode(kFALSE);
-                       if(px == px0) break;
-                       if(py == py0) break;
-                       x1 = gPad->AbsPixeltoX(px);
-                       y1 = gPad->AbsPixeltoY(py);
-                       if(x1<x0) { 
-                               temp = x0;
-                               x0 = x1;
-                               x1 = temp;
-                       }
-                       if(y1<y0) {
-                               temp = y0;
-                               y0 = y1;
-                               y1 = temp;
-                       }
-                       printf("\nBox (%f,%f)-(%f,%f)",x0,y0,x1,y1);
-                       gPad->SetEditable(kTRUE);
-                       //gPad->Range(x0,y0,x1,y1);
-                       gPad->SetEditable(kFALSE);
-                       //gPad->Range(0.5,0.5,1,1);
-                       //gAliDisplay2->SetZoomFactor(1);
-                               gPad->Modified(kTRUE);
-                       gAliDisplay2->Draw();   
-                       gAliDisplay2->SetZoomMode(kFALSE);
-                       gPad->SetEditable(kTRUE);
-               }
-               break; 
-               default: break;         
-               }               
-       }
-}
-
-ClassImp(AliInfoFrame);
-
-//_____________________________________________________________
-AliInfoFrame::AliInfoFrame(TGCompositeFrame *p, UInt_t w, UInt_t h)
-{
-       fMainFrame = new TGCompositeFrame(p, w, h, kVerticalFrame);
-
-       fTitleFrame = new TGCompositeFrame(fMainFrame,w,h,kRaisedFrame|kVerticalFrame);
-       AddLabel("ALICE",kLHintsTop | kLHintsCenterX);
-       AddLabel("Event Display",kLHintsTop | kLHintsCenterX);
-       
-       TString filename=StrDup(gAliDisplay2->GetIconsPath());
-       filename.Append("Alice.xpm");
-       TGPicture *alicelogo = (TGPicture *) gClient->GetPicture(filename);
-       TGIcon *alice = new TGIcon(fTitleFrame,alicelogo,50,50);
-       fTitleFrame->AddFrame(alice,new TGLayoutHints(kLHintsTop | kLHintsCenterX,0,0,0,0));
-       
-       AddLabel("Powered by",kLHintsTop | kLHintsCenterX);
-       AddLabel("AliRoot",kLHintsTop | kLHintsCenterX);
-       fMainFrame->AddFrame(fTitleFrame,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,0,0,0,3));
-
-       //Feedback
-       fFiguresFrame = new TGCompositeFrame(fMainFrame,w,h,kRaisedFrame|kVerticalFrame);
-       TGCompositeFrame *frame = new TGCompositeFrame(fFiguresFrame,w,100, kHorizontalFrame);
-       fNbEventLabel = new TGLabel(frame,"");
-       TGLabel * label = new TGLabel(frame,"Event number");
-       fNbEventLabel->SetText(gAliDisplay2->GetEventNumber());
-       frame->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft ,10,0,0,0));
-       frame->AddFrame(fNbEventLabel,new TGLayoutHints(kLHintsTop | kLHintsRight,5,10,0,0));
-
-       fFiguresFrame->AddFrame(frame,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,0,0,0,0));
-       
-       frame = new TGCompositeFrame(fFiguresFrame,w,100, kHorizontalFrame);
-       label = new TGLabel(frame,"Nb Particles");
-       fNbParticuleLabel = new TGLabel(frame,"");
-       fNbParticuleLabel->SetText(gAliDisplay2->GetNbParticles());
-       frame->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft,10,0,0,0));
-       frame->AddFrame(fNbParticuleLabel,new TGLayoutHints(kLHintsTop | kLHintsRight,5,10,0,0));
-
-       fFiguresFrame->AddFrame(frame,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,0,0,0,0));
-
-       frame = new TGCompositeFrame(fFiguresFrame,w,100, kHorizontalFrame);
-       label = new TGLabel(frame,"Nb Hits");
-       fNbHitsLabel = new TGLabel(frame,"");
-       fNbHitsLabel->SetText("--");
-       frame->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft,10,0,0,0));
-       frame->AddFrame(fNbHitsLabel,new TGLayoutHints(kLHintsTop | kLHintsRight ,5,10,0,0));
-       frame->Layout();
-       fFiguresFrame->AddFrame(frame,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,0,0,0,0));
-
-       frame = new TGCompositeFrame(fFiguresFrame,w,100, kHorizontalFrame);
-       label = new TGLabel(frame,"Nb Clusters");
-       fNbClustersLabel = new TGLabel(frame,"");
-       fNbClustersLabel->SetText("--");
-       frame->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft,10,0,0,0));
-       frame->AddFrame(fNbClustersLabel,new TGLayoutHints(kLHintsTop | kLHintsRight ,5,10,0,0));
-       frame->Layout();
-       fFiguresFrame->AddFrame(frame,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,0,0,0,0));
-       fMainFrame->AddFrame(fFiguresFrame,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,0,0,2,0));
-
-       fMainFrame->Layout();
-       fMainFrame->MapSubwindows();
-       fMainFrame->MapWindow();
-};
-
-//_____________________________________________________________
-AliInfoFrame::~AliInfoFrame(void){
-
-       delete fMainFrame;
-       delete fTitleFrame;
-       delete fFiguresFrame;
-       delete fNbParticuleLabel;
-       delete fNbEventLabel;
-       delete fNbHitsLabel;
-}
-
-//_____________________________________________________________
-void AliInfoFrame::AddLabel(char *text, UInt_t options){
-       TGLabel * label = new TGLabel(fTitleFrame,text);
-       fTitleFrame->AddFrame(label,new TGLayoutHints(options,0,0,0,0));
-}
-
-//_____________________________________________________________
-void AliInfoFrame::Update()
-{
-       fNbParticuleLabel->SetText(gAliDisplay2->GetNbParticles());
-       fNbEventLabel->SetText(gAliDisplay2->GetEventNumber());
-       if(gAliDisplay2->IsEnabled(kHits))fNbHitsLabel->SetText(gAliDisplay2->GetNbHits());
-       else fNbHitsLabel->SetText("--");
-       if(gAliDisplay2->IsEnabled(kClusters))fNbClustersLabel->SetText(gAliDisplay2->GetNbClusters());
-       else fNbClustersLabel->SetText("--");
-       fMainFrame->Layout();
-}
-
-
-ClassImp(AliSettingFrame);
-
-//_____________________________________________________________
-AliSettingFrame::AliSettingFrame(const TGWindow *p, const TGWindow *main, UInt_t w, UInt_t h)
-                                :TGTransientFrame(p,main,w,h)
-{
-       fMainFrame = new TGCompositeFrame((TGWindow *)((TGTransientFrame *)this),w,h,kVerticalFrame);
-       
-       fZoomStepFrame = new TGCompositeFrame(fMainFrame,w,50,kHorizontalFrame);
-       fZoomStepLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft |kLHintsExpandX,5,5,5,5);
-       fZoomStepEntry = new TGNumberEntryField(fZoomStepFrame,kIdtZoomSTEP,gAliDisplay2->GetZoomStep());
-       fZoomStepEntry->Connect("ReturnPressed()","AliSettingFrame",this,"DoSettings(Int_t)");
-       fZoomStepLabel = new TGLabel(fZoomStepFrame,"Zoom step");
-       fZoomStepFrame->AddFrame(fZoomStepLabel,new TGLayoutHints(kLHintsTop | kLHintsLeft,0,0,0,0));
-       fZoomStepFrame->AddFrame(fZoomStepEntry,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX ,5,5,0,0));
-       fMainFrame->AddFrame(fZoomStepFrame,fZoomStepLayout);
-
-       fSliderStepFrame = new TGCompositeFrame(fMainFrame,w,50,kHorizontalFrame);
-       fSliderStepLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft |kLHintsExpandX,5,5,5,5);
-       fSliderStepEntry = new TGNumberEntryField(fSliderStepFrame,kIdtSliderSTEP,gAliDisplay2->GetSliderStep());
-       fSliderStepEntry->Connect("ReturnPressed()","AliSettingFrame",this,"DoSettings(Int_t)");
-       fSliderStepLabel = new TGLabel(fSliderStepFrame,"Slider step");
-       fSliderStepFrame->AddFrame(fSliderStepLabel,new TGLayoutHints(kLHintsTop | kLHintsLeft,0,0,0,0));
-       fSliderStepFrame->AddFrame(fSliderStepEntry,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX ,5,5,0,0));
-       fMainFrame->AddFrame(fSliderStepFrame,fSliderStepLayout);
-
-       fSliderUpdateFrame = new TGCompositeFrame(fMainFrame,w,50,kHorizontalFrame);
-       fSliderUpdateLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft |kLHintsExpandX,5,5,5,5);
-       fSliderUpdateButton = new TGCheckButton(fSliderUpdateFrame,"Update display on slider move",kIdtSliderUPDATE);
-       fSliderUpdateButton->Connect("Clicked()","AliSettingFrame",this,"DoSettings(Int_t)");
-       fIsLoading = kTRUE;
-       if(gAliDisplay2->GetSliderUpdate()) fSliderUpdateButton->SetState(kButtonDown);
-       else fSliderUpdateButton->SetState(kButtonUp);
-       fIsLoading = kFALSE;
-       
-       fSliderUpdateFrame->AddFrame(fSliderUpdateButton,new TGLayoutHints(kLHintsTop | kLHintsLeft,0,0,0,0));
-       fMainFrame->AddFrame(fSliderUpdateFrame,fSliderUpdateLayout);
-
-       AddFrame(fMainFrame,new TGLayoutHints(kLHintsTop | kLHintsLeft |kLHintsExpandX,0,0,0,0));
-       fMainFrame->Layout();
-       // position relative to the parent's window
-   Window_t wdum;
-   int ax, ay;
-   gVirtualX->TranslateCoordinates(main->GetId(), GetParent()->GetId(),
-             (Int_t)(((TGFrame *) main)->GetWidth() - GetWidth()) >> 1,
-             (Int_t)(((TGFrame *) main)->GetHeight() - GetHeight()) >> 1,
-             ax, ay, wdum);
-   Move(ax, ay);
-
-   SetWindowName("Setting frame");
-   MapSubwindows();
-   MapWindow();
-   Layout();
-}
-
-//_____________________________________________________________
-AliSettingFrame::~AliSettingFrame()
-{
-       delete fZoomStepLayout;
-       delete fZoomStepEntry;
-       delete fZoomStepLabel;
-       delete fSliderStepLayout;
-       delete fSliderStepEntry;
-       delete fSliderStepLabel;        
-
-       delete fSliderUpdateLayout;
-       delete fSliderUpdateButton;
-       
-       delete fMainFrame;
-       delete fZoomStepFrame;
-       delete fSliderUpdateFrame;
-       delete fSliderStepLayout;
-}
-
-//_____________________________________________________________
-void AliSettingFrame::DoSettings(Int_t /*pos*/)
-{
-       TGNumberEntryField *ne = (TGNumberEntryField *) gTQSender;
-       int id = ne->WidgetId();
-       switch(id){
-       case kIdtZoomSTEP:{
-               gAliDisplay2->SetZoomStep(ne->GetNumber());
-               }
-               break;
-       case kIdtSliderSTEP:{
-               gAliDisplay2->SetSliderStep(ne->GetNumber());
-               }
-               break;
-       case kIdtSliderUPDATE:{
-         if(fIsLoading) return ;
-         if(gAliDisplay2->GetSliderUpdate()) gAliDisplay2->SetSliderUpdate(kFALSE);
-         else gAliDisplay2->SetSliderUpdate(kTRUE);
-       }
-         break;
-       default: break;
-       }
-}
-
-
-ClassImp(AliMenu);
-
-//_____________________________________________________________
-AliMenu::AliMenu(TGCompositeFrame *p, UInt_t w, UInt_t h, UInt_t options)
-{
-       fMenuBar = new TGMenuBar(p,w,h,options);
-       fToolBar = new TGToolBar(p,60,20,options);
-       
-       fMenuBarLayout = new TGLayoutHints(kLHintsTop | kLHintsExpandX | kLHintsLeft ,0,0,0,0);
-       fMenuBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft,0,4,0,0);
-       
-       fMenuFile = new TGPopupMenu(gClient->GetRoot());
-       fMenuFile->AddEntry("Open",kIdmOPEN);
-       fMenuFile->AddEntry("Save as",kIdmSAVEAS);
-       fMenuFile->AddEntry("Close",kIdmCLOSE);
-       fMenuFile->AddSeparator();
-       fMenuFile->AddEntry("Print",kIdmPRINT);
-       fMenuFile->AddEntry("Print setup",kIdmPRINTSETUP);
-       fMenuFile->AddSeparator();
-       fMenuFile->AddEntry("Exit",kIdmEXIT);
-       fMenuFile->DisableEntry(kIdmSAVEAS);
-       fMenuFile->Associate(p);
-       fMenuBar->AddPopup("File",fMenuFile,fMenuBarItemLayout);
-       fMenuFile->Connect("Activated(Int_t)","AliMenu",this,"DoMenu(Int_t)");
-
-       fMenuOptions = new TGPopupMenu(gClient->GetRoot());
-       fMenuOptions->AddEntry("Settings",kIdmSETTINGS);
-       fMenuOptions->AddEntry("Save settings",kIdmSAVESETTINGS);
-       fMenuOptions->Associate(p);
-       fMenuBar->AddPopup("Options",fMenuOptions,fMenuBarItemLayout);
-       fMenuOptions->Connect("Activated(Int_t)","AliMenu",this,"DoMenu(Int_t)");
-       
-       fMenuView = new TGPopupMenu(gClient->GetRoot());
-       fMenuView->AddEntry("X3d ",kIdmVIEWX3D);
-       fMenuView->AddEntry("OpenGL",kIdmVIEWGL);
-       fMenuView->Associate(p);
-       fMenuBar->AddPopup("View",fMenuView,fMenuBarItemLayout);
-       fMenuView->Connect("Activated(Int_t)","AliMenu",this,"DoMenu(Int_t)");
-       
-       fMenuHelp = new TGPopupMenu(gClient->GetRoot());
-       fMenuHelp->AddEntry("Help",kIdmHELP);
-       fMenuHelp->AddSeparator();
-       fMenuHelp->AddEntry("About",kIdmABOUT);
-       fMenuHelp->Associate(p);
-       fMenuBar->AddPopup("Help",fMenuHelp,fMenuBarItemLayout);
-       fMenuHelp->Connect("Activated(Int_t)","AliMenu",this,"DoMenu(Int_t)");
-
-       p->AddFrame(fMenuBar,fMenuBarLayout);
-       fTBD = new ToolBarData_t;
-       
-       fToolBarLayout = new TGLayoutHints(kLHintsTop | kLHintsExpandX,0,0,0,0);
-       AddPictureButton("open.xpm","Open file",kIdmOPEN,5);
-       AddPictureButton("save.xpm","Save current pad as gif file",kIdmSAVEAS,0);
-       AddPictureButton("settings.xpm","Settings",kIdmSETTINGS,5);
-       AddPictureButton("help.xpm","Help",kIdmHELP,5);
-       AddPictureButton("quit.xpm","Exit AliDisplay",kIdmEXIT,5);
-       AddPictureButton("opengl.xpm","Open GL view",kIdmVIEWGL,5);
-       AddPictureButton("x3d.xpm","x3d view",kIdmVIEWX3D,0);
-       AddPictureButton("zoomplus16.xpm","Zoom in",kIdbZoomIN,5);
-       AddPictureButton("zoommoins16.xpm","Zoom out",kIdbZoomOUT,0);
-       AddPictureButton("zoomzone.xpm","Zoom on zone",kIdbZoomZONE,0);
-       p->AddFrame(fToolBar,fToolBarLayout);
-}
-
-//_____________________________________________________________
-AliMenu::~AliMenu()
-{
-       delete fMenuBarLayout;
-       delete fMenuBarItemLayout;
-       delete fMenuFile;
-       delete fMenuOptions;
-       delete fMenuView;
-       delete fMenuHelp;
-       delete fToolBarLayout;
-       delete fToolBar;
-       delete fMenuBar;
-       delete fTBD;
-}
-
-//_____________________________________________________________
-void AliMenu::DoMenu(Int_t id)
-{
-       switch(id){
-       case kIdmOPEN:{
-               TGFileInfo fi;
-               static TString dir(".");
-               fi.fFileTypes = filetypes;
-               fi.fIniDir = StrDup(dir.Data());
-               new TGFileDialog(gClient->GetRoot(),gAliDisplay2->GetMainFrame(),kFDOpen,&fi);
-               if(!fi.fFilename) return;
-                                         }
-               break;
-       case kIdmEXIT:{
-               gApplication->Terminate(0);
-                                         }
-               break;
-       case kIdmSAVEAS:{
-         TGFileInfo fi;
-         static TString dir(".");
-         fi.fFileTypes = imgtypes;
-         fi.fIniDir = StrDup(dir.Data());
-         new TGFileDialog(gClient->GetRoot(),gAliDisplay2->GetMainFrame(),kFDSave,&fi);
-         if(!fi.fFilename) return;
-         gAliDisplay2->SavePadGIF(fi.fFilename);
-       }
-         break;
-       case kIdmSETTINGS:{
-               new AliSettingFrame((TGWindow *)gClient->GetRoot(),(TGWindow *)gAliDisplay2->GetMainFrame(),200,150);
-                                                       }
-               break;
-       case kIdmHELP:{
-               TRootHelpDialog *hd=new TRootHelpDialog((TGWindow *)gClient->GetRoot(),"Help",300,300);
-               hd->SetText(helpTxt);   
-        hd->Popup();
-               }
-               break;
-               
-       case kIdmSAVESETTINGS:{
-               gAliDisplay2->DoSaveSettings();
-                                                                }
-               break;
-       case kIdmVIEWX3D:{
-               gAliDisplay2->DrawX3d();
-               }
-               break;
-       case kIdmVIEWGL:{
-               gAliDisplay2->DrawGL();
-       }
-         break;
-       case kIdbZoomIN:{
-               gAliDisplay2->SetZoomFactor(gAliDisplay2->GetZoomFactor()*gAliDisplay2->GetZoomStep());
-               gAliDisplay2->Draw();
-                                                 }
-               break;
-       case kIdbZoomZONE:{
-               gAliDisplay2->SetZoomMode(kTRUE);
-               gAliDisplay2->SetEditable(kFALSE);
-       }
-       break;
-       case kIdbZoomOUT:{              
-               gAliDisplay2->SetZoomFactor(gAliDisplay2->GetZoomFactor()/gAliDisplay2->GetZoomStep());
-               gAliDisplay2->Draw();
-                                                       }
-               break;
-       default:break;
-       }
-}
-
-//_____________________________________________________________
-void AliMenu::DoToolBar(Int_t /*id*/)
-{
-       TGFrame *frame = (TGFrame *) gTQSender;
-       TGButton *bu = (TGButton *) frame;
-       DoMenu(bu->WidgetId());
-}
-
-//_____________________________________________________________
-void AliMenu::AddPictureButton(char *fname,char *tiptext,UInt_t id, UInt_t spacing)
-{
-       TString filename = StrDup(gAliDisplay2->GetIconsPath());
-       filename.Append(fname);
-
-       fTBD->fPixmap=filename.Data();
-       fTBD->fTipText = tiptext;
-       fTBD->fId = id;
-       fTBD->fStayDown = kFALSE;
-
-       fToolBar->AddButton(fToolBar,fTBD,spacing);
-       if(fTBD->fButton)
-               fTBD->fButton->Connect("Clicked()","AliMenu",this,"DoToolBar(Int_t)");
-}
-
-ClassImp(AliDisplay2);
-//_____________________________________________________________
-AliDisplay2::AliDisplay2(const TGWindow *p, UInt_t w, UInt_t h)
-                       :TObject()
-{
-       //gAlice->SetDisplay(this);
-       gAliDisplay2=this;
-       fSliderUpdate = kFALSE;
-       fZoomMode = kFALSE;
-       fZoomStep = 1.2;
-       fZoomFactor = 1.5;
-       fNbParticles = 0;
-       fEventNumber = 0;
-       fNbHits = 0;
-       fSliderStep = 0.01;
-       fClustersLoaded = kFALSE;
-       fHitsLoaded = kFALSE;
-       fHLTLoaded = kFALSE;
-       fTracksLoaded = kFALSE;
-       fMode =0;
-       FindModules();
-
-       fIconsPath = new char[32];
-       strcpy(fIconsPath,gSystem->Getenv("ALICE_ROOT"));
-       strcat(fIconsPath,"/DISPLAY/icons/");
-       LoadFromRC();
-       fMainFrame = new TGMainFrame(p,w,h,kVerticalFrame);
-       fSubFrame = new TGCompositeFrame(fMainFrame,w,h,kHorizontalFrame);
-       fLeftFrame = new TGCompositeFrame(fSubFrame,150,h,kVerticalFrame|kFixedWidth);
-       fRightFrame = new TGCompositeFrame(fSubFrame,600,h,kVerticalFrame);
-       //fMainFrame->Connect("ProcessedEvent(Event_t*)", "AliDisplay2", this,"HandleMouseWheel(Event_t*)");
-       fMainFrame->Connect("ProcessedEvent(Event_t*)", "AliDisplay2",this,"HandleResize(Event_t*)");
-       //MenuBar
-       fMenu = new AliMenu(fMainFrame,1,1,kRaisedFrame|kHorizontalFrame);
-
-       //Slider Frame
-       fSliderFrameLayout = new TGLayoutHints( kLHintsBottom| kLHintsRight| kLHintsExpandX | kLHintsCenterX, 2, 2, 2, 2);
-       fSliderFrame  = new AliSliderFrame(fRightFrame,600,150);
-       fRightFrame->AddFrame(fSliderFrame->GetSliderFrame(),fSliderFrameLayout);
-
-               //Info Frame
-       fInfoFrameLayout = new TGLayoutHints( kLHintsTop | kLHintsLeft  | kLHintsExpandX  ,0,0,0,0);
-       fInfoFrame = new AliInfoFrame(fLeftFrame,150,200);
-       fLeftFrame->AddFrame(fInfoFrame->GetInfoFrame(),fInfoFrameLayout);
-       
-       
-       //Shutter Frame
-       fShutterFrameLayout = new TGLayoutHints( kLHintsTop | kLHintsLeft | kLHintsExpandY |kLHintsExpandX, 0, 0, 5, 0);
-       fShutterFrame = new AliShutterFrame(fLeftFrame,150,300);
-       fLeftFrame->AddFrame(fShutterFrame->GetShutterFrame(),fShutterFrameLayout);
-
-       //Display Frame
-       fDisplayFrameLayout = new TGLayoutHints( kLHintsTop | kLHintsRight | kLHintsExpandX | kLHintsExpandY, 2, 2, 2, 2); 
-       fDisplayFrame = new AliDisplayFrame(fRightFrame, w-150,w-110);
-       fRightFrame->AddFrame(fDisplayFrame->GetDisplayFrame(),fDisplayFrameLayout);
-       fDisplayFrame->GetDisplayFrame()->Connect("ProcessedEvent(Event_t*)", "AliDisplay2", this,"HandleMouseWheel(Event_t*)");
-       
-
-       fLeftFrame->Layout();
-
-       fSubFrame->AddFrame(fLeftFrame, new TGLayoutHints( kLHintsBottom | kLHintsLeft | kLHintsExpandY, 5, 5, 2, 2));
-       fSubFrame->AddFrame(fRightFrame, new TGLayoutHints( kLHintsBottom | kLHintsRight | kLHintsExpandX | kLHintsExpandY, 5, 5, 2, 2));
-       
-       Int_t parts[] = {45,45,10};
-       fStatusBar = new TGStatusBar(fMainFrame,50,10,kHorizontalFrame);
-       fStatusBar->SetParts(parts,3);
-       fStatusBar->SetText("AliDisplay v2.0",0);
-       fMainFrame->AddFrame(fStatusBar,new TGLayoutHints(kLHintsBottom | kLHintsExpandX,0,0,0,0));
-       
-       fMainFrame->AddFrame(fSubFrame,new TGLayoutHints( kLHintsBottom | kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 5, 5, 2, 2));
-       fMainFrame->SetWindowName("Ali Display");
-       
-       fMainFrame->MapSubwindows();
-       fMainFrame->MapWindow();
-       LoadSettings();
+  //Shutter Frame
+  fShutterFrameLayout = new TGLayoutHints( kLHintsTop | kLHintsLeft | kLHintsExpandY |kLHintsExpandX, 0, 0, 5, 0);
+  fShutterFrame = new AliShutterFrame(fLeftFrame,150,300);
+  fLeftFrame->AddFrame(fShutterFrame->GetShutterFrame(),fShutterFrameLayout);
+  
+  //Display Frame
+  fDisplayFrameLayout = new TGLayoutHints( kLHintsTop | kLHintsRight | kLHintsExpandX | kLHintsExpandY, 2, 2, 2, 2); 
+  fDisplayFrame = new AliDisplayFrame(fRightFrame, w-150,w-110);
+  fRightFrame->AddFrame(fDisplayFrame->GetDisplayFrame(),fDisplayFrameLayout);
+  fDisplayFrame->GetDisplayFrame()->Connect("ProcessedEvent(Event_t*)", "AliDisplay2", this,"HandleMouseWheel(Event_t*)");
+  
+  
+  fLeftFrame->Layout();
+  
+  fSubFrame->AddFrame(fLeftFrame, new TGLayoutHints( kLHintsBottom | kLHintsLeft | kLHintsExpandY, 5, 5, 2, 2));
+  fSubFrame->AddFrame(fRightFrame, new TGLayoutHints( kLHintsBottom | kLHintsRight | kLHintsExpandX | kLHintsExpandY, 5, 5, 2, 2));
+  
+  Int_t parts[] = {45,45,10};
+  fStatusBar = new TGStatusBar(fMainFrame,50,10,kHorizontalFrame);
+  fStatusBar->SetParts(parts,3);
+  fStatusBar->SetText("AliDisplay v2.0",0);
+  fMainFrame->AddFrame(fStatusBar,new TGLayoutHints(kLHintsBottom | kLHintsExpandX,0,0,0,0));
+  
+  fMainFrame->AddFrame(fSubFrame,new TGLayoutHints( kLHintsBottom | kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 5, 5, 2, 2));
+  fMainFrame->SetWindowName("Ali Display");
+  
+  fMainFrame->MapSubwindows();
+  fMainFrame->MapWindow();
+  LoadSettings();
 
        
-       fMainFrame->Resize(w-10,h);
-       fMainFrame->Resize(w,h);
-       fMainFrame->SetWMSizeHints(500,500,1280, 1200,1,1);
+  fMainFrame->Resize(w-10,h);
+  fMainFrame->Resize(w,h);
+  fMainFrame->SetWMSizeHints(500,500,1280, 1200,1,1);
 }
 
 //_____________________________________________________________
 AliDisplay2::~AliDisplay2(void)
 {
+  //Destructor
   delete fModules;
   delete [] fEnabledModules;
   delete fModuleInfo;
-
-       delete fSliderFrameLayout;
-       delete fSliderFrame;    
-       delete fDisplayFrameLayout;
-       delete fDisplayFrame;
-       //      delete fZoomFrameLayout;
-       //      delete fZoomFrame;
-       delete fShutterFrameLayout;
-       delete fShutterFrame;
-       delete fInfoFrameLayout;
-       delete fInfoFrame;
-       delete fDetectorFrameLayout;
-       delete fDetectorFrame;
-       
-       delete fSubFrame;
-       delete fLeftFrame;
-       delete fRightFrame;
-       delete fMainFrame;
-       delete fAliDisplay2rc;
-
-       delete fMenu;
-       delete fStatusBar;
+  
+  delete fSliderFrameLayout;
+  delete fSliderFrame; 
+  delete fDisplayFrameLayout;
+  delete fDisplayFrame;
+  //   delete fZoomFrameLayout;
+  //   delete fZoomFrame;
+  delete fShutterFrameLayout;
+  delete fShutterFrame;
+  delete fInfoFrameLayout;
+  delete fInfoFrame;
+  delete fDetectorFrameLayout;
+  delete fDetectorFrame;
+  
+  delete fSubFrame;
+  delete fLeftFrame;
+  delete fRightFrame;
+  delete fMainFrame;
+  delete fAliDisplay2rc;
+  
+  delete fMenu;
+  delete fStatusBar;
 }
 
 //_____________________________________________________________
 void AliDisplay2::CloseWindow(void)
 {
-       delete this;
+  // Deletes the current display
+  delete this;
 }
 
 //_____________________________________________________________
 void AliDisplay2::LoadFromRC()
 {
+  // Load the environment settings from .alidisplayrc file
   TEnv *rc=new TEnv(".alidisplayrc");
   SetSliderUpdate(rc->GetValue("AliDisplay.SliderUpdate",kFALSE));
   SetZoomStep(rc->GetValue("AliDisplay.ZoomStep",1.2));
@@ -1967,8 +193,9 @@ void AliDisplay2::LoadFromRC()
 }
 
 //_____________________________________________________________
-void AliDisplay2::SaveToRC()
+void AliDisplay2::SaveToRC() const
 {
+  // Saves the environment settings in .alidisplayrc file
   TEnv *rc=new TEnv(".alidisplayrc");
   rc->SetValue("AliDisplay.SliderUpdate",GetSliderUpdate());
   rc->SetValue("AliDisplay.ZoomStep",GetZoomStep());
@@ -1981,6 +208,7 @@ void AliDisplay2::SaveToRC()
 //_____________________________________________________________
 void AliDisplay2::DoSaveSettings(void)
 {
+  // Saves the environment settings for the slider frame and display
   fSliderFrame->SaveToRC();
   SaveToRC();
 }
@@ -1988,117 +216,122 @@ void AliDisplay2::DoSaveSettings(void)
 //_____________________________________________________________
 void AliDisplay2::LoadSettings()
 {
+  // Loads settings
   LoadFromRC();
 }
 
 //_____________________________________________________________
 void AliDisplay2::Draw(Option_t */*options*/)
 {
-       fDisplayFrame->DoView(fCurrentView);
+  // Draws display frame
+  fDisplayFrame->DoView(fCurrentView);
 }
 
 //_____________________________________________________________
 void AliDisplay2::DrawX3d()
 {
-       fDisplayFrame->DrawX3d();
+  // Draws display frame using X3d
+  fDisplayFrame->DrawX3d();
 }
 
 //_____________________________________________________________
 void AliDisplay2::DrawGL()
 {
-       fDisplayFrame->DrawGL();
+  // Draws display frame using GL
+  fDisplayFrame->DrawGL();
 }
 
 //_____________________________________________________________
 void AliDisplay2::ShowNextEvent(Int_t delta)
 {
-       //Load the next event
-       clock_t t1,t2;
-       t1=clock();
-       Int_t newEvent=0;
-       if(delta!=0){
-               gAlice->Clear();
-               //Int_t currentEvent = gAlice->GetHeader()->GetEvent();
-               newEvent = fEventNumber + delta;
-               if( newEvent < 0) return;
-               gAlice->GetEvent(newEvent);
-               fEventNumber += delta;
-               //              if(!gAlice->TreeH()) return;
-       }
-       if(IsEnabled(kHits)) LoadHits();
-       if(IsEnabled(kClusters)) LoadClusters(newEvent);
-       if(IsEnabled(kHLT)) LoadHLTClusters(newEvent);
-       t2=clock();
-       //      printf("\nEvent loaded in....%f sec", ((double)t2-t1)/(10000*CLK_TCK));
-       Update(kmMODULES);
+  //Load the next event
+  clock_t t1,t2;
+  t1=clock();
+  Int_t newEvent=0;
+  if(delta!=0){
+    gAlice->Clear();
+    newEvent = fEventNumber + delta;
+    if( newEvent < 0) return;
+    gAlice->GetEvent(newEvent);
+    fEventNumber += delta;
+    //         if(!gAlice->TreeH()) return;
+  }
+  if(IsEnabled(kHits)) LoadHits();
+  if(IsEnabled(kClusters)) LoadClusters(newEvent);
+  if(IsEnabled(kHLT)) LoadHLTClusters(newEvent);
+  t2=clock();
+  //   printf("\nEvent loaded in....%f sec", ((double)t2-t1)/(10000*CLK_TCK));
+  Update(kmMODULES);
 }
 
 //_____________________________________________________________
 void AliDisplay2::FindModules()
 {
-       //Find the modules used for the simulation and assign these modules to the array fModules
-       fModules = new TObjArray;
-       TObjArray *modules = gAlice->Modules();
-       AliModule *mod;
-       Int_t nbm = 0;
-       for(Int_t i=0;i<modules->GetEntriesFast();i++){
-               mod = (AliModule *) modules->At(i);
-               if(!mod) continue;
-               const char *avoid = strstr("BODY MAG ABSO DIPO HALL FRAME SHIL PIPE",mod->GetName());
-               if(avoid) continue;
-               fModules->AddLast(mod);
-               nbm++;
-       }
-       fEnabledModules = new Bool_t[nbm];
-       fNbModules = nbm;
-       fModuleInfo = new AliModuleInfo(nbm);
-       for(Int_t j=0;j<fModules->GetEntriesFast();j++){
-         fModuleInfo->Add(fModules->At(j)->GetName(),j);
-         fEnabledModules[j]=kTRUE;
-       }
+  // Find the modules used for the simulation and assign 
+  // these modules to the array fModules
+  fModules = new TObjArray;
+  TObjArray *modules = gAlice->Modules();
+  AliModule *mod;
+  Int_t nbm = 0;
+  for(Int_t i=0;i<modules->GetEntriesFast();i++){
+    mod = (AliModule *) modules->At(i);
+    if(!mod) continue;
+    const char *avoid = strstr("BODY MAG ABSO DIPO HALL FRAME SHIL PIPE",mod->GetName());
+    if(avoid) continue;
+    fModules->AddLast(mod);
+    nbm++;
+  }
+  fEnabledModules = new Bool_t[nbm];
+  fNbModules = nbm;
+  fModuleInfo = new AliModuleInfo(nbm);
+  for(Int_t j=0;j<fModules->GetEntriesFast();j++){
+    fModuleInfo->Add(fModules->At(j)->GetName(),j);
+    fEnabledModules[j]=kTRUE;
+  }
 }
 
 //_____________________________________________________________
 void AliDisplay2::LoadHits()
 {
-       //Load the detected hits from each detector to memory
-   gAlice->ResetPoints();
-   TIter next(gAlice->Modules());
-   AliModule *module;
-   Int_t ntracks = gAlice->GetMCApp()->GetNtrack();
-   while((module = (AliModule*)next())) 
+  //Load the detected hits from each detector to memory
+  gAlice->ResetPoints();
+  TIter next(gAlice->Modules());
+  AliModule *module;
+  Int_t ntracks = gAlice->GetMCApp()->GetNtrack();
+  while((module = (AliModule*)next())) 
     {
-     AliDetector* detector = dynamic_cast<AliDetector*>(module);
-     if(detector) detector->SetTreeAddress();
+      AliDetector* detector = dynamic_cast<AliDetector*>(module);
+      if(detector) detector->SetTreeAddress();
+    }
+  next.Reset();
+  for (Int_t track=0; track<ntracks;track++) {
+    gAlice->ResetHits();
+    while((module = (AliModule*)next())) {
+      AliDetector* detector = dynamic_cast<AliDetector*>(module);
+      if(detector)
+       {
+         detector->TreeH()->GetEvent(track);
+         detector->LoadPoints(track);
+       }
     }
-   next.Reset();
-   for (Int_t track=0; track<ntracks;track++) {
-      gAlice->ResetHits();
-      while((module = (AliModule*)next())) {
-         AliDetector* detector = dynamic_cast<AliDetector*>(module);
-         if(detector)
-           {
-             detector->TreeH()->GetEvent(track);
-             detector->LoadPoints(track);
-           }
-      }
-      next.Reset();
-     }
-   fHitsLoaded = kTRUE;
+    next.Reset();
+  }
+  fHitsLoaded = kTRUE;
 }
 
 //_____________________________________________________________
 void AliDisplay2::LoadClusters(Int_t nevent)
 {
   //clock_t t1,t2;
-       fDisplayFrame->LoadClusters(nevent);
-       fClustersLoaded = kTRUE;
-       //      printf("\nClusters loaded in....%f sec", ((double)t2-t1)/(10000*CLK_TCK));
+  fDisplayFrame->LoadClusters(nevent);
+  fClustersLoaded = kTRUE;
+  //   printf("\nClusters loaded in....%f sec", ((double)t2-t1)/(10000*CLK_TCK));
 }
 
 //_____________________________________________________________
 void AliDisplay2::LoadHLTClusters(Int_t nevent)
 {
+  // Loads HLT clusters
   fDisplayFrame->LoadHLTClusters(nevent);
   fHLTLoaded = kTRUE;
 }
@@ -2106,6 +339,7 @@ void AliDisplay2::LoadHLTClusters(Int_t nevent)
 //_____________________________________________________________
 void AliDisplay2::Enable(Int_t m)
 {
+  // Enables the given mode m
   if(m==kHits){
     if((fMode&kHits)==kHits) return;
     fMode = kHits|fMode;
@@ -2136,6 +370,7 @@ void AliDisplay2::Enable(Int_t m)
 //_____________________________________________________________
 void AliDisplay2::Disable(Int_t m)
 {
+  // Disables the given mode m
   if(m==kHits){
     fMode = fMode|kHits;
     fMode = fMode^kHits;
@@ -2156,8 +391,9 @@ void AliDisplay2::Disable(Int_t m)
 }
 
 //_____________________________________________________________
-Bool_t AliDisplay2::IsEnabled(Int_t m)
+Bool_t AliDisplay2::IsEnabled(Int_t m) const
 {
+  // Checks if the mode m is enabled
   if(m==kHits){
     if((fMode&kHits)==kHits) return kTRUE;
     return kFALSE;
@@ -2180,52 +416,56 @@ Bool_t AliDisplay2::IsEnabled(Int_t m)
 //_____________________________________________________________
 void AliDisplay2::HandleMouseWheel(Event_t *event)
 {
-       if(event->fType != kButtonPress && event->fType != kButtonRelease) return;
-
-       if(event->fCode == kButton4){
-               fZoomFactor *= fZoomStep;
-               Draw();
-       }
-       
-       if(event->fCode == kButton5){
-               fZoomFactor /= fZoomStep;
-               Draw();
-       }
+  //Handle mouve event, not working yet
+  if(event->fType != kButtonPress && event->fType != kButtonRelease) return;
+  
+  if(event->fCode == kButton4){
+    fZoomFactor *= fZoomStep;
+    Draw();
+  }
+  
+  if(event->fCode == kButton5){
+    fZoomFactor /= fZoomStep;
+    Draw();
+  }
 }
 
 //_____________________________________________________________
 void AliDisplay2::HandleResize(Event_t *event)
 {
-       switch(event->fType){
-       case kConfigureNotify:{
-               Draw();
-       }
-       break;
-       default:break;
-       }
+  // Handle resize event
+  switch(event->fType){
+  case kConfigureNotify:{
+    Draw();
+  }
+    break;
+  default:break;
+  }
 }      
 
 //_____________________________________________________________
 void AliDisplay2::Update(Int_t tag)
 {
-       if(tag==kmMODULES){
-               LoadEnabledModules();
-               if(((fMode)&kHits)==kHits){
-                       LoadEnabledHits();
-                       ApplyCuts();
-               }
-       }
-       if(tag==kmCUTS){
-               if(((fMode)&kHits)==kHits)ApplyCuts();
-       }
-       if(tag==kmPOINTS){
-               if(((fMode)&kHits)==kHits){
-                       LoadEnabledHits();
-                       ApplyCuts();
-               }
-       }
-       Draw();
-       fInfoFrame->Update();
+  // Update the view, if loading only the modified data from the previous
+  // changes, the integer tag indicates the kind of modification
+  if(tag==kmMODULES){
+    LoadEnabledModules();
+    if(((fMode)&kHits)==kHits){
+      LoadEnabledHits();
+      ApplyCuts();
+    }
+  }
+  if(tag==kmCUTS){
+    if(((fMode)&kHits)==kHits)ApplyCuts();
+  }
+  if(tag==kmPOINTS){
+    if(((fMode)&kHits)==kHits){
+      LoadEnabledHits();
+      ApplyCuts();
+    }
+  }
+  Draw();
+  fInfoFrame->Update();
 }