]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliCopyHeaderTask.cxx
Fixed references from PWG2 -> PWGLF - very efficiently done using ETags.
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliCopyHeaderTask.cxx
CommitLineData
9416c923 1/**
2 * @file AliCopyHeaderTask.cxx
3 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
4 * @date Tue Jul 12 10:59:32 2011
5 *
6 * @brief Task to copy ESD header to AOD
7 *
bd6f5206 8 * @ingroup pwglf_forward_tasks
9416c923 9 */
10
11#include "AliCopyHeaderTask.h"
12#include "AliESDEvent.h"
13#include "AliAODEvent.h"
14#include "AliCentrality.h"
15#include "AliInputEventHandler.h"
0b9d5cd0 16#include "TFile.h"
17#include "AliEventplane.h"
9416c923 18
19ClassImp(AliCopyHeaderTask)
20#if 0
21; // for emacs - do not remove
22#endif
23
24void
25AliCopyHeaderTask::UserExec(Option_t*)
26{
27 //
28 // Called at every event
29 //
30 // Copies information from ESD header to AOD header
31 //
32 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
33 AliAODEvent* aod = dynamic_cast<AliAODEvent*>(AODEvent());
34
35 if (!esd) {
36 AliWarning("Missing ESD event");
37 return;
38 }
39 if (!aod) {
40 AliWarning("Missing AOD event");
41 return;
42 }
43
44 AliAODHeader* aodHeader = aod->GetHeader();
45 if (!aodHeader) {
46 AliWarning("Missing AOD header");
47 aodHeader = new AliAODHeader(esd->GetRunNumber(),
48 esd->GetBunchCrossNumber(),
49 esd->GetOrbitNumber(),
50 esd->GetPeriodNumber());
51 aod->AddHeader(aodHeader);
52 }
53
54 aodHeader->SetRunNumber(esd->GetRunNumber());
55 aodHeader->SetOfflineTrigger(fInputHandler->IsEventSelected());
56 aodHeader->SetBunchCrossNumber(esd->GetBunchCrossNumber());
57 aodHeader->SetOrbitNumber(esd->GetOrbitNumber());
58 aodHeader->SetPeriodNumber(esd->GetPeriodNumber());
59 aodHeader->SetEventType(esd->GetEventType());
60 aodHeader->SetEventNumberESDFile(esd->GetHeader()->GetEventNumberInFile());
61 if(esd->GetCentrality())
62 aodHeader->SetCentrality(new AliCentrality(*(esd->GetCentrality())));
63 else
64 aodHeader->SetCentrality(0);
65
66 aodHeader->SetFiredTriggerClasses(esd->GetFiredTriggerClasses());
67 aodHeader->SetTriggerMask(esd->GetTriggerMask());
68 aodHeader->SetTriggerCluster(esd->GetTriggerCluster());
69 aodHeader->SetL0TriggerInputs(esd->GetHeader()->GetL0TriggerInputs());
70 aodHeader->SetL1TriggerInputs(esd->GetHeader()->GetL1TriggerInputs());
71 aodHeader->SetL2TriggerInputs(esd->GetHeader()->GetL2TriggerInputs());
72
73 aodHeader->SetMagneticField(esd->GetMagneticField());
74 aodHeader->SetMuonMagFieldScale(esd->GetCurrentDip()/6000.);
75 aodHeader->SetZDCN1Energy(esd->GetZDCN1Energy());
76 aodHeader->SetZDCP1Energy(esd->GetZDCP1Energy());
77 aodHeader->SetZDCN2Energy(esd->GetZDCN2Energy());
78 aodHeader->SetZDCP2Energy(esd->GetZDCP2Energy());
79 aodHeader->SetZDCEMEnergy(esd->GetZDCEMEnergy(0),esd->GetZDCEMEnergy(1));
0b9d5cd0 80
81 TTree* tree = fInputHandler->GetTree();
82 if (tree) {
83 TFile* file = tree->GetCurrentFile();
84 if (file) aodHeader->SetESDFileName(file->GetName());
85 }
86
87 AliEventplane* ep = esd->GetEventplane();
88 if (ep) aodHeader->SetEventplane(ep);
89
9416c923 90}
91
92void
93AliCopyHeaderTask::Terminate(Option_t*)
94{
95 // Called at the end of the job - does nothing
96}
97
98//
99// EOF
100//