]>
Commit | Line | Data |
---|---|---|
6f2dc95a | 1 | Reve::TrackCounter* g_trkcnt = 0; |
2 | ||
3 | void trackcount_init() | |
4 | { | |
5 | Reve::LoadMacro("alieve_init.C"); | |
6 | alieve_init(".", -1); | |
7 | ||
8 | { | |
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); | |
14 | } | |
15 | ||
16 | g_trkcnt = new Reve::TrackCounter("Primary Counter"); | |
17 | gReve->AddGlobalRenderElement(g_trkcnt); | |
18 | ||
19 | Alieve::gEvent->AddNewEventCommand("on_new_event();"); | |
20 | Alieve::gEvent->GotoEvent(0); | |
21 | } | |
22 | ||
23 | void on_new_event() | |
24 | { | |
25 | Reve::LoadMacro("primary_vertex.C"); | |
26 | Reve::LoadMacro("esd_tracks.C"); | |
27 | Reve::LoadMacro("its_hits.C"); | |
28 | Reve::LoadMacro("tpc_hits.C"); | |
29 | ||
30 | Reve::PointSet* p = its_hits(); | |
31 | p->SetMarkerStyle(4); | |
32 | ||
33 | primary_vertex(1, 1); | |
34 | ||
35 | Reve::RenderElementList* cont = esd_tracks_vertex_cut(); | |
36 | TGListTree* lt = gReve->GetListTree(); | |
37 | TGListTreeItem* ti = cont->FindListTreeItem(lt); | |
38 | lt->OpenItem(ti); | |
39 | ||
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. | |
43 | Int_t count = 1; | |
44 | g_trkcnt->Reset(); | |
ae4998fc | 45 | Reve::RenderElement::List_i i = cont->BeginChildren(); |
6f2dc95a | 46 | while (i != cont->EndChildren()) { |
47 | Reve::TrackList* l = dynamic_cast<Reve::TrackList*>(*i); | |
48 | if (l != 0) { | |
49 | l->SetWidth(2); | |
50 | g_trkcnt->RegisterTracks(l, (count <= 2)); | |
51 | ++count; | |
52 | } | |
53 | ++i; | |
54 | } | |
55 | } | |
56 | ||
57 | void id(Int_t label=0, Bool_t showParents=kFALSE) | |
58 | { | |
59 | AliRunLoader* rl = Alieve::Event::AssertRunLoader(); | |
60 | rl->LoadKinematics(); | |
61 | AliStack* stack = rl->Stack(); | |
62 | ||
63 | printf("Number primaries %d %d\n", stack->GetNprimary(), stack->GetNtrack()); | |
64 | ||
65 | TParticle* part = stack->Particle(label); | |
66 | if(part != 0) { | |
67 | part->Print(); | |
68 | if(showParents) { | |
69 | while(part->GetMother(0) >= 0) { | |
70 | part = stack->Particle(part->GetMother(0)); | |
71 | part->Print(); | |
72 | } | |
73 | } | |
74 | } | |
75 | } |