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 TGLViewer* v = (TGLViewer *)gReve->GetGLViewer();
24 v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
25 TGLCameraMarkupStyle* mup = v->GetCameraMarkup();
26 if(mup) mup->SetShow(kFALSE);
28 Reve::TrackCounter* g_trkcnt = new Reve::TrackCounter("Primary Counter");
29 gReve->AddToListTree(g_trkcnt, kFALSE);
31 Reve::Scene* s = gReve->SpawnNewScene("Projected Event");
32 gReve->GetDefViewer()->RemoveElements();
33 gReve->GetDefViewer()->AddScene(s);
35 Reve::NLTProjector* p = new Reve::NLTProjector; proj = p;
36 gReve->AddToListTree(p, kTRUE);
37 gReve->AddRenderElement(proj, s);
40 Reve::GeoShapeRnrEl* gg = geom_gentle();
44 Alieve::gEvent->AddNewEventCommand("on_new_event();");
45 Alieve::gEvent->GotoEvent(0);
47 gReve->Redraw3D(kTRUE);
50 /**************************************************************************/
54 Reve::PointSet* itsc = its_clusters();
55 itsc->SetMarkerColor(5);
57 Reve::PointSet* tpcc = tpc_clusters();
58 tpcc->SetMarkerColor(4);
62 Reve::RenderElementList* cont = esd_tracks_vertex_cut();
64 // Here we expect five TrackList containers.
65 // First two have reasonable primaries (sigma-to-prim-vertex < 5).
66 // Other three are almost certainly secondaries.
68 Reve::TrackCounter* g_trkcnt = Reve::TrackCounter::fgInstance;
70 g_trkcnt->SetEventId(Alieve::gEvent->GetEventId());
71 Reve::RenderElement::List_i i = cont->BeginChildren();
72 while (i != cont->EndChildren()) {
73 Reve::TrackList* l = dynamic_cast<Reve::TrackList*>(*i);
76 g_trkcnt->RegisterTracks(l, (count <= 2));
82 Reve::RenderElement* top = gReve->GetCurrentEvent();
83 proj->DestroyElements();
84 AliESDEvent* esd = Alieve::Event::AssertESD();
86 esd->GetPrimaryVertex()->GetXYZ(x);
87 proj->SetCenter(x[0], x[1], x[2]);
90 proj->ImportElements(geom);
92 proj->ImportElements(top);
93 // top->SetRnrState(kFALSE);
96 /**************************************************************************/
98 TParticle* id(Int_t label=0, Bool_t showParents=kTRUE)
100 AliRunLoader* rl = Alieve::Event::AssertRunLoader();
101 rl->LoadKinematics();
102 AliStack* stack = rl->Stack();
104 printf("Number primaries %d, all particles %d, label %d\n",
105 stack->GetNprimary(), stack->GetNtrack(), label);
106 if (label < 0 || label >= stack->GetNtrack()) {
107 printf(" Label exceeds available range.\n");
111 TParticle* part = stack->Particle(label);
115 while(part->GetMother(0) >= 0) {
116 part = stack->Particle(part->GetMother(0));
121 return stack->Particle(label);