11 #include <Reve/Reve.h>
12 #include <Reve/ReveManager.h>
13 #include <Reve/PointSet.h>
14 #include <Alieve/EventAlieve.h>
16 #include <AliRunLoader.h>
17 #include <AliCluster3D.h>
19 #include <TClonesArray.h>
23 Reve::PointSet* hmpid_clusters(Reve::RenderElement* cont=0, Float_t maxR=1000)
26 TClonesArray *cl[nCh] = {0,0,0,0,0,0,0};
38 Reve::PointSet* clusters = new Reve::PointSet(10000);
39 clusters->SetOwnIds(kTRUE);
41 Alieve::Event::AssertGeometry();
43 AliRunLoader* rl = Alieve::Event::AssertRunLoader();
44 rl->LoadRecPoints("HMPID");
46 TTree *cTree = rl->GetTreeR("HMPID", false);
49 for (Int_t k=0; k<nCh; k++) {
50 TBranch *br=cTree->GetBranch(name[k]);
52 br->SetAddress(&(cl[k]));
55 if (!cTree->GetEvent(0)) return 0;
58 for (Int_t i=0; i<nCh; i++) {
59 TClonesArray *arr=cl[i];
60 Int_t ncl=arr->GetEntriesFast();
62 Float_t maxRsqr = maxR*maxR;
64 AliCluster3D *c=(AliCluster3D*)arr->UncheckedAt(ncl);
65 Float_t g[3]; //global coordinates
67 if (g[0]*g[0]+g[1]*g[1] < maxRsqr)
69 clusters->SetNextPoint(g[0], g[1], g[2]);
70 AliCluster3D *atp = new AliCluster3D(*c);
71 clusters->SetPointId(atp);
76 if(clusters->Size() == 0 && gReve->GetKeepEmptyCont() == kFALSE) {
77 Warning("hmpid_clusters", "No HMPID clusters");
82 clusters->SetMarkerStyle(2);
83 clusters->SetMarkerSize(0.2);
84 clusters->SetMarkerColor(4);
87 sprintf(form,"HMPID Clusters");
88 clusters->SetName(form);
91 sprintf(tip,"N=%d", clusters->Size());
92 clusters->SetTitle(tip);
95 gReve->AddRenderElement(clusters, cont);