]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis2/AddTaskCopyHeader.C
Added class AliForwarddNdetaTask to do the dN/deta
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AddTaskCopyHeader.C
CommitLineData
749dd3c2 1#include "AliAnalysisTaskSE.h"
2#include "AliInputEventHandler.h"
3#include "AliESDEvent.h"
4#include "AliAODEvent.h"
5#include "AliCentrality.h"
6#include "AliAnalysisManager.h"
7#include <TROOT.h>
8
9class CopyHeaderTask : public AliAnalysisTaskSE
10{
11public:
12 CopyHeaderTask(const char* name="header")
13 : AliAnalysisTaskSE(name)
14 {}
15 CopyHeaderTask(const CopyHeaderTask& other)
16 : AliAnalysisTaskSE(other)
17 {}
18 virtual ~CopyHeaderTask() {}
19 CopyHeaderTask& operator=(const CopyHeaderTask& other)
20 {
21 AliAnalysisTaskSE::operator=(other);
22 return *this;
23 }
24 /**
25 * @{
26 * @name Implementation of interface methods
27 */
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);
33 /* @} */
34
35 ClassDef(CopyHeaderTask,1);
36};
37
38void
39CopyHeaderTask::UserExec(Option_t*)
40{
41 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
42 AliAODEvent* aod = dynamic_cast<AliAODEvent*>(AODEvent());
43
44 if (!esd) {
45 AliWarning("Missing ESD event");
46 return;
47 }
48 if (!aod) {
49 AliWarning("Missing AOD event");
50 return;
51 }
52
53 AliAODHeader* aodHeader = aod->GetHeader();
54 if (!aodHeader) {
55 AliWarning("Missing AOD header");
56 return;
57 }
58
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())));
68 else
69 aodHeader->SetCentrality(0);
70
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());
77
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));
85}
86
87void
88CopyHeaderTask::Terminate(Option_t*)
89{}
90
91void
92AddTaskCopyHeader()
93{
94 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
95 if (!mgr) {
96 Error("AddTaskFMD", "No analysis manager to connect to.");
97 return;
98 }
99
100 gROOT->Macro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
101
102 CopyHeaderTask* task = new CopyHeaderTask;
103 mgr->AddTask(task);
104
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);
110}
111//
112// EOF
113//