Users Guide to the GLAST TDS

 

Purpose

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.

What is 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.

What is Available

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.

How to get Objects Out

   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.

Putting objects into the TDS

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