allow merging of non-std objects which are not a collection
[u/mrichter/AliRoot.git] / HLT / rec / AliHLTEsdManagerImplementation.cxx
index 788b6de07d153dffa1de805ba72d80e0be56ca7e..23ced4c4fb185711280250b13eb8e223cf44a82a 100644 (file)
@@ -728,8 +728,11 @@ int AliHLTEsdManagerImplementation::Merge(AliESDEvent* pTgt, AliESDEvent* pSrc)
       } else if (pSrcObject->IsA()==AliESDACORDE::Class()) {
        AliESDACORDE* pESDACORDE=dynamic_cast<AliESDACORDE*>(pSrcObject);
        copy=(pESDACORDE && false); // have to find an easy valid condition
+      } else if (!AliHLTESDEventHelper::IsStdContent(name)) {
+       // this is likely to be ok as long as it is not any object of the std content.
+       copy=true;
       } else {
-         HLTError("no merging implemented for object %s, omitting", name.Data());
+       HLTError("no merging implemented for object %s, omitting", name.Data());
       }
       if (copy) {
        //pSrcObject->Print();
@@ -795,3 +798,13 @@ int AliHLTEsdManagerImplementation::Merge(AliESDEvent* pTgt, AliESDEvent* pSrc)
   }
   return iResult;
 }
+
+bool AliHLTEsdManagerImplementation::AliHLTESDEventHelper::IsStdContent(const char* key)
+{
+  // check if the key denotes a std object
+  TString needle=key;
+  for (int i=0; i<kESDListN; i++) {
+    if (needle.CompareTo(fgkESDListName[i])==0) return true;
+  }
+  return false;
+}