8 Reve::NLTProjector * proj = 0;
9 Reve::GeoShapeRnrEl * geom = 0;
11 void NLT_trackcount_init()
13 Reve::LoadMacro("alieve_init.C");
16 Reve::LoadMacro("geom_gentle.C");
18 Reve::LoadMacro("primary_vertex.C");
19 Reve::LoadMacro("esd_tracks.C");
20 Reve::LoadMacro("its_clusters.C+");
21 Reve::LoadMacro("tpc_clusters.C+");
23 Reve::Viewer* nv = gReve->SpawnNewViewer("NLT Projected");
24 Reve::Scene* ns = gReve->SpawnNewScene("NLT");
26 TGLViewer* v = nv->GetGLViewer();
27 v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
28 TGLCameraMarkupStyle* mup = v->GetCameraMarkup();
29 if(mup) mup->SetShow(kFALSE);
31 Reve::TrackCounter* g_trkcnt = new Reve::TrackCounter("Primary Counter");
32 gReve->AddToListTree(g_trkcnt, kFALSE);
34 Reve::NLTProjector* p = new Reve::NLTProjector; proj = p;
35 gReve->AddToListTree(p, kTRUE);
36 gReve->AddRenderElement(proj, ns);
39 Reve::GeoShapeRnrEl* gg = geom_gentle();
43 Alieve::gEvent->AddNewEventCommand("on_new_event();");
44 Alieve::gEvent->GotoEvent(0);
46 gReve->Redraw3D(kTRUE);
49 /**************************************************************************/
54 Reve::PointSet* itsc = its_clusters();
55 itsc->SetMarkerColor(5);
57 Reve::PointSet* tpcc = tpc_clusters();
58 tpcc->SetMarkerColor(4);
60 catch(Reve::Exc_t& exc) {
61 printf("Exception loading ITS/TPC clusters: %s\n", exc.Data());
66 Reve::RenderElementList* cont = esd_tracks_vertex_cut();
68 // Here we expect five TrackList containers.
69 // First two have reasonable primaries (sigma-to-prim-vertex < 5).
70 // Other three are almost certainly secondaries.
72 Reve::TrackCounter* g_trkcnt = Reve::TrackCounter::fgInstance;
74 g_trkcnt->SetEventId(Alieve::gEvent->GetEventId());
75 Reve::RenderElement::List_i i = cont->BeginChildren();
76 while (i != cont->EndChildren()) {
77 Reve::TrackList* l = dynamic_cast<Reve::TrackList*>(*i);
80 g_trkcnt->RegisterTracks(l, (count <= 2));
85 Reve::RenderElement* top = gReve->GetCurrentEvent();
86 proj->DestroyElements();
87 AliESDEvent* esd = Alieve::Event::AssertESD();
89 esd->GetPrimaryVertex()->GetXYZ(x);
90 proj->SetCenter(x[0], x[1], x[2]);
93 proj->ImportElements(geom);
95 proj->ImportElements(top);
96 // top->SetRnrState(kFALSE);
99 /**************************************************************************/
101 TParticle* id(Int_t label=0, Bool_t showParents=kTRUE)
103 AliRunLoader* rl = Alieve::Event::AssertRunLoader();
104 rl->LoadKinematics();
105 AliStack* stack = rl->Stack();
107 printf("Number primaries %d, all particles %d, label %d\n",
108 stack->GetNprimary(), stack->GetNtrack(), label);
109 if (label < 0 || label >= stack->GetNtrack()) {
110 printf(" Label exceeds available range.\n");
114 TParticle* part = stack->Particle(label);
118 while(part->GetMother(0) >= 0) {
119 part = stack->Particle(part->GetMother(0));
124 return stack->Particle(label);