1 / 17

PROOF GUI and API: How to Use PROOF for Data Analysis with Selectors

Learn how to use PROOF (Parallel ROOT Facility) for data analysis using Selectors. This guide covers topics such as using TreeViewer, Chain.Draw(), and Selectors in the PROOF GUI, as well as tips for efficient processing. Includes information on initializing slaves, processing events, and post-processing. Also covers the Session Viewer for full control over sessions, query execution, and result browsing.

kochs
Download Presentation

PROOF GUI and API: How to Use PROOF for Data Analysis with Selectors

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROOF GUI and API/Selectors Marek Biskup, CERN

  2. PROOF GUI and API/Selectors or rather: How to use PROOF Marek Biskup, CERN

  3. Outline • Data analysis with PROOF • TreeViewer • Chain.Draw() • Selectors • PROOF GUI: the SessionViewer

  4. Tree Viewer Drag and drop variables to create expressions And click the Draw button

  5. TreeViewer with PROOF The tree header is fetched from the PROOF master Works even if files are inaccessible directly PROOF Cluster Firewall Client chain.StartViewer() GetTreeHeader() Files Slaves Master

  6. Chain.Draw() chain.Draw() is a function called by the GUI for drawing chain.Draw( “nevent:nrun”, “”, “lego”); Processing done by PROOF if there is an active proof session chain.Draw( “sumetc:nevent:nrun”, “”, “col”);

  7. Basics of Selectors Entries are processed in an arbitrary order Skeleton can be generated from a Tree Only the needed data is read Selectors contain functions important for processing • Preprocessing and initialization • Processing each event • Post processing and clean-up

  8. Selectors TSelector::SlaveBegin(); TSelector::SlaveTerminate(); TSelector::Init(TTree*) TList* fInput, fOutput; PROOF input data results network network OutputList InputList InputList OutputList But life is more complicated: • Many computers to initialize and clean-up • Many trees in a chain • Input and output results should be transparently sent over network

  9. PROOF and Selectors Initialize each slave Many Trees are being processed No user’s control on the order Client Slaves Slaves The same code works also without PROOF (of course!) Slaves Slaves Client

  10. Selectors - summary • Skeletons generated from a tree • Only methods need to be filled • Simplify programs' structure • Can be used for parallel processing as well as for local analysis

  11. The Session Viewer • Allows full on-click control on everything • define a new session, choose a predefined one • submit a query, execute a command • query editor • execute macro to define a TChain or pickone up fromthe existing ones • browse directories with selectors • online monitoring of feedback histograms • browse folders with results of query • retrieve, delete, archive functionality • start viewer for fast TChain browsing

  12. Session definition and connection Predefined sessions Define a new session Session startup status Session startup progress bar

  13. Query definition Select a chain Choose TSelector Execute to create chain

  14. Query processing Processing information Feedback histograms

  15. Query browsing Tree Viewer Contents of output list Right-click Details about the query

  16. Command execution • ProcessLine functionality • interface to gProof->Exec(“<ROOT directive>”) • e.g., ls

  17. Summary • PROOF uses the same analysis methods: • TreeViewer • Chain.Draw() • Selectors • But selectors have to be written carefully with distributed processing kept in mind • SlaveBegin() and SlaveTerminate() • Input List, Output List • Session Viewer helps to organize • Sessions (local and PROOF) • Queries • Results • And monitor queries being processed

More Related