Added ESDfriend Entry in Filedialog. Fix paths to filenames
authorquark <quark@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Jul 2013 14:53:47 +0000 (14:53 +0000)
committerquark <quark@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Jul 2013 14:53:47 +0000 (14:53 +0000)
EVE/EveBase/AliEveApplication.cxx
EVE/EveBase/AliEveEventManager.cxx
EVE/EveBase/AliEveEventManager.h
EVE/EveBase/AliEveFileDialog.cxx
EVE/EveBase/AliEveFileDialog.h
EVE/EveBase/AliEveMainWindow.cxx
EVE/EveBase/AliEveMainWindow.h
EVE/macros/alieve_init.C
EVE/macros/visscan_init.C

index bca0379..26a8cf5 100644 (file)
@@ -46,5 +46,4 @@ void  AliEveApplication::Init()
     // make sure logger is instantiated
     AliLog::GetRootLogger();
 
-
 }
index 8fe30e5..68f9e75 100644 (file)
@@ -98,7 +98,7 @@ Bool_t AliEveEventManager::fgAssertRaw       = kFALSE;
 TString  AliEveEventManager::fgESDFileName("AliESDs.root");
 TString  AliEveEventManager::fgESDfriendsFileName("AliESDfriends.root");
 TString  AliEveEventManager::fgAODFileName("AliAOD.root");
-TString  AliEveEventManager::fgGAlice("galice.root");
+TString  AliEveEventManager::fgGAliceFileName("galice.root");
 TString  AliEveEventManager::fgRawFileName("raw.root");
 TString  AliEveEventManager::fgCdbUri;
 
@@ -151,32 +151,10 @@ void AliEveEventManager::InitInternals()
     fGlobal = new TMap; fGlobal->SetOwnerKeyValue();
 }
 
-AliEveEventManager::AliEveEventManager(const TString& name) :
-    TEveEventManager(name),
+AliEveEventManager::AliEveEventManager(const TString& name, Int_t ev) :
+    TEveEventManager(name, ""),
 
-    fPath      ( ), fEventId (-1),
-    fRunLoader (0),
-    fESDFile   (0), fESDTree (0), fESD (0),
-    fESDfriend (0), fESDfriendExists(kFALSE),
-    fAODFile   (0), fAODTree (0), fAOD (0),
-    fRawReader (0), fEventInfo(),
-    fAutoLoad  (kFALSE), fAutoLoadTime (5.),     fAutoLoadTimer(0),
-    fIsOpen    (kFALSE), fHasEvent     (kFALSE), fExternalCtrl (kFALSE),
-    fGlobal    (0), fGlobalReplace (kTRUE), fGlobalUpdate (kTRUE),
-    fExecutor    (0), fTransients(0), fTransientLists(0),
-    fPEventSelector(0),
-    fSubManagers (0),
-    fAutoLoadTimerRunning(kFALSE)
-{
-    // Default constructor.
-
-    InitInternals();
-}
-
-AliEveEventManager::AliEveEventManager(const TString& name, const TString& path, Int_t ev) :
-    TEveEventManager(name, path),
-
-    fPath   (path), fEventId(-1),
+    fEventId(-1),
     fRunLoader (0),
     fESDFile   (0), fESDTree (0), fESD (0),
     fESDfriend (0), fESDfriendExists(kFALSE),
