+// $Id$
+// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
+
+/**************************************************************************
+ * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
+ * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
+ * full copyright notice. *
+ **************************************************************************/
+
+class TEveProjectionManager;
+class TEveGeoShape;
+class TEveUtil;
+
+TEveProjectionManager *proj = 0;
+TEveGeoShape *geom = 0;
+
void trackcount_init()
{
- LoadMacro("alieve_init.C");
+ TEveUtil::LoadMacro("alieve_init.C");
alieve_init(".", -1);
- LoadMacro("primary_vertex.C");
- LoadMacro("esd_tracks.C");
- LoadMacro("its_clusters.C+");
- LoadMacro("tpc_clusters.C+");
+ TEveUtil::LoadMacro("geom_gentle.C");
+
+ TEveUtil::LoadMacro("primary_vertex.C");
+ TEveUtil::LoadMacro("esd_tracks.C");
+ TEveUtil::LoadMacro("its_clusters.C+");
+ TEveUtil::LoadMacro("tpc_clusters.C+");
+
+ TEveViewer* nv = gEve->SpawnNewViewer("Projected View");
+ TEveScene* ns = gEve->SpawnNewScene("Projected Scene");
+ nv->AddScene(ns);
+ TGLViewer* v = nv->GetGLViewer();
+ v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
+ TGLCameraMarkupStyle* mup = v->GetCameraMarkup();
+ if(mup) mup->SetShow(kFALSE);
+
+ AliEveTrackFitter* fitter = new AliEveTrackFitter();
+ gEve->AddToListTree(fitter, 1);
+ gEve->AddElement(fitter, gEve->GetEventScene());
+
+ AliEveTrackCounter* g_trkcnt = new AliEveTrackCounter("Primary Counter");
+ gEve->AddToListTree(g_trkcnt, kFALSE);
- TEveTrackCounter* g_trkcnt = new TEveTrackCounter("Primary Counter");
- gEve->AddGlobalElement(g_trkcnt);
+ TEveProjectionManager* pm = new TEveProjectionManager();
+ proj = pm;
+ gEve->AddToListTree(proj, kTRUE);
+ gEve->AddElement(proj, ns);
+
+ TEveProjectionAxes* axes = new TEveProjectionAxes(proj);
+ axes->SetText("Projected Track-Count");
+ axes->SetFontFile("comicbd");
+ axes->SetFontSize(20);
+ gEve->AddElement(axes, ns);
+ gEve->AddToListTree(axes, kTRUE);
- Alieve::gEvent->AddNewEventCommand("on_new_event();");
- Alieve::gEvent->GotoEvent(0);
+ // geometry
+ TEveGeoShape* gg = geom_gentle();
+ geom = gg;
+
+ // event
+ gAliEveEvent->AddNewEventCommand("on_new_event();");
+ gAliEveEvent->GotoEvent(0);
gEve->Redraw3D(kTRUE);
}
+/******************************************************************************/
+
void on_new_event()
{
- TEvePointSet* itsc = its_clusters();
- itsc->SetMarkerColor(5);
+ try {
+ TEvePointSet* itsc = its_clusters();
+ itsc->SetMarkerColor(5);
- TEvePointSet* tpcc = tpc_clusters();
- tpcc->SetMarkerColor(4);
+ TEvePointSet* tpcc = tpc_clusters();
+ tpcc->SetMarkerColor(4);
+ }
+ catch(TEveException& exc) {
+ printf("Exception loading ITS/TPC clusters: %s\n", exc.Data());
+ }
primary_vertex(1, 1);
TEveElementList* cont = esd_tracks_vertex_cut();
- TGListTree* lt = gEve->GetListTree();
- TGListTreeItem* ti = cont->FindListTreeItem(lt);
- lt->OpenItem(ti);
// Here we expect five TEveTrackList containers.
// First two have reasonable primaries (sigma-to-prim-vertex < 5).
// Other three are almost certainly secondaries.
Int_t count = 1;
- TEveTrackCounter* g_trkcnt = TEveTrackCounter::fgInstance;
+ AliEveTrackCounter* g_trkcnt = AliEveTrackCounter::fgInstance;
g_trkcnt->Reset();
- g_trkcnt->SetEventId(Alieve::gEvent->GetEventId());
+ g_trkcnt->SetEventId(gAliEveEvent->GetEventId());
TEveElement::List_i i = cont->BeginChildren();
while (i != cont->EndChildren()) {
TEveTrackList* l = dynamic_cast<TEveTrackList*>(*i);
}
++i;
}
+ TEveElement* top = gEve->GetCurrentEvent();
+ proj->DestroyElements();
+ AliESDEvent* esd = AliEveEventManager::AssertESD();
+ Double_t x[3];
+ esd->GetPrimaryVertex()->GetXYZ(x);
+ proj->SetCenter(x[0], x[1], x[2]);
+
+ // geom
+ proj->ImportElements(geom);
+ // event
+ proj->ImportElements(top);
+ // top->SetRnrState(kFALSE);
}
+/******************************************************************************/
+
TParticle* id(Int_t label=0, Bool_t showParents=kTRUE)
{
- AliRunLoader* rl = Alieve::Event::AssertRunLoader();
+ AliRunLoader* rl = AliEveEventManager::AssertRunLoader();
rl->LoadKinematics();
AliStack* stack = rl->Stack();
}
TParticle* part = stack->Particle(label);
- if(part != 0) {
+ if (part != 0) {
part->Print();
- if(showParents) {
- while(part->GetMother(0) >= 0) {
+ if (showParents) {
+ while (part->GetMother(0) >= 0) {
part = stack->Particle(part->GetMother(0));
part->Print();
}
}
}
-
return stack->Particle(label);
}