delete fDataTree;
fDataTree = 0;
}
+ if(!gSystem->AccessPathName(Form("/tmp/TRD.TrackListMacroData_%s.root", gSystem->Getenv("USER")))) gSystem->Exec(Form("rm /tmp/TRD.TrackListMacroData_%s.root", gSystem->Getenv("USER")));
}
//______________________________________________________
}
//______________________________________________________
-void AliEveTRDTrackList::ApplyProcessMacros(TList* iterator)
+Bool_t AliEveTRDTrackList::ApplyProcessMacros(TList* iterator)
{
- if (iterator->GetEntries() <= 0) return;
+ // No process macros need to be processed
+ if (iterator->GetEntries() <= 0) return kTRUE;
+
+ // Clear root
+ gROOT->Reset();
+
+ // Clear old data and re-allocate
+ if (fDataTree == 0) fDataTree = new TTreeSRedirector(Form("/tmp/TRD.TrackListMacroData_%s.root", gSystem->Getenv("USER")));
+ if (!fDataTree)
+ {
+ Error("Apply process macros", "File \"TRD.TrackListMacroData.root\" could not be accessed properly!");
+ return kFALSE;
+ }
+
+ if (fDataFromMacroList != 0) delete fDataFromMacroList;
+ fDataFromMacroList = new TList();
+
+ fHistoDataSelected = 0;
+
Char_t name[fkMaxMacroNameLength];
Char_t** cmds = new Char_t*[iterator->GetEntries()];
AliTRDtrackV1 *trackv1 = 0;
TH1* returnedHist = 0x0;
- // Clear root
- gROOT->Reset();
-
- // Clear old data and re-allocate
- if (fDataFromMacroList != 0) delete fDataFromMacroList;
- fDataFromMacroList = new TList();
-
- fHistoDataSelected = 0;
-
- if (fDataTree == 0) fDataTree = new TTreeSRedirector("TRD.TrackListMacroData.root");
-
// Collect the commands for each macro and add them to "data-from-list"
for (Int_t i = 0; i < iterator->GetEntries(); i++)
{
// Now the data is stored in "TRD.TrackListMacroData.root"
// The editor will access this file to display the data
+ return kTRUE;
}
//______________________________________________________
// No checks are performed (fast) and no libraries are
// loaded. Do use only, if library already exists!
virtual void AddStandardMacros(); // Adds standard macros to the lists
- void ApplyProcessMacros(TList* iterator); // Uses the iterator (for the selected process
- // macros) to apply the selected macros to the data
+ Bool_t ApplyProcessMacros(TList* iterator); // Uses the iterator (for the selected process
+ // macros) to apply the selected macros to the data.
+ // Return kTRUE on success, otherwise kFALSE. If there
+ // no process macros selected, kTRUE is returned (no
+ // error!).
void ApplySelectionMacros(TList* iterator); // Uses the iterator (for the selected selection
// macros) to apply the selected macros to the data
Char_t* MakeMacroEntry(const Char_t* path, const Char_t* name); // Constructs an entry for the macro
//______________________________________________________
void AliEveTRDTrackListEditor::ApplyMacros()
{
+ Bool_t success = kFALSE;
+
// First apply the selection macros
TList* iterator = new TList();
ftlMacroSelList->GetSelectedEntries(iterator);
// Now apply the process macros
iterator = new TList();
ftlMacroList->GetSelectedEntries(iterator);
- fM->ApplyProcessMacros(iterator);
+ success = fM->ApplyProcessMacros(iterator);
// Update histogram tab (data has to be reloaded)
SetModel(fM);
// AlieveTRDTrackList::ApplyProcessMacros() automatically selects a macro -> Draw the histogram for it,
// if a process macro has been applied
- if (iterator->GetEntries() > 0)
+ if (success && iterator->GetEntries() > 0)
{
// Set focus on "Histograms" tab
GetGedEditor()->GetTab()->SetTab("Histograms");
if (iterator != 0) delete iterator;
iterator = 0;
+
+ if (!success)
+ {
+ new TGMsgBox(gClient->GetRoot(), GetMainFrame(), "Error",
+ "AliEveTRDTrackList::ApplyProcessMacros experienced an error (cf. CINT-output)!",
+ kMBIconExclamation, kMBOk);
+ }
}
//______________________________________________________