]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Clean AODEvent before adding to UserInfo
authorAndreas Morsch <morsch@pcalice102b.(none)>
Mon, 13 Jan 2014 13:32:37 +0000 (14:32 +0100)
committerAndreas Morsch <morsch@pcalice102b.(none)>
Mon, 13 Jan 2014 13:32:37 +0000 (14:32 +0100)
C. Loizides

STEER/AOD/AliAODExtension.cxx

index 0590db2b40d3db4d7976318d4413090575c42fa1..5e3e133142f66a4a513a9dc2cdaf9443c6ed5e9f 100644 (file)
@@ -372,7 +372,24 @@ void AliAODExtension::AddAODtoTreeUserInfo()
       aodEvent->AddObject(o);
     }    
   }
-  
+
+  TList *l = aodEvent->GetList();
+  if (l) {
+    for(int i = 0;i < l->GetEntries(); ++i){
+      TObject *pObject = l->At(i);
+      if(pObject->InheritsFrom(TClonesArray::Class())){
+       ((TClonesArray*)pObject)->Delete();
+      } else if(!pObject->InheritsFrom(TCollection::Class())){
+       TClass *pClass = TClass::GetClass(pObject->ClassName());
+       if (pClass && pClass->GetListOfMethods()->FindObject("Clear")) {
+         AliDebug(1, Form("Clear for object %s class %s", pObject->GetName(), pObject->ClassName()));
+         pObject->Clear();
+       }
+      } else {
+         AliWarning(Form("No method to clear for object %s class %s", pObject->GetName(), pObject->ClassName()));
+      }
+    }
+  }
   fTreeE->GetUserInfo()->Add(aodEvent);
 }