+ Int_t error = 0;
+ Long64_t retval = fMacro->Exec(args, &error);
+ if (error != TInterpreter::kNoError)
+ {
+ Error("ExecuteMacro", "Macro interpretation failed");
+ return -1;
+ }
+ Int_t ntasks = mgr->GetTasks()->GetEntriesFast();
+ if (ntasks<=ntasks0)
+ {
+ Error("ExecuteMacro", "The macro did not add any tasks to the manager");
+ return -1;
+ }
+ Long64_t ptrTask = (Long64_t)mgr->GetTasks()->At(ntasks0);
+ if (retval >= ptrTask) {
+ TObject::SetBit(AliAnalysisTaskCfg::kLoaded, kTRUE);
+ fRAddTask = reinterpret_cast<TObject*>(retval);
+ if (fConfigDeps && dynamic_cast<TObject*>(fRAddTask)) {
+ TString classname = fRAddTask->ClassName();
+ classname += Form("* __R_ADDTASK__ = (%s*)0x%lx;", classname.Data(),(ULong_t)retval);
+ classname.Prepend(" ");
+ TObjString *line = fConfigDeps->GetLineWith("__R_ADDTASK__");
+ if (line) {
+ TList *lines = fConfigDeps->GetListOfLines();
+ lines->AddBefore(line, new TObjString(classname));
+ }
+ }
+ }
+ Info("ExecuteMacro", "Macro %s added %d tasks to the manager", fMacro->GetName(), ntasks-ntasks0);