data access in dual-use tools

8
Data Access in Dual-use Tools PC

Upload: vevina

Post on 04-Jan-2016

26 views

Category:

Documents


3 download

DESCRIPTION

Data Access in Dual-use Tools. PC. Data Access via TEvent/TStore. TEvent : combines basic functionality of StoreGate , TSelector , OutputStream TStore : transient-only data store Not sure why two very similar APIs - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Data Access in Dual-use  Tools

Data Access inDual-use Tools

PC

Page 2: Data Access in Dual-use  Tools

Data Access via TEvent/TStore

TEvent: combines basic functionality of StoreGate, TSelector, OutputStreamTStore: transient-only data store

Not sure why two very similar APIs• Objects can be shared(copied?) between the

two, allowing to save TStore objects How about merging them?

Page 3: Data Access in Dual-use  Tools

Private Stores

Use Cases:Train Carriages• One store per carriageSystematics Variations• Multiple object versions(HLT ROIs and Trigger Steps)• Event Views

• Insulate execution of Algorithms/Tools

• Slice event context• Allow both shared

and context-specific data objects

• Single context switch

Page 4: Data Access in Dual-use  Tools

Common Theme: Inverted Lookup

EventStore

Electrons Photons Muons

Escale1Up

Electrons Photons

Escale1Down

Electrons Photons

Retrieve

loo

kup

Shared

Private toEScale1Up

Page 5: Data Access in Dual-use  Tools

Design Alternatives

SG Folders:• like TDS directories (or Trigger Elements)• Reverse “find”: 1st current dir, then upContext-specific View Stores:• Shallow copy event store into context store• Record context-specific data objects

Page 6: Data Access in Dual-use  Tools

VarHandles in Dual-Use Tools?Declared and set as an AlgTool PropertyIn .hSG::RVar<EventInfo> m_r_evtInfo; SG::WVar<int> m_w_int;

In .cxxdeclareProperty("EvtInfoHandle", m_r_evtInfo, “An EventInfo read handle");

Pointer-like syntaxm_w_int = new int( m_r_evtInfo->event_number())

Prototype in athena• a cross between

DataLink and ToolHandle

• replace record/retrieve• Interface not as rich as

StoreGateSvcSoon to use in athena• how to avoid split with

dual-use tools

Page 7: Data Access in Dual-use  Tools

Status of VarHandles

Goal is to have them “tutorial-ready” for Sep(already presented in July LBL tutorial)

Focus on interface, some tuning neededo Find better name :-)o How to connect to a non-default storeo What is a valid handle? How to do if (!contains(key)) record(dobj,key)o Optimize implementation later (follow DL)

Recommend for athena at Sep C&S week

Page 8: Data Access in Dual-use  Tools

Summary

A lot remains to do for analysis data access APIs• Already some “legacy” design choices to

deal with• No overarching development thread (that I

can see)Several common themes between Analysis, HLT, Concurrency