170 likes | 291 Views
DVEE-Seminar . G SI O nline O ffline O bject O riented. G o 4. The GO4 Event Classes. J. Adamczewski , M. Al-Turany, D. Bertini, H.G. Essel. Contents. G o 4 : Software layers and architecture G o 4 Analysis framework concepts Base classes for user event structures
E N D
DVEE-Seminar GSIOnlineOfflineObjectOriented Go4 The GO4 Event Classes J. Adamczewski, M. Al-Turany, D. Bertini, H.G. Essel Go4 - http://go4.gsi.de
Contents • Go4: Software layers and architecture • Go4Analysis framework concepts • Base classes for user event structures • Getting data from MBS and .lmd • Example: Euroball • Outlook: User analysisin Go4 GUI • Summary Go4 - http://go4.gsi.de
Go4 Analysis Go4 Event Interface Go4 Package Layers Go4 Framework User Analysis Go4 GUI Go4TaskHandler Qt Library Go4ThreadManager MBS ROOT Go4 - http://go4.gsi.de
Go4 Framework concepts • Based on standard ROOT system • Online and Offline Framework • Batch mode and interactive mode (GUI) may run same analysis • Any user analysis may be adopted Go4 provides interfaces (base classes) to „plug-in“ user event classes and analysis Go4 implements all general services Go4 - http://go4.gsi.de
Event Base classes • TGo4EventElement: Event structure (input and output event) • TGo4EventSource:Fills event structure with data • TGo4EventStore:Stores event structure • TGo4EventProcessor:Converts input event into output event; subclass of TGo4EventSource • TGo4EventFactory: Defines the user implementations of all the above at initialization Go4 - http://go4.gsi.de
Event service classes • Interface to MBS: • TGo4MbsEvent, TGo4MbsSubEvent (format 10,1) • TGo4MbsFile (read from *.lmd) • TGo4MbsEventServer • TGo4MbsStream (connect to MBS) • TGo4MbsTransport • TGo4RevServ (connect to remote event server) • Root File implementation: • TGo4FileSource, TGo4FileStore • TGo4TreeSource, TGo4TreeStore } Go4 - http://go4.gsi.de
TGo4EventElement TGo4MbsSource TGo4EventStore TGo4EventSource TGo4EventProcessor TGo4FileStore TGo4FileSource TUserEventProcessor TGo4MbsEvent TUserEvent User classes Event classes diagram Go4 - http://go4.gsi.de
Example: reading from MBS Short_t idfield[2]= {0,1}; TGo4EventElement* event = new TGo4MbsEvent(2, idfield, 1); TGo4EventSource* input=0; TGo4EventStore* output=0; //////////// MBS LISTMODE FILE input= new TGo4MbsFile("/s/adamczew/ebtest.lmd"); /////////// MBS TRANSPORT // input= new TGo4MbsTransport("r2f-2"); /////////// MBS STREAM // input= new TGo4MbsStream("r2f-2"); /////////// MBS EVENTSERVER // input= new TGo4MbsEventServer("r2f-2"); /////////// REMOTE EVENT SERVER // input= new TGo4RevServ("r2f-2"); output = new TGo4FileStore("MbsEvents",1,5); event->SetEventSource(input); for(Int_t t=0; t<maxevents; ++t) { event->Clear(); Int_t ermess=event->Fill(); //.. do something with event here // ... output->Store(event);// write to root file } Go4 - http://go4.gsi.de
Analysis framework • TGo4Analysis baseclass: • Analysis setup (chain of analysis steps) • Object organization, dynamic histograms • Implicit / explicit event loop • Virtual methods to be defined in user analysis subclass • TGo4AnalysisStep:defines one stage of the analysis, implements event classes • User designs own subclass of TGo4Analysis Go4 - http://go4.gsi.de
Previous Step TUserEvent1 TGo4EventFactory TUserEvent2 TGo4FileSource TGo4FileStore TUserEventProcessor CreateEventSource() CreateInputEvent() CreateEventProcessor() CreateOutputEvent() CreateEventStore() TUserEventFactory_1 Next Step Analysis step Go4 - http://go4.gsi.de
TGo4Analysis TGo4AnalysisStep TUserEventFactory_1 TUserEventFactory_n TGo4EventFactory TExternalAnalysis TUserAnalysis() ~TUserAnalysis() UserEventFunc() UserPreLoop() UserPostLoop() TUserAnalysis Analysis framework * register objects may use Go4 - http://go4.gsi.de
Step1 Step2 event processors event sources analysis framework event elements event store event factories Example analysis: Euroball Go4 - http://go4.gsi.de
Analysis in Go4 GUI • TGo4AnalysisClient: • runs analysis in multithreading mode • connects to a (remote) process which runs the GUI • TGo4GUI: • non-blocking, multithreading • launches analysis client as remote process • Based on Qt graphics library and ROOT Go4 - http://go4.gsi.de
Analysis in Go4 GUI Go4 - http://go4.gsi.de
Analysis in Go4 GUI Go4 - http://go4.gsi.de
connect analysis client subclassing TGo4Analysis Go4GUI Go4Analysis Go4Events Go4Analysis Steps subclassing TGo4Analysis, register objects (TTree, TH1) user event factories user event subclasses other analysis framework (HADES) Go4Event I/O (MBS, .lmd) Using Go4 components Go4 - http://go4.gsi.de
Summary • Go4 is ready for use • Event classes already under test by >5 experiments (any feedback is welcome!) • Go4 components offer different levels of integration • Go4 is flexible: external analysis (Hades) can run in multithreaded framework • Powerful Qt-GUI exists, is being improved • First official release ofGo4in spring 2002! Go4 - http://go4.gsi.de