220 likes | 243 Views
G. O. 4. Version 5.0. A ROOT based online and offline analysis environment. J.Adamczewski-Musch , S.Linev. ROOT 2015, Saas-Fee. Outline. History: “Go4 turns 16” Review: Go4 features - as told at ROOT workshops New V5.0: Go4 with/for ROOT THttpServer & JSROOT Summary.
E N D
G O 4 Version 5.0 A ROOT based online and offline analysis environment J.Adamczewski-Musch, S.Linev ROOT 2015, Saas-Fee Go4 v5 - http://go4.gsi.de
Outline History: “Go4 turns 16” Review: Go4 features - as told at ROOT workshops New V5.0: Go4 with/for ROOT THttpServer & JSROOT Summary Go4 v5 - http://go4.gsi.de
ROOTturns 20 - Go4 turns 16 • Development start: April 1999 - GSI hires 2 postdocs forGSI Object Oriented Online Offline (Go4) project aim: successor of GOOSY (VMS), analysis of MBS DAQ data • Go4 v.1.0 May 2002 - first complete version: analysis framework, Qt-ROOT GUI, inter-task communication • Go4 v.2.0 November 2002 - first public production release • Go4 v.3.0 December 2005 - analysis server, GUI redesign • Go4 v.4.0 February 2008 - Qt4 • Go4 v.5.0 June 2015 :Qt5, ROOT6, THttpServer, JSROOT/jQuery UI GUI Go4 developers: JörnAdamczewski-Musch, Mohammad Al-Turany, Denis Bertini, Hans.G.Essel, Marc Hemberger, Sergey Linev Go4 v5 - http://go4.gsi.de
Go4 at ROOT workshops February 2004 February 2000 October 2002 June 2001 September 2005 Go4 v5 - http://go4.gsi.de
Go4 is based on ROOT ROOT 2002 libThread QtROOT GSI Go4 v5 - http://go4.gsi.de
Go4 analysisplug-ins ROOT 2004 • User analysisconfiguration: • genericbatchmodearguments • interactiveset-upfromgeneric GUI Go4 v5 - http://go4.gsi.de
Go4 GUI ROOT 2000 ROOT 2002 ROOT 2005 • ROOT objectmonitoring • interactivecontrolandconfiguration=> elaborate GUI required! • decidedforQtgraphicslibrary(with GUI designertool), • embed ROOT graphicswithQtROOTinterface Go4 v5 - http://go4.gsi.de
Separate analysis and GUI processes ROOT 2000 ROOT 2005 • GUI must not beblockedbyanalysis, mayrun on remote node • Inter-task communicationby„transport“ layer: • Go4 taskhandler (TThread, TSocket, ROOT streamer) • other? -> ROOT THttpServer(Go4 V5) Go4 v5 - http://go4.gsi.de
Go4 GUI process ROOT process Go4 GUI any analysis QHTTP Proxy THttpServer gROOT Object manager Go4 V5 with ROOT THttpServer and client Go4 analysis process ANALYSIS loop THttpServer Object manager Web browser Go4 web GUI JSROOT HTTP requestsObjects jQuery UI please see THttpServer and JSROOT presentations by B. Bellenot and S. Linev Go4 v5 - http://go4.gsi.de
Go4 V5 with ROOT http server and client • optionallyusegeneric ROOT THttpServerin Go4 analysisprocess(pleaseseeTHttpServerpresentationby S. Linev) • any web browsermaydisplayandcontrol Go4 objects • JavaScript ROOT GUI extendedbyGo4 specific GUI (jQuery UI) • Go4 Qt GUI cancommunicatewithGo4 analysis via http serverwith (almost) fullfunctionality • Fasterstart-upof http serverconnectionthan Go4 taskhandler, lessresourceconsumption! • Go4 Qt GUI can also displayobjectsfromany ROOT THttpServer-> betterperformancethanbrowserwith JavaScript ROOT display Go4 v5 - http://go4.gsi.de
Go4 V5 - web GUI any web browser! Go4 specificelements JSROOT environment Go4 v5 - http://go4.gsi.de
Go4specific GUI elements (1) Analysis configuration editor • enable/disable „analysis steps“ • select event input (MBS online, MBS file, ROOT TTree, user plug-in) • select event stores (ROOT TTree) • specifiy histogram/object store (ROOT TFile) • specify default setup (ROOT TFile) Go4 v5 - http://go4.gsi.de
Analysis configuration editor (Qt4) Step selection Event input Event output Object persistency Apply and Refresh Load/save config Go4 v5 - http://go4.gsi.de
Analysis configuration editor (jQuery UI) Go4 v5 - http://go4.gsi.de
Go4specific GUI elements (2) Analysis configurationeditor • enable/disable „analysissteps“ • selecteventinput (MBS online, MBS file, ROOT TTree, userplug-in) • selecteventstores (ROOT TTree) • specifiyhistogram/objectstore (ROOT TFile) • specifydefaultsetup (ROOT TFile) Conditiondisplayandeditor TGo4Condition: checksifvalue x / point (x,y) isinside a 1D/2D region • conditiontypes: window, polygon (TCutG), ellipse, circle, box • manipulateconditionlimitsandoperationmodes • drawconditiontogetherwithcorresponding TH1/TH2 Go4 v5 - http://go4.gsi.de
Condition editor (Qt 4) condition display in TH2 refresh, apply, save tabs for different condition properties display, clear boundary shape parameters test modes Go4 v5 - http://go4.gsi.de
Condition editor (jQuery UI) Go4 v5 - http://go4.gsi.de
Go4specific GUI elements (3) Analysis configurationeditor • enable/disable „analysissteps“ • selecteventinput (MBS online, MBS file, ROOT TTree, userplug-in) • selecteventstores (ROOT TTree) • specifiyhistogram/objectstore (ROOT TFile) • specifydefaultsetup (ROOT TFile) Conditiondisplayandeditor TGo4Condition: checksifvalue x / point (x,y) isinside a 1D/2D region • conditiontypes: window, polygon (TCutG), ellipse, circle, box • manipulateconditionlimitsandoperationmodes • drawconditiontogetherwithcorresponding TH1/TH2 Parameter editor TGo4Parameter: usersubclass (plug-in) keepsparameter variables • changevaluesof fundamental ROOT data type members • support C arraysofthose (1D,2D,3D) • showdatamembercomments/explanations Go4 v5 - http://go4.gsi.de
Parameter class example #include"TGo4Parameter.h" #include"TArrayI.h" classTXXXParameter: publicTGo4Parameter { public: TXXXParameter(constchar* name = 0); virtual ~TXXXParameter() {} Float_tfrP1; // Offset forcalibration Float_tfrP2; // FactorforCalibration Bool_tfbHisto; // EnableHistogramming TArrayIfArr; // exampleofusageofTArray in theparameter Int_tfArr2[3][4]; // exampleof 2d arrayusage Int_tfArr3[3][4][5]; // exampleof 3d arrayusage (worksonlywithbrowser) ClassDef(TXXXParameter,2) }; Go4 v5 - http://go4.gsi.de
Parameter editor (Qt 4) class member name value to edit user-defined explanation array compressed array expanded refresh, apply, save Go4 v5 - http://go4.gsi.de
Parameter editor (jQuery UI) Go4 v5 - http://go4.gsi.de
Summary • Go4 “turns 16”: has continuously being improved together with ROOT • Go4 is still alive and in action (~50 various users): • atomic/nuclear/plasma physics analysis • detector tests monitoring • frontend electronics characterization • New Go4 version 5 introduces THttpServer and jQuery UI GUI: • Go4 analysis can be controlled by any (?) web browser • Go4 Qt GUI can visualize Go4 analysis and any THttpServer • Custom GUI elements can be added to JSROOT default GUI(take Go4 configuration/condition/parameter editors as example) • Go4 v5.0 is available under GPL at http://go4.gsi.de Go4 v5 - http://go4.gsi.de