ROOT logo
TaskConsumer *AddTaskConsumer(const char *name, const char *prodname1, const char *prodname2)
{
// Provide as input the name of the consumer task and the name of the 
// producer task
	// pointer to the analysis manager
	AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
	if (!mgr) {
		::Error("AddTaskConsumer", "No analysis manager to connect to.");
		return NULL;
	}  
	// create the task
   TaskConsumer *task = new TaskConsumer(name);
   mgr->AddTask(task);

	// connecting the input/output containers
   TString outfile = mgr->GetCommonFileName();
   // input data feed
	AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
	mgr->ConnectInput (task, 0, cinput0 );
   // producer task
   TaskProducer *prod1 = mgr->GetTask(prodname1);
   TaskProducer *prod2 = mgr->GetTask(prodname2);
   if (!prod1 || !prod2) {
      ::Error("AddTaskConsumer", "Producer task %s or %s not found in the analysis manager", 
              prodname1, prodname2);
      return 0;
   }
   // Connect to exchange container
   AliAnalysisDataContainer *cinput1 = prod1->GetOutputSlot(2)->GetContainer();
   mgr->ConnectInput(task, 1, cinput1);
   AliAnalysisDataContainer *cinput2 = prod2->GetOutputSlot(2)->GetContainer();
   mgr->ConnectInput(task, 2, cinput2);
   
	AliAnalysisDataContainer *coutput1  = mgr->CreateContainer(
                TString::Format("output_%s", name),
                TList::Class(), AliAnalysisManager::kOutputContainer,
                TString::Format("%s:output",outfile.Data()));
	mgr->ConnectOutput(task, 1, coutput1);
   return task;
}
 AddTaskConsumer.C:1
 AddTaskConsumer.C:2
 AddTaskConsumer.C:3
 AddTaskConsumer.C:4
 AddTaskConsumer.C:5
 AddTaskConsumer.C:6
 AddTaskConsumer.C:7
 AddTaskConsumer.C:8
 AddTaskConsumer.C:9
 AddTaskConsumer.C:10
 AddTaskConsumer.C:11
 AddTaskConsumer.C:12
 AddTaskConsumer.C:13
 AddTaskConsumer.C:14
 AddTaskConsumer.C:15
 AddTaskConsumer.C:16
 AddTaskConsumer.C:17
 AddTaskConsumer.C:18
 AddTaskConsumer.C:19
 AddTaskConsumer.C:20
 AddTaskConsumer.C:21
 AddTaskConsumer.C:22
 AddTaskConsumer.C:23
 AddTaskConsumer.C:24
 AddTaskConsumer.C:25
 AddTaskConsumer.C:26
 AddTaskConsumer.C:27
 AddTaskConsumer.C:28
 AddTaskConsumer.C:29
 AddTaskConsumer.C:30
 AddTaskConsumer.C:31
 AddTaskConsumer.C:32
 AddTaskConsumer.C:33
 AddTaskConsumer.C:34
 AddTaskConsumer.C:35
 AddTaskConsumer.C:36
 AddTaskConsumer.C:37
 AddTaskConsumer.C:38
 AddTaskConsumer.C:39
 AddTaskConsumer.C:40
 AddTaskConsumer.C:41