unified macro
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 14 May 2012 17:49:43 +0000 (17:49 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 14 May 2012 17:49:43 +0000 (17:49 +0000)
PWGGA/EMCALTasks/macros/AddTaskEMCALTender.C

index 112f224..ba198b1 100644 (file)
@@ -1,27 +1,45 @@
 // $Id$
 
-AliTender *AddTaskEMCALTender()
-
+AliAnalysisTaskSE *AddTaskEMCALTender()
+{
   // Get the pointer to the existing analysis manager via the static access method.
   //==============================================================================
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
     ::Error("AddTaskEMCALTender", "No analysis manager to connect to.");
     return NULL;
-  }  
-  
+  }
+
+  AliVEventHandler *evhand = mgr->GetInputEventHandler();
+
   // Create the task and configure it.
   //===========================================================================
-  AliTender* ana = new  AliTender("AliTender");
-  
-  Bool_t ismc = (mgr->GetMCtruthEventHandler() != NULL);
 
-  mgr->AddTask(ana);
+  AliAnalysisTaskSE *ana = 0;
+  AliEMCALTenderSupply *EMCALSupply = 0;
 
   gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/ConfigEmcalTenderSupply.C");
-  AliEMCALTenderSupply *EMCALSupply = ConfigEmcalTenderSupply(kTRUE);
-  ana->AddSupply(EMCALSupply);
+
+  if (evhand->InheritsFrom("AliESDInputHandler")) {
+    EMCALSupply = ConfigEmcalTenderSupply(kTRUE);
+
+    AliTender* alitender = new  AliTender("AliTender");
+    alitender->AddSupply(EMCALSupply);
+    ana = alitender;
+  }
+  else if (evhand->InheritsFrom("AliAODInputHandler")) {
+    EMCALSupply = ConfigEmcalTenderSupply(kFALSE);
+
+    AliEmcalTenderTask* emcaltender = new  AliEmcalTenderTask("AliEmcalTenderTask");
+    emcaltender->SetEMCALTenderSupply(EMCALSupply);
+    ana = emcaltender;
+  }
+  else {
+    ::Error("AddTaskEMCALTender", "Input event handler not recognized, AOD/ESD expected. Returning...");
+    return NULL;
+  }
+
+  mgr->AddTask(ana);
 
   // Create ONLY the output containers for the data produced by the task.
   // Get and connect other common input/output containers via the manager as below