fix for event mixing
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 4 May 2012 09:57:11 +0000 (09:57 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 4 May 2012 09:57:11 +0000 (09:57 +0000)
ANALYSIS/macros/AddTaskPhysicsSelection.C

index 9c85890..55394fc 100644 (file)
@@ -12,14 +12,27 @@ AliPhysicsSelectionTask* AddTaskPhysicsSelection(Bool_t mCAnalysisFlag = kFALSE,
     ::Error("AddTaskPhysicsSelection", "This task requires an input event handler");
     return NULL;
   }
-  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
+
+  AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
   
+  TString inputDataType = inputHandler->GetDataType(); // can be "ESD" or "AOD"
+
   // Configure analysis
   //===========================================================================
-    
-    
-
   AliPhysicsSelectionTask *task = new AliPhysicsSelectionTask("");
+
+  // this makes physics selection to work using AliMultiInputEventHandler
+  if (inputHandler && (inputHandler->IsA() == AliMultiInputEventHandler::Class())) {
+    AliMultiInputEventHandler *multiInputHandler=(AliMultiInputEventHandler*)inputHandler;
+    AliInputEventHandler *ih = multiInputHandler->GetFirstInputEventHandler();
+    if (!ih) {
+      ::Error("AddTaskPhysicsSelection","ESD or AOD input handler is mixxing");
+      return NULL;
+    }
+    ih->SetEventSelection(multiInputHandler->GetEventSelection());
+    inputDataType = ih->GetDataType(); // can be "ESD" or "AOD"
+  }
+  
   mgr->AddTask(task);
   
   AliPhysicsSelection* physSel = task->GetPhysicsSelection();