1 #include "AliAnalysisTaskSE.h"
2 #include "AliInputEventHandler.h"
3 #include "AliESDEvent.h"
4 #include "AliAODEvent.h"
5 #include "AliCentrality.h"
6 #include "AliAnalysisManager.h"
9 class CopyHeaderTask : public AliAnalysisTaskSE
12 CopyHeaderTask(const char* name="header")
13 : AliAnalysisTaskSE(name)
15 CopyHeaderTask(const CopyHeaderTask& other)
16 : AliAnalysisTaskSE(other)
18 virtual ~CopyHeaderTask() {}
19 CopyHeaderTask& operator=(const CopyHeaderTask& other)
21 AliAnalysisTaskSE::operator=(other);
26 * @name Implementation of interface methods
28 virtual void UserCreateOutputObjects() {}
29 virtual void Init() {}
30 virtual void LocalInit() {Init();}
31 virtual void UserExec(Option_t *option);
32 virtual void Terminate(Option_t *option);
35 ClassDef(CopyHeaderTask,1);
39 CopyHeaderTask::UserExec(Option_t*)
41 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
42 AliAODEvent* aod = dynamic_cast<AliAODEvent*>(AODEvent());
45 AliWarning("Missing ESD event");
49 AliWarning("Missing AOD event");
53 AliAODHeader* aodHeader = aod->GetHeader();
55 AliWarning("Missing AOD header");
59 aodHeader->SetRunNumber(esd->GetRunNumber());
60 aodHeader->SetOfflineTrigger(fInputHandler->IsEventSelected());
61 aodHeader->SetBunchCrossNumber(esd->GetBunchCrossNumber());
62 aodHeader->SetOrbitNumber(esd->GetOrbitNumber());
63 aodHeader->SetPeriodNumber(esd->GetPeriodNumber());
64 aodHeader->SetEventType(esd->GetEventType());
65 aodHeader->SetEventNumberESDFile(esd->GetHeader()->GetEventNumberInFile());
66 if(esd->GetCentrality())
67 aodHeader->SetCentrality(new AliCentrality(*(esd->GetCentrality())));
69 aodHeader->SetCentrality(0);
71 aodHeader->SetFiredTriggerClasses(esd->GetFiredTriggerClasses());
72 aodHeader->SetTriggerMask(esd->GetTriggerMask());
73 aodHeader->SetTriggerCluster(esd->GetTriggerCluster());
74 aodHeader->SetL0TriggerInputs(esd->GetHeader()->GetL0TriggerInputs());
75 aodHeader->SetL1TriggerInputs(esd->GetHeader()->GetL1TriggerInputs());
76 aodHeader->SetL2TriggerInputs(esd->GetHeader()->GetL2TriggerInputs());
78 aodHeader->SetMagneticField(esd->GetMagneticField());
79 aodHeader->SetMuonMagFieldScale(esd->GetCurrentDip()/6000.);
80 aodHeader->SetZDCN1Energy(esd->GetZDCN1Energy());
81 aodHeader->SetZDCP1Energy(esd->GetZDCP1Energy());
82 aodHeader->SetZDCN2Energy(esd->GetZDCN2Energy());
83 aodHeader->SetZDCP2Energy(esd->GetZDCP2Energy());
84 aodHeader->SetZDCEMEnergy(esd->GetZDCEMEnergy(0),esd->GetZDCEMEnergy(1));
88 CopyHeaderTask::Terminate(Option_t*)
94 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
96 Error("AddTaskFMD", "No analysis manager to connect to.");
100 gROOT->Macro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
102 CopyHeaderTask* task = new CopyHeaderTask;
105 // AliAnalysisDataContainer* histOut =
106 // mgr->CreateContainer("Forward", TList::Class(),
107 // AliAnalysisManager::kOutputContainer,outputfile);
108 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
109 // mgr->ConnectOutput(task, 1, histOut);