void visscan_init(const TString& cdburi = "", const TString& path = ".", Bool_t showHLTESDTree=kFALSE, Bool_t showMuon = kTRUE, Bool_t showTrd = kFALSE) { AliEveEventManager *man = new AliEveEventManager(AliEveEventManager::kSourceOffline); if (showMuon) { if (gSystem->Getenv("ALICE_ROOT") != 0) { gInterpreter->AddIncludePath(Form("%s/MUON", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/MUON/mapping", gSystem->Getenv("ALICE_ROOT"))); } } else { gShowMuonRPhi = gShowMuonRhoZ = kFALSE; } if(cdburi.EqualTo("")) { cdburi = Form("%s/../src/OCDB/", gSystem->Getenv("ALICE_ROOT")); cout<<"\n\nsetting cdb uri:"<<cdburi<<endl; } if (cdburi.IsNull() && ! AliCDBManager::Instance()->IsDefaultStorageSet()) { gEnv->SetValue("Root.Stacktrace", "no"); Fatal("visscan_init.C", "OCDB path MUST be specified as the first argument."); } AliEveDataSourceOffline *dataSource = (AliEveDataSourceOffline*)man->GetDataSourceOffline(); gInterpreter->AddIncludePath(Form("%s/../src/MONITOR/MONITOR", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/STEER/", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/ANALYSIS/ANALYSISalice", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/STEER/STEERbase", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/STEER/ESD", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/EVE/EveBase", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/STEER/STEER", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/STEER/AOD", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/RAW/RAWdatarec", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/RAW/RAWDatabase", gSystem->Getenv("ALICE_ROOT"))); gInterpreter->AddIncludePath(Form("%s/../src/STEER/CDB", gSystem->Getenv("ALICE_ROOT"))); TEveUtil::LoadMacro("alieve_init.C+"); alieve_init(cdburi, path, -1, showHLTESDTree); man->Open(); // TEveLine::SetDefaultSmooth(1); TEveUtil::AssertMacro("VizDB_scan.C"); AliEveMacroExecutor *exec = man->GetExecutor(); TEveBrowser *browser = gEve->GetBrowser(); browser->ShowCloseTab(kFALSE); //============================================================================== // Geometry, scenes, projections and viewers //============================================================================== AliEveMultiView *mv = new AliEveMultiView; mv->SetDepth(-10); TEveUtil::LoadMacro("geom_gentle.C"); mv->InitGeomGentle(geom_gentle(), geom_gentle_rphi(), geom_gentle_rhoz(), 0); if (showTrd) { TEveUtil::LoadMacro("geom_gentle_trd.C+"); mv->InitGeomGentleTrd(geom_gentle_trd()); } if (gShowMuonRPhi || gShowMuonRhoZ) { TEveUtil::LoadMacro("geom_gentle_muon.C+"); mv->InitGeomGentleMuon(geom_gentle_muon(kFALSE), gShowMuonRPhi, gShowMuonRhoZ, kFALSE); } mv->SetDepth(0); //============================================================================== // Registration of per-event macros //============================================================================== exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Track", "kine_tracks.C", "kine_tracks", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits ITS", "its_hits.C", "its_hits", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TPC", "tpc_hits.C", "tpc_hits", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits T0", "t0_hits.C", "t0_hits", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits FMD", "fmd_hits.C", "fmd_hits", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits ACORDE", "acorde_hits.C", "acorde_hits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits EMCAL", "emcal_hits.C", "emcal_hits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TOF", "tof_hits.C", "tof_hits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits TRD", "trd_hits.C", "trd_hits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hits VZERO", "vzero_hits.C", "vzero_hits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG ITS", "its_digits.C", "its_digits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG TPC", "tpc_digits.C", "tpc_digits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG TOF", "tof_digits.C", "tof_digits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG HMPID", "hmpid_digits.C","hmpid_digits","", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG FMD", "fmd_digits.C", "fmd_digits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW ITS", "its_raw.C", "its_raw", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW TPC", "tpc_raw.C", "tpc_raw", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW TOF", "tof_raw.C", "tof_raw", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW HMPID", "hmpid_raw.C", "hmpid_raw", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW T0", "t0_raw.C", "t0_raw", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW FMD", "fmd_raw.C", "fmd_raw", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW VZERO", "vzero_raw.C", "vzero_raw", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW ACORDE", "acorde_raw.C", "acorde_raw", "", kFALSE)); /* exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX", "primary_vertex.C", "primary_vertex", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse", "primary_vertex.C", "primary_vertex_ellipse", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box", "primary_vertex.C", "primary_vertex_box", "kFALSE, 3, 3, 3", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX SPD", "primary_vertex.C", "primary_vertex_spd", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse SPD", "primary_vertex.C", "primary_vertex_ellipse_spd", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box SPD", "primary_vertex.C", "primary_vertex_box_spd", "kFALSE, 3, 3, 3", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX TPC", "primary_vertex.C", "primary_vertex_tpc", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Ellipse TPC", "primary_vertex.C", "primary_vertex_ellipse_tpc", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC PVTX Box TPC", "primary_vertex.C", "primary_vertex_box_tpc", "kFALSE, 3, 3, 3", kFALSE)); */ exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0", "esd_V0_points.C", "esd_V0_points_onfly")); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0", "esd_V0_points.C", "esd_V0_points_offline")); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC V0", "esd_V0.C", "esd_V0")); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC CSCD", "esd_cascade_points.C", "esd_cascade_points")); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC CSCD", "esd_cascade.C", "esd_cascade")); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC KINK", "esd_kink_points.C", "esd_kink_points")); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC KINK", "esd_kink.C", "esd_kink")); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks", "esd_tracks.C", "esd_tracks", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks ITS standalone", "esd_tracks.C", "esd_tracks_ITS_standalone", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks ITS", "esd_tracks.C", "esd_tracks_ITS", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks TPC", "esd_tracks.C", "esd_tracks_TPC", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks MI", "esd_tracks.C", "esd_tracks_MI", "", kFALSE)); // default appearance: // exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks by category", "esd_tracks.C", "esd_tracks_by_category", "", kTRUE)); // preset for cosmics: // exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks by category", "esd_tracks.C", "esd_tracks_by_category", "kGreen,kGreen,kGreen,kGreen,kGreen,kGreen,kGreen,kGreen,kGreen,kFALSE", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks by anal cuts", "esd_tracks.C", "esd_tracks_by_anal_cuts", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks Lego", "lego.C", "lego", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks Beams Info", "beams_info.C", "beams_info", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracklets SPD", "esd_spd_tracklets.C", "esd_spd_tracklets", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC ZDC", "esd_zdc.C", "esd_zdc", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters", "clusters.C", "clusters", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters ITS", "its_clusters.C", "its_clusters")); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TPC", "tpc_clusters.C", "tpc_clusters")); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TRD", "trd_clusters.C", "trd_clusters")); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TOF", "tof_clusters.C", "tof_clusters")); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters HMPID", "hmpid_clusters.C", "hmpid_clusters")); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters PHOS", "phos_clusters.C", "phos_clusters")); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters TPC", "vplot_tpc.C", "vplot_tpc", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kAOD, "ANA HF", "aod_HF.C", "aod_HF", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kAOD, "ANA Jets", "jetplane.C", "jetplane", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "DUMP VZERO", "vzero_dump.C", "vzero_dump", "", kFALSE)); if (showMuon) { exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM TrackRef MUON", "muon_trackRefs.C", "muon_trackRefs", "kTRUE", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRawReader, "RAW MUON", "muon_raw.C", "muon_raw", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "DIG MUON", "muon_digits.C", "muon_digits", "", kFALSE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "REC Clusters MUON", "muon_clusters.C", "muon_clusters", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "REC Tracks MUON", "esd_muon_tracks.C", "esd_muon_tracks", "kTRUE,kFALSE", kTRUE)); } exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "ESD AD", "ad_esd.C", "ad_esd", "", kTRUE)); exec->AddMacro(new AliEveMacro(AliEveMacro::kESD, "ESD EMCal", "emcal_esdclustercells.C", "emcal_esdclustercells", "", kTRUE)); //============================================================================== // Additional GUI components //============================================================================== // Macro / data selection TEveWindowSlot *slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); slot->StartEmbedding(); AliEveMacroExecutorWindow* exewin = new AliEveMacroExecutorWindow(exec); slot->StopEmbedding("DataSelection"); exewin->PopulateMacros(); // Event selection tab slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); slot->StartEmbedding(); new AliEveEventSelectorWindow(gClient->GetRoot(), 600, 400, man->GetEventSelector()); slot->StopEmbedding("Selections"); // QA viewer /* slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); slot->StartEmbedding(); new AliQAHistViewer(gClient->GetRoot(), 600, 400, kTRUE); slot->StopEmbedding("QA histograms"); browser->GetTabRight()->SetTab(1); */ browser->StartEmbedding(TRootBrowser::kBottom); new AliEveEventManagerWindow(man); browser->StopEmbedding("EventCtrl"); slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); TEveWindowTab *store_tab = slot->MakeTab(); store_tab->SetElementNameTitle("WindowStore", "Undocked windows whose previous container is not known\n" "are placed here when the main-frame is closed."); gEve->GetWindowManager()->SetDefaultContainer(store_tab); //============================================================================== // AliEve objects - global tools //============================================================================== AliEveTrackCounter* g_trkcnt = new AliEveTrackCounter("Primary Counter"); gEve->AddToListTree(g_trkcnt, kFALSE); //============================================================================== // Final stuff //============================================================================== // A refresh to show proper window. //gEve->GetViewers()->SwitchColorSet(); browser->MoveResize(0, 0, gClient->GetDisplayWidth(),gClient->GetDisplayHeight() - 32); gEve->Redraw3D(kTRUE); gSystem->ProcessEvents(); // Register command to call on each event. man->AddNewEventCommand("on_new_event();"); man->GotoEvent(0); gEve->EditElement(g_trkcnt); gEve->Redraw3D(kTRUE); //move multiview to the front browser->GetTabRight()->SetTab(1); TGLViewer *glv1 = mv->Get3DView()->GetGLViewer(); glv1->CurrentCamera().RotateRad(-0.4, 0.6); gEve->FullRedraw3D(); gSystem->ProcessEvents(); gEve->Redraw3D(kTRUE); // set autoload by default Color_t colors[9] = {kCyan,kCyan,kCyan,kRed,kRed,kRed,kGreen,kGreen,kGreen}; man->SetESDcolorsByCategory(colors); man->SetESDwidth(2); man->SetESDdashNoRefit(true); man->SetESDdrawNoRefit(true); man->SetESDtracksByCategory(false); man->SetESDtracksByType(true); man->SetAutoLoad(false); }
// ------------------------------------------------------------------------- Int_t initializeEveViewer( Bool_t showBarrel, Bool_t showMuon ) { //============================================================================= // Visualization database //============================================================================ TEveUtil::AssertMacro("VizDB_scan.C"); // alieve_vizdb(); //============================================================================== // -- Geometry, scenes, projections and viewers //============================================================================== TEveBrowser *browser = gEve->GetBrowser(); browser->ShowCloseTab(kFALSE); // -- Disable extra geometry // --------------------------- if (!showMuon) gShowMUON = gShowMUONRPhi = gShowMUONRhoZ = kFALSE; // -- Load Geometry // ------------------ TEveUtil::LoadMacro("geom_gentle_hlt.C"); gGeomGentle = geom_gentle_hlt(); gGeomGentleRPhi = geom_gentle_rphi(); gGeomGentleRPhi->IncDenyDestroy(); gGeomGentleRhoZ = geom_gentle_rhoz(); gGeomGentleRhoZ->IncDenyDestroy(); gGeomGentleTRD = geom_gentle_trd(); gGeoManager = fGeoManager; gEMCALNode = gGeoManager->GetTopVolume()->FindNode("XEN1_1"); TEveGeoTopNode* emcal_re = new TEveGeoTopNode(gGeoManager, gEMCALNode); gEve->AddGlobalElement(emcal_re); gEve->Redraw3D(); if (gShowMUON) gGeomGentleMUON = geom_gentle_muon(kFALSE); // -- Scenes // ----------- gRPhiGeomScene = gEve->SpawnNewScene("RPhi Geometry", "Scene holding projected geometry for the RPhi view."); gRhoZGeomScene = gEve->SpawnNewScene("RhoZ Geometry", "Scene holding projected geometry for the RhoZ view."); gRPhiEventScene = gEve->SpawnNewScene("RPhi Event Data", "Scene holding projected geometry for the RPhi view."); gRhoZEventScene = gEve->SpawnNewScene("RhoZ Event Data", "Scene holding projected geometry for the RhoZ view."); // -- Projection managers // ------------------------ gRPhiMgr = new TEveProjectionManager(); gRPhiMgr->SetProjection(TEveProjection::kPT_RPhi); gEve->AddToListTree(gRPhiMgr, kFALSE); { TEveProjectionAxes* a = new TEveProjectionAxes(gRPhiMgr); a->SetMainColor(kWhite); a->SetTitle("R-Phi"); a->SetTitleSize(0.05); a->SetTitleFont(102); a->SetLabelSize(0.025); a->SetLabelFont(102); gRPhiGeomScene->AddElement(a); } gRPhiMgr->SetCurrentDepth(-10); gRPhiMgr->ImportElements(gGeomGentleRPhi, gRPhiGeomScene); gRPhiMgr->SetCurrentDepth(0); gRPhiMgr->ImportElements(gGeomGentleTRD, gRPhiGeomScene); if (gShowMUONRPhi) gRPhiMgr->ImportElements(gGeomGentleMUON, gRPhiGeomScene); gRhoZMgr = new TEveProjectionManager(); gRhoZMgr->SetProjection(TEveProjection::kPT_RhoZ); gEve->AddToListTree(gRhoZMgr, kFALSE); { TEveProjectionAxes* a = new TEveProjectionAxes(gRhoZMgr); a->SetMainColor(kWhite); a->SetTitle("Rho-Z"); a->SetTitleSize(0.05); a->SetTitleFont(102); a->SetLabelSize(0.025); a->SetLabelFont(102); gRhoZGeomScene->AddElement(a); } gRhoZMgr->SetCurrentDepth(-10); gRhoZMgr->ImportElements(gGeomGentleRhoZ, gRhoZGeomScene); gRhoZMgr->SetCurrentDepth(0); gRhoZMgr->ImportElements(gGeomGentleTRD, gRhoZGeomScene); if (gShowMUONRhoZ) gRhoZMgr->ImportElements(gGeomGentleMUON, gRhoZGeomScene); // -- Viewers // ------------ TEveWindowSlot *slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); TEveWindowPack *pack = slot->MakePack(); pack->SetElementName("Multi View"); pack->SetHorizontal(); pack->SetShowTitleBar(kFALSE); pack->NewSlot()->MakeCurrent(); g3DView = gEve->SpawnNewViewer("3D View", ""); g3DView->AddScene(gEve->GetGlobalScene()); g3DView->AddScene(gEve->GetEventScene()); pack = pack->NewSlot()->MakePack(); pack->SetShowTitleBar(kFALSE); pack->NewSlot()->MakeCurrent(); gRPhiView = gEve->SpawnNewViewer("RPhi View", ""); gRPhiView->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY); gRPhiView->AddScene(gRPhiGeomScene); gRPhiView->AddScene(gRPhiEventScene); pack->NewSlot()->MakeCurrent(); gRhoZView = gEve->SpawnNewViewer("RhoZ View", ""); gRhoZView->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY); gRhoZView->AddScene(gRhoZGeomScene); gRhoZView->AddScene(gRhoZEventScene); //Add HLT Text to windows TGLOverlayButton *ob1 = new TGLOverlayButton(g3DView->GetGLViewer(), "HLT", 0, 20, 110, 60); ob1->SetAlphaValues(0.8, 0.8); // cout << "color" << ob1->GetBackColor() << endl; //ob1->SetBackColor(8421631); //ob1->SetBackColor(10492431); TGLOverlayButton *ob2 = new TGLOverlayButton(g3DView->GetGLViewer(), "ALICE", 0, 0, 110, 20); ob2->SetAlphaValues(0.8, 0.8); //ob2->SetBackColor(0.2); TGLOverlayButton *ob3 = new TGLOverlayButton(gEve->GetDefaultGLViewer(), "HLT", 0, 20, 110, 60); ob3->SetAlphaValues(0.8, 0.8); TGLOverlayButton *ob4 = new TGLOverlayButton(gEve->GetDefaultGLViewer(), "ALICE", 0, 0, 110, 20); ob4->SetAlphaValues(0.8, 0.8); TGLOverlayButton *ne = new TGLOverlayButton(gEve->GetDefaultGLViewer(), "Next Event", 110, 0, 210, 20); ne->SetAlphaValues(0.0, 0.8); // -- List of Viewers // -------------------- TEveViewerList *viewerlist = new TEveViewerList(); viewerlist->AddElement(gEve->GetDefaultViewer()); viewerlist->AddElement(g3DView); viewerlist->AddElement(gRhoZView); viewerlist->AddElement(gRPhiView); viewerlist->SwitchColorSet(); //============================================================================== // -- Macros / QA histograms //============================================================================== // -- Registration of per-event macros // ------------------------------------- AliEveMacroExecutor *exec = new AliEveMacroExecutor(); gStyle->SetPalette(1, 0); gStyle->SetOptFit(1); return 0; }
void muon_init(const TString& cdburi = "", const TString& path = ".", Bool_t showBarrel = kTRUE) { if (gSystem->Getenv("ILC_ROOT") != 0) { gInterpreter->AddIncludePath(Form("%s/MUON", gSystem->Getenv("ILC_ROOT"))); gInterpreter->AddIncludePath(Form("%s/MUON/mapping", gSystem->Getenv("ILC_ROOT"))); } if (cdburi.IsNull() && ! IlcCDBManager::Instance()->IsDefaultStorageSet()) { gEnv->SetValue("Root.Stacktrace", "no"); Fatal("muon_init.C", "OCDB path MUST be specified as the first argument."); } TEveUtil::LoadMacro("ilceve_init.C"); path.Remove(TString::kTrailing, '/'); if (path.BeginsWith("alien:")) IlcEveEventManager::SearchRawForCentralReconstruction(); ilceve_init(cdburi, path, -1); TEveUtil::AssertMacro("VizDB_scan.C"); IlcEveMacroExecutor *exec = IlcEveEventManager::GetMaster()->GetExecutor(); TEveBrowser *browser = gEve->GetBrowser(); browser->ShowCloseTab(kFALSE); //============================================================================== // Geometry, scenes, projections and viewers //============================================================================== IlcEveMultiView *mv = new IlcEveMultiView; mv->SetDepth(-10); TEveUtil::LoadMacro("geom_gentle.C"); TEveUtil::LoadMacro("geom_gentle_muon.C"); mv->InitGeomGentle(geom_gentle(), geom_gentle_rphi(), geom_gentle_rhoz(), geom_gentle_muon(kFALSE)); mv->InitGeomGentleMuon(geom_gentle_muon(kFALSE), gShowMuonRPhi, gShowMuonRhoZ, gShowMuon); mv->SetDepth(0); //============================================================================== // Registration of per-event macros //============================================================================== exec->AddMacro(new IlcEveMacro(IlcEveMacro::kRunLoader, "SIM Track","kine_tracks.C+", "kine_tracks", "", kFALSE)); exec->AddMacro(new IlcEveMacro(IlcEveMacro::kRunLoader, "SIM TrackRef","muon_trackRefs.C+","muon_trackRefs","kTRUE", kFALSE)); exec->AddMacro(new IlcEveMacro(IlcEveMacro::kRawReader, "RAW MUON", "muon_raw.C+", "muon_raw", "", kTRUE)); exec->AddMacro(new IlcEveMacro(IlcEveMacro::kRunLoader, "DIG MUON", "muon_digits.C+", "muon_digits", "", kFALSE)); exec->AddMacro(new IlcEveMacro(IlcEveMacro::kRunLoader, "CLU MUON", "muon_clusters.C+","muon_clusters","", kTRUE)); exec->AddMacro(new IlcEveMacro(IlcEveMacro::kESD, "REC Track", "esd_muon_tracks.C+", "esd_muon_tracks","kTRUE,kTRUE", kTRUE)); if (showBarrel) { exec->AddMacro(new IlcEveMacro(IlcEveMacro::kESD, "REC PVTX", "primary_vertex.C+", "primary_vertex", "", kTRUE)); exec->AddMacro(new IlcEveMacro(IlcEveMacro::kESD, "REC PVTX SPD", "primary_vertex.C+", "primary_vertex_spd", "", kTRUE)); exec->AddMacro(new IlcEveMacro(IlcEveMacro::kESD, "REC Tracks by category", "esd_tracks.C+", "esd_tracks_by_category", "", kTRUE)); } //============================================================================== // Additional GUI components //============================================================================== // Macro / data selection slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); slot->StartEmbedding(); IlcEveMacroExecutorWindow* exewin = new IlcEveMacroExecutorWindow(exec); slot->StopEmbedding("DataSelection"); exewin->PopulateMacros(); // Event selection tab slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); slot->StartEmbedding(); new IlcEveEventSelectorWindow(gClient->GetRoot(), 600, 400, IlcEveEventManager::GetMaster()->GetEventSelector()); slot->StopEmbedding("Selections"); // QA viewer slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); slot->StartEmbedding(); new IlcQAHistViewer(gClient->GetRoot(), 600, 400, kTRUE); slot->StopEmbedding("QA histograms"); browser->GetTabRight()->SetTab(1); browser->StartEmbedding(TRootBrowser::kBottom); new IlcEveEventManagerWindow(IlcEveEventManager::GetMaster()); browser->StopEmbedding("EventCtrl"); slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); TEveWindowTab *store_tab = slot->MakeTab(); store_tab->SetElementNameTitle("WindowStore", "Undocked windows whose previous container is not known\n" "are placed here when the main-frame is closed."); gEve->GetWindowManager()->SetDefaultContainer(store_tab); //============================================================================== // IlcEve objects - global tools //============================================================================== IlcEveTrackCounter* g_trkcnt = new IlcEveTrackCounter("Primary Counter"); gEve->AddToListTree(g_trkcnt, kFALSE); //============================================================================== // Final stuff //============================================================================== // A refresh to show proper window. //gEve->GetViewers()->SwitchColorSet(); gEve->Redraw3D(kTRUE); gSystem->ProcessEvents(); // Register command to call on each event. IlcEveEventManager::GetMaster()->AddNewEventCommand("on_new_event();"); IlcEveEventManager::GetMaster()->GotoEvent(0); gEve->EditElement(g_trkcnt); gEve->Redraw3D(kTRUE); // Assure 3D view rotates around the origin. gSystem->ProcessEvents(); IlcEveMultiView::Instance()->Get3DView()->GetGLViewer()->CurrentCamera().SetCenterVec(0,0,0); IlcEveMultiView::Instance()->Get3DView()->GetGLViewer()->RequestDraw(); }