3 TEvePointSet* clusters_from_index(Int_t index=0, TEveElement* cont=0)
5 AliESDEvent* esd = Alieve::Event::AssertESD();
8 Warning("clusters_from_index", "index not set.");
12 if (index >= esd->GetNumberOfTracks()) {
13 Warning("clusters_from_index", "index out of range");
17 TEvePointSet* clusters = new TEvePointSet(64);
18 clusters->SetOwnIds(kTRUE);
20 AliESDtrack* at = esd->GetTrack(index);
21 const AliTrackPointArray* pArr = at->GetTrackPointArray();
23 Warning("clusters_from_index", "TrackPointArray not stored with ESD track.");
26 Int_t np = pArr->GetNPoints();
27 const Float_t* x = pArr->GetX();
28 const Float_t* y = pArr->GetY();
29 const Float_t* z = pArr->GetZ();
30 for (Int_t i=0; i<np; ++i) {
31 clusters->SetNextPoint(x[i], y[i], z[i]);
32 AliTrackPoint *atp = new AliTrackPoint;
33 pArr->GetPoint(*atp, i);
34 clusters->SetPointId(atp); }
37 if(clusters->Size() == 0 && gEve->GetKeepEmptyCont() == kFALSE) {
38 Warning("clusters_from_index", Form("No clusters for index '%d'", index));
43 clusters->SetMarkerStyle(2);
44 clusters->SetMarkerSize(0.5);
45 clusters->SetMarkerColor(4);
47 //PH The line below is replaced waiting for a fix in Root
48 //PH which permits to use variable siza arguments in CINT
49 //PH on some platforms (alphalinuxgcc, solariscc5, etc.)
50 //PH clusters->SetName(Form("Clusters idx=%d", index));
52 sprintf(form,"Clusters idx=%d", index);
53 clusters->SetName(form);
56 sprintf(tip,"N=%d", clusters->Size());
57 clusters->SetTitle(tip);
58 gEve->AddElement(clusters);