]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added versioning metadata to AOD.
authoragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 29 Nov 2012 08:13:02 +0000 (08:13 +0000)
committeragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 29 Nov 2012 08:13:02 +0000 (08:13 +0000)
ANALYSIS/AliAnalysisTaskESDfilter.cxx
ANALYSIS/AliAnalysisTaskESDfilter.h

index 7daeb78e3e1f95d22afdbe3f978c05c518a4ce2b..5a37a9711e5b6370970590b75074c7bc1ec43e52 100644 (file)
@@ -238,6 +238,39 @@ void AliAnalysisTaskESDfilter::Init()
   // Call configuration file
 }
 
+//______________________________________________________________________________
+Bool_t AliAnalysisTaskESDfilter::Notify()
+{
+// Notify method.
+   AddMetadataToUserInfo();
+   return kTRUE;
+}   
+
+//______________________________________________________________________________
+Bool_t AliAnalysisTaskESDfilter::AddMetadataToUserInfo()
+{
+// Copy metadata to AOD user info.
+  static Bool_t copyFirst = kFALSE;
+  if (!copyFirst) {
+    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+    if (!mgr) {
+       AliError("AliAnalysisTaskESDfilter::AddMetadataToUserInfo() : No analysis manager !");
+       return kFALSE;
+    }   
+    TTree *esdTree = mgr->GetTree()->GetTree();
+    if (!esdTree) return kFALSE;
+    TNamed *alirootVersion = (TNamed*)esdTree->GetUserInfo()->FindObject("alirootVersion");
+    if (!alirootVersion) return kFALSE;    
+    AliAODHandler *aodHandler = dynamic_cast<AliAODHandler*>(mgr->GetOutputEventHandler());
+        if (!aodHandler) return kFALSE;
+    TTree *aodTree = aodHandler->GetTree();
+    if (!aodTree) return kFALSE;
+    aodTree->GetUserInfo()->Add(new TNamed(*alirootVersion));
+    copyFirst = kTRUE;
+  }
+  return kTRUE;
+}
+
 //______________________________________________________________________________
 void AliAnalysisTaskESDfilter::PrintTask(Option_t *option, Int_t indent) const
 {
index 4de70a9cc16f26e04b463b7f83246dce6e9f8bbc..ce9eef5a68bd06fac9a1f430427c41835b10c72a 100644 (file)
@@ -32,6 +32,7 @@ class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
     virtual void   UserCreateOutputObjects();
     virtual void   Init();
     virtual void   LocalInit() {Init();}
+    virtual Bool_t Notify();
     virtual void   UserExec(Option_t *option);
     virtual void   Terminate(Option_t *option);
 
@@ -68,6 +69,7 @@ class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
     void GetCascadeCuts(Double_t cuts[8]) const {for (Int_t icut = 0; icut<8; icut++) cuts[icut] = fCascadeCuts[icut];}
 
 
+  Bool_t AddMetadataToUserInfo();
   void PrintTask(Option_t *option="all", Int_t indent=0) const;
   
   void DisableVZERO() { fIsVZEROEnabled = kFALSE; }