//______________________________________________________________________________ void make_gui() { // Create minimal GUI for event navigation. gROOT->ProcessLine(".L SplitGLView.C+"); TEveBrowser* browser = gEve->GetBrowser(); browser->ShowCloseTab(kFALSE); browser->ExecPlugin("SplitGLView", 0, "new SplitGLView(gClient->GetRoot(), 600, 450, kTRUE)"); browser->ShowCloseTab(kTRUE); browser->StartEmbedding(TRootBrowser::kLeft); TGMainFrame* frmMain = new TGMainFrame(gClient->GetRoot(), 1000, 600); frmMain->SetWindowName("XX GUI"); frmMain->SetCleanup(kDeepCleanup); TGHorizontalFrame* hf = new TGHorizontalFrame(frmMain); { TString icondir( Form("%s/icons/", gSystem->Getenv("ROOTSYS")) ); TGPictureButton* b = 0; EvNavHandler *fh = new EvNavHandler; b = new TGPictureButton(hf, gClient->GetPicture(icondir + "GoBack.gif")); hf->AddFrame(b, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 10, 2, 10, 10)); b->Connect("Clicked()", "EvNavHandler", fh, "Bck()"); b = new TGPictureButton(hf, gClient->GetPicture(icondir + "GoForward.gif")); hf->AddFrame(b, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 2, 10, 10, 10)); b->Connect("Clicked()", "EvNavHandler", fh, "Fwd()"); gTextEntry = new TGTextEntry(hf); gTextEntry->SetEnabled(kFALSE); hf->AddFrame(gTextEntry, new TGLayoutHints(kLHintsLeft | kLHintsCenterY | kLHintsExpandX, 2, 10, 10, 10)); } frmMain->AddFrame(hf, new TGLayoutHints(kLHintsTop | kLHintsExpandX,0,0,20,0)); gProgress = new TGHProgressBar(frmMain, TGProgressBar::kFancy, 100); gProgress->ShowPosition(kTRUE, kFALSE, "%.0f tracks"); gProgress->SetBarColor("green"); frmMain->AddFrame(gProgress, new TGLayoutHints(kLHintsExpandX, 10, 10, 5, 5)); frmMain->MapSubwindows(); frmMain->Resize(); frmMain->MapWindow(); browser->StopEmbedding(); browser->SetTabTitle("Event Control", 0); }
/// Standard constructor Display::Display(TEveManager* eve) : m_eve(eve), m_lcdd(0), m_evtHandler(0), m_geoGlobal(0), m_eveGlobal(0), m_viewMenu(0), m_dd4Menu(0), m_visLevel(7), m_loadLevel(1) { TEveBrowser* br = m_eve->GetBrowser(); TGMenuBar* bar = br->GetMenuBar(); EveShapeContextMenu::install(this); EvePgonSetProjectedContextMenu::install(this); ElementListContextMenu::install(this); m_lcdd = &Geometry::LCDD::getInstance(); m_evtHandler = new GenericEventHandler(); m_evtHandler->Subscribe(this); m_lcdd->addExtension<Display>(this); br->ShowCloseTab(kFALSE); m_eve->GetViewers()->SwitchColorSet(); TFile::SetCacheFileDir("."); BuildMenus(bar); br->SetTabTitle("Global Scene",TRootBrowser::kRight,0); }
// ------------------------------------------------------------------------- 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 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); }
void raw_its_tpc_tof_vzero_pvtx(){ AliEveMacroExecutor *exec = AliEveEventManager::Instance()->GetExecutor(); exec->RemoveMacros(); TEveBrowser *browser = gEve->GetBrowser(); browser->ShowCloseTab(kFALSE); exec->AddMacro(new AliEveMacro(2, "REC PVTX", "primary_vertex.C", "primary_vertex", "", 1)); exec->AddMacro(new AliEveMacro(2, "REC PVTX Ellipse", "primary_vertex.C", "primary_vertex_ellipse", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC PVTX Box", "primary_vertex.C", "primary_vertex_box", "kFALSE, 3, 3, 3", 0)); exec->AddMacro(new AliEveMacro(2, "REC PVTX", "primary_vertex.C", "primary_vertex_spd", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC PVTX Ellipse", "primary_vertex.C", "primary_vertex_ellipse_spd", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC PVTX Box", "primary_vertex.C", "primary_vertex_box_spd", "kFALSE, 3, 3, 3", 0)); exec->AddMacro(new AliEveMacro(2, "REC PVTX", "primary_vertex.C", "primary_vertex_tpc", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC PVTX Ellipse", "primary_vertex.C", "primary_vertex_ellipse_tpc", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC PVTX Box", "primary_vertex.C", "primary_vertex_box_tpc", "kFALSE, 3, 3, 3", 0)); exec->AddMacro(new AliEveMacro(1, "REC Clus ITS", "its_clusters.C++", "its_clusters", "", 0)); exec->AddMacro(new AliEveMacro(1, "REC Clus TPC", "tpc_clusters.C++", "tpc_clusters", "", 0)); exec->AddMacro(new AliEveMacro(1, "REC Clus TRD", "trd_clusters.C++", "trd_clusters", "", 0)); exec->AddMacro(new AliEveMacro(1, "REC Clus TOF", "tof_clusters.C++", "tof_clusters", "", 0)); exec->AddMacro(new AliEveMacro(1, "REC Clus HMPID", "hmpid_clusters.C++", "hmpid_clusters", "", 0)); exec->AddMacro(new AliEveMacro(1, "REC Clus MUON", "muon_clusters.C++", "muon_clusters", "", 0)); exec->AddMacro(new AliEveMacro(1, "REC Clus TOF", "emcal_digits.C++", "emcal_digits", "", 0)); exec->AddMacro(new AliEveMacro(8, "RAW ITS", "its_raw.C", "its_raw", "", 1)); exec->AddMacro(new AliEveMacro(8, "RAW TPC", "tpc_raw.C", "tpc_raw", "", 1)); exec->AddMacro(new AliEveMacro(8, "RAW TOF", "tof_raw.C", "tof_raw", "", 1)); exec->AddMacro(new AliEveMacro(8, "RAW VZERO", "vzero_raw.C", "vzero_raw", "", 1)); exec->AddMacro(new AliEveMacro(8, "RAW ACORDE", "acorde_raw.C", "acorde_raw", "", 0)); exec->AddMacro(new AliEveMacro(8, "RAW MUON", "muon_raw.C++", "muon_raw", "", 0)); exec->AddMacro(new AliEveMacro(8, "RAW FMD", "fmd_raw.C", "fmd_raw", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC Track", "esd_tracks.C", "esd_tracks", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC Track", "esd_tracks.C", "esd_tracks_MI", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC Track", "esd_tracks.C", "esd_tracks_by_category", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC Track MUON", "esd_muon_tracks.C++", "esd_muon_tracks", "kTRUE,kFALSE", 0)); exec->AddMacro(new AliEveMacro(2, "REC FMD", "fmd_esd.C", "fmd_esd", "", 0)); exec->AddMacro(new AliEveMacro(2, "REC TRD", "trd_detectors.C++", "trd_detectors", "", 0)); TEveWindowSlot *slot = TEveWindow::CreateWindowInTab(browser->GetTabRight()); slot->StartEmbedding(); AliEveMacroExecutorWindow* exewin = new AliEveMacroExecutorWindow(exec); slot->StopEmbedding("DataSelection"); exewin->PopulateMacros(); }
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(); }