Users Guide to the GLAST TDS |
This document will describe what's available in the GLAST Transient Data Store (TDS) in addition to describing how to get data into and out of the TDS.
The Gaudi Transient Data Store is a mechanism to share data among multiple algorithms. An algorithm may take as input any data that is currently available on the TDS and then generate new data that is then stored on the TDS for other algorithms to use. Consider it a shared memory mechanism - similar in function to FORTRAN common blocks.
No data is always available in the GLAST TDS. What is in the TDS is dependant upon what algorithms are run and what they do. There is data that pertains to Monte Carlo, raw detector data, and reconstruction data. Here is a description of the GLAST Event Model used to define the structure of our TDS.
DataObject* pnode=0; sc = eventSvc()->retrieveObject( "/Event/CalRecon", pnode ); if( sc.isFailure() ) { sc = eventSvc()->registerObject("/Event/CalRecon",new DataObject); if( sc.isFailure() ) { log << MSG::ERROR << "Could not create CalRecon directory" << endreq; return sc; } } SmartDataPtr<CalADCLogs> m_CalRawLogs(eventSvc(),"/Event/CalRecon/CalADCLogs");
Before you can get an object out of the TDS you need to make sure that the TDS subdirectory has been created.
When putting objects into the TDS it's also important that the subdirectory has been created. As above, check to see if you can retrieve the sub directory and if not create a dummy data object and register it to the TDS.
sc = eventSvc()->registerObject("/Event/CalRecon/CalRecLogs",m_CalRecLogs);
Back to GLAST Gaudi Home Back to GLAST Software Home
H. Kelly Last Modified: 2002-03-19 14:52:00 -0800