2 * @file AliCopyHeaderTask.cxx
3 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
4 * @date Tue Jul 12 10:59:32 2011
6 * @brief Task to copy ESD header to AOD
8 * @ingroup pwglf_forward_tasks
11 #include "AliCopyHeaderTask.h"
12 #include "AliESDEvent.h"
13 #include "AliAODEvent.h"
14 #include "AliCentrality.h"
15 #include "AliInputEventHandler.h"
17 #include "AliEventplane.h"
19 ClassImp(AliCopyHeaderTask)
21 ; // for emacs - do not remove
25 AliCopyHeaderTask::UserExec(Option_t*)
28 // Called at every event
30 // Copies information from ESD header to AOD header
32 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
33 AliAODEvent* aod = dynamic_cast<AliAODEvent*>(AODEvent());
36 AliWarning("Missing ESD event");
40 AliWarning("Missing AOD event");
44 AliAODHeader* aodHeader = aod->GetHeader();
46 AliWarning("Missing AOD header");
47 aodHeader = new AliAODHeader(esd->GetRunNumber(),
48 esd->GetBunchCrossNumber(),
49 esd->GetOrbitNumber(),
50 esd->GetPeriodNumber());
51 aod->AddHeader(aodHeader);
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())));
64 aodHeader->SetCentrality(0);
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());
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));
81 TTree* tree = fInputHandler->GetTree();
83 TFile* file = tree->GetCurrentFile();
84 if (file) aodHeader->SetESDFileName(file->GetName());
87 AliEventplane* ep = esd->GetEventplane();
88 if (ep) aodHeader->SetEventplane(ep);
93 AliCopyHeaderTask::Terminate(Option_t*)
95 // Called at the end of the job - does nothing