281d15da55681fd1b1ff4509cebf471527002bb9
[u/mrichter/AliRoot.git] / EVE / alice-macros / its_clusters.C
1
2 Reve::PointSet* its_clusters(RenderElement* cont=0, Float_t maxR=50)
3 {
4   if (!gGeoManager)
5     gReve->GetGeometry("$PWD/geometry.root");
6
7   AliRunLoader* rl = Alieve::Event::AssertRunLoader();
8   rl->LoadRecPoints("ITS");
9
10   TTree *cTree = rl->GetTreeR("ITS", false);
11
12   Reve::PointSet* clusters = new Reve::PointSet(10000);
13   clusters->SetOwnIds(kTRUE);
14
15   TClonesArray *cl=NULL;
16   TBranch *branch=cTree->GetBranch("ITSRecPoints");
17   branch->SetAddress(&cl);
18
19   Int_t nentr=(Int_t)cTree->GetEntries();
20   for (Int_t i=0; i<nentr; i++) {
21     if (!cTree->GetEvent(i)) continue;
22
23     Int_t ncl=cl->GetEntriesFast();
24
25     Float_t maxRsqr = maxR*maxR;
26     while (ncl--) {
27       AliCluster *c=(AliCluster*)cl->UncheckedAt(ncl);
28       Float_t g[3]; //global coordinates
29       c->GetGlobalXYZ(g);
30       if (g[0]*g[0]+g[1]*g[1] < maxRsqr)
31       {
32         clusters->SetNextPoint(g[0], g[1], g[2]);
33         AliCluster *atp = new AliCluster(*c);
34         clusters->SetPointId(atp);
35       }
36     }
37   }
38
39   if(clusters->Size() == 0 && gReve->GetKeepEmptyCont() == kFALSE) {
40     Warning("its_clusters", "No ITS clusters");
41     delete clusters;
42     return 0;
43   }
44
45   clusters->SetMarkerStyle(2);
46   clusters->SetMarkerSize(0.5);
47   clusters->SetMarkerColor(4);
48
49   char form[1000];
50   sprintf(form,"ITS Clusters");
51   clusters->SetName(form);
52
53   char tip[1000];
54   sprintf(tip,"N=%d", clusters->Size());
55   clusters->SetTitle(tip);
56
57   using namespace Reve;
58   gReve->AddRenderElement(clusters);
59   gReve->Redraw3D();
60
61   return clusters;
62 }