]>
Commit | Line | Data |
---|---|---|
ffca499d | 1 | /** |
2 | * @file AddTaskCopyHeader.C | |
3 | * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk> | |
4 | * @date Wed Mar 23 12:13:43 2011 | |
5 | * | |
6 | * @brief | |
7 | * | |
8 | * | |
9 | * @ingroup pwg2_forward_scripts_tasks | |
10 | */ | |
749dd3c2 | 11 | #include "AliAnalysisTaskSE.h" |
12 | #include "AliInputEventHandler.h" | |
13 | #include "AliESDEvent.h" | |
14 | #include "AliAODEvent.h" | |
15 | #include "AliCentrality.h" | |
16 | #include "AliAnalysisManager.h" | |
17 | #include <TROOT.h> | |
18 | ||
ffca499d | 19 | /** |
20 | * Task to copy header from ESD to AOD | |
21 | * | |
22 | * @ingroup pwg2_forward_scripts_tasks | |
23 | * @ingroup pwg2_forward_aod | |
24 | */ | |
749dd3c2 | 25 | class CopyHeaderTask : public AliAnalysisTaskSE |
26 | { | |
27 | public: | |
28 | CopyHeaderTask(const char* name="header") | |
29 | : AliAnalysisTaskSE(name) | |
30 | {} | |
31 | CopyHeaderTask(const CopyHeaderTask& other) | |
32 | : AliAnalysisTaskSE(other) | |
33 | {} | |
34 | virtual ~CopyHeaderTask() {} | |
35 | CopyHeaderTask& operator=(const CopyHeaderTask& other) | |
36 | { | |
37 | AliAnalysisTaskSE::operator=(other); | |
38 | return *this; | |
39 | } | |
40 | /** | |
41 | * @{ | |
42 | * @name Implementation of interface methods | |
43 | */ | |
44 | virtual void UserCreateOutputObjects() {} | |
45 | virtual void Init() {} | |
46 | virtual void LocalInit() {Init();} | |
47 | virtual void UserExec(Option_t *option); | |
48 | virtual void Terminate(Option_t *option); | |
49 | /* @} */ | |
50 | ||
51 | ClassDef(CopyHeaderTask,1); | |
52 | }; | |
53 | ||
54 | void | |
55 | CopyHeaderTask::UserExec(Option_t*) | |
56 | { | |
57 | AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent()); | |
58 | AliAODEvent* aod = dynamic_cast<AliAODEvent*>(AODEvent()); | |
59 | ||
60 | if (!esd) { | |
61 | AliWarning("Missing ESD event"); | |
62 | return; | |
63 | } | |
64 | if (!aod) { | |
65 | AliWarning("Missing AOD event"); | |
66 | return; | |
67 | } | |
68 | ||
69 | AliAODHeader* aodHeader = aod->GetHeader(); | |
70 | if (!aodHeader) { | |
71 | AliWarning("Missing AOD header"); | |
72 | return; | |
73 | } | |
74 | ||
75 | aodHeader->SetRunNumber(esd->GetRunNumber()); | |
76 | aodHeader->SetOfflineTrigger(fInputHandler->IsEventSelected()); | |
77 | aodHeader->SetBunchCrossNumber(esd->GetBunchCrossNumber()); | |
78 | aodHeader->SetOrbitNumber(esd->GetOrbitNumber()); | |
79 | aodHeader->SetPeriodNumber(esd->GetPeriodNumber()); | |
80 | aodHeader->SetEventType(esd->GetEventType()); | |
81 | aodHeader->SetEventNumberESDFile(esd->GetHeader()->GetEventNumberInFile()); | |
82 | if(esd->GetCentrality()) | |
83 | aodHeader->SetCentrality(new AliCentrality(*(esd->GetCentrality()))); | |
84 | else | |
85 | aodHeader->SetCentrality(0); | |
86 | ||
87 | aodHeader->SetFiredTriggerClasses(esd->GetFiredTriggerClasses()); | |
88 | aodHeader->SetTriggerMask(esd->GetTriggerMask()); | |
89 | aodHeader->SetTriggerCluster(esd->GetTriggerCluster()); | |
90 | aodHeader->SetL0TriggerInputs(esd->GetHeader()->GetL0TriggerInputs()); | |
91 | aodHeader->SetL1TriggerInputs(esd->GetHeader()->GetL1TriggerInputs()); | |
92 | aodHeader->SetL2TriggerInputs(esd->GetHeader()->GetL2TriggerInputs()); | |
93 | ||
94 | aodHeader->SetMagneticField(esd->GetMagneticField()); | |
95 | aodHeader->SetMuonMagFieldScale(esd->GetCurrentDip()/6000.); | |
96 | aodHeader->SetZDCN1Energy(esd->GetZDCN1Energy()); | |
97 | aodHeader->SetZDCP1Energy(esd->GetZDCP1Energy()); | |
98 | aodHeader->SetZDCN2Energy(esd->GetZDCN2Energy()); | |
99 | aodHeader->SetZDCP2Energy(esd->GetZDCP2Energy()); | |
100 | aodHeader->SetZDCEMEnergy(esd->GetZDCEMEnergy(0),esd->GetZDCEMEnergy(1)); | |
101 | } | |
102 | ||
103 | void | |
104 | CopyHeaderTask::Terminate(Option_t*) | |
105 | {} | |
106 | ||
ffca499d | 107 | /** |
108 | * | |
109 | * | |
110 | * @ingroup pwg2_forward_aod | |
111 | */ | |
749dd3c2 | 112 | void |
113 | AddTaskCopyHeader() | |
114 | { | |
115 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
116 | if (!mgr) { | |
ffca499d | 117 | Error("AddTaskCopyHeader", "No analysis manager to connect to."); |
749dd3c2 | 118 | return; |
119 | } | |
120 | ||
121 | gROOT->Macro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C"); | |
122 | ||
123 | CopyHeaderTask* task = new CopyHeaderTask; | |
124 | mgr->AddTask(task); | |
125 | ||
126 | // AliAnalysisDataContainer* histOut = | |
127 | // mgr->CreateContainer("Forward", TList::Class(), | |
128 | // AliAnalysisManager::kOutputContainer,outputfile); | |
129 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
130 | // mgr->ConnectOutput(task, 1, histOut); | |
131 | } | |
132 | // | |
133 | // EOF | |
134 | // |