R__EXTERN TEveProjectionManager *gRPhiMgr;
R__EXTERN TEveProjectionManager *gRhoZMgr;
-TEveGeoShape *gGeomGentle = 0;
-TEveGeoShape *gGeomGentleTRD = 0;
+TEveGeoShape *gGeomGentle = 0;
+TEveGeoShape *gGeomGentleRPhi = 0;
+TEveGeoShape *gGeomGentleRhoZ = 0;
+TEveGeoShape *gGeomGentleTRD = 0;
Bool_t gShowTRD = kFALSE;
TEveUtil::LoadMacro("alieve_init.C");
alieve_init(".", -1);
- TEveUtil::LoadMacro("geom_gentle.C");
- if (gShowTRD) TEveUtil::LoadMacro("geom_gentle_trd.C");
-
- TEveUtil::LoadMacro("primary_vertex.C");
- TEveUtil::LoadMacro("esd_V0_points.C");
- TEveUtil::LoadMacro("esd_V0.C");
- TEveUtil::LoadMacro("esd_tracks.C");
- TEveUtil::LoadMacro("its_clusters.C+");
- TEveUtil::LoadMacro("tpc_clusters.C+");
- TEveUtil::LoadMacro("trd_clusters.C+");
- TEveUtil::LoadMacro("tof_clusters.C+");
-
- TEveLine::SetDefaultSmooth(1);
-
- /*
- TEveViewer* nv = gEve->SpawnNewViewer("NLT Projected");
- TEveScene* ns = gEve->SpawnNewScene("NLT");
- 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());
- TEveTrackCounter* g_trkcnt = new TEveTrackCounter("Primary Counter");
+ AliEveTrackCounter* g_trkcnt = new AliEveTrackCounter("Primary Counter");
gEve->AddToListTree(g_trkcnt, kFALSE);
- // geometry
- gGeomGentle = geom_gentle();
- if (gShowTRD) gGeomGentleTRD = geom_gentle_trd();
-
-
gROOT->ProcessLine(".L SplitGLView.C+");
TEveBrowser* browser = gEve->GetBrowser();
browser->ExecPlugin("SplitGLView", 0, "new SplitGLView(gClient->GetRoot(), 600, 450, kTRUE)");
gEve->GetScenes()->FindChild("Rho-Z Projection")->AddElement(a);
}
+ // geometry
+ TEveUtil::LoadMacro("geom_gentle.C");
+ gGeomGentle = geom_gentle();
+ gGeomGentleRPhi = geom_gentle_rphi(); gGeomGentleRPhi->IncDenyDestroy();
+ gGeomGentleRhoZ = geom_gentle_rhoz(); gGeomGentleRhoZ->IncDenyDestroy();
+ if (gShowTRD) {
+ TEveUtil::LoadMacro("geom_gentle_trd.C");
+ gGeomGentleTRD = geom_gentle_trd();
+ }
+
+ // event data
+ TEveUtil::LoadMacro("primary_vertex.C");
+ TEveUtil::LoadMacro("esd_V0_points.C");
+ TEveUtil::LoadMacro("esd_V0.C");
+ TEveUtil::LoadMacro("esd_tracks.C");
+ TEveUtil::LoadMacro("its_clusters.C+");
+ TEveUtil::LoadMacro("tpc_clusters.C+");
+ TEveUtil::LoadMacro("trd_clusters.C+");
+ TEveUtil::LoadMacro("tof_clusters.C+");
+
+ // TEveLine::SetDefaultSmooth(1);
+
+ TEveBrowser* browser = gEve->GetBrowser();
+
+ browser->StartEmbedding(TRootBrowser::kBottom);
+ new AliEveEventManagerWindow(AliEveEventManager::GetMaster());
+ browser->StopEmbedding("EventCtrl");
+
// event
- gAliEveEvent->AddNewEventCommand("on_new_event();");
- gAliEveEvent->GotoEvent(0);
+ AliEveEventManager::GetMaster()->AddNewEventCommand("on_new_event();");
+ AliEveEventManager::GetMaster()->GotoEvent(0);
+
+ gEve->EditElement(g_trkcnt);
gEve->Redraw3D(kTRUE);
}
printf("Exception loading ITS/TPC clusters: %s\n", exc.Data());
}
- primary_vertex(1, 1);
+ primary_vertex();
+ primary_vertex_ellipse();
+ primary_vertex_spd();
+ primary_vertex_ellipse_spd();
+
esd_V0_points();
esd_V0();
- TEveElementList* cont = esd_tracks_vertex_cut();
+ AliEveTrackCounter* g_trkcnt = AliEveTrackCounter::fgInstance;
+ g_trkcnt->Reset();
+ g_trkcnt->SetEventId(AliEveEventManager::GetMaster()->GetEventId());
+
+ TEveElementList* cont = esd_tracks_by_category();
- // Here we expect five TEveTrackList containers.
+ // Here we expect several TEveTrackList containers.
// First two have reasonable primaries (sigma-to-prim-vertex < 5).
- // Other three are almost certainly secondaries.
+ // Others are almost certainly secondaries.
Int_t count = 1;
- TEveTrackCounter* g_trkcnt = TEveTrackCounter::fgInstance;
- g_trkcnt->Reset();
- g_trkcnt->SetEventId(gAliEveEvent->GetEventId());
TEveElement::List_i i = cont->BeginChildren();
- while (i != cont->EndChildren()) {
+ while (i != cont->EndChildren())
+ {
TEveTrackList* l = dynamic_cast<TEveTrackList*>(*i);
- if (l != 0) {
- // l->SetLineWidth(2);
+ if (l != 0)
+ {
g_trkcnt->RegisterTracks(l, (count <= 2));
++count;
}
if (gRPhiMgr && top) {
gRPhiMgr->DestroyElements();
gRPhiMgr->SetCenter(x[0], x[1], x[2]);
- gRPhiMgr->ImportElements(gGeomGentle);
+ gRPhiMgr->ImportElements(gGeomGentleRPhi);
if (gShowTRD) gRPhiMgr->ImportElements(gGeomGentleTRD);
gRPhiMgr->ImportElements(top);
}
if (gRhoZMgr && top) {
gRhoZMgr->DestroyElements();
gRhoZMgr->SetCenter(x[0], x[1], x[2]);
- gRhoZMgr->ImportElements(gGeomGentle);
+ gRhoZMgr->ImportElements(gGeomGentleRhoZ);
if (gShowTRD) gRhoZMgr->ImportElements(gGeomGentleTRD);
gRhoZMgr->ImportElements(top);
}
gROOT->ProcessLine("SplitGLView::UpdateSummary()");
}
-
-/******************************************************************************/
-
-TParticle* id(Int_t label=0, Bool_t showParents=kTRUE)
-{
- AliRunLoader* rl = AliEveEventManager::AssertRunLoader();
- rl->LoadKinematics();
- AliStack* stack = rl->Stack();
-
- printf("Number primaries %d, all particles %d, label %d\n",
- stack->GetNprimary(), stack->GetNtrack(), label);
- if (label < 0 || label >= stack->GetNtrack()) {
- printf(" Label exceeds available range.\n");
- return 0;
- }
-
- TParticle* part = stack->Particle(label);
- if (part != 0) {
- part->Print();
- if (showParents) {
- while (part->GetMother(0) >= 0) {
- part = stack->Particle(part->GetMother(0));
- part->Print();
- }
- }
- }
- return stack->Particle(label);
-}