DataHandles
bundle for DataHandle and DataObjectHandle
Major components: DataObjID : data object identification
DataHandle -> DataObjectHandleBase -> DataObjectHandle DataHandle: base class shared between ATLAS and Gaudi DataObjectHandleBase: base class for Handles in Gaudi, used for property manipulation and basic functionality DataObjectHandle: user class for handles, templated in type of object in store.
handles are declared in header file:
DataObjectHandle m_trackHnd;
initialized in constructor of parent Algorithm / AlgTool:
m_trackHnd("/Event/Rec/Tracks", Gaudi::DataHandle::Reader, this),
declared as Property in constructor of parent Algorithm / AlgTool:
declareProperty("tracks", m_trackHnd, "the tracks");
after this, all dependency propagation is automatic.
DataObjectHandles have the following attributes that can be set at runtime via the jobOptions: Path : string path to location in EDS, eg "/Event/RAW/tracks" Mode : int matching Gaudi::DataHandle::Mode (should probably allow string too) Optional: bool, whether the object is optional AlternativePaths: string array of alternative paths in EDS
in order to maintain uniform syntax for all handle types, the "private only" constructor for ToolHandles has been reverted. Thus:
in header:
ToolHandle m_myPrivToolHandle; ToolHandle m_myPubToolHandle;
in Algorithm constructor:
m_myPrivToolHandle("MyTool/PrivToolHandle",this), m_myPubToolHandle("MyTool/PubToolHandle"),
declareProperty("PrivToolHandle", m_myPrivToolHandle, "the private tool"); declareProperty("PubToolHandle", m_myPubToolHandle, "the public tool");
no need for separate call for declareXXXTool
Also includes updates to GaudiHive for support of DataObjID
tests and examples have been updated for new DataHandle usage