]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/macros/trackcount_init.C
Put all classes in Alieve/ sub-module out of the Alieve namespace and
[u/mrichter/AliRoot.git] / EVE / macros / trackcount_init.C
CommitLineData
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 10void 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
29void 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 63TParticle* 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}