1 Reve::TrackCounter* g_trkcnt = 0;
5 Reve::LoadMacro("alieve_init.C");
9 TGLViewer* glv = dynamic_cast<TGLViewer*>(gReve->GetGLCanvas()->GetViewer3D());
10 glv->SetIgnoreSizesOnUpdate(kTRUE);
11 // The size of ortho cameras can not be set in advance.
12 // glv->SetOrthoCamera(TGLViewer::kCameraOrthoXOY, -0.1, 0.1, 0.1, -0.1);
13 // glv->SetOrthoCamera(TGLViewer::kCameraOrthoZOY, -22, 22, 22, -22);
16 g_trkcnt = new Reve::TrackCounter("Primary Counter");
17 gReve->AddGlobalRenderElement(g_trkcnt);
19 Alieve::gEvent->AddNewEventCommand("on_new_event();");
20 Alieve::gEvent->GotoEvent(0);
25 Reve::LoadMacro("primary_vertex.C");
26 Reve::LoadMacro("esd_tracks.C");
27 Reve::LoadMacro("its_hits.C");
28 Reve::LoadMacro("tpc_hits.C");
30 Reve::PointSet* p = its_hits();
35 Reve::RenderElementList* cont = esd_tracks_vertex_cut();
36 TGListTree* lt = gReve->GetListTree();
37 TGListTreeItem* ti = cont->FindListTreeItem(lt);
40 // Here we expect five TrackList containers.
41 // First two have reasonable primaries (sigma-to-prim-vertex < 5).
42 // Other three are almost certainly secondaries.
44 if (g_trkcnt == 0) // This sometimes happens; linked to macro execution, cint reset.
45 g_trkcnt = Reve::TrackCounter::fgInstance;
47 g_trkcnt->SetEventId(Alieve::gEvent->GetEventId());
48 Reve::RenderElement::List_i i = cont->BeginChildren();
49 while (i != cont->EndChildren()) {
50 Reve::TrackList* l = dynamic_cast<Reve::TrackList*>(*i);
53 g_trkcnt->RegisterTracks(l, (count <= 2));
60 TParticle* id(Int_t label=0, Bool_t showParents=kTRUE)
62 AliRunLoader* rl = Alieve::Event::AssertRunLoader();
64 AliStack* stack = rl->Stack();
66 printf("Number primaries %d, all particles %d, label %d\n",
67 stack->GetNprimary(), stack->GetNtrack(), label);
68 if (label < 0 || label >= stack->GetNtrack()) {
69 printf(" Label exceeds available range.\n");
73 TParticle* part = stack->Particle(label);
77 while(part->GetMother(0) >= 0) {
78 part = stack->Particle(part->GetMother(0));
84 return stack->Particle(label);