#include <TChain.h>
#include <TFile.h>
#include <TList.h>
#include "AliAnalysisTaskPWG2AODUpdate.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliESDtrack.h"
#include "AliESDVertex.h"
#include "AliLog.h"
#include "AliPWG2AODTrack.h"
ClassImp(AliAnalysisTaskPWG2AODUpdate)
AliAnalysisTaskPWG2AODUpdate::AliAnalysisTaskPWG2AODUpdate():
fESD(0x0),
fAOD(0x0),
fPWG2AODTracks(0x0)
{
}
AliAnalysisTaskPWG2AODUpdate::AliAnalysisTaskPWG2AODUpdate(const char* name):
AliAnalysisTaskSE(name),
fESD(0x0),
fAOD(0x0),
fPWG2AODTracks(0x0)
{
DefineInput (0, TChain::Class());
DefineOutput(0, TTree::Class());
}
AliAnalysisTaskPWG2AODUpdate::AliAnalysisTaskPWG2AODUpdate(const AliAnalysisTaskPWG2AODUpdate &task):
AliAnalysisTaskSE(),
fESD(0x0),
fAOD(0x0),
fPWG2AODTracks(0x0)
{
fESD = task.fESD;
fAOD = task.fAOD;
fPWG2AODTracks = task.fPWG2AODTracks;
}
AliAnalysisTaskPWG2AODUpdate& AliAnalysisTaskPWG2AODUpdate::operator=(const AliAnalysisTaskPWG2AODUpdate &task)
{
if (&task == this) return *this;
TTask::operator=(task);
fESD = task.fESD;
fAOD = task.fAOD;
fPWG2AODTracks = task.fPWG2AODTracks;
return *this;
}
void AliAnalysisTaskPWG2AODUpdate::UserCreateOutputObjects()
{
fAOD = AODEvent();
fPWG2AODTracks = new TClonesArray("AliPWG2AODTrack", 0);
const char *name = "pwg2aodtracks";
fPWG2AODTracks->SetName(name);
AddAODBranch("TClonesArray", &fPWG2AODTracks);
}
void AliAnalysisTaskPWG2AODUpdate::UserExec(Option_t *)
{
fESD = dynamic_cast<AliESDEvent *> (InputEvent());
if (!fESD) { printf ("No input ESD !!! Not adding PWG2 information\n"); }
fAOD = AODEvent();
if (!fAOD) { printf ("No output AOD !!! Not adding PWG2 information\n"); }
if ((!fESD) || (!fAOD)) return;
Double_t pos[3];
Double_t p[3];
Double_t tpcentrancepoint[3];
Double_t tpcexitpoint[3];
TBits sharemap;
TBits clustermap;
Int_t pTracks = 0;
for (Int_t i = 0; i < 3; i++) { tpcentrancepoint[i] = 0.; tpcexitpoint[i] = 0; }
const AliESDVertex *vtx = fESD->GetPrimaryVertex();
vtx->GetXYZ(pos);
Int_t nTracks = fAOD->GetNumberOfTracks();
printf("NUMBER OF AOD TRACKS %5d\n", nTracks);
fPWG2AODTracks->Delete();
fPWG2AODTracks->Expand(nTracks);
TClonesArray &tPWG2AODTracks = *fPWG2AODTracks;
for (Int_t nTrack = 0; nTrack < nTracks; ++nTrack) {
AliAODTrack *aodTrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(nTrack));
if(!aodTrack) AliFatal("Not a standard AOD");
Short_t trackId = aodTrack->GetID();
AliESDtrack *esdTrack = fESD->GetTrack(trackId);
esdTrack->GetPxPyPz(p);
if (TMath::Abs(p[0] - aodTrack->Px())>0.000000001) {
printf("Got different momenta !!! %f %f\n", p[0], aodTrack->Px());
}
sharemap = esdTrack->GetTPCSharedMap();
clustermap = esdTrack->GetTPCClusterMap();
esdTrack->GetInnerXYZ(tpcentrancepoint);
tpcentrancepoint[2] -= pos[2];
esdTrack->GetOuterXYZ(tpcexitpoint);
tpcexitpoint[2] -= pos[2];
new (tPWG2AODTracks[pTracks++]) AliPWG2AODTrack(tpcentrancepoint,
tpcexitpoint,
sharemap,
clustermap,
aodTrack);
}
printf("PWG2=%d\n", fPWG2AODTracks->GetEntries());
return;
}
AliAnalysisTaskPWG2AODUpdate.cxx:1 AliAnalysisTaskPWG2AODUpdate.cxx:2 AliAnalysisTaskPWG2AODUpdate.cxx:3 AliAnalysisTaskPWG2AODUpdate.cxx:4 AliAnalysisTaskPWG2AODUpdate.cxx:5 AliAnalysisTaskPWG2AODUpdate.cxx:6 AliAnalysisTaskPWG2AODUpdate.cxx:7 AliAnalysisTaskPWG2AODUpdate.cxx:8 AliAnalysisTaskPWG2AODUpdate.cxx:9 AliAnalysisTaskPWG2AODUpdate.cxx:10 AliAnalysisTaskPWG2AODUpdate.cxx:11 AliAnalysisTaskPWG2AODUpdate.cxx:12 AliAnalysisTaskPWG2AODUpdate.cxx:13 AliAnalysisTaskPWG2AODUpdate.cxx:14 AliAnalysisTaskPWG2AODUpdate.cxx:15 AliAnalysisTaskPWG2AODUpdate.cxx:16 AliAnalysisTaskPWG2AODUpdate.cxx:17 AliAnalysisTaskPWG2AODUpdate.cxx:18 AliAnalysisTaskPWG2AODUpdate.cxx:19 AliAnalysisTaskPWG2AODUpdate.cxx:20 AliAnalysisTaskPWG2AODUpdate.cxx:21 AliAnalysisTaskPWG2AODUpdate.cxx:22 AliAnalysisTaskPWG2AODUpdate.cxx:23 AliAnalysisTaskPWG2AODUpdate.cxx:24 AliAnalysisTaskPWG2AODUpdate.cxx:25 AliAnalysisTaskPWG2AODUpdate.cxx:26 AliAnalysisTaskPWG2AODUpdate.cxx:27 AliAnalysisTaskPWG2AODUpdate.cxx:28 AliAnalysisTaskPWG2AODUpdate.cxx:29 AliAnalysisTaskPWG2AODUpdate.cxx:30 AliAnalysisTaskPWG2AODUpdate.cxx:31 AliAnalysisTaskPWG2AODUpdate.cxx:32 AliAnalysisTaskPWG2AODUpdate.cxx:33 AliAnalysisTaskPWG2AODUpdate.cxx:34 AliAnalysisTaskPWG2AODUpdate.cxx:35 AliAnalysisTaskPWG2AODUpdate.cxx:36 AliAnalysisTaskPWG2AODUpdate.cxx:37 AliAnalysisTaskPWG2AODUpdate.cxx:38 AliAnalysisTaskPWG2AODUpdate.cxx:39 AliAnalysisTaskPWG2AODUpdate.cxx:40 AliAnalysisTaskPWG2AODUpdate.cxx:41 AliAnalysisTaskPWG2AODUpdate.cxx:42 AliAnalysisTaskPWG2AODUpdate.cxx:43 AliAnalysisTaskPWG2AODUpdate.cxx:44 AliAnalysisTaskPWG2AODUpdate.cxx:45 AliAnalysisTaskPWG2AODUpdate.cxx:46 AliAnalysisTaskPWG2AODUpdate.cxx:47 AliAnalysisTaskPWG2AODUpdate.cxx:48 AliAnalysisTaskPWG2AODUpdate.cxx:49 AliAnalysisTaskPWG2AODUpdate.cxx:50 AliAnalysisTaskPWG2AODUpdate.cxx:51 AliAnalysisTaskPWG2AODUpdate.cxx:52 AliAnalysisTaskPWG2AODUpdate.cxx:53 AliAnalysisTaskPWG2AODUpdate.cxx:54 AliAnalysisTaskPWG2AODUpdate.cxx:55 AliAnalysisTaskPWG2AODUpdate.cxx:56 AliAnalysisTaskPWG2AODUpdate.cxx:57 AliAnalysisTaskPWG2AODUpdate.cxx:58 AliAnalysisTaskPWG2AODUpdate.cxx:59 AliAnalysisTaskPWG2AODUpdate.cxx:60 AliAnalysisTaskPWG2AODUpdate.cxx:61 AliAnalysisTaskPWG2AODUpdate.cxx:62 AliAnalysisTaskPWG2AODUpdate.cxx:63 AliAnalysisTaskPWG2AODUpdate.cxx:64 AliAnalysisTaskPWG2AODUpdate.cxx:65 AliAnalysisTaskPWG2AODUpdate.cxx:66 AliAnalysisTaskPWG2AODUpdate.cxx:67 AliAnalysisTaskPWG2AODUpdate.cxx:68 AliAnalysisTaskPWG2AODUpdate.cxx:69 AliAnalysisTaskPWG2AODUpdate.cxx:70 AliAnalysisTaskPWG2AODUpdate.cxx:71 AliAnalysisTaskPWG2AODUpdate.cxx:72 AliAnalysisTaskPWG2AODUpdate.cxx:73 AliAnalysisTaskPWG2AODUpdate.cxx:74 AliAnalysisTaskPWG2AODUpdate.cxx:75 AliAnalysisTaskPWG2AODUpdate.cxx:76 AliAnalysisTaskPWG2AODUpdate.cxx:77 AliAnalysisTaskPWG2AODUpdate.cxx:78 AliAnalysisTaskPWG2AODUpdate.cxx:79 AliAnalysisTaskPWG2AODUpdate.cxx:80 AliAnalysisTaskPWG2AODUpdate.cxx:81 AliAnalysisTaskPWG2AODUpdate.cxx:82 AliAnalysisTaskPWG2AODUpdate.cxx:83 AliAnalysisTaskPWG2AODUpdate.cxx:84 AliAnalysisTaskPWG2AODUpdate.cxx:85 AliAnalysisTaskPWG2AODUpdate.cxx:86 AliAnalysisTaskPWG2AODUpdate.cxx:87 AliAnalysisTaskPWG2AODUpdate.cxx:88 AliAnalysisTaskPWG2AODUpdate.cxx:89 AliAnalysisTaskPWG2AODUpdate.cxx:90 AliAnalysisTaskPWG2AODUpdate.cxx:91 AliAnalysisTaskPWG2AODUpdate.cxx:92 AliAnalysisTaskPWG2AODUpdate.cxx:93 AliAnalysisTaskPWG2AODUpdate.cxx:94 AliAnalysisTaskPWG2AODUpdate.cxx:95 AliAnalysisTaskPWG2AODUpdate.cxx:96 AliAnalysisTaskPWG2AODUpdate.cxx:97 AliAnalysisTaskPWG2AODUpdate.cxx:98 AliAnalysisTaskPWG2AODUpdate.cxx:99 AliAnalysisTaskPWG2AODUpdate.cxx:100 AliAnalysisTaskPWG2AODUpdate.cxx:101 AliAnalysisTaskPWG2AODUpdate.cxx:102 AliAnalysisTaskPWG2AODUpdate.cxx:103 AliAnalysisTaskPWG2AODUpdate.cxx:104 AliAnalysisTaskPWG2AODUpdate.cxx:105 AliAnalysisTaskPWG2AODUpdate.cxx:106 AliAnalysisTaskPWG2AODUpdate.cxx:107 AliAnalysisTaskPWG2AODUpdate.cxx:108 AliAnalysisTaskPWG2AODUpdate.cxx:109 AliAnalysisTaskPWG2AODUpdate.cxx:110 AliAnalysisTaskPWG2AODUpdate.cxx:111 AliAnalysisTaskPWG2AODUpdate.cxx:112 AliAnalysisTaskPWG2AODUpdate.cxx:113 AliAnalysisTaskPWG2AODUpdate.cxx:114 AliAnalysisTaskPWG2AODUpdate.cxx:115 AliAnalysisTaskPWG2AODUpdate.cxx:116 AliAnalysisTaskPWG2AODUpdate.cxx:117 AliAnalysisTaskPWG2AODUpdate.cxx:118 AliAnalysisTaskPWG2AODUpdate.cxx:119 AliAnalysisTaskPWG2AODUpdate.cxx:120 AliAnalysisTaskPWG2AODUpdate.cxx:121 AliAnalysisTaskPWG2AODUpdate.cxx:122 AliAnalysisTaskPWG2AODUpdate.cxx:123 AliAnalysisTaskPWG2AODUpdate.cxx:124 AliAnalysisTaskPWG2AODUpdate.cxx:125 AliAnalysisTaskPWG2AODUpdate.cxx:126 AliAnalysisTaskPWG2AODUpdate.cxx:127 AliAnalysisTaskPWG2AODUpdate.cxx:128 AliAnalysisTaskPWG2AODUpdate.cxx:129 AliAnalysisTaskPWG2AODUpdate.cxx:130 AliAnalysisTaskPWG2AODUpdate.cxx:131 AliAnalysisTaskPWG2AODUpdate.cxx:132 AliAnalysisTaskPWG2AODUpdate.cxx:133 AliAnalysisTaskPWG2AODUpdate.cxx:134 AliAnalysisTaskPWG2AODUpdate.cxx:135 AliAnalysisTaskPWG2AODUpdate.cxx:136 AliAnalysisTaskPWG2AODUpdate.cxx:137 AliAnalysisTaskPWG2AODUpdate.cxx:138 AliAnalysisTaskPWG2AODUpdate.cxx:139 AliAnalysisTaskPWG2AODUpdate.cxx:140 AliAnalysisTaskPWG2AODUpdate.cxx:141 AliAnalysisTaskPWG2AODUpdate.cxx:142 AliAnalysisTaskPWG2AODUpdate.cxx:143 AliAnalysisTaskPWG2AODUpdate.cxx:144 AliAnalysisTaskPWG2AODUpdate.cxx:145 AliAnalysisTaskPWG2AODUpdate.cxx:146 AliAnalysisTaskPWG2AODUpdate.cxx:147 AliAnalysisTaskPWG2AODUpdate.cxx:148 AliAnalysisTaskPWG2AODUpdate.cxx:149 AliAnalysisTaskPWG2AODUpdate.cxx:150 AliAnalysisTaskPWG2AODUpdate.cxx:151 AliAnalysisTaskPWG2AODUpdate.cxx:152 AliAnalysisTaskPWG2AODUpdate.cxx:153 AliAnalysisTaskPWG2AODUpdate.cxx:154 AliAnalysisTaskPWG2AODUpdate.cxx:155