3 Reve::PointSet* clusters_from_label(Int_t label=0)
5 AliESD* esd = Alieve::Event::AssertESD();
6 Reve::PointSet* clusters = new Reve::PointSet(64);
7 clusters->SetOwnIds(kTRUE);
9 for (Int_t n=0; n<esd->GetNumberOfTracks(); n++)
11 AliESDtrack* at = esd->GetTrack(n);
12 if (at->GetLabel() == label) {
13 const AliTrackPointArray* pArr = at->GetTrackPointArray();
15 Warning("clusters_from_label", "TrackPointArray not stored with ESD track.");
18 Int_t np = pArr->GetNPoints();
19 const Float_t* x = pArr->GetX();
20 const Float_t* y = pArr->GetY();
21 const Float_t* z = pArr->GetZ();
22 for (Int_t i=0; i<np; ++i) {
23 clusters->SetNextPoint(x[i], y[i], z[i]);
24 AliTrackPoint *atp = new AliTrackPoint;
25 pArr->GetPoint(*atp, i);
26 clusters->SetPointId(atp);
30 clusters->SetMarkerStyle(2);
31 clusters->SetMarkerSize(0.5);
32 clusters->SetMarkerColor(4);
33 //PH The line below is replaced waiting for a fix in Root
34 //PH which permits to use variable siza arguments in CINT
35 //PH on some platforms (alphalinuxgcc, solariscc5, etc.)
36 //PH clusters->SetName(Form("Clusters lab=%d", label));
38 sprintf(form,"Clusters lab=%d", label);
39 clusters->SetName(form);
42 gReve->AddRenderElement(clusters);