From: agheata Date: Thu, 29 Nov 2012 08:13:02 +0000 (+0000) Subject: Added versioning metadata to AOD. X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=dc8931354811b75c95c0d7a997f4ac3b708b630c;p=u%2Fmrichter%2FAliRoot.git Added versioning metadata to AOD. --- diff --git a/ANALYSIS/AliAnalysisTaskESDfilter.cxx b/ANALYSIS/AliAnalysisTaskESDfilter.cxx index 7daeb78e3e1..5a37a9711e5 100644 --- a/ANALYSIS/AliAnalysisTaskESDfilter.cxx +++ b/ANALYSIS/AliAnalysisTaskESDfilter.cxx @@ -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(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 { diff --git a/ANALYSIS/AliAnalysisTaskESDfilter.h b/ANALYSIS/AliAnalysisTaskESDfilter.h index 4de70a9cc16..ce9eef5a68b 100644 --- a/ANALYSIS/AliAnalysisTaskESDfilter.h +++ b/ANALYSIS/AliAnalysisTaskESDfilter.h @@ -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; }