#include <TChain.h>
#include <TTree.h>
#include <TNtuple.h>
#include <TBranch.h>
#include <TClonesArray.h>
#include <TObjArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TNtuple.h>
#include <TCanvas.h>
#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliESDtrack.h"
#include "AliExternalTrackParam.h"
#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliESDfriend.h"
#include "AliVertexerTracks.h"
#include "AliESDInputHandler.h"
#include "AliAnalysisTaskIPInfo.h"
#include "AliIntSpotEstimator.h"
#include "AliMultiplicity.h"
ClassImp(AliAnalysisTaskIPInfo)
const Char_t* AliAnalysisTaskIPInfo::fEstNames[kNEst] = {"ITSTPC","TPC","SPD"};
AliAnalysisTaskIPInfo::AliAnalysisTaskIPInfo(const char *name)
: AliAnalysisTask(name, "IP analysis"),
fESD(0),fESDfriend(0),fOutput(0),fTracks(50)
{
DefineInput(0, TChain::Class());
DefineOutput(0, TList::Class());
for (int i=0;i<kNEst;i++) fIPEst[i] = 0;
}
AliAnalysisTaskIPInfo::~AliAnalysisTaskIPInfo()
{
if (fOutput) {
delete fOutput;
fOutput = 0;
}
}
void AliAnalysisTaskIPInfo::SetIPCenIni(Int_t estID, Double_t x,Double_t y,Double_t z)
{
if (estID<0 || estID>= kNEst) return;
fIPCenIni[estID][0] = x;
fIPCenIni[estID][1] = y;
fIPCenIni[estID][2] = z;
}
void AliAnalysisTaskIPInfo::SetOptions(Int_t estID, Bool_t recoVtx,
Double_t outcut,Int_t ntrIP,Int_t nPhiBins,Int_t nestb,
Double_t estmin,Double_t estmax,
Int_t ntrBins,Int_t ntMn,Int_t ntMx,
Int_t nPBins,Double_t pmn,Double_t pmx,Bool_t fillNt)
{
if (estID<0 || estID>= kNEst) return;
fNTrMinIP[estID] = ntrIP;
fRecoVtx[estID] = recoVtx;
fNPhiBins[estID] = nPhiBins;
fNEstb[estID] = nestb;
fNTrBins[estID] = ntrBins;
fNPBins[estID] = nPBins;
fNTrMin[estID] = ntMn;
fNTrMax[estID] = ntMx;
fOutCut[estID] = outcut;
fEstMin[estID] = estmin;
fEstMax[estID] = estmax;
fPMin[estID] = pmn;
fPMax[estID] = pmx;
fFillNt[estID] = fillNt;
}
void AliAnalysisTaskIPInfo::ConnectInputData(Option_t *)
{
AliInfo("HERE");
TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
if (!tree) {
Printf("ERROR: Could not read chain from input slot 0");
}
else {
tree->SetBranchAddress("ESDfriend.",&fESDfriend);
AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if (!esdH) Printf("ERROR: Could not get ESDInputHandler");
else fESD = esdH->GetEvent();
}
return;
}
void AliAnalysisTaskIPInfo::CreateOutputObjects()
{
fOutput = new TList;
fOutput->SetOwner();
Double_t err[3]={0.0400,0.0400,7.5};
for (int i=0;i<kNEst;i++) if (fNEstb[i]>1) {
TString nm = GetName();
TString nmes = fEstNames[i];
nm += nmes;
fIPEst[i] = new AliIntSpotEstimator(nm.Data(),fOutCut[i],fNTrMinIP[i],fNPhiBins[i],
fNEstb[i],fEstMin[i],fEstMax[i],
fNTrBins[i],fNTrMin[i],fNTrMax[i],
fNPBins[i],fPMin[i],fPMax[i],fFillNt[i]);
AliESDVertex *initVertex = new AliESDVertex(fIPCenIni[i],err);
fIPEst[i]->GetVertexer()->SetVtxStart(initVertex);
delete initVertex;
fIPEst[i]->GetVertexer()->SetConstraintOff();
fIPEst[i]->GetVertexer()->SetMinClusters(2);
fIPEst[i]->SetIPCenIni(fIPCenIni[i]);
if (nmes == "TPC") fIPEst[i]->GetVertexer()->SetTPCMode();
else fIPEst[i]->GetVertexer()->SetITSMode();
fOutput->Add(fIPEst[i]);
if (fIPEst[i]->GetNtuple()) fOutput->Add(fIPEst[i]->GetNtuple());
}
return;
}
void AliAnalysisTaskIPInfo::Exec(Option_t *)
{
static TClonesArray tracks("AliExternalTrackParam",50);
if (!fESD) {
Printf("ERROR: fESD not available");
return;
}
fESD->SetESDfriend(fESDfriend);
const AliESDVertex *vtx;
UShort_t *trackID;
Int_t ntracks;
for (int ie=0;ie<kNEst;ie++) {
if (!fIPEst[ie]) continue;
if (ie==kTPC) {
fIPEst[kTPC]->GetVertexer()->SetFieldkG( fESD->GetMagneticField() );
vtx = fRecoVtx[kTPC] ? fIPEst[kTPC]->GetVertexer()->FindPrimaryVertex(fESD) : fESD->GetPrimaryVertexTPC();
if (vtx) {
ntracks = vtx->GetNIndices();
trackID = (UShort_t*)vtx->GetIndices();
for (int i=ntracks;i--;) fTracks.Add((TObject*)fESD->GetTrack(trackID[i])->GetTPCInnerParam());
fIPEst[kTPC]->ProcessEvent(&fTracks);
fTracks.Clear();
}
}
else if (ie==kITSTPC) {
fIPEst[kITSTPC]->GetVertexer()->SetFieldkG( fESD->GetMagneticField() );
vtx = fRecoVtx[kITSTPC] ? fIPEst[kITSTPC]->GetVertexer()->FindPrimaryVertex(fESD) : fESD->GetPrimaryVertex();
if (vtx) {
ntracks = vtx->GetNIndices();
trackID = (UShort_t*)vtx->GetIndices();
for (int i=ntracks;i--;) fTracks.Add((TObject*)fESD->GetTrack(trackID[i]));
fIPEst[kITSTPC]->ProcessEvent(&fTracks);
fTracks.Clear();
}
}
else if (ie==kSPD) {
fIPEst[kSPD]->GetVertexer()->SetFieldkG( fESD->GetMagneticField() );
ntracks = CreateSPDTracklets(tracks);
for (int i=ntracks;i--;) fTracks.Add((TObject*)tracks[i]);
fIPEst[kSPD]->ProcessEvent(&fTracks);
fTracks.Clear();
}
}
PostData(0, fOutput);
return;
}
Int_t AliAnalysisTaskIPInfo::CreateSPDTracklets(TClonesArray& tracks)
{
double cv[21] = {
25e-4,
0 , 25e-4,
0 , 0, 40e-2,
0 , 0, 0, 1e-2,
0 , 0, 0, 0, 1e-2,
0 , 0, 0, 0, 0, 1e-2
};
double xyzt[3],pxyz[3];
int nSPDtracks = 0;
tracks.Delete();
const AliMultiplicity *mult = fESD->GetMultiplicity();
const AliESDVertex *spdVtx = fESD->GetPrimaryVertexSPD();
int nTracklets = 0;
if (mult && spdVtx && (nTracklets=mult->GetNumberOfTracklets())>2 ) {
const Double_t kRLay1=3.9, kRLay2=7.6;
double xv = spdVtx->GetX();
double yv = spdVtx->GetY();
double zv = spdVtx->GetZ();
for (int i=0;i<nTracklets;i++) {
double phi1 = mult->GetPhi(i);
double tht1 = mult->GetTheta(i);
double phi2 = phi1 - mult->GetDeltaPhi(i);
double tht2 = tht1 - mult->GetDeltaTheta(i);
double cs = TMath::Cos(phi1);
double sn = TMath::Sin(tht1);
double det = xv*sn+yv*sn;
det = det*det + kRLay1*kRLay1;
double t = -(xv*cs+yv*sn) + TMath::Sqrt(det);
double x1 = cs*t;
double y1 = sn*t;
double z1 = zv + TMath::Sqrt(x1*x1+y1*y1)/TMath::Tan(tht1);
x1 += xv;
y1 += yv;
cs = TMath::Cos(phi2);
sn = TMath::Sin(tht2);
det = xv*sn+yv*sn;
det = det*det + kRLay2*kRLay2;
t = -(xv*cs+yv*sn) + TMath::Sqrt(det);
double dx = cs*t;
double dy = sn*t;
double dz = zv + TMath::Sqrt(dx*dx+dy*dy)/TMath::Tan(tht2);
dx += xv-x1;
dy += yv-y1;
dz += -z1;
double dr = TMath::Sqrt(dx*dx+dy*dy+dz*dz);
pxyz[0] = dx/dr;
pxyz[1] = dy/dr;
pxyz[2] = dz/dr;
t = (xv-x1)*pxyz[0] + (yv-y1)*pxyz[1] + (zv-z1)*pxyz[2];
xyzt[0] = x1 + t*pxyz[0];
xyzt[1] = y1 + t*pxyz[1];
xyzt[2] = z1 + t*pxyz[2];
new(tracks[nSPDtracks++]) AliExternalTrackParam(xyzt,pxyz,cv,0);
}
}
return nSPDtracks;
}
void AliAnalysisTaskIPInfo::Terminate(Option_t *)
{
fOutput = dynamic_cast<TList*> (GetOutputData(0));
if (!fOutput) {
Printf("ERROR: fOutput not available");
return;
}
return;
}
AliAnalysisTaskIPInfo.cxx:1 AliAnalysisTaskIPInfo.cxx:2 AliAnalysisTaskIPInfo.cxx:3 AliAnalysisTaskIPInfo.cxx:4 AliAnalysisTaskIPInfo.cxx:5 AliAnalysisTaskIPInfo.cxx:6 AliAnalysisTaskIPInfo.cxx:7 AliAnalysisTaskIPInfo.cxx:8 AliAnalysisTaskIPInfo.cxx:9 AliAnalysisTaskIPInfo.cxx:10 AliAnalysisTaskIPInfo.cxx:11 AliAnalysisTaskIPInfo.cxx:12 AliAnalysisTaskIPInfo.cxx:13 AliAnalysisTaskIPInfo.cxx:14 AliAnalysisTaskIPInfo.cxx:15 AliAnalysisTaskIPInfo.cxx:16 AliAnalysisTaskIPInfo.cxx:17 AliAnalysisTaskIPInfo.cxx:18 AliAnalysisTaskIPInfo.cxx:19 AliAnalysisTaskIPInfo.cxx:20 AliAnalysisTaskIPInfo.cxx:21 AliAnalysisTaskIPInfo.cxx:22 AliAnalysisTaskIPInfo.cxx:23 AliAnalysisTaskIPInfo.cxx:24 AliAnalysisTaskIPInfo.cxx:25 AliAnalysisTaskIPInfo.cxx:26 AliAnalysisTaskIPInfo.cxx:27 AliAnalysisTaskIPInfo.cxx:28 AliAnalysisTaskIPInfo.cxx:29 AliAnalysisTaskIPInfo.cxx:30 AliAnalysisTaskIPInfo.cxx:31 AliAnalysisTaskIPInfo.cxx:32 AliAnalysisTaskIPInfo.cxx:33 AliAnalysisTaskIPInfo.cxx:34 AliAnalysisTaskIPInfo.cxx:35 AliAnalysisTaskIPInfo.cxx:36 AliAnalysisTaskIPInfo.cxx:37 AliAnalysisTaskIPInfo.cxx:38 AliAnalysisTaskIPInfo.cxx:39 AliAnalysisTaskIPInfo.cxx:40 AliAnalysisTaskIPInfo.cxx:41 AliAnalysisTaskIPInfo.cxx:42 AliAnalysisTaskIPInfo.cxx:43 AliAnalysisTaskIPInfo.cxx:44 AliAnalysisTaskIPInfo.cxx:45 AliAnalysisTaskIPInfo.cxx:46 AliAnalysisTaskIPInfo.cxx:47 AliAnalysisTaskIPInfo.cxx:48 AliAnalysisTaskIPInfo.cxx:49 AliAnalysisTaskIPInfo.cxx:50 AliAnalysisTaskIPInfo.cxx:51 AliAnalysisTaskIPInfo.cxx:52 AliAnalysisTaskIPInfo.cxx:53 AliAnalysisTaskIPInfo.cxx:54 AliAnalysisTaskIPInfo.cxx:55 AliAnalysisTaskIPInfo.cxx:56 AliAnalysisTaskIPInfo.cxx:57 AliAnalysisTaskIPInfo.cxx:58 AliAnalysisTaskIPInfo.cxx:59 AliAnalysisTaskIPInfo.cxx:60 AliAnalysisTaskIPInfo.cxx:61 AliAnalysisTaskIPInfo.cxx:62 AliAnalysisTaskIPInfo.cxx:63 AliAnalysisTaskIPInfo.cxx:64 AliAnalysisTaskIPInfo.cxx:65 AliAnalysisTaskIPInfo.cxx:66 AliAnalysisTaskIPInfo.cxx:67 AliAnalysisTaskIPInfo.cxx:68 AliAnalysisTaskIPInfo.cxx:69 AliAnalysisTaskIPInfo.cxx:70 AliAnalysisTaskIPInfo.cxx:71 AliAnalysisTaskIPInfo.cxx:72 AliAnalysisTaskIPInfo.cxx:73 AliAnalysisTaskIPInfo.cxx:74 AliAnalysisTaskIPInfo.cxx:75 AliAnalysisTaskIPInfo.cxx:76 AliAnalysisTaskIPInfo.cxx:77 AliAnalysisTaskIPInfo.cxx:78 AliAnalysisTaskIPInfo.cxx:79 AliAnalysisTaskIPInfo.cxx:80 AliAnalysisTaskIPInfo.cxx:81 AliAnalysisTaskIPInfo.cxx:82 AliAnalysisTaskIPInfo.cxx:83 AliAnalysisTaskIPInfo.cxx:84 AliAnalysisTaskIPInfo.cxx:85 AliAnalysisTaskIPInfo.cxx:86 AliAnalysisTaskIPInfo.cxx:87 AliAnalysisTaskIPInfo.cxx:88 AliAnalysisTaskIPInfo.cxx:89 AliAnalysisTaskIPInfo.cxx:90 AliAnalysisTaskIPInfo.cxx:91 AliAnalysisTaskIPInfo.cxx:92 AliAnalysisTaskIPInfo.cxx:93 AliAnalysisTaskIPInfo.cxx:94 AliAnalysisTaskIPInfo.cxx:95 AliAnalysisTaskIPInfo.cxx:96 AliAnalysisTaskIPInfo.cxx:97 AliAnalysisTaskIPInfo.cxx:98 AliAnalysisTaskIPInfo.cxx:99 AliAnalysisTaskIPInfo.cxx:100 AliAnalysisTaskIPInfo.cxx:101 AliAnalysisTaskIPInfo.cxx:102 AliAnalysisTaskIPInfo.cxx:103 AliAnalysisTaskIPInfo.cxx:104 AliAnalysisTaskIPInfo.cxx:105 AliAnalysisTaskIPInfo.cxx:106 AliAnalysisTaskIPInfo.cxx:107 AliAnalysisTaskIPInfo.cxx:108 AliAnalysisTaskIPInfo.cxx:109 AliAnalysisTaskIPInfo.cxx:110 AliAnalysisTaskIPInfo.cxx:111 AliAnalysisTaskIPInfo.cxx:112 AliAnalysisTaskIPInfo.cxx:113 AliAnalysisTaskIPInfo.cxx:114 AliAnalysisTaskIPInfo.cxx:115 AliAnalysisTaskIPInfo.cxx:116 AliAnalysisTaskIPInfo.cxx:117 AliAnalysisTaskIPInfo.cxx:118 AliAnalysisTaskIPInfo.cxx:119 AliAnalysisTaskIPInfo.cxx:120 AliAnalysisTaskIPInfo.cxx:121 AliAnalysisTaskIPInfo.cxx:122 AliAnalysisTaskIPInfo.cxx:123 AliAnalysisTaskIPInfo.cxx:124 AliAnalysisTaskIPInfo.cxx:125 AliAnalysisTaskIPInfo.cxx:126 AliAnalysisTaskIPInfo.cxx:127 AliAnalysisTaskIPInfo.cxx:128 AliAnalysisTaskIPInfo.cxx:129 AliAnalysisTaskIPInfo.cxx:130 AliAnalysisTaskIPInfo.cxx:131 AliAnalysisTaskIPInfo.cxx:132 AliAnalysisTaskIPInfo.cxx:133 AliAnalysisTaskIPInfo.cxx:134 AliAnalysisTaskIPInfo.cxx:135 AliAnalysisTaskIPInfo.cxx:136 AliAnalysisTaskIPInfo.cxx:137 AliAnalysisTaskIPInfo.cxx:138 AliAnalysisTaskIPInfo.cxx:139 AliAnalysisTaskIPInfo.cxx:140 AliAnalysisTaskIPInfo.cxx:141 AliAnalysisTaskIPInfo.cxx:142 AliAnalysisTaskIPInfo.cxx:143 AliAnalysisTaskIPInfo.cxx:144 AliAnalysisTaskIPInfo.cxx:145 AliAnalysisTaskIPInfo.cxx:146 AliAnalysisTaskIPInfo.cxx:147 AliAnalysisTaskIPInfo.cxx:148 AliAnalysisTaskIPInfo.cxx:149 AliAnalysisTaskIPInfo.cxx:150 AliAnalysisTaskIPInfo.cxx:151 AliAnalysisTaskIPInfo.cxx:152 AliAnalysisTaskIPInfo.cxx:153 AliAnalysisTaskIPInfo.cxx:154 AliAnalysisTaskIPInfo.cxx:155 AliAnalysisTaskIPInfo.cxx:156 AliAnalysisTaskIPInfo.cxx:157 AliAnalysisTaskIPInfo.cxx:158 AliAnalysisTaskIPInfo.cxx:159 AliAnalysisTaskIPInfo.cxx:160 AliAnalysisTaskIPInfo.cxx:161 AliAnalysisTaskIPInfo.cxx:162 AliAnalysisTaskIPInfo.cxx:163 AliAnalysisTaskIPInfo.cxx:164 AliAnalysisTaskIPInfo.cxx:165 AliAnalysisTaskIPInfo.cxx:166 AliAnalysisTaskIPInfo.cxx:167 AliAnalysisTaskIPInfo.cxx:168 AliAnalysisTaskIPInfo.cxx:169 AliAnalysisTaskIPInfo.cxx:170 AliAnalysisTaskIPInfo.cxx:171 AliAnalysisTaskIPInfo.cxx:172 AliAnalysisTaskIPInfo.cxx:173 AliAnalysisTaskIPInfo.cxx:174 AliAnalysisTaskIPInfo.cxx:175 AliAnalysisTaskIPInfo.cxx:176 AliAnalysisTaskIPInfo.cxx:177 AliAnalysisTaskIPInfo.cxx:178 AliAnalysisTaskIPInfo.cxx:179 AliAnalysisTaskIPInfo.cxx:180 AliAnalysisTaskIPInfo.cxx:181 AliAnalysisTaskIPInfo.cxx:182 AliAnalysisTaskIPInfo.cxx:183 AliAnalysisTaskIPInfo.cxx:184 AliAnalysisTaskIPInfo.cxx:185 AliAnalysisTaskIPInfo.cxx:186 AliAnalysisTaskIPInfo.cxx:187 AliAnalysisTaskIPInfo.cxx:188 AliAnalysisTaskIPInfo.cxx:189 AliAnalysisTaskIPInfo.cxx:190 AliAnalysisTaskIPInfo.cxx:191 AliAnalysisTaskIPInfo.cxx:192 AliAnalysisTaskIPInfo.cxx:193 AliAnalysisTaskIPInfo.cxx:194 AliAnalysisTaskIPInfo.cxx:195 AliAnalysisTaskIPInfo.cxx:196 AliAnalysisTaskIPInfo.cxx:197 AliAnalysisTaskIPInfo.cxx:198 AliAnalysisTaskIPInfo.cxx:199 AliAnalysisTaskIPInfo.cxx:200 AliAnalysisTaskIPInfo.cxx:201 AliAnalysisTaskIPInfo.cxx:202 AliAnalysisTaskIPInfo.cxx:203 AliAnalysisTaskIPInfo.cxx:204 AliAnalysisTaskIPInfo.cxx:205 AliAnalysisTaskIPInfo.cxx:206 AliAnalysisTaskIPInfo.cxx:207 AliAnalysisTaskIPInfo.cxx:208 AliAnalysisTaskIPInfo.cxx:209 AliAnalysisTaskIPInfo.cxx:210 AliAnalysisTaskIPInfo.cxx:211 AliAnalysisTaskIPInfo.cxx:212 AliAnalysisTaskIPInfo.cxx:213 AliAnalysisTaskIPInfo.cxx:214 AliAnalysisTaskIPInfo.cxx:215 AliAnalysisTaskIPInfo.cxx:216 AliAnalysisTaskIPInfo.cxx:217 AliAnalysisTaskIPInfo.cxx:218 AliAnalysisTaskIPInfo.cxx:219 AliAnalysisTaskIPInfo.cxx:220 AliAnalysisTaskIPInfo.cxx:221 AliAnalysisTaskIPInfo.cxx:222 AliAnalysisTaskIPInfo.cxx:223 AliAnalysisTaskIPInfo.cxx:224 AliAnalysisTaskIPInfo.cxx:225 AliAnalysisTaskIPInfo.cxx:226 AliAnalysisTaskIPInfo.cxx:227 AliAnalysisTaskIPInfo.cxx:228 AliAnalysisTaskIPInfo.cxx:229 AliAnalysisTaskIPInfo.cxx:230 AliAnalysisTaskIPInfo.cxx:231 AliAnalysisTaskIPInfo.cxx:232 AliAnalysisTaskIPInfo.cxx:233 AliAnalysisTaskIPInfo.cxx:234 AliAnalysisTaskIPInfo.cxx:235 AliAnalysisTaskIPInfo.cxx:236 AliAnalysisTaskIPInfo.cxx:237 AliAnalysisTaskIPInfo.cxx:238 AliAnalysisTaskIPInfo.cxx:239 AliAnalysisTaskIPInfo.cxx:240 AliAnalysisTaskIPInfo.cxx:241 AliAnalysisTaskIPInfo.cxx:242 AliAnalysisTaskIPInfo.cxx:243 AliAnalysisTaskIPInfo.cxx:244 AliAnalysisTaskIPInfo.cxx:245 AliAnalysisTaskIPInfo.cxx:246 AliAnalysisTaskIPInfo.cxx:247 AliAnalysisTaskIPInfo.cxx:248 AliAnalysisTaskIPInfo.cxx:249 AliAnalysisTaskIPInfo.cxx:250 AliAnalysisTaskIPInfo.cxx:251 AliAnalysisTaskIPInfo.cxx:252 AliAnalysisTaskIPInfo.cxx:253 AliAnalysisTaskIPInfo.cxx:254 AliAnalysisTaskIPInfo.cxx:255 AliAnalysisTaskIPInfo.cxx:256 AliAnalysisTaskIPInfo.cxx:257 AliAnalysisTaskIPInfo.cxx:258 AliAnalysisTaskIPInfo.cxx:259 AliAnalysisTaskIPInfo.cxx:260 AliAnalysisTaskIPInfo.cxx:261 AliAnalysisTaskIPInfo.cxx:262 AliAnalysisTaskIPInfo.cxx:263 AliAnalysisTaskIPInfo.cxx:264 AliAnalysisTaskIPInfo.cxx:265 AliAnalysisTaskIPInfo.cxx:266 AliAnalysisTaskIPInfo.cxx:267 AliAnalysisTaskIPInfo.cxx:268 AliAnalysisTaskIPInfo.cxx:269 AliAnalysisTaskIPInfo.cxx:270 AliAnalysisTaskIPInfo.cxx:271 AliAnalysisTaskIPInfo.cxx:272 AliAnalysisTaskIPInfo.cxx:273 AliAnalysisTaskIPInfo.cxx:274 AliAnalysisTaskIPInfo.cxx:275 AliAnalysisTaskIPInfo.cxx:276 AliAnalysisTaskIPInfo.cxx:277 AliAnalysisTaskIPInfo.cxx:278 AliAnalysisTaskIPInfo.cxx:279 AliAnalysisTaskIPInfo.cxx:280 AliAnalysisTaskIPInfo.cxx:281 AliAnalysisTaskIPInfo.cxx:282 AliAnalysisTaskIPInfo.cxx:283 AliAnalysisTaskIPInfo.cxx:284 AliAnalysisTaskIPInfo.cxx:285 AliAnalysisTaskIPInfo.cxx:286 AliAnalysisTaskIPInfo.cxx:287 AliAnalysisTaskIPInfo.cxx:288 AliAnalysisTaskIPInfo.cxx:289 AliAnalysisTaskIPInfo.cxx:290 AliAnalysisTaskIPInfo.cxx:291 AliAnalysisTaskIPInfo.cxx:292 AliAnalysisTaskIPInfo.cxx:293 AliAnalysisTaskIPInfo.cxx:294 AliAnalysisTaskIPInfo.cxx:295 AliAnalysisTaskIPInfo.cxx:296 AliAnalysisTaskIPInfo.cxx:297 AliAnalysisTaskIPInfo.cxx:298 AliAnalysisTaskIPInfo.cxx:299 AliAnalysisTaskIPInfo.cxx:300 AliAnalysisTaskIPInfo.cxx:301 AliAnalysisTaskIPInfo.cxx:302 AliAnalysisTaskIPInfo.cxx:303 AliAnalysisTaskIPInfo.cxx:304