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 TEvePointSet* clusters_from_index(Int_t index=0, TEveElement* cont=0)
12 AliESDEvent* esd = AliEveEventManager::AssertESD();
15 Warning("clusters_from_index", "index not set.");
19 if (index >= esd->GetNumberOfTracks()) {
20 Warning("clusters_from_index", "index out of range");
24 TEvePointSet* clusters = new TEvePointSet(64);
25 clusters->SetOwnIds(kTRUE);
27 AliESDtrack* at = esd->GetTrack(index);
28 const AliTrackPointArray* pArr = at->GetTrackPointArray();
30 Warning("clusters_from_index", "TrackPointArray not stored with ESD track.");
33 Int_t np = pArr->GetNPoints();
34 const Float_t* x = pArr->GetX();
35 const Float_t* y = pArr->GetY();
36 const Float_t* z = pArr->GetZ();
37 for (Int_t i=0; i<np; ++i) {
38 clusters->SetNextPoint(x[i], y[i], z[i]);
39 AliTrackPoint *atp = new AliTrackPoint;
40 pArr->GetPoint(*atp, i);
41 clusters->SetPointId(atp); }
44 if(clusters->Size() == 0 && gEve->GetKeepEmptyCont() == kFALSE) {
45 Warning("clusters_from_index", Form("No clusters for index '%d'", index));
50 clusters->SetMarkerStyle(2);
51 clusters->SetMarkerSize(0.5);
52 clusters->SetMarkerColor(4);
54 //PH The line below is replaced waiting for a fix in Root
55 //PH which permits to use variable siza arguments in CINT
56 //PH on some platforms (alphalinuxgcc, solariscc5, etc.)
57 //PH clusters->SetName(Form("Clusters idx=%d", index));
59 sprintf(form,"Clusters idx=%d", index);
60 clusters->SetName(form);
63 sprintf(tip,"N=%d", clusters->Size());
64 clusters->SetTitle(tip);
65 gEve->AddElement(clusters);