2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
4 /**************************************************************************
5 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
10 void esd_v0_init_rectrack(TEveRecTrack& rt, AliExternalTrackParam* tp)
12 Double_t pbuf[3], vbuf[3];
14 rt.fSign = tp->GetSign();
15 tp->GetXYZ(vbuf); rt.fV.Set(vbuf);
16 tp->GetPxPyPz(pbuf); rt.fP.Set(pbuf);
17 // Double_t ep = at->GetP(), mc = at->GetMass();
18 rt.fBeta = 1; // ep/TMath::Sqrt(ep*ep + mc*mc);
21 AliEveV0* esd_make_v0(TEveTrackPropagator* rnrStyle, AliESDVertex* primVtx,
22 AliESDtrack* neg, AliESDtrack* pos, AliESDv0* v0, Int_t i)
24 if (! v0->GetOnFlyStatus())
25 { // v0 on fly do not have the momentum vector filled...
31 v0->GetNPxPyPz(p[0], p[1], p[2]);
33 v0->GetPPxPyPz(p[0], p[1], p[2]);
36 v0->GetPxPyPz(p[0], p[1], p[2]);
38 v0->GetXYZ(v[0], v[1], v[2]);
40 // printf(" %f %f %f / %f %f %f %i\n",p[0], p[1], p[2],
41 // v[0], v[1], v[2], v0->GetOnFlyStatus());
43 rcV0.fVNeg.Set(v); //original track vertices at dca not stored
47 rcV0.fDLabel[0] = v0->GetNindex();
48 rcV0.fDLabel[1] = v0->GetPindex();
50 esd_v0_init_rectrack(rcNeg, v0->GetParamN());
51 esd_v0_init_rectrack(rcPos, v0->GetParamP());
53 AliEveV0* myV0 = new AliEveV0(&rcNeg, &rcPos, &rcV0, rnrStyle);
55 // sprintf(ch,"ESDv0%i",i);
57 // myV0->SetTitle(ch);
59 myV0->SetDaughterDCA(v0->GetDcaV0Daughters());
68 AliEveV0List* esd_V0(Double_t min_pt=0.1, Double_t max_pt=100)
70 AliESDEvent* esd = AliEveEventManager::AssertESD();
71 AliESDVertex* primVertex =(AliESDVertex*) esd->GetVertex();
73 AliEveV0List* cont = new AliEveV0List("ESD v0");
74 cont->SetMainColor(Color_t(3)); // green
75 TEveTrackPropagator* rnrStyle = cont->GetPropagator();
76 rnrStyle->SetMagField( 0.1*esd->GetMagneticField() );
78 gEve->AddElement(cont);
81 //for (Int_t n=0; count<3; n++) {
82 for (Int_t n=0; n<esd->GetNumberOfV0s(); n++) {
84 AliESDv0 *v0 = esd->GetV0(n);
85 if (v0->GetOnFlyStatus()) continue;
87 Int_t negInd = v0->GetNindex();
88 Int_t posInd = v0->GetPindex();
89 AliESDtrack* negTr = esd->GetTrack(negInd);
90 AliESDtrack* posTr = esd->GetTrack(posInd);
92 AliEveV0* myV0 = esd_make_v0(rnrStyle, primVertex, negTr,posTr, v0, n);
94 gEve->AddElement(myV0, cont);
99 cont->SetTitle("test");