#include "AliESDEvent.h"
#include "AliESD.h"
#include "AliAODEvent.h"
+#include "AliAODHeader.h"
#include "AliVEvent.h"
#include "AliAODHandler.h"
+#include "AliAODInputHandler.h"
#include "AliMCEventHandler.h"
#include "AliInputEventHandler.h"
#include "AliMCEvent.h"
ClassImp(AliAnalysisTaskSE)
////////////////////////////////////////////////////////////////////////
+Bool_t AliAnalysisTaskSE::fgHeaderCopied = kFALSE;
+AliAODHeader* AliAnalysisTaskSE::fgAODHeader = NULL;
AliAnalysisTaskSE::AliAnalysisTaskSE():
AliAnalysisTask(),
if (handler) {
fOutputAOD = handler->GetAOD();
fTreeA = handler->GetTree();
+ // Check if AOD Header replication has been required
+ if (!(handler->IsStandard()) &&
+ (handler->NeedsHeaderReplication()) &&
+ !(fgAODHeader))
+ {
+ fgAODHeader = new AliAODHeader;
+ handler->AddBranch("AliAODHeader", &fgAODHeader);
+ }
} else {
AliWarning("No AOD Event Handler connected.") ;
}
fEntry = fMCEvent->Header()->GetEvent();
if ( !((Entry()-1)%100) && fDebug > 0)
AliInfo(Form("%s ----> Processing event # %lld", CurrentFileName(), Entry()));
-
+
+ AliAODHandler* handler = (AliAODHandler*)
+ ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
+ if (handler) {
+ if (!(handler->IsStandard()) &&
+ (handler->NeedsHeaderReplication()) &&
+ (fgAODHeader))
+ {
+ // Header should be replicated
+ AliAODInputHandler* aodH = dynamic_cast<AliAODInputHandler*>(fInputHandler);
+ if (aodH) {
+ // Input is AOD
+ fgAODHeader = dynamic_cast<AliAODHeader*>(InputEvent()->GetHeader());
+ fgHeaderCopied = kTRUE;
+ }
+ }
+ }
+
+
// Call the user analysis
UserExec(option);
PostData(0, fTreeA);
else return "";
}
-void AliAnalysisTaskSE::AddAODBranch(const char* bname, const char* cname, TObject* addobj)
+void AliAnalysisTaskSE::AddAODBranch(const char* cname, void* addobj)
{
// Add a new branch to the aod tree
AliAODHandler* handler = (AliAODHandler*)
((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
if (handler) {
- handler->AddBranch(bname, cname, addobj);
+ handler->AddBranch(cname, addobj);
}
}