+//______________________________________________________________________
+AliAnalysisDataContainer * AliAnalysisGoodies::ConnectInput(AliAnalysisTask * task, TClass * classin, UShort_t index)
+{
+ // connect a task to the input
+
+ if ( ! fAmgr->GetTask(task->GetName()) )
+ fAmgr->AddTask(task) ;
+ else
+ AliFatal(Form("Task %s already exists", task->GetName())) ;
+
+ AliAnalysisDataContainer * taskInput = 0x0 ;
+ if ( fAmgr->GetInputs() )
+ taskInput = dynamic_cast<AliAnalysisDataContainer *>(fAmgr->GetInputs()->FindObject(Form("InputContainer_%s_%d", task->GetName(), index))) ;
+ if ( ! taskInput ) {
+ taskInput = fAmgr->CreateContainer(Form("InputContainer_%s_%d", task->GetName(), index), classin, AliAnalysisManager::kInputContainer) ;
+ fAmgr->ConnectInput (task, index, taskInput);
+ }
+ else
+ AliFatal(Form("Input %s already exists", taskInput->GetName())) ;
+
+ return taskInput ;
+}
+
+//______________________________________________________________________
+void AliAnalysisGoodies::ConnectInput(AliAnalysisTask * task, AliAnalysisDataContainer * taskInput, UShort_t index)
+{
+ // connect a task to the input
+
+ if ( ! fAmgr->GetTask(task->GetName()) )
+ fAmgr->AddTask(task) ;
+ else
+ AliFatal(Form("Task %s already exists", task->GetName())) ;
+
+ fAmgr->ConnectInput (task, index, taskInput);
+}
+
+//______________________________________________________________________
+AliAnalysisDataContainer * AliAnalysisGoodies::ConnectOuput(AliAnalysisTask * task, TClass * classou, UShort_t index, TString opt )
+{
+ // connect a task to the output
+
+ char filename[20] ;
+
+ if (opt == "AOD" ) {
+ if ( fAmgr->GetOutputEventHandler() == 0x0) {
+ AliAODHandler * aodHandler = new AliAODHandler() ;
+ aodHandler->SetOutputFileName(Form("%s_0.root",task->GetName())) ;
+ fAmgr->SetOutputEventHandler(aodHandler) ;
+ }
+ sprintf(filename, "default") ;
+ }
+ else
+ sprintf(filename, "%s_%d.root",task->GetName(), index) ;
+
+ AliAnalysisDataContainer * taskOuput = 0x0 ;
+ if ( fAmgr->GetOutputs() )
+ taskOuput = dynamic_cast<AliAnalysisDataContainer *>(fAmgr->GetOutputs()->FindObject(Form("OutputContainer_%s_%d", task->GetName(), index))) ;
+ if ( ! taskOuput )
+ taskOuput = fAmgr->CreateContainer(Form("OutputContainer_%s_%d", task->GetName(), index), classou, AliAnalysisManager::kOutputContainer, filename) ;
+ fAmgr->ConnectOutput(task, index, taskOuput);
+
+ return taskOuput ;
+}
+
+//______________________________________________________________________
+void AliAnalysisGoodies::ConnectOuput(AliAnalysisTask * task, AliAnalysisDataContainer * taskOuput, UShort_t index)
+{
+ // connect a task to the output
+
+ fAmgr->ConnectInput (task, index, taskOuput);
+}
+