@@ -190,7 +168,7 @@ AliEveEventManager::AliEveEventManager(const TString& name, const TString& path,
     fSubManagers (0),
     fAutoLoadTimerRunning(kFALSE)
 {
-    // Constructor with event-directory URL and event-id.
+    // Constructor with event-id.
 
     InitInternals();
 
@@ -228,15 +206,33 @@ AliEveEventManager::~AliEveEventManager()
 void AliEveEventManager::SetESDFileName(const TString& esd)
 {
     // Set file-name for opening ESD, default "AliESDs.root".
+    if (esd.IsNull()) return;
+   
+    fgESDFileName = esd;
+    if (esd.EndsWith(".zip")) fgESDFileName.Form("%s#AliESDs.root",esd.Data());
+    
+}
 
-    if ( ! esd.IsNull()) fgESDFileName = esd;
+void AliEveEventManager::SetESDfriendFileName(const TString& esdf)
+{
+    // Set file-name for opening ESD friend, default "AliESDfriends.root".
+
+    if (esdf.IsNull()) return;
+    fgESDfriendsFileName = esdf;
+    
+    if (esdf.EndsWith(".zip")) fgESDfriendsFileName.Form("%s#AliESDfriends.root",esdf.Data());
 }
 
 void AliEveEventManager::SetAODFileName(const TString& aod)
 {
     // Set file-name for opening AOD, default "AliAOD.root".
 
-    if ( ! aod.IsNull()) fgAODFileName = aod;
+    if (aod.IsNull()) return;
+    fgAODFileName = aod;
+    
+    if (aod.EndsWith(".zip")) fgAODFileName.Form("%s#AliAOD.root",aod.Data());
+    
+    
 }
 
 void AliEveEventManager::AddAODfriend(const TString& friendFileName)
@@ -258,7 +254,9 @@ void AliEveEventManager::AddAODfriend(const TString& friendFileName)
 void AliEveEventManager::SetRawFileName(const TString& raw)
 {
     // Set file-name for opening of raw-data, default "raw.root"
-    if ( ! raw.IsNull()) fgRawFileName = raw;
+    if (raw.IsNull()) return;
+    
+    fgRawFileName = raw;
 }
 
 void AliEveEventManager::SetCdbUri(const TString& cdb)
@@ -268,6 +266,39 @@ void AliEveEventManager::SetCdbUri(const TString& cdb)
     if ( ! cdb.IsNull()) fgCdbUri = cdb;
 }
 
+void AliEveEventManager::SetGAliceFileName(const TString& galice)
+{
+    // Set file-name for opening gAlice, default "galice.root".
+
+    if ( galice.IsNull()) return;
+    fgGAliceFileName = galice; 
+    
+    if (galice.EndsWith(".zip")) fgGAliceFileName.Form("%s#galice.root",galice.Data());
+}
+
+void AliEveEventManager::SetFilesPath(const TString& urlPath)
+{
+   TString path = urlPath;
+    gSystem->ExpandPathName(path);
+    if (path.IsNull() || path == ".")
+    {
+        path = gSystem->WorkingDirectory();
+    }
+   
+   TString sep;
+   if(path.EndsWith(".zip")) // if given a path to root_archive.zip
+      sep= "#";
+   else if(!path.EndsWith("/"))
+      sep = "/";
+    
+    SetESDFileName( TString(Form("%s%sAliESDs.root", path.Data(), sep.Data())) );
+    SetESDfriendFileName(  TString(Form("%s%sAliESDfriends.root", path.Data(), sep.Data())) );
+    SetAODFileName(  TString(Form("%s%sAliAOD.root", path.Data(), sep.Data())) );
+    AddAODfriend(  TString(Form("%s%sAliAOD.VertexingHF.root", path.Data(), sep.Data())) );
+    SetGAliceFileName( TString(Form("%s%sgalice.root", path.Data(), sep.Data())) );
+    SetRawFileName(TString(Form("%s%sraw.root", path.Data(), sep.Data())));
+}
+
 void AliEveEventManager::SetAssertElements(Bool_t assertRunloader, Bool_t assertEsd,
                                            Bool_t assertAod, Bool_t assertRaw)
 {
@@ -293,7 +324,7 @@ void AliEveEventManager::SearchRawForCentralReconstruction()
 
 void AliEveEventManager::Open()
 {
-    // Open event-data from URL specified in fPath.
+    // Open event-data from URL specified in path.
     // Attempts to create AliRunLoader() and to open ESD with ESDfriends.
     // Warning is reported if run-loader or ESD is not found.
     // Global data-members fgAssertRunLoader and fgAssertESD can be set
@@ -310,28 +341,11 @@ void AliEveEventManager::Open()
         throw (kEH + "Event-files already opened.");
     }
 
-    gSystem->ExpandPathName(fPath);
-    // The following magick is required for ESDfriends to be loaded properly
-    // from non-current directory.
-    if (fPath.IsNull() || fPath == ".")
-    {
-        fPath = gSystem->WorkingDirectory();
-    }
-    else if ( ! fPath.BeginsWith("file:/"))
-    {
-        TUrl    url(fPath, kTRUE);
-        TString protocol(url.GetProtocol());
-        if (protocol == "file" && fPath[0] != '/')
-            fPath = Form("%s/%s", gSystem->WorkingDirectory(), fPath.Data());
-    }
-
     Int_t runNo = -1;
 
     // Open ESD and ESDfriends
-
-    TString esdPath(Form("%s", fgESDFileName.Data()));
-    if (fgESDFileName.EndsWith(".zip")) esdPath.Form("%s#AliESDs.root",fgESDFileName.Data());
-    if ((fESDFile = TFile::Open(esdPath)))
+    
+    if ((fESDFile = TFile::Open(fgESDFileName)))
     {
         fESD = new AliESDEvent();
         fESDTree = (TTree*) fESDFile->Get("esdTree");
@@ -341,9 +355,7 @@ void AliEveEventManager::Open()
             // We use TFile::Open() instead of gSystem->AccessPathName
             // as it seems to work better when attachine alieve to a
             // running reconstruction process with auto-save on.
-            TString p(fgESDfriendsFileName);
-            if (fgESDfriendsFileName.EndsWith(".zip")) p.Form("%s#AliESDfriends.root",fgESDfriendsFileName.Data());
-            TFile *esdFriendFile = TFile::Open(p);
+            TFile *esdFriendFile = TFile::Open(fgESDfriendsFileName);
             if (esdFriendFile)
             {
                 if (!esdFriendFile->IsZombie())
@@ -387,7 +399,7 @@ void AliEveEventManager::Open()
     }
     else // esd not readable
     {
-        Warning(kEH, "can not read ESD file '%s'.", esdPath.Data());
+        Warning(kEH, "can not read ESD file '%s'.", fgESDFileName.Data());
     }
     if (fESDTree == 0)
     {
@@ -400,10 +412,7 @@ void AliEveEventManager::Open()
     }
 
     // Open AOD and registered friends
-
-    TString aodPath(Form("%s", fgAODFileName.Data()));
-    if (fgAODFileName.EndsWith(".zip")) aodPath.Form("%s#AliAOD.root",fgAODFileName.Data());
-    if ((fAODFile = TFile::Open(aodPath)))
+    if ( (fAODFile = TFile::Open(fgAODFileName)) )
     {
         fAOD = new AliAODEvent();
         fAODTree = (TTree*) fAODFile->Get("aodTree");
@@ -445,7 +454,7 @@ void AliEveEventManager::Open()
     }
     else // aod not readable
     {
-        Warning(kEH, "can not read AOD file '%s'.", aodPath.Data());
+        Warning(kEH, "can not read AOD file '%s'.", fgAODFileName.Data());
     }
     if (fAODTree == 0)
     {
@@ -458,25 +467,16 @@ void AliEveEventManager::Open()
     }
 
     // Open RunLoader from galice.root
-
-    TString gaPath(Form("%s", fgGAlice.Data()));
-    if (fgGAlice.EndsWith(".zip")) gaPath.Form("%s#galice.root",fgGAlice.Data());
-    // If i use open directly, we get fatal.
-    // Is AccessPathName check ok for xrootd / alien? Yes, not for http.
-    // Seems not to work for alien anymore.
-    // Fixed in ROOT on 27.10.2009, rev 30888.
-    // To revert after we move to root-5.26.
-    TFile *gafile = TFile::Open(gaPath);
+    TFile *gafile = TFile::Open(fgGAliceFileName);
     if (gafile)
     {
         gafile->Close();
         delete gafile;
-        // if (gSystem->AccessPathName(gaPath, kReadPermission) == kFALSE)
-        // {
-        fRunLoader = AliRunLoader::Open(gaPath, GetName());
+        fRunLoader = AliRunLoader::Open(fgGAliceFileName, GetName());
         if (fRunLoader)
         {
-            TString alicePath = fPath + "/";
+            TString alicePath(gSystem->DirName(fgGAliceFileName));
+            alicePath.Append("/");
             fRunLoader->SetDirName(alicePath);
 
             if (fRunLoader->LoadgAlice() != 0)
@@ -496,12 +496,13 @@ void AliEveEventManager::Open()
         }
         else // run-loader open failed
         {
-            Warning(kEH, "failed opening ALICE run-loader from '%s'.", gaPath.Data());
+            Warning(kEH, "failed opening ALICE run-loader from '%s'.", fgGAliceFileName.Data());
         }
+        
     }
     else // galice not readable
     {
-        Warning(kEH, "can not read '%s'.", gaPath.Data());
+        Warning(kEH, "can not read '%s'.", fgGAliceFileName.Data());
     }
     if (fRunLoader == 0)
     {
@@ -516,18 +517,18 @@ void AliEveEventManager::Open()
     TString rawPath;
     if (fgRawFromStandardLoc)
     {
-        if (!fPath.BeginsWith("alien:"))
+        if (!fgRawFileName.BeginsWith("alien:"))
             throw kEH + "Standard raw search requested, but the directory is not in AliEn.";
-        if (!fPath.Contains("/ESDs/"))
+        if (!fgRawFileName.Contains("/ESDs/"))
             throw kEH + "Standard raw search requested, but does not contain 'ESDs' directory.";
 
         TPMERegexp chunk("/([\\d\\.])+/?$");
-        Int_t nm = chunk.Match(fPath);
+        Int_t nm = chunk.Match(fgRawFileName);
         if (nm != 2)
             throw kEH + "Standard raw search requested, but the path does not end with chunk-id directory.";
 
         TPMERegexp esdstrip("/ESDs/.*");
-        rawPath = fPath;
+        rawPath = fgRawFileName;
         esdstrip.Substitute(rawPath, "/raw/");
         rawPath += chunk[0];
         rawPath += ".root";
@@ -536,7 +537,7 @@ void AliEveEventManager::Open()
     }
     else
     {
-        rawPath.Form("%s", fgRawFileName.Data());
+        rawPath = fgRawFileName;
     }
     // If i use open directly, raw-reader reports an error but i have
     // no way to detect it.
@@ -615,7 +616,7 @@ void AliEveEventManager::Open()
             else if (fgCdbUri == "mcfull://")
                 cdb->SetDefaultStorage("MC", "Full");
             else if (fgCdbUri == "local://") {
-                fgCdbUri = "local://$ALICE_ROOT/OCDB";
+                fgCdbUri = Form("local://%s/OCDB", gSystem->Getenv("ALICE_ROOT"));
                 cdb->SetDefaultStorage(fgCdbUri);
             } else
                 cdb->SetDefaultStorage(fgCdbUri);
@@ -628,8 +629,9 @@ void AliEveEventManager::Open()
 
         if (fgCdbUri.BeginsWith("local://"))
         {
+            TString curPath = gSystem->WorkingDirectory();
             TString grp     = "GRP/GRP/Data";
-            TString grppath = fPath + "/" + grp;
+            TString grppath = curPath + "/" + grp;
             if (gSystem->AccessPathName(grppath, kReadPermission) == kFALSE)
             {
                 if (cdb->GetSpecificStorage(grp))
@@ -640,7 +642,7 @@ void AliEveEventManager::Open()
                 {
                     Info(kEH, "Setting CDB specific-storage for GRP from event directory.");
                     TString lpath("local://");
-                    lpath += fPath;
+                    lpath += curPath;
                     cdb->SetSpecificStorage(grp, lpath);
                 }
             }
@@ -1264,16 +1266,16 @@ Bool_t AliEveEventManager::InitRecoParam()
     for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
 
         if (fgRecoParam->GetDetRecoParamArray(iDet)) {
-            ::Info(kEH, Form("Using custom reconstruction parameters for detector %s",fgkDetectorName[iDet]));
+            ::Info(kEH, "Using custom reconstruction parameters for detector %s",fgkDetectorName[iDet]);
             continue;
         }
 
-        ::Info(kEH, Form("Loading reconstruction parameter objects for detector %s",fgkDetectorName[iDet]));
+        ::Info(kEH, "Loading reconstruction parameter objects for detector %s",fgkDetectorName[iDet]);
 
         AliCDBPath path(fgkDetectorName[iDet],"Calib","RecoParam");
         AliCDBEntry *entry=AliCDBManager::Instance()->Get(path.GetPath());
         if(!entry){
-            ::Warning(kEH, Form("Couldn't find RecoParam entry in OCDB for detector %s",fgkDetectorName[iDet]));
+            ::Warning(kEH, "Couldn't find RecoParam entry in OCDB for detector %s",fgkDetectorName[iDet]);
             isOK = kFALSE;
         }
         else {
@@ -1286,12 +1288,12 @@ Bool_t AliEveEventManager::InitRecoParam()
             else if (dynamic_cast<AliDetectorRecoParam*>(recoParamObj)) {
                 // The detector has only onse set of reco parameters
                 // Registering it in AliRecoParam
-                ::Info(kEH, Form("Single set of reconstruction parameters found for detector %s",fgkDetectorName[iDet]));
+                ::Info(kEH, "Single set of reconstruction parameters found for detector %s",fgkDetectorName[iDet]);
                 dynamic_cast<AliDetectorRecoParam*>(recoParamObj)->SetAsDefault();
                 fgRecoParam->AddDetRecoParam(iDet,dynamic_cast<AliDetectorRecoParam*>(recoParamObj));
             }
             else {
-                ::Error(kEH, Form("No valid RecoParam object found in the OCDB for detector %s",fgkDetectorName[iDet]));
+                ::Error(kEH, "No valid RecoParam object found in the OCDB for detector %s",fgkDetectorName[iDet]);
                 isOK = kFALSE;
             }
             entry->SetOwner(0);
@@ -1330,7 +1332,8 @@ AliEveEventManager* AliEveEventManager::AddDependentManager(const TString& name,
     fgCurrent = 0;
     try
     {
-        new_mgr = new AliEveEventManager(name, path, fgMaster->fEventId);
+        new_mgr = new AliEveEventManager(name, fgMaster->fEventId);
+        new_mgr->SetFilesPath(path);
         fgMaster->fSubManagers->Add(new_mgr);
     }
     catch (TEveException& exc)
index 50e1288..df5b2f5 100644 (file)
@@ -50,16 +50,24 @@ class AliEveEventManager : public TEveEventManager,
 {
 public:
   static void SetESDFileName(const TString& esd);
+  static void SetESDfriendFileName(const TString& esdf);
   static void SetAODFileName(const TString& aod);
   static void AddAODfriend  (const TString& friendFileName);
   static void SetRawFileName(const TString& raw);
   static void SetCdbUri     (const TString& cdb);
+  static void SetGAliceFileName(const TString& galice);
+  
+  // set Local Directory or URL where the files are located
+  // it can also be a path to root_archive.zip
+  // assumes the filenames of ESD, AOD, etc are standard ALICE names 
+  // (AliESDs.root, AliESDfriends.root, AliAOD.root, AliAODfriend.root, galice.root,raw.root) 
+  static void SetFilesPath(const TString& path); 
+  
   static void SetAssertElements(Bool_t assertRunloader, Bool_t assertEsd,
                                Bool_t assertAod, Bool_t assertRaw);
   static void SearchRawForCentralReconstruction();
 
-  AliEveEventManager(const TString& name="Event");
-  AliEveEventManager(const TString& name, const TString& path, Int_t ev=0);
+  AliEveEventManager(const TString& name="Event", Int_t ev=0);
   virtual ~AliEveEventManager();
 
   virtual void  Open();
@@ -81,7 +89,6 @@ public:
   TFile*        GetAODFile()         const { return fAODFile; }
   TTree*        GetAODTree()         const { return fAODTree; }
   AliAODEvent*  GetAOD()             const { return fAOD;     }
-  virtual const Text_t* GetTitle()   const { return fPath.Data(); }
   AliEveEventSelector* GetEventSelector() const { return fPEventSelector; }
   TString       GetEventInfoHorizontal() const;
   TString       GetEventInfoVertical()   const;
@@ -138,7 +145,6 @@ public:
   AliEveMacroExecutor* GetExecutor() const { return fExecutor; }
 
 protected:
-  TString       fPath;                 // URL to event-data.
   Int_t         fEventId;              // Id of current event.
 
   AliRunLoader* fRunLoader;            // Run loader.
@@ -176,7 +182,7 @@ protected:
 
   TList        *fSubManagers;           // Dependent event-managers, used for event embedding.
 
-  static TString  fgGAlice;        // galice.root file
+  static TString  fgGAliceFileName;        // galice.root file
   static TString  fgESDFileName;        // Name by which to open ESD.
   static TString  fgESDfriendsFileName;
   static TString  fgAODFileName;        // Name by which to open AOD.
index 233d7b1..9e6db13 100644 (file)
@@ -4,6 +4,7 @@
 #include <TG3DLine.h>
 #include <TGTextEntry.h>
 #include <TMath.h>
+#include <TSystem.h>
 
 #include <TGFileDialog.h>
 
 ClassImp(AliEveFileDialog)
 
 AliEveFileDialog::AliEveFileDialog(const TGWindow* p,const TGWindow* main, EAliEveFileDialogMode mode)
-    : TGTransientFrame(p, main, 100,50, kVerticalFrame)
-
+    : TGTransientFrame(p, main, 100,50, kVerticalFrame),
+    fESDFilesFrame(0),
+    fAdvancedOptsButton(0),
+    fAdvancedOptsFrame(0),
+    fESDfriendFilesFrame(0),
+    fAODFilesFrame(0),
+    fAODfriendFilesFrame(0),
+    fRawFilesFrame(0),
+    fUrlFrame(0),
+    fCDBFrame(0),
+    fDialogButtonsFrame(0),
+    fPathEntryESD(0),
+    fPathEntryESDfriend(0),
+    fPathEntryAOD(0),
+    fPathEntryAODfriend(0),
+    fPathEntryRawFile(0),
+    fPathEntryUrl(0),
+    fCDBPathCB(0),
+    fIsAccepted(kFALSE),
+    fMode(mode)
 {
     SetCleanup(kDeepCleanup);
 
@@ -38,18 +57,36 @@ AliEveFileDialog::AliEveFileDialog(const TGWindow* p,const TGWindow* main, EAliE
     fESDFilesFrame->AddFrame(browseButtonESD, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
 
     AddFrame(fESDFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
-
-    //Advanced Options Frame
-    fAdvancedOptsFrame = new TGHorizontalFrame(this, 100, 100);
-    fAdvancedOptsButton = new TGCheckButton(fAdvancedOptsFrame, "Advanced Options");
+    
+    //Advanced Options Button
+    fAdvancedOptsButton = new TGCheckButton(this, "Advanced Options");
     fAdvancedOptsButton->Connect("Toggled(Bool_t)", "AliEveFileDialog", this, "showAdvancedOpts(Bool_t)");
 
-    fAdvancedOptsFrame->AddFrame(fAdvancedOptsButton, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
+    AddFrame(fAdvancedOptsButton,new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
+
+//Advanced Options Frame
+    //ESDfriend Frame
+    fAdvancedOptsFrame = new TGGroupFrame(this, "Advanced Options");
+    
+    fESDfriendFilesFrame = new TGHorizontalFrame(fAdvancedOptsFrame, 100, 100);
+    TGLabel* esdFriendLabel = new TGLabel(fESDfriendFilesFrame, "ESDfriend File:");
+    esdFriendLabel->Resize(110, esdFriendLabel->GetDefaultHeight());
+    esdFriendLabel->SetMargins(0,0,0,0);
+
+    fPathEntryESDfriend= new TGTextEntry(fESDfriendFilesFrame);
+    fPathEntryESDfriend->Resize(250, fPathEntryESDfriend->GetDefaultHeight());
 
-    AddFrame(fAdvancedOptsFrame,new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
+    TGTextButton* browseButtonESDfriend = new TGTextButton(fESDfriendFilesFrame, "Browse...");
+    browseButtonESDfriend->Connect("Clicked()", "AliEveFileDialog", this, "onBrowseESDfriendFile()");
 
+    fESDfriendFilesFrame->AddFrame(esdFriendLabel, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 3, 3, 3));
+    fESDfriendFilesFrame->AddFrame(fPathEntryESDfriend, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
+    fESDfriendFilesFrame->AddFrame(browseButtonESDfriend, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
+
+    fAdvancedOptsFrame->AddFrame(fESDfriendFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
+    
     // AOD Frame
-    fAODFilesFrame = new TGHorizontalFrame(this, 100, 100);
+    fAODFilesFrame = new TGHorizontalFrame(fAdvancedOptsFrame, 100, 100);
     TGLabel* aodLabel = new TGLabel(fAODFilesFrame, "AOD File:");
     aodLabel->Resize(110, aodLabel->GetDefaultHeight());
 
@@ -63,10 +100,10 @@ AliEveFileDialog::AliEveFileDialog(const TGWindow* p,const TGWindow* main, EAliE
     fAODFilesFrame->AddFrame(fPathEntryAOD, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
     fAODFilesFrame->AddFrame(browseButtonAOD, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
 
-    AddFrame(fAODFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
+    fAdvancedOptsFrame->AddFrame(fAODFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
 
     // AODfriend Frame
-    fAODfriendFilesFrame = new TGHorizontalFrame(this, 100, 100);
+    fAODfriendFilesFrame = new TGHorizontalFrame(fAdvancedOptsFrame, 100, 100);
     TGLabel* aodFriendLabel = new TGLabel(fAODfriendFilesFrame, "AODfriend File:");
     aodFriendLabel->Resize(110, aodFriendLabel->GetDefaultHeight());
 
@@ -80,10 +117,10 @@ AliEveFileDialog::AliEveFileDialog(const TGWindow* p,const TGWindow* main, EAliE
     fAODfriendFilesFrame->AddFrame(fPathEntryAODfriend, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
     fAODfriendFilesFrame->AddFrame(browseButtonAODfriend, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
 
-    AddFrame(fAODfriendFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
+    fAdvancedOptsFrame->AddFrame(fAODfriendFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
 
     // Raw Frame
-    fRawFilesFrame = new TGHorizontalFrame(this, 100, 100);
+    fRawFilesFrame = new TGHorizontalFrame(fAdvancedOptsFrame, 100, 100);
     TGLabel* rawLabel = new TGLabel(fRawFilesFrame, "Raw File:");
     rawLabel->Resize(110, rawLabel->GetDefaultHeight());
 
@@ -97,10 +134,11 @@ AliEveFileDialog::AliEveFileDialog(const TGWindow* p,const TGWindow* main, EAliE
     fRawFilesFrame->AddFrame(fPathEntryRawFile, new TGLayoutHints(kLHintsExpandX, 3, 3, 3, 3));
     fRawFilesFrame->AddFrame(browseButtonRawFile, new TGLayoutHints(kLHintsNormal, 3, 3, 3, 3));
 
-    AddFrame(fRawFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
+    fAdvancedOptsFrame->AddFrame(fRawFilesFrame, new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 3, 3, 3, 3));
 
+   AddFrame(fAdvancedOptsFrame, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 3, 3, 3, 3) );
 
-    /****************
+   /****************
    *** Url Frame ***
    *****************/
     fUrlFrame = new TGHorizontalFrame(this, 100, 100);
@@ -180,6 +218,11 @@ const TString AliEveFileDialog::GetPathESD() const
     return TString(fPathEntryESD->GetText());
 }
 
+const TString AliEveFileDialog::GetPathESDfriend() const
+{
+    return TString(fPathEntryESDfriend->GetText());
+}
+
 const TString AliEveFileDialog::GetPathAOD() const
 {
     return TString(fPathEntryAOD->GetText());
@@ -241,6 +284,28 @@ void AliEveFileDialog::onBrowseESDFile()
     new TGFileDialog(GetParent(), GetMain(), kFDOpen, fileInfo);
 
     fPathEntryESD->SetText(fileInfo->fFilename);
+    
+    // look for the other files in the current directory
+    
+    
+
+    delete fileInfo;
+
+}
+
+void AliEveFileDialog::onBrowseESDfriendFile()
+{
+    TGFileInfo* fileInfo = new TGFileInfo;
+
+    const char* types[] = { "ALICE ESDfriends file", "*.root",
+                            "ROOT Archive", "*.zip",
+                            0, 0};
+
+    fileInfo->fFileTypes = types;
+
+    new TGFileDialog(GetParent(), GetMain(), kFDOpen, fileInfo);
+
+    fPathEntryESDfriend->SetText(fileInfo->fFilename);
 
     delete fileInfo;
 
@@ -341,16 +406,15 @@ void AliEveFileDialog::MapSubwindows()
     // Show/Hide Widgets according to the current Mode
     if(fMode==kAliEveFDLocal){
         ShowFrame(fESDFilesFrame);
+        ShowFrame(fAdvancedOptsButton);
         showAdvancedOpts(fAdvancedOptsButton->IsDown());
 
         HideFrame(fUrlFrame);
     }
     else{ // remote file
         HideFrame(fESDFilesFrame);
+        HideFrame(fAdvancedOptsButton);
         HideFrame(fAdvancedOptsFrame);
-        HideFrame(fAODFilesFrame);
-        HideFrame(fAODfriendFilesFrame);
-        HideFrame(fRawFilesFrame);
 
         ShowFrame(fUrlFrame);
     }
@@ -361,27 +425,23 @@ void AliEveFileDialog::showAdvancedOpts(Bool_t shown)
 {
     UInt_t w, h;
     if(shown){
-        ShowFrame(fAODFilesFrame);
-        ShowFrame(fAODfriendFilesFrame);
-        ShowFrame(fRawFilesFrame);
+        ShowFrame(fAdvancedOptsFrame);
+        fAdvancedOptsFrame->MapWindow();
         Layout();
 
-        h = fESDFilesFrame->GetSize().fHeight+fAdvancedOptsFrame->GetSize().fHeight+fAODFilesFrame->GetSize().fHeight;
-        h+= fAODfriendFilesFrame->GetSize().fHeight+fRawFilesFrame->GetSize().fHeight+fCDBFrame->GetSize().fHeight+fDialogButtonsFrame->GetSize().fHeight;
+        h = fESDFilesFrame->GetSize().fHeight+fAdvancedOptsFrame->GetSize().fHeight+fAdvancedOptsButton->GetSize().fHeight+fCDBFrame->GetSize().fHeight+fDialogButtonsFrame->GetSize().fHeight;
     }else{
-        HideFrame(fAODFilesFrame);
-        HideFrame(fAODfriendFilesFrame);
-        HideFrame(fRawFilesFrame);
+        HideFrame(fAdvancedOptsFrame);
+        fAdvancedOptsFrame->UnmapWindow();
         Layout();
 
-        h = fESDFilesFrame->GetSize().fHeight+fAdvancedOptsFrame->GetSize().fHeight+fCDBFrame->GetSize().fHeight+fDialogButtonsFrame->GetSize().fHeight;
+        h = fESDFilesFrame->GetSize().fHeight+fAdvancedOptsButton->GetSize().fHeight+fCDBFrame->GetSize().fHeight+fDialogButtonsFrame->GetSize().fHeight;
     }
 
     TGDimension size = GetSize();
     w = size.fWidth;
 
-
-    Resize(w,h+40);
+    Resize(w,h+30);
 
 }
 
index fa27f9d..a443355 100644 (file)
@@ -35,6 +35,7 @@ public:
 
     //const TString GetDirectory(); // directory where the ESD resides
     const TString GetPathESD() const;
+    const TString GetPathESDfriend() const;
     const TString GetPathAOD() const;
     const TString GetPathAODfriend() const;
     const TString GetPathRaw() const;
@@ -44,6 +45,7 @@ public:
     const TString GetCDBStoragePath() const;
 
     void onBrowseESDFile();
+    void onBrowseESDfriendFile();
     void onBrowseAODFile();
     void onBrowseAODfriendFile();
     void onBrowseRawFile();
@@ -65,8 +67,10 @@ private:
     AliEveFileDialog& operator=(const AliEveFileDialog&);   // not implemented
 
     TGHorizontalFrame* fESDFilesFrame;
-    TGHorizontalFrame* fAdvancedOptsFrame;
     TGCheckButton* fAdvancedOptsButton;
+    
+    TGGroupFrame* fAdvancedOptsFrame;
+    TGHorizontalFrame* fESDfriendFilesFrame;
     TGHorizontalFrame* fAODFilesFrame;
     TGHorizontalFrame* fAODfriendFilesFrame;
     TGHorizontalFrame* fRawFilesFrame;
@@ -74,6 +78,7 @@ private:
     TGHorizontalFrame* fCDBFrame;
     TGHorizontalFrame* fDialogButtonsFrame;
     TGTextEntry* fPathEntryESD;
+    TGTextEntry* fPathEntryESDfriend;
     TGTextEntry* fPathEntryAOD;
     TGTextEntry* fPathEntryAODfriend;
     TGTextEntry* fPathEntryRawFile;
index 264a1c4..610910b 100644 (file)
@@ -89,7 +89,16 @@ void AliEveMainWindow::onMenuFileItem(UInt_t id)
 
         fFileDialog->setMode(kAliEveFDLocal);
         fFileDialog->MapWindow();
-        if(fFileDialog->accepted()) openFile(fFileDialog->GetPathESD());
+        
+        if(fFileDialog->accepted()) {
+         AliEveEventManager::SetESDFileName(fFileDialog->GetPathESD());
+         AliEveEventManager::SetESDfriendFileName(fFileDialog->GetPathESDfriend());
+         AliEveEventManager::SetAODFileName(fFileDialog->GetPathAOD());
+         AliEveEventManager::AddAODfriend(fFileDialog->GetPathAODfriend());
+         AliEveEventManager::SetRawFileName(fFileDialog->GetPathRaw());
+         AliEveEventManager::SetCdbUri(fFileDialog->GetCDBStoragePath());
+         loadFiles();        
+        }
         break;
     }
     case MENU_FILE_OPEN_URL:
@@ -98,7 +107,39 @@ void AliEveMainWindow::onMenuFileItem(UInt_t id)
 
         fFileDialog->setMode(kAliEveFDRemote);
         fFileDialog->MapWindow();
-        if(fFileDialog->accepted()) openFile(fFileDialog->GetUrl());
+        if(fFileDialog->accepted()) {
+         AliEveEventManager::SetFilesPath(fFileDialog->GetUrl());
+         AliEveEventManager::SetCdbUri(fFileDialog->GetCDBStoragePath());
+         
+         
+
+    // Open event
+    if (fFileDialog->GetUrl().BeginsWith("alien:"))
+    {
+        if (gGrid != 0)
+        {
+            Info("AliEveMainWindow::openFile", "TGrid already initializied. Skiping checks and initialization.");
+        }
+        else
+        {
+            Info("AliEveMainWindow::openFile", "AliEn requested - connecting.");
+            if (gSystem->Getenv("GSHELL_ROOT") == 0)
+            {
+                Error("AliEveMainWindow::openFile", "AliEn environment not initialized. Aborting.");
+                new TGMsgBox(gClient->GetRoot(), this, "AliEve", "AliEn environment not initialized. Aborting.", kMBIconStop);
+                return;
+            }
+            if (TGrid::Connect("alien") == 0)
+            {
+                Error("AliEveMainWindow::openFile", "TGrid::Connect() failed. Aborting.");
+                new TGMsgBox(gClient->GetRoot(), this, "AliEve", "TGrid::Connect() failed. Aborting.", kMBIconStop);
+                return;
+            }
+        }
+    }
+         
+         loadFiles();        
+        }
 
         break;
     }
@@ -142,9 +183,7 @@ void AliEveMainWindow::onMenuGoItem(UInt_t id)
 
     AliEveMultiView *mv = AliEveMultiView::Instance();
 
-    //mv->DestroyEventRPhi();
     mv->ImportEventRPhi(top);
-    //mv->DestroyEventRhoZ();
     mv->ImportEventRhoZ(top);
 
     gEve->Redraw3D(kTRUE);
@@ -279,53 +318,10 @@ void AliEveMainWindow::setupToolbars()
     //fToolBar->Connect("Clicked(Int_t)", "RCMainWindow", this, "openFile()");
 }
 
-void AliEveMainWindow::openFile(const TString& path)
+void AliEveMainWindow::loadFiles()
 {
-    Info("AliEveMainWindow::openFile",  "Trying to open the file [%s]", path.Data());
-
-    TString esdFile = fFileDialog->GetPathESD();
-    TString aodFile = fFileDialog->GetPathAOD();
-    TString aodFriendFile = fFileDialog->GetPathAODfriend();
-    TString rawFile = fFileDialog->GetPathRaw();
-    TString cdbUri = fFileDialog->GetCDBStoragePath();
-
-    Info("AliEveMainWindow::openFile", "ESD:%s AOD:%s AODfriend:%s RAW:%s CDB:%s", esdFile.Data(), aodFile.Data(), aodFriendFile.Data(), rawFile.Data(), cdbUri.Data());
-
-    TEveUtil::AssertMacro("VizDB_scan.C");
-
-    AliEveEventManager::SetESDFileName(esdFile);
-    AliEveEventManager::SetAODFileName(aodFile);
-    AliEveEventManager::AddAODfriend(aodFriendFile);
-    AliEveEventManager::SetRawFileName(rawFile);
-    AliEveEventManager::SetCdbUri(cdbUri);
-
-    // Open event
-    if (path.BeginsWith("alien:"))
-    {
-        if (gGrid != 0)
-        {
-            Info("AliEveMainWindow::openFile", "TGrid already initializied. Skiping checks and initialization.");
-        }
-        else
-        {
-            Info("AliEveMainWindow::openFile", "AliEn requested - connecting.");
-            if (gSystem->Getenv("GSHELL_ROOT") == 0)
-            {
-                Error("AliEveMainWindow::openFile", "AliEn environment not initialized. Aborting.");
-                new TGMsgBox(gClient->GetRoot(), this, "AliEve", "AliEn environment not initialized. Aborting.", kMBIconStop);
-                return;
-            }
-            if (TGrid::Connect("alien") == 0)
-            {
-                Error("AliEveMainWindow::openFile", "TGrid::Connect() failed. Aborting.");
-                new TGMsgBox(gClient->GetRoot(), this, "AliEve", "TGrid::Connect() failed. Aborting.", kMBIconStop);
-                return;
-            }
-        }
-    }
-
     TString name("Event"); // CINT has trouble with direct "Event".
-    new AliEveEventManager(name, path, 0);
+    new AliEveEventManager(name, 0);
     gEve->AddEvent(AliEveEventManager::GetMaster());
 
     TEveUtil::AssertMacro("VizDB_scan.C");
index 90acf9a..186faf6 100644 (file)
@@ -99,7 +99,7 @@ protected:
     void setupMenus();
     void setupToolbars();
 
-    void openFile(const TString &path);
+    void loadFiles();
 
 private:
     AliEveMainWindow(const AliEveMainWindow& other);// Not implemented
index 1380f65..3a1ef7d 100644 (file)
@@ -35,6 +35,8 @@ void alieve_init(const TString& cdburi = "",
 
   gSystem->ProcessEvents();
 
+  AliEveEventManager::SetFilesPath(path);
+  
   AliEveEventManager::SetESDFileName(esdfile);
   AliEveEventManager::SetRawFileName(rawfile);
   AliEveEventManager::SetCdbUri(cdburi);
@@ -66,7 +68,7 @@ void alieve_init(const TString& cdburi = "",
 
   Info("alieve_init", "Opening event %d from '%s' ...", event, path.Data());
   TString name("Event"); // CINT has trouble with direct "Event".
-  new AliEveEventManager(name, path, event);
+  new AliEveEventManager(name, event);
   gEve->AddEvent(AliEveEventManager::GetMaster());
 }
 
index c6ecd64..b7c1177 100644 (file)
@@ -72,16 +72,16 @@ void visscan_init(const TString& cdburi = "",
 
   mv->SetDepth(-10);
 
-  TEveUtil::LoadMacro("geom_gentle.C+");
+  TEveUtil::LoadMacro("geom_gentle.C");
   mv->InitGeomGentle(geom_gentle(), geom_gentle_rphi(), geom_gentle_rhoz(), 0);
 
   if (showTrd) {
-    TEveUtil::LoadMacro("geom_gentle_trd.C+");
+    TEveUtil::LoadMacro("geom_gentle_trd.C");
     mv->InitGeomGentleTrd(geom_gentle_trd());
   }
 
   if (gShowMuonRPhi || gShowMuonRhoZ) {
-    TEveUtil::LoadMacro("geom_gentle_muon.C+");
+    TEveUtil::LoadMacro("geom_gentle_muon.C");
     mv->InitGeomGentleMuon(geom_gentle_muon(kFALSE), gShowMuonRPhi, gShowMuonRhoZ, kFALSE);
   }
 
@@ -91,87 +91,87 @@ void visscan_init(const TString& cdburi = "",
   // Registration of per-event macros
   //==============================================================================
 
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Track",   "kine_tracks.C+", "kine_tracks", "", kFALSE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits ITS", "its_hits.C+",    "its_hits",    "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TPC", "tpc_hits.C+",    "tpc_hits",    "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits T0",  "t0_hits.C+",     "t0_hits",     "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits FMD", "fmd_hits.C+",    "fmd_hits",    "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits ACORDE", "acorde_hits.C+",    "acorde_hits",    "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits EMCAL", "emcal_hits.C+",    "emcal_hits",    "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TOF",  "tof_hits.C+",     "tof_hits",     "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TRD", "trd_hits.C+",    "trd_hits",    "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits VZERO", "vzero_hits.C+",    "vzero_hits",    "", kFALSE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG ITS",     "its_digits.C+",  "its_digits",  "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG TPC",     "tpc_digits.C+",  "tpc_digits",  "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG TOF",     "tof_digits.C+",  "tof_digits",  "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG HMPID",   "hmpid_digits.C+","hmpid_digits","", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG FMD",     "fmd_digits.C+",  "fmd_digits",  "", kFALSE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW ITS",     "its_raw.C+",     "its_raw",     "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW TPC",     "tpc_raw.C+",     "tpc_raw",     "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW TOF",     "tof_raw.C+",     "tof_raw",     "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW HMPID",   "hmpid_raw.C+",   "hmpid_raw",   "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW T0",      "t0_raw.C+",      "t0_raw",      "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW FMD",     "fmd_raw.C+",     "fmd_raw",     "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW VZERO",   "vzero_raw.C+",   "vzero_raw",   "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW ACORDE",  "acorde_raw.C+",  "acorde_raw",  "", kFALSE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX",             "primary_vertex.C+", "primary_vertex",             "",                kTRUE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse",     "primary_vertex.C+", "primary_vertex_ellipse",     "",                kTRUE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box",         "primary_vertex.C+", "primary_vertex_box",         "kFALSE, 3, 3, 3", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX SPD",         "primary_vertex.C+", "primary_vertex_spd",         "",                kTRUE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse SPD", "primary_vertex.C+", "primary_vertex_ellipse_spd", "",                kTRUE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box SPD",     "primary_vertex.C+", "primary_vertex_box_spd",     "kFALSE, 3, 3, 3", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX TPC",         "primary_vertex.C+", "primary_vertex_tpc",         "",                kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse TPC", "primary_vertex.C+", "primary_vertex_ellipse_tpc", "",                kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box TPC",     "primary_vertex.C+", "primary_vertex_box_tpc",     "kFALSE, 3, 3, 3", kFALSE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0_points.C+",       "esd_V0_points_onfly"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0_points.C+",       "esd_V0_points_offline"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0.C+",              "esd_V0"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC CSCD", "esd_cascade_points.C+",  "esd_cascade_points"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC CSCD", "esd_cascade.C+",         "esd_cascade"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC KINK", "esd_kink_points.C+",     "esd_kink_points"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC KINK", "esd_kink.C+",            "esd_kink"));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks",              "esd_tracks.C+", "esd_tracks",              "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks ITS standalone",          "esd_tracks.C+", "esd_tracks_ITS_standalone",              "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks ITS",          "esd_tracks.C+", "esd_tracks_ITS",              "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks TPC",           "esd_tracks.C+", "esd_tracks_TPC",              "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks MI",           "esd_tracks.C+", "esd_tracks_MI",           "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks by category",  "esd_tracks.C+", "esd_tracks_by_category",  "", kTRUE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks by anal cuts", "esd_tracks.C+", "esd_tracks_by_anal_cuts", "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks Lego", "lego.C+", "lego", "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks Beams Info", "beams_info.C+", "beams_info", "", kFALSE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracklets SPD", "esd_spd_tracklets.C+", "esd_spd_tracklets", "", kTRUE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC ZDC",      "esd_zdc.C+", "esd_zdc", "", kFALSE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters",     "clusters.C+",     "clusters", "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters ITS", "its_clusters.C+", "its_clusters"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TPC", "tpc_clusters.C+", "tpc_clusters"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TRD", "trd_clusters.C+", "trd_clusters"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TOF", "tof_clusters.C+", "tof_clusters"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters HMPID", "hmpid_clusters.C+", "hmpid_clusters"));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters PHOS", "phos_clusters.C+", "phos_clusters"));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TPC", "vplot_tpc.C+",    "vplot_tpc", "", kFALSE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kAOD, "ANA HF",   "aod_HF.C+",   "aod_HF",   "", kFALSE));
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kAOD, "ANA Jets", "jetplane.C+", "jetplane", "", kFALSE));
-
-  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "DUMP VZERO",   "vzero_dump.C+",   "vzero_dump",   "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Track",   "kine_tracks.C", "kine_tracks", "", kFALSE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits ITS", "its_hits.C",    "its_hits",    "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TPC", "tpc_hits.C",    "tpc_hits",    "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits T0",  "t0_hits.C",     "t0_hits",     "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits FMD", "fmd_hits.C",    "fmd_hits",    "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits ACORDE", "acorde_hits.C",    "acorde_hits",    "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits EMCAL", "emcal_hits.C",    "emcal_hits",    "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TOF",  "tof_hits.C",     "tof_hits",     "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TRD", "trd_hits.C",    "trd_hits",    "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits VZERO", "vzero_hits.C",    "vzero_hits",    "", kFALSE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG ITS",     "its_digits.C",  "its_digits",  "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG TPC",     "tpc_digits.C",  "tpc_digits",  "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG TOF",     "tof_digits.C",  "tof_digits",  "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG HMPID",   "hmpid_digits.C","hmpid_digits","", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG FMD",     "fmd_digits.C",  "fmd_digits",  "", kFALSE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW ITS",     "its_raw.C",     "its_raw",     "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW TPC",     "tpc_raw.C",     "tpc_raw",     "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW TOF",     "tof_raw.C",     "tof_raw",     "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW HMPID",   "hmpid_raw.C",   "hmpid_raw",   "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW T0",      "t0_raw.C",      "t0_raw",      "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW FMD",     "fmd_raw.C",     "fmd_raw",     "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW VZERO",   "vzero_raw.C",   "vzero_raw",   "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW ACORDE",  "acorde_raw.C",  "acorde_raw",  "", kFALSE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX",             "primary_vertex.C", "primary_vertex",             "",                kTRUE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse",     "primary_vertex.C", "primary_vertex_ellipse",     "",                kTRUE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box",         "primary_vertex.C", "primary_vertex_box",         "kFALSE, 3, 3, 3", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX SPD",         "primary_vertex.C", "primary_vertex_spd",         "",                kTRUE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse SPD", "primary_vertex.C", "primary_vertex_ellipse_spd", "",                kTRUE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box SPD",     "primary_vertex.C", "primary_vertex_box_spd",     "kFALSE, 3, 3, 3", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX TPC",         "primary_vertex.C", "primary_vertex_tpc",         "",                kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse TPC", "primary_vertex.C", "primary_vertex_ellipse_tpc", "",                kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box TPC",     "primary_vertex.C", "primary_vertex_box_tpc",     "kFALSE, 3, 3, 3", kFALSE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0_points.C",       "esd_V0_points_onfly"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0_points.C",       "esd_V0_points_offline"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0",   "esd_V0.C",              "esd_V0"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC CSCD", "esd_cascade_points.C",  "esd_cascade_points"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC CSCD", "esd_cascade.C",         "esd_cascade"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC KINK", "esd_kink_points.C",     "esd_kink_points"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC KINK", "esd_kink.C",            "esd_kink"));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks",              "esd_tracks.C", "esd_tracks",              "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks ITS standalone",          "esd_tracks.C", "esd_tracks_ITS_standalone",              "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks ITS",          "esd_tracks.C", "esd_tracks_ITS",              "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks TPC",           "esd_tracks.C", "esd_tracks_TPC",              "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks MI",           "esd_tracks.C", "esd_tracks_MI",           "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks by category",  "esd_tracks.C", "esd_tracks_by_category",  "", kTRUE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks by anal cuts", "esd_tracks.C", "esd_tracks_by_anal_cuts", "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks Lego", "lego.C", "lego", "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks Beams Info", "beams_info.C", "beams_info", "", kFALSE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracklets SPD", "esd_spd_tracklets.C", "esd_spd_tracklets", "", kTRUE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC ZDC",      "esd_zdc.C", "esd_zdc", "", kFALSE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters",     "clusters.C",     "clusters", "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters ITS", "its_clusters.C", "its_clusters"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TPC", "tpc_clusters.C", "tpc_clusters"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TRD", "trd_clusters.C", "trd_clusters"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TOF", "tof_clusters.C", "tof_clusters"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters HMPID", "hmpid_clusters.C", "hmpid_clusters"));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters PHOS", "phos_clusters.C", "phos_clusters"));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TPC", "vplot_tpc.C",    "vplot_tpc", "", kFALSE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kAOD, "ANA HF",   "aod_HF.C",   "aod_HF",   "", kFALSE));
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kAOD, "ANA Jets", "jetplane.C", "jetplane", "", kFALSE));
+
+  exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "DUMP VZERO",   "vzero_dump.C",   "vzero_dump",   "", kFALSE));
   
   if (showMuon)
   {
-    exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM TrackRef MUON", "muon_trackRefs.C+", "muon_trackRefs", "kTRUE", kFALSE));
-    exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW MUON", "muon_raw.C+", "muon_raw", "", kFALSE));
-    exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG MUON", "muon_digits.C+", "muon_digits", "", kFALSE));
-    exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters MUON", "muon_clusters.C+", "muon_clusters", "", kTRUE));
-    exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks MUON", "esd_muon_tracks.C+", "esd_muon_tracks", "kTRUE,kFALSE", kTRUE));
+    exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM TrackRef MUON", "muon_trackRefs.C", "muon_trackRefs", "kTRUE", kFALSE));
+    exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW MUON", "muon_raw.C", "muon_raw", "", kFALSE));
+    exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG MUON", "muon_digits.C", "muon_digits", "", kFALSE));
+    exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters MUON", "muon_clusters.C", "muon_clusters", "", kTRUE));
+    exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks MUON", "esd_muon_tracks.C", "esd_muon_tracks", "kTRUE,kFALSE", kTRUE));
   }
 
   //==============================================================================