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 AliEveV0* esd_make_v0(TEveTrackPropagator* rnrStyle, AliESDVertex* primVtx,
11 AliESDtrack* neg, AliESDtrack* pos, AliESDv0* v0, Int_t i)
13 if (! v0->GetOnFlyStatus())
14 { // v0 on fly do not have the momentum vector filled...
20 v0->GetNPxPyPz(p[0], p[1], p[2]);
22 v0->GetPPxPyPz(p[0], p[1], p[2]);
25 v0->GetPxPyPz(p[0], p[1], p[2]);
27 v0->GetXYZ(v[0], v[1], v[2]);
30 // printf(" %f %f %f / %f %f %f %i\n",p[0], p[1], p[2],
31 // v[0], v[1], v[2], v0->GetOnFlyStatus());
33 rcV0.V_neg.Set(v); //original track vertices at dca not stored
37 rcV0.d_label[0] = v0->GetNindex();
38 rcV0.d_label[1] = v0->GetPindex();
40 Double_t ep = neg->GetP(), mc = neg->GetMass();
41 rcNeg.beta = ep/TMath::Sqrt(ep*ep + mc*mc);
42 ep = pos->GetP(); mc = pos->GetMass();
43 rcPos.beta = ep/TMath::Sqrt(ep*ep + mc*mc);
46 AliEveV0* myV0 = new AliEveV0(&rcNeg, &rcPos, &rcV0, rnrStyle);
48 // sprintf(ch,"ESDv0%i",i);
50 // myV0->SetTitle(ch);
52 myV0->SetDaughterDCA(v0->GetDcaV0Daughters());
54 Double_t primx = primVtx->GetXv(),
55 primy = primVtx->GetYv(),
56 primz = primVtx->GetZv();
57 myV0->SetCosPointingAngle(v0->GetV0CosineOfPointingAngle(primx,primy,primz));
59 myV0->SetDecayLength(primVtx->GetXv(), primVtx->GetYv(), primVtx->GetZv());
69 V0List* esd_AliEveV0(Double_t min_pt=0.1, Double_t max_pt=100)
71 printf("THIS SCRIPT DOES NOT WORK.\n"
72 "AliEveV0 classes have been temporarily removed.\n"
73 "They need to be cleaned up.\n");
76 AliESDEvent* esd = AliEveEventManager::AssertESD();
77 AliESDVertex* primVertex =(AliESDVertex*) esd->GetVertex();
79 V0List* cont = new V0List("ESD v0");
80 cont->SetMainColor(Color_t(3)); // green
81 TEveTrackPropagator* rnrStyle = cont->GetPropagator();
82 rnrStyle->SetMagField( 0.1*esd->GetMagneticField() );
84 gEve->AddElement(cont);
87 //for (Int_t n=0; count<3; n++) {
88 for (Int_t n=0; n<esd->GetNumberOfV0s(); n++) {
90 AliESDv0 *v0 = esd->GetV0(n);
91 if (v0->GetOnFlyStatus()) continue;
93 Int_t negInd = v0->GetNindex();
94 Int_t posInd = v0->GetPindex();
95 AliESDtrack* negTr = esd->GetTrack(negInd);
96 AliESDtrack* posTr = esd->GetTrack(posInd);
98 AliEveV0* myV0 = esd_make_v0(rnrStyle, primVertex, negTr,posTr, v0, n);
100 gEve->AddElement(myV0, cont);
105 cont->SetTitle("testV0List ");