#include "AliESDEvent.h"
#include "AliESDv0.h"
#include "AliLightV0vertexer.h"
ClassImp(AliLightV0vertexer)
Double_t AliLightV0vertexer::fgChi2max=33.;
Double_t AliLightV0vertexer::fgDNmin=0.05;
Double_t AliLightV0vertexer::fgDPmin=0.05;
Double_t AliLightV0vertexer::fgDCAmax=1.5;
Double_t AliLightV0vertexer::fgCPAmin=0.9;
Double_t AliLightV0vertexer::fgRmin=0.2;
Double_t AliLightV0vertexer::fgRmax=200.;
Double_t AliLightV0vertexer::fgMaxEta=0.8;
Double_t AliLightV0vertexer::fgMinClusters=70;
Int_t AliLightV0vertexer::Tracks2V0vertices(AliESDEvent *event) {
const AliESDVertex *vtxT3D=event->GetPrimaryVertex();
Double_t xPrimaryVertex=vtxT3D->GetX();
Double_t yPrimaryVertex=vtxT3D->GetY();
Double_t zPrimaryVertex=vtxT3D->GetZ();
Int_t nentr=event->GetNumberOfTracks();
Double_t b=event->GetMagneticField();
if (nentr<2) return 0;
TArrayI neg(nentr);
TArrayI pos(nentr);
Int_t nneg=0, npos=0, nvtx=0;
Int_t i;
for (i=0; i<nentr; i++) {
AliESDtrack *esdTrack=event->GetTrack(i);
ULong_t status=esdTrack->GetStatus();
if ((status&AliESDtrack::kTPCrefit)==0) continue;
if (esdTrack->GetTPCNcls() < fMinClusters ) continue;
Double_t d=esdTrack->GetD(xPrimaryVertex,yPrimaryVertex,b);
if (TMath::Abs(d)<fDPmin) continue;
if (TMath::Abs(d)>fRmax) continue;
if (esdTrack->GetSign() < 0.) neg[nneg++]=i;
else pos[npos++]=i;
}
for (i=0; i<nneg; i++) {
Int_t nidx=neg[i];
AliESDtrack *ntrk=event->GetTrack(nidx);
for (Int_t k=0; k<npos; k++) {
Int_t pidx=pos[k];
AliESDtrack *ptrk=event->GetTrack(pidx);
if (ptrk->GetTPCNcls() < fMinClusters ) continue;
if (TMath::Abs(ntrk->GetD(xPrimaryVertex,yPrimaryVertex,b))<fDNmin)
if (TMath::Abs(ptrk->GetD(xPrimaryVertex,yPrimaryVertex,b))<fDNmin) continue;
Double_t xn, xp, dca=ntrk->GetDCA(ptrk,b,xn,xp);
if (dca > fDCAmax) continue;
if ((xn+xp) > 2*fRmax) continue;
if ((xn+xp) < 2*fRmin) continue;
AliExternalTrackParam nt(*ntrk), pt(*ptrk);
Bool_t corrected=kFALSE;
if ((nt.GetX() > 3.) && (xn < 3.)) {
corrected=kTRUE;
}
if ((pt.GetX() > 3.) && (xp < 3.)) {
corrected=kTRUE;
}
if (corrected) {
dca=nt.GetDCA(&pt,b,xn,xp);
if (dca > fDCAmax) continue;
if ((xn+xp) > 2*fRmax) continue;
if ((xn+xp) < 2*fRmin) continue;
}
nt.PropagateTo(xn,b); pt.PropagateTo(xp,b);
if (TMath::Abs(nt.Eta())>fMaxEta) continue;
if (TMath::Abs(pt.Eta())>fMaxEta) continue;
AliESDv0 vertex(nt,nidx,pt,pidx);
if (vertex.GetChi2V0() > fChi2max) continue;
Double_t x=vertex.Xv(), y=vertex.Yv();
Double_t r2=x*x + y*y;
if (r2 < fRmin*fRmin) continue;
if (r2 > fRmax*fRmax) continue;
Float_t cpa=vertex.GetV0CosineOfPointingAngle(xPrimaryVertex,yPrimaryVertex,zPrimaryVertex);
if (cpa < fCPAmin) continue;
vertex.SetDcaV0Daughters(dca);
vertex.SetV0CosineOfPointingAngle(cpa);
vertex.ChangeMassHypothesis(kK0Short);
event->AddV0(&vertex);
nvtx++;
}
}
Info("Tracks2V0vertices","Number of reconstructed V0 vertices: %d",nvtx);
return nvtx;
}
AliLightV0vertexer.cxx:10 AliLightV0vertexer.cxx:11 AliLightV0vertexer.cxx:12 AliLightV0vertexer.cxx:13 AliLightV0vertexer.cxx:14 AliLightV0vertexer.cxx:15 AliLightV0vertexer.cxx:16 AliLightV0vertexer.cxx:17 AliLightV0vertexer.cxx:18 AliLightV0vertexer.cxx:19 AliLightV0vertexer.cxx:20 AliLightV0vertexer.cxx:21 AliLightV0vertexer.cxx:22 AliLightV0vertexer.cxx:23 AliLightV0vertexer.cxx:24 AliLightV0vertexer.cxx:25 AliLightV0vertexer.cxx:26 AliLightV0vertexer.cxx:27 AliLightV0vertexer.cxx:28 AliLightV0vertexer.cxx:29 AliLightV0vertexer.cxx:30 AliLightV0vertexer.cxx:31 AliLightV0vertexer.cxx:32 AliLightV0vertexer.cxx:33 AliLightV0vertexer.cxx:34 AliLightV0vertexer.cxx:35 AliLightV0vertexer.cxx:36 AliLightV0vertexer.cxx:37 AliLightV0vertexer.cxx:38 AliLightV0vertexer.cxx:39 AliLightV0vertexer.cxx:40 AliLightV0vertexer.cxx:41 AliLightV0vertexer.cxx:42 AliLightV0vertexer.cxx:43 AliLightV0vertexer.cxx:44 AliLightV0vertexer.cxx:45 AliLightV0vertexer.cxx:46 AliLightV0vertexer.cxx:47 AliLightV0vertexer.cxx:48 AliLightV0vertexer.cxx:49 AliLightV0vertexer.cxx:50 AliLightV0vertexer.cxx:51 AliLightV0vertexer.cxx:52 AliLightV0vertexer.cxx:53 AliLightV0vertexer.cxx:54 AliLightV0vertexer.cxx:55 AliLightV0vertexer.cxx:56 AliLightV0vertexer.cxx:57 AliLightV0vertexer.cxx:58 AliLightV0vertexer.cxx:59 AliLightV0vertexer.cxx:60 AliLightV0vertexer.cxx:61 AliLightV0vertexer.cxx:62 AliLightV0vertexer.cxx:63 AliLightV0vertexer.cxx:64 AliLightV0vertexer.cxx:65 AliLightV0vertexer.cxx:66 AliLightV0vertexer.cxx:67 AliLightV0vertexer.cxx:68 AliLightV0vertexer.cxx:69 AliLightV0vertexer.cxx:70 AliLightV0vertexer.cxx:71 AliLightV0vertexer.cxx:72 AliLightV0vertexer.cxx:73 AliLightV0vertexer.cxx:74 AliLightV0vertexer.cxx:75 AliLightV0vertexer.cxx:76 AliLightV0vertexer.cxx:77 AliLightV0vertexer.cxx:78 AliLightV0vertexer.cxx:79 AliLightV0vertexer.cxx:80 AliLightV0vertexer.cxx:81 AliLightV0vertexer.cxx:82 AliLightV0vertexer.cxx:83 AliLightV0vertexer.cxx:84 AliLightV0vertexer.cxx:85 AliLightV0vertexer.cxx:86 AliLightV0vertexer.cxx:87 AliLightV0vertexer.cxx:88 AliLightV0vertexer.cxx:89 AliLightV0vertexer.cxx:90 AliLightV0vertexer.cxx:91 AliLightV0vertexer.cxx:92 AliLightV0vertexer.cxx:93 AliLightV0vertexer.cxx:94 AliLightV0vertexer.cxx:95 AliLightV0vertexer.cxx:96 AliLightV0vertexer.cxx:97 AliLightV0vertexer.cxx:98 AliLightV0vertexer.cxx:99 AliLightV0vertexer.cxx:100 AliLightV0vertexer.cxx:101 AliLightV0vertexer.cxx:102 AliLightV0vertexer.cxx:103 AliLightV0vertexer.cxx:104 AliLightV0vertexer.cxx:105 AliLightV0vertexer.cxx:106 AliLightV0vertexer.cxx:107 AliLightV0vertexer.cxx:108 AliLightV0vertexer.cxx:109 AliLightV0vertexer.cxx:110 AliLightV0vertexer.cxx:111 AliLightV0vertexer.cxx:112 AliLightV0vertexer.cxx:113 AliLightV0vertexer.cxx:114 AliLightV0vertexer.cxx:115 AliLightV0vertexer.cxx:116 AliLightV0vertexer.cxx:117 AliLightV0vertexer.cxx:118 AliLightV0vertexer.cxx:119 AliLightV0vertexer.cxx:120 AliLightV0vertexer.cxx:121 AliLightV0vertexer.cxx:122 AliLightV0vertexer.cxx:123 AliLightV0vertexer.cxx:124 AliLightV0vertexer.cxx:125 AliLightV0vertexer.cxx:126 AliLightV0vertexer.cxx:127 AliLightV0vertexer.cxx:128 AliLightV0vertexer.cxx:129 AliLightV0vertexer.cxx:130 AliLightV0vertexer.cxx:131 AliLightV0vertexer.cxx:132 AliLightV0vertexer.cxx:133 AliLightV0vertexer.cxx:134 AliLightV0vertexer.cxx:135 AliLightV0vertexer.cxx:136 AliLightV0vertexer.cxx:137 AliLightV0vertexer.cxx:138 AliLightV0vertexer.cxx:139 AliLightV0vertexer.cxx:140 AliLightV0vertexer.cxx:141 AliLightV0vertexer.cxx:142 AliLightV0vertexer.cxx:143 AliLightV0vertexer.cxx:144 AliLightV0vertexer.cxx:145 AliLightV0vertexer.cxx:146 AliLightV0vertexer.cxx:147 AliLightV0vertexer.cxx:148 AliLightV0vertexer.cxx:149 AliLightV0vertexer.cxx:150 AliLightV0vertexer.cxx:151 AliLightV0vertexer.cxx:152 AliLightV0vertexer.cxx:153 AliLightV0vertexer.cxx:154 AliLightV0vertexer.cxx:155 AliLightV0vertexer.cxx:156 AliLightV0vertexer.cxx:157 AliLightV0vertexer.cxx:158 AliLightV0vertexer.cxx:159 AliLightV0vertexer.cxx:160 AliLightV0vertexer.cxx:161 AliLightV0vertexer.cxx:162 AliLightV0vertexer.cxx:163 AliLightV0vertexer.cxx:164 AliLightV0vertexer.cxx:165 AliLightV0vertexer.cxx:166 AliLightV0vertexer.cxx:167 AliLightV0vertexer.cxx:168 AliLightV0vertexer.cxx:169 AliLightV0vertexer.cxx:170