]>
Commit | Line | Data |
---|---|---|
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 | |
19 | ClassImp(AliCopyHeaderTask) | |
20 | #if 0 | |
21 | ; // for emacs - do not remove | |
22 | #endif | |
23 | ||
24 | void | |
25 | AliCopyHeaderTask::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 | ||
92 | void | |
93 | AliCopyHeaderTask::Terminate(Option_t*) | |
94 | { | |
95 | // Called at the end of the job - does nothing | |
96 | } | |
97 | ||
98 | // | |
99 | // EOF | |
100 | // |