3 // #include "EVE/Alieve/EventAlieve.h"
4 // #include "Reve/RGTopFrame.h"
5 // #include "Reve/V0.h"
8 // #include "AliESDtrack.h"
9 // #include "AliESDv0.h"
10 // #include "AliESDVertex.h"
12 // using namespace Reve;
13 // using namespace Alieve;
16 Reve::V0* esd_make_v0(Reve::TrackRnrStyle* rnrStyle, AliESDVertex* primVtx,
17 AliESDtrack* neg, AliESDtrack* pos, AliESDv0* v0, Int_t i)
19 if (! v0->GetOnFlyStatus())
20 { // v0 on fly do not have the momentum vector filled...
26 v0->GetNPxPyPz(p[0], p[1], p[2]);
28 v0->GetPPxPyPz(p[0], p[1], p[2]);
31 v0->GetPxPyPz(p[0], p[1], p[2]);
33 v0->GetXYZ(v[0], v[1], v[2]);
36 // printf(" %f %f %f / %f %f %f %i\n",p[0], p[1], p[2],
37 // v[0], v[1], v[2], v0->GetOnFlyStatus());
39 rcV0.V_neg.Set(v); //original track vertices at dca not stored
43 rcV0.d_label[0] = v0->GetNindex();
44 rcV0.d_label[1] = v0->GetPindex();
46 Double_t ep = neg->GetP(), mc = neg->GetMass();
47 rcNeg.beta = ep/TMath::Sqrt(ep*ep + mc*mc);
48 ep = pos->GetP(); mc = pos->GetMass();
49 rcPos.beta = ep/TMath::Sqrt(ep*ep + mc*mc);
52 Reve::V0* myV0 = new Reve::V0(&rcNeg, &rcPos, &rcV0, rnrStyle);
54 // sprintf(ch,"ESDv0%i",i);
56 // myV0->SetTitle(ch);
58 myV0->SetDaughterDCA(v0->GetDcaV0Daughters());
60 Double_t primx = primVtx->GetXv(),
61 primy = primVtx->GetYv(),
62 primz = primVtx->GetZv();
63 myV0->SetCosPointingAngle(v0->GetV0CosineOfPointingAngle(primx,primy,primz));
65 myV0->SetDecayLength(primVtx->GetXv(), primVtx->GetYv(), primVtx->GetZv());
75 Reve::V0List* esd_V0(Double_t min_pt=0.1, Double_t max_pt=100)
78 AliESD* esd = Alieve::Event::AssertESD();
79 AliESDVertex* primVertex =(AliESDVertex*) esd->GetVertex();
81 Reve::V0List* cont = new Reve::V0List("ESD v0");
82 cont->SetMainColor(Color_t(3)); // green
83 Reve::TrackRnrStyle* rnrStyle = cont->GetRnrStyle();
84 rnrStyle->SetMagField( esd->GetMagneticField() );
86 gReve->AddRenderElement(cont);
89 //for (Int_t n=0; count<3; n++) {
90 for (Int_t n=0; n<esd->GetNumberOfV0s(); n++) {
92 AliESDv0 *v0 = esd->GetV0(n);
93 if (v0->GetOnFlyStatus()) continue;
95 Int_t negInd = v0->GetNindex();
96 Int_t posInd = v0->GetPindex();
97 AliESDtrack* negTr = esd->GetTrack(negInd);
98 AliESDtrack* posTr = esd->GetTrack(posInd);
100 Reve::V0* myV0 = esd_make_v0(rnrStyle, primVertex, negTr,posTr, v0, n);
102 gReve->AddRenderElement(cont, myV0);
107 cont->SetTitle("testV0List ");