130 likes | 153 Views
StoreGate An Event Data Model for ATLAS. P. Calafiura, H. Ma, M. Marino, S. Rajagopalan, S. Snyder 19 October, 2000 ACAT 2000, Fermilab. The ATLAS Environment. Large Data Volumes (> 1 PB/year) Large globally distributed collaborative developers Long Lived projects (> 15 years)
E N D
StoreGateAn Event Data Model for ATLAS P. Calafiura, H. Ma, M. Marino, S. Rajagopalan, S. Snyder 19 October, 2000 ACAT 2000, Fermilab
The ATLAS Environment • Large Data Volumes (> 1 PB/year) • Large globally distributed collaborative developers • Long Lived projects (> 15 years) • Complex algorithms (> 2M loc) • Object Oriented Programming • Legacy software & programmers • Limited Manpower (fewer professionals) • Reliance on Commercial software • Very similar to enviroment at other collaboration(DØ, CDF, BaBar, CLEO, LHCb) • MUST take advantage of their strengths. Not reinvent the wheel. ACAT 2000, Fermilab, 19 October 2000
Converter Converter Application Manager Converter Transient Event Store Data Files Message Service Persistency Service Event Data Service JobOptions Service Algorithm Algorithm Algorithm Data Files Transient Detector Store Particle Prop. Service Persistency Service Detec. Data Service Other Services Data Files Transient Histogram Store Persistency Service Histogram Service The “Gaudi” adoption ACAT 2000, Fermilab, 19 October 2000
Analysis Hit Reconstruction Track Reconstruction Hits Digits Tracks H D T H T D T D H Transient Data Store Client Access to TDS ACAT 2000, Fermilab, 19 October 2000
The StoreGate EDM • Provides an interface to the Transient Data Store • Layer over the existing Gaudi infrastructure • Features being considered include : • Type safe access to Data Objects • DataHandles and AutoHandles • Keyed access to Data Objects • Selectors to specify retrieval requirements • Associative objects to provide Inter Object Relationships • Data Proxies for on-demand actions • Separation between Transient and Persistent mechanism ACAT 2000, Fermilab, 19 October 2000
TDS Contents • Objects inherit from common base class : DataObjects • Either Collections or single objects in TDS • Corresponding History object for each collection : • Information on how the objectwas made (Algorithms, Run time parameter conditions, etc.) • Will be able to select collections based on this information • Association Objects for marking data objects or specifying bi-directional associations • Store access policy : almost-const? ACAT 2000, Fermilab, 19 October 2000
Access to Data Objects • Type safe access to data objects in transient store. • Ability to register/retrieve objects with keys : (optional) • Keys could be client defined objects (Identifier, string, …) • Narrow selection of collections & contained objects within collections with selectors. • Code snippet: Datahandle<TrackCollection> handle(myselector); Statuscode sc = storeGateSvc() retrieveObject(handle, key); myhandle use_me(); ACAT 2000, Fermilab, 19 October 2000
DataHandles • DataHandle returns a const-pointer • Provide iterators associated with DataHandle that iterate over the contained objects in the collection • AutoHandles • Automatically updated when the DataObject it points to goes out of its validity range (run range, time interval, event scope) • Create an AutoHandle once during the job • Check on validity of DataObject when dereferenced • Load new DataObject if out of validity • May prove useful for calibration/alignment and other time dependent DataObjects • Allow client defined DataViews to access DataObjects ACAT 2000, Fermilab, 19 October 2000
Selectors Two types of client defined Selectors : • Those that operate only on Collections (TrackCollections) • No need to know about the TrackObjects that are in the collection • Those that operate over Contained Objects (TrackObjects) • for example, select on the pT of the Track candidate • Selector is passed through the DataHandle: • AutoHandle can apply the Selector if new object is loaded • Downstream user who gets passed a handle has access to Selector • Selection on Contained objects based on the selector • DataHandle.begin() and .end() will iterate only over those contained objects that pass the selector ACAT 2000, Fermilab, 19 October 2000
Store Access Policy • A strict const-access policy would be inefficient • Would force sub-algorithms to bypass TDS and pass around data objects • Almost const-access? • Each package (algorithm) has its private data store • move Data Objects into public store when completed • Locking Mechanism • Until locked, data objects can be modified • ACL list attached to Data Objects • specifies which algorithms can modify the Data Objects • Other variations possible ACAT 2000, Fermilab, 19 October 2000
Inter Object Relationships • Track is constructed from a collection of hits • must maintain a list of (smart) pointers to hits • Other Issues • Can a hit object be marked as being used? • Can a hit object point “back” to a track (bi-directional)? • Associative Objects Track Object list<TrackAssociatedObjects> Hit Object TrackAssociatedHitObject ACAT 2000, Fermilab, 19 October 2000
StoreGate DataStore updates indexes owns refers to DataHandle DataProxy DataObject DBProxy RecProxy Data Proxies • If Data Object is not in TDS, the DataProxy can perform multiple functions: • get DataObject from the Database • initiate a reconstruction on-demand • DataProxy’s specified at run time (per Data Object) • Can enforce Access control policy through DataProxy’s ACAT 2000, Fermilab, 19 October 2000
Conclusion • We have tried to take the best of the existing EDM’s : • DØ, CDF, BaBar, CLEO, LHCb • An implementation with minimal functionality is at hand. • Complete implementation in ~ year. ACAT 2000, Fermilab, 19 October 2000