]>
Commit | Line | Data |
---|---|---|
d810d0de | 1 | // $Id$ |
2 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |
3 | ||
4 | /************************************************************************** | |
5 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * | |
6 | * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * | |
7 | * full copyright notice. * | |
8 | **************************************************************************/ | |
9 | ||
6f2dc95a | 10 | void trackcount_init() |
11 | { | |
d810d0de | 12 | TEveUtil::LoadMacro("alieve_init.C"); |
6f2dc95a | 13 | alieve_init(".", -1); |
14 | ||
d810d0de | 15 | TEveUtil::LoadMacro("primary_vertex.C"); |
16 | TEveUtil::LoadMacro("esd_tracks.C"); | |
17 | TEveUtil::LoadMacro("its_clusters.C+"); | |
18 | TEveUtil::LoadMacro("tpc_clusters.C+"); | |
32e219c2 | 19 | |
84aff7a4 | 20 | TEveTrackCounter* g_trkcnt = new TEveTrackCounter("Primary Counter"); |
21 | gEve->AddGlobalElement(g_trkcnt); | |
6f2dc95a | 22 | |
d810d0de | 23 | gEvent->AddNewEventCommand("on_new_event();"); |
24 | gEvent->GotoEvent(0); | |
32e219c2 | 25 | |
84aff7a4 | 26 | gEve->Redraw3D(kTRUE); |
6f2dc95a | 27 | } |
28 | ||
29 | void on_new_event() | |
30 | { | |
84aff7a4 | 31 | TEvePointSet* itsc = its_clusters(); |
3c796142 | 32 | itsc->SetMarkerColor(5); |
33 | ||
84aff7a4 | 34 | TEvePointSet* tpcc = tpc_clusters(); |
3c796142 | 35 | tpcc->SetMarkerColor(4); |
6f2dc95a | 36 | |
37 | primary_vertex(1, 1); | |
38 | ||
84aff7a4 | 39 | TEveElementList* cont = esd_tracks_vertex_cut(); |
40 | TGListTree* lt = gEve->GetListTree(); | |
6f2dc95a | 41 | TGListTreeItem* ti = cont->FindListTreeItem(lt); |
42 | lt->OpenItem(ti); | |
43 | ||
84aff7a4 | 44 | // Here we expect five TEveTrackList containers. |
6f2dc95a | 45 | // First two have reasonable primaries (sigma-to-prim-vertex < 5). |
46 | // Other three are almost certainly secondaries. | |
47 | Int_t count = 1; | |
84aff7a4 | 48 | TEveTrackCounter* g_trkcnt = TEveTrackCounter::fgInstance; |
6f2dc95a | 49 | g_trkcnt->Reset(); |
d810d0de | 50 | g_trkcnt->SetEventId(gEvent->GetEventId()); |
84aff7a4 | 51 | TEveElement::List_i i = cont->BeginChildren(); |
6f2dc95a | 52 | while (i != cont->EndChildren()) { |
84aff7a4 | 53 | TEveTrackList* l = dynamic_cast<TEveTrackList*>(*i); |
6f2dc95a | 54 | if (l != 0) { |
32e219c2 | 55 | l->SetLineWidth(2); |
6f2dc95a | 56 | g_trkcnt->RegisterTracks(l, (count <= 2)); |
57 | ++count; | |
58 | } | |
59 | ++i; | |
60 | } | |
61 | } | |
62 | ||
1f373d3e | 63 | TParticle* id(Int_t label=0, Bool_t showParents=kTRUE) |
6f2dc95a | 64 | { |
d810d0de | 65 | AliRunLoader* rl = AliEveEventManager::AssertRunLoader(); |
6f2dc95a | 66 | rl->LoadKinematics(); |
67 | AliStack* stack = rl->Stack(); | |
68 | ||
1f373d3e | 69 | printf("Number primaries %d, all particles %d, label %d\n", |
70 | stack->GetNprimary(), stack->GetNtrack(), label); | |
71 | if (label < 0 || label >= stack->GetNtrack()) { | |
72 | printf(" Label exceeds available range.\n"); | |
73 | return 0; | |
74 | } | |
6f2dc95a | 75 | |
76 | TParticle* part = stack->Particle(label); | |
77 | if(part != 0) { | |
78 | part->Print(); | |
79 | if(showParents) { | |
80 | while(part->GetMother(0) >= 0) { | |
81 | part = stack->Particle(part->GetMother(0)); | |
82 | part->Print(); | |
83 | } | |
84 | } | |
85 | } | |
1f373d3e | 86 | |
87 | return stack->Particle(label); | |
6f2dc95a | 88 | } |