#include "AliEmcalCompatTask.h"
#include <TClonesArray.h>
#include "AliAnalysisManager.h"
#include "AliCentrality.h"
#include "AliESDEvent.h"
#include "AliEsdTrackExt.h"
#include "AliEventplane.h"
#include "AliInputEventHandler.h"
ClassImp(AliEmcalCompatTask)
AliEmcalCompatTask::AliEmcalCompatTask() :
AliAnalysisTaskSE(),
fDoCent(1),
fDoEp(1)
{
}
AliEmcalCompatTask::AliEmcalCompatTask(const char *name) :
AliAnalysisTaskSE(name),
fDoCent(1),
fDoEp(1)
{
fBranchNames = "ESD:AliESDHeader.,AliESDRun.,Tracks";
}
AliEmcalCompatTask::~AliEmcalCompatTask()
{
}
void AliEmcalCompatTask::UserExec(Option_t *)
{
AliESDEvent *esdEv = dynamic_cast<AliESDEvent*>(InputEvent());
if (!esdEv) {
AliError("Task works only on ESD events, returning");
return;
}
AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
if (!am) {
AliError("Manager zero, returning");
return;
}
am->LoadBranch("AliESDHeader.");
am->LoadBranch("AliESDRun.");
LoadBranches();
AliESDHeader *header = esdEv->GetHeader();
TString title;
if (header)
title = header->GetTitle();
else {
AliError(Form("%s: Header zero, returning!", GetName()));
return;
}
if (title.Length()==0) {
AliError(Form("%s: Title should encode offline trigger, returning!", GetName()));
return;
} else {
UInt_t off = header->GetUniqueID();
off &= 0x4FFFFFFF;
UInt_t res = ((AliInputEventHandler*)(am->GetInputEventHandler()))->IsEventSelected();
res &= 0x4FFFFFFF;
if (off!=res) {
AliWarning(Form("Stored offline trigger not equal computed: %ud %ud", off, res));
}
}
if (fDoCent) {
am->LoadBranch("Centrality.");
AliCentrality *centin = dynamic_cast<AliCentrality*>(esdEv->FindListObject("Centrality"));
AliCentrality *centout = esdEv->GetCentrality();
if (centin&¢out&¢out->GetQuality()==999) {
centout->SetQuality(centin->GetQuality());
centout->SetCentralityV0M(centin->GetCentralityPercentileUnchecked("V0M"));
centout->SetCentralityFMD(centin->GetCentralityPercentileUnchecked("FMD"));
centout->SetCentralityTRK(centin->GetCentralityPercentileUnchecked("TRK"));
centout->SetCentralityTKL(centin->GetCentralityPercentileUnchecked("TKL"));
centout->SetCentralityCL0(centin->GetCentralityPercentileUnchecked("CL0"));
centout->SetCentralityCL1(centin->GetCentralityPercentileUnchecked("CL1"));
centout->SetCentralityV0MvsFMD(centin->GetCentralityPercentileUnchecked("V0MvsFMD"));
centout->SetCentralityTKLvsV0M(centin->GetCentralityPercentileUnchecked("TKLvsV0M"));
centout->SetCentralityZEMvsZDC(centin->GetCentralityPercentileUnchecked("ZEMvsZDC"));
}
}
if (fDoEp) {
am->LoadBranch("Eventplane.");
AliEventplane *epin = dynamic_cast<AliEventplane*>(esdEv->FindListObject("Eventplane"));
AliEventplane *epout = esdEv->GetEventplane();
if (epin&&epout&&(epout->GetQVector()==0)&&(epin->GetQVector()!=0)) {
epout->SetQVector(new TVector2(*epin->GetQVector()));
epout->SetEventplaneQ(epin->GetEventplane("Q"));
epout->SetQsub(new TVector2(*epin->GetQsub1()),new TVector2(*epin->GetQsub2()));
epout->SetQsubRes(epin->GetQsubRes());
}
}
TTree *tree = am->GetTree();
if (tree&&tree->GetBranch("PicoTracks")) {
am->LoadBranch("PicoTracks");
}
if (tree&&tree->GetBranch("Tracks")) {
am->LoadBranch("Tracks");
TClonesArray *ts = dynamic_cast<TClonesArray*>(esdEv->FindListObject("Tracks"));
if (ts) {
TString clsname(ts->GetClass()->GetName());
if (clsname == "AliEsdTrackExt") {
const Int_t N = ts->GetEntries();
for (Int_t i=0; i<N; ++i) {
AliEsdTrackExt *t = static_cast<AliEsdTrackExt*>(ts->At(i));
if (t) {
t->SetESDEvent(esdEv);
t->Setup();
}
}
}
}
}
}
AliEmcalCompatTask.cxx:10 AliEmcalCompatTask.cxx:11 AliEmcalCompatTask.cxx:12 AliEmcalCompatTask.cxx:13 AliEmcalCompatTask.cxx:14 AliEmcalCompatTask.cxx:15 AliEmcalCompatTask.cxx:16 AliEmcalCompatTask.cxx:17 AliEmcalCompatTask.cxx:18 AliEmcalCompatTask.cxx:19 AliEmcalCompatTask.cxx:20 AliEmcalCompatTask.cxx:21 AliEmcalCompatTask.cxx:22 AliEmcalCompatTask.cxx:23 AliEmcalCompatTask.cxx:24 AliEmcalCompatTask.cxx:25 AliEmcalCompatTask.cxx:26 AliEmcalCompatTask.cxx:27 AliEmcalCompatTask.cxx:28 AliEmcalCompatTask.cxx:29 AliEmcalCompatTask.cxx:30 AliEmcalCompatTask.cxx:31 AliEmcalCompatTask.cxx:32 AliEmcalCompatTask.cxx:33 AliEmcalCompatTask.cxx:34 AliEmcalCompatTask.cxx:35 AliEmcalCompatTask.cxx:36 AliEmcalCompatTask.cxx:37 AliEmcalCompatTask.cxx:38 AliEmcalCompatTask.cxx:39 AliEmcalCompatTask.cxx:40 AliEmcalCompatTask.cxx:41 AliEmcalCompatTask.cxx:42 AliEmcalCompatTask.cxx:43 AliEmcalCompatTask.cxx:44 AliEmcalCompatTask.cxx:45 AliEmcalCompatTask.cxx:46 AliEmcalCompatTask.cxx:47 AliEmcalCompatTask.cxx:48 AliEmcalCompatTask.cxx:49 AliEmcalCompatTask.cxx:50 AliEmcalCompatTask.cxx:51 AliEmcalCompatTask.cxx:52 AliEmcalCompatTask.cxx:53 AliEmcalCompatTask.cxx:54 AliEmcalCompatTask.cxx:55 AliEmcalCompatTask.cxx:56 AliEmcalCompatTask.cxx:57 AliEmcalCompatTask.cxx:58 AliEmcalCompatTask.cxx:59 AliEmcalCompatTask.cxx:60 AliEmcalCompatTask.cxx:61 AliEmcalCompatTask.cxx:62 AliEmcalCompatTask.cxx:63 AliEmcalCompatTask.cxx:64 AliEmcalCompatTask.cxx:65 AliEmcalCompatTask.cxx:66 AliEmcalCompatTask.cxx:67 AliEmcalCompatTask.cxx:68 AliEmcalCompatTask.cxx:69 AliEmcalCompatTask.cxx:70 AliEmcalCompatTask.cxx:71 AliEmcalCompatTask.cxx:72 AliEmcalCompatTask.cxx:73 AliEmcalCompatTask.cxx:74 AliEmcalCompatTask.cxx:75 AliEmcalCompatTask.cxx:76 AliEmcalCompatTask.cxx:77 AliEmcalCompatTask.cxx:78 AliEmcalCompatTask.cxx:79 AliEmcalCompatTask.cxx:80 AliEmcalCompatTask.cxx:81 AliEmcalCompatTask.cxx:82 AliEmcalCompatTask.cxx:83 AliEmcalCompatTask.cxx:84 AliEmcalCompatTask.cxx:85 AliEmcalCompatTask.cxx:86 AliEmcalCompatTask.cxx:87 AliEmcalCompatTask.cxx:88 AliEmcalCompatTask.cxx:89 AliEmcalCompatTask.cxx:90 AliEmcalCompatTask.cxx:91 AliEmcalCompatTask.cxx:92 AliEmcalCompatTask.cxx:93 AliEmcalCompatTask.cxx:94 AliEmcalCompatTask.cxx:95 AliEmcalCompatTask.cxx:96 AliEmcalCompatTask.cxx:97 AliEmcalCompatTask.cxx:98 AliEmcalCompatTask.cxx:99 AliEmcalCompatTask.cxx:100 AliEmcalCompatTask.cxx:101 AliEmcalCompatTask.cxx:102 AliEmcalCompatTask.cxx:103 AliEmcalCompatTask.cxx:104 AliEmcalCompatTask.cxx:105 AliEmcalCompatTask.cxx:106 AliEmcalCompatTask.cxx:107 AliEmcalCompatTask.cxx:108 AliEmcalCompatTask.cxx:109 AliEmcalCompatTask.cxx:110 AliEmcalCompatTask.cxx:111 AliEmcalCompatTask.cxx:112 AliEmcalCompatTask.cxx:113 AliEmcalCompatTask.cxx:114 AliEmcalCompatTask.cxx:115 AliEmcalCompatTask.cxx:116 AliEmcalCompatTask.cxx:117 AliEmcalCompatTask.cxx:118 AliEmcalCompatTask.cxx:119 AliEmcalCompatTask.cxx:120 AliEmcalCompatTask.cxx:121 AliEmcalCompatTask.cxx:122 AliEmcalCompatTask.cxx:123 AliEmcalCompatTask.cxx:124 AliEmcalCompatTask.cxx:125 AliEmcalCompatTask.cxx:126 AliEmcalCompatTask.cxx:127 AliEmcalCompatTask.cxx:128 AliEmcalCompatTask.cxx:129 AliEmcalCompatTask.cxx:130 AliEmcalCompatTask.cxx:131 AliEmcalCompatTask.cxx:132 AliEmcalCompatTask.cxx:133 AliEmcalCompatTask.cxx:134 AliEmcalCompatTask.cxx:135 AliEmcalCompatTask.cxx:136 AliEmcalCompatTask.cxx:137 AliEmcalCompatTask.cxx:138 AliEmcalCompatTask.cxx:139 AliEmcalCompatTask.cxx:140 AliEmcalCompatTask.cxx:141