![]() |
ATLAS Offline Software
|
algorithm that marks for write data objects in SG More...
#include <AthenaOutputStream.h>
Public Types | |
| typedef std::vector< SG::DataProxy * > | Items |
| typedefs | |
| typedef std::vector< std::pair< std::string, std::string > > | TypeKeyPairs |
| typedef std::recursive_mutex | mutex_t |
Public Member Functions | |
| AthenaOutputStream (const std::string &name, ISvcLocator *pSvcLocator) | |
| Standard algorithm Constructor. | |
| virtual | ~AthenaOutputStream () |
| Standard Destructor. | |
implement IAlgorithm | |
| ServiceHandle< StoreGateSvc > | m_dataStore {this, "Store", "StoreGateSvc/StoreGateSvc", "Handle to event store"} |
Handle to the StoreGateSvc store where the data we want to write out resides. | |
| ServiceHandle< StoreGateSvc > | m_metadataStore {this, "MetadataStore", "StoreGateSvc/MetaDataStore", "Handle to metadata store"} |
| ServiceHandle< StoreGateSvc > * | m_currentStore |
| ServiceHandle< MetaDataSvc > | m_metaDataSvc {this, "MetaDataSvc", "MetaDataSvc"} |
| Handles to all the necessary services. | |
| ServiceHandle< IDictLoaderSvc > | m_dictLoader {this, "AthDictLoaderSvc", "AthDictLoaderSvc"} |
| ServiceHandle< ITPCnvSvc > | m_tpCnvSvc {this, "AthTPCnvSvc", "AthTPCnvSvc"} |
| ServiceHandle< IIncidentSvc > | m_incidentSvc {this, "IncidentSvc", "IncidentSvc"} |
| ServiceHandle< IClassIDSvc > | m_pCLIDSvc {this, "ClassIDSvc", "ClassIDSvc"} |
| ServiceHandle< OutputStreamSequencerSvc > | m_outSeqSvc {this, "OutputStreamSequencerSvc", "OutputStreamSequencerSvc"} |
| StringProperty | m_streamName {this, "StreamName", "", "Name of the output stream"} |
| Stream name (defaults to algorithm name) | |
| StringArrayProperty | m_itemList {this, "ItemList", {}, "List of items to write", "OutputStreamItemList"} |
| Vector of item names. | |
| StringArrayProperty | m_metadataItemList {this, "MetadataItemList", {}, "List of metadata items to write","OutputStreamItemList"} |
| Vector of item names. | |
| StringProperty | m_keepProvenances |
| Provenance record selection. | |
| StringArrayProperty | m_compressionListHigh {this, "CompressionListHigh", {}, "Lossy float compression list (high)"} |
| Vector of item names. | |
| StringArrayProperty | m_compressionListLow {this, "CompressionListLow", {}, "Lossy float compression list (low)"} |
| Vector of item names. | |
| UnsignedIntegerProperty | m_compressionBitsHigh {this, "CompressionBitsHigh", 7, "Lossy float compression bits (high)"} |
| Number of mantissa bits in the float compression. | |
| UnsignedIntegerProperty | m_compressionBitsLow {this, "CompressionBitsLow", 15, "Lossy float compression bits (low)"} |
| Number of mantissa bits in the float compression. | |
| StringArrayProperty | m_transientItems {this, "TransientItems", {}, "Transient item list"} |
| List of items that are known to be present in the transient store (and hence we can make input dependencies on them). | |
| StringProperty | m_outputName {this, "OutputFile", "DidNotNameOutput.root", "Name of the output file"} |
| Name of the output file. | |
| StringProperty | m_persName {this, "EvtConversionSvc", "EventPersistencySvc", "Name of the persistency service writing data"} |
| Name of the persistency service capable to write data from the store. | |
| BooleanProperty | m_forceRead {this, "ForceRead", true, "Force read data objects in ItemList"} |
| set to true to force read of data objects in item list | |
| BooleanProperty | m_extendProvenanceRecord {this, "ExtendProvenanceRecord", true, "Extend provenance record"} |
| Set to false to omit adding the current DataHeader into the DataHeader history This will cause the input file to be neglected for back navigation (replace mode). | |
| BooleanProperty | m_itemListFromTool {this, "TakeItemsFromInput", false, "Write everything in input DataHeader to output"} |
| Set to write out everything in input DataHeader. | |
| ToolHandle< SG::IFolder > | m_p2BWritten |
| The top-level folder with items to be written. | |
| ToolHandle< SG::IFolder > | m_compressionDecoderHigh |
| The top-level folder with items to be compressed high. | |
| ToolHandle< SG::IFolder > | m_compressionDecoderLow |
| The top-level folder with items to be compressed low. | |
| ToolHandle< SG::IFolder > | m_transient |
| Decoded list of transient ids. | |
| std::multimap< CLID, std::string > | m_CLIDKeyPairs |
| Map of (clid,key) pairs to be excluded (comes from m_excludeList) | |
| IDataSelector | m_objects |
| Collection of objects being selected. | |
| IDataSelector | m_altObjects |
| Objects overridden by ‘exact’ handling. | |
| std::vector< std::unique_ptr< DataObject > > | m_ownedObjects |
| Collection of DataObject instances owned by this service. | |
| ToolHandle< IAthenaOutputStreamTool > | m_streamer |
| pointer to AthenaOutputStreamTool | |
| ToolHandleArray< IAthenaOutputTool > | m_helperTools {this, "HelperTools", {}, "List of AlgTools used by this stream"} |
| vector of AlgTools that that are executed by this stream | |
| bool | m_writeMetadataAndDisconnect {false} |
| std::atomic< int > | m_events {0} |
| Number of events written to this output stream. | |
| std::map< unsigned, std::string > | m_slotRangeMap |
| map of filenames assigned to active slots | |
| std::map< std::string, std::string > | m_rangeIDforRangeFN |
| map of RangeIDs (as used by the Sequencer) for each Range filename generated | |
| std::map< std::string, std::unique_ptr< IAthenaOutputStreamTool > > | m_streamerMap |
| map of streamerTools handling event ranges in MT | |
| mutex_t | m_mutex |
| mutex for this Stream write() and handle() methods | |
| SG::WriteHandleKey< SG::SelectionVetoes > | m_selVetoesKey { this, "SelVetoesKey", "" } |
| Key used for recording selected dynamic variable information to the event store. | |
| SG::WriteHandleKey< SG::CompressionInfo > | m_compInfoKey { this, "CompInfoKey", "" } |
| Key used for recording lossy float compressed variable information to the event store. | |
| std::string | m_outputAttributes |
| Output attributes. | |
| virtual StatusCode | initialize () override |
| virtual StatusCode | finalize () override |
| virtual StatusCode | execute () override |
| virtual StatusCode | write () |
| Stream the data. | |
| void | clearSelection () |
| Clear list of selected objects. | |
| StatusCode | collectAllObjects () |
| Collect data objects for output streamer list. | |
| IDataSelector * | selectedObjects () |
| Return the list of selected objects. | |
| virtual void | handle (const Incident &incident) override |
| Incident service handle listening for MetaDataStop. | |
| virtual StatusCode | io_reinit () override |
Callback method to reinitialize the internal state of the component for I/O purposes (e.g. upon fork(2)) | |
| virtual StatusCode | io_finalize () override |
| void | itemListHandler (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. | |
| void | excludeListHandler (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. | |
| void | compressionListHandlerHigh (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. | |
| void | compressionListHandlerLow (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. | |
| StatusCode | addItemObjects (const SG::FolderItem &, SG::SelectionVetoes &vetoes, SG::CompressionInfo &compInfo) |
| Add item data objects to output streamer list. | |
| void | handleVariableSelection (const SG::IConstAuxStore &auxstore, SG::DataProxy &itemProxy, const std::string &aux_attr, SG::SelectionVetoes &vetoes) const |
| Here we build the vetoed AuxIDs. | |
| void | writeMetaData (const std::string &outputFN="") |
| Write MetaData for this stream (by default) or for a substream outputFN (in ES mode) | |
| std::set< std::string > | buildCompressionSet (const ToolHandle< SG::IFolder > &handle, const CLID &item_id, const std::string &item_key) const |
| Helper function for building the compression lists. | |
| void | finalizeRange (const std::string &rangeFN) |
| void | loadDict (CLID clid) |
| Helper function to load dictionaries (both transient and persistent) for a given type. | |
| bool | simpleMatch (const std::string &pattern, const std::string &text) |
| Glob-style matcher, where the only meta-character is '*'. | |
algorithm that marks for write data objects in SG
Definition at line 53 of file AthenaOutputStream.h.
| typedef std::vector<SG::DataProxy*> AthenaOutputStream::Items |
typedefs
Definition at line 58 of file AthenaOutputStream.h.
| typedef std::recursive_mutex AthenaOutputStream::mutex_t |
Definition at line 60 of file AthenaOutputStream.h.
| typedef std::vector<std::pair<std::string, std::string> > AthenaOutputStream::TypeKeyPairs |
Definition at line 59 of file AthenaOutputStream.h.
| AthenaOutputStream::AthenaOutputStream | ( | const std::string & | name, |
| ISvcLocator * | pSvcLocator ) |
Standard algorithm Constructor.
Definition at line 43 of file AthenaOutputStream.cxx.
|
virtual |
Standard Destructor.
Definition at line 67 of file AthenaOutputStream.cxx.
|
private |
Add item data objects to output streamer list.
Handle variable selections. Both variable selection and lossy float compression are limited to event data for the time being
Definition at line 567 of file AthenaOutputStream.cxx.
|
private |
Helper function for building the compression lists.
Here we build the list of attributes for the float compression CompressionList follows the same logic as the ItemList We find the matching keys, read the string after "Aux.", tokenize by "." and build an std::set of these to be communicated to ThinningInfo elsewhere in the code.
Definition at line 774 of file AthenaOutputStream.cxx.
| void AthenaOutputStream::clearSelection | ( | ) |
Clear list of selected objects.
Definition at line 526 of file AthenaOutputStream.cxx.
| StatusCode AthenaOutputStream::collectAllObjects | ( | ) |
Collect data objects for output streamer list.
Definition at line 533 of file AthenaOutputStream.cxx.
|
protected |
Handler for ItemNames Property.
Definition at line 873 of file AthenaOutputStream.cxx.
|
protected |
Handler for ItemNames Property.
Definition at line 882 of file AthenaOutputStream.cxx.
|
protected |
|
overridevirtual |
Definition at line 406 of file AthenaOutputStream.cxx.
|
overridevirtual |
Definition at line 378 of file AthenaOutputStream.cxx.
|
private |
Definition at line 298 of file AthenaOutputStream.cxx.
|
overridevirtual |
Incident service handle listening for MetaDataStop.
Definition at line 223 of file AthenaOutputStream.cxx.
|
private |
Here we build the vetoed AuxIDs.
Definition at line 817 of file AthenaOutputStream.cxx.
|
overridevirtual |
Definition at line 73 of file AthenaOutputStream.cxx.
|
overridevirtual |
Definition at line 907 of file AthenaOutputStream.cxx.
|
overridevirtual |
Callback method to reinitialize the internal state of the component for I/O purposes (e.g. upon fork(2))
Definition at line 893 of file AthenaOutputStream.cxx.
|
protected |
Handler for ItemNames Property.
Definition at line 863 of file AthenaOutputStream.cxx.
|
private |
Helper function to load dictionaries (both transient and persistent) for a given type.
We want to to this explicitly during initialization to avoid sporadic failures seen loading dictionaries while multiple threads are running. See ATEAM-697 and ATEAM-749.
Definition at line 928 of file AthenaOutputStream.cxx.
|
inline |
Return the list of selected objects.
Definition at line 85 of file AthenaOutputStream.h.
|
private |
Glob-style matcher, where the only meta-character is '*'.
Definition at line 940 of file AthenaOutputStream.cxx.
|
virtual |
Stream the data.
Definition at line 442 of file AthenaOutputStream.cxx.
|
private |
Write MetaData for this stream (by default) or for a substream outputFN (in ES mode)
Definition at line 318 of file AthenaOutputStream.cxx.
|
protected |
Objects overridden by ‘exact’ handling.
Definition at line 175 of file AthenaOutputStream.h.
|
protected |
Map of (clid,key) pairs to be excluded (comes from m_excludeList)
Definition at line 169 of file AthenaOutputStream.h.
|
private |
Key used for recording lossy float compressed variable information to the event store.
Definition at line 227 of file AthenaOutputStream.h.
|
protected |
Number of mantissa bits in the float compression.
Definition at line 131 of file AthenaOutputStream.h.
|
protected |
Number of mantissa bits in the float compression.
Definition at line 134 of file AthenaOutputStream.h.
|
protected |
The top-level folder with items to be compressed high.
Definition at line 160 of file AthenaOutputStream.h.
|
protected |
The top-level folder with items to be compressed low.
Definition at line 163 of file AthenaOutputStream.h.
|
protected |
Vector of item names.
Definition at line 125 of file AthenaOutputStream.h.
|
protected |
Vector of item names.
Definition at line 128 of file AthenaOutputStream.h.
|
protected |
Definition at line 101 of file AthenaOutputStream.h.
|
protected |
Handle to the StoreGateSvc store where the data we want to write out resides.
Definition at line 99 of file AthenaOutputStream.h.
|
protected |
Definition at line 105 of file AthenaOutputStream.h.
|
protected |
Number of events written to this output stream.
Definition at line 192 of file AthenaOutputStream.h.
|
protected |
Set to false to omit adding the current DataHeader into the DataHeader history This will cause the input file to be neglected for back navigation (replace mode).
Definition at line 151 of file AthenaOutputStream.h.
|
protected |
set to true to force read of data objects in item list
Definition at line 147 of file AthenaOutputStream.h.
|
protected |
vector of AlgTools that that are executed by this stream
Definition at line 186 of file AthenaOutputStream.h.
|
protected |
Definition at line 107 of file AthenaOutputStream.h.
|
protected |
Vector of item names.
Definition at line 115 of file AthenaOutputStream.h.
|
protected |
Set to write out everything in input DataHeader.
Definition at line 154 of file AthenaOutputStream.h.
|
protected |
Provenance record selection.
Definition at line 121 of file AthenaOutputStream.h.
|
protected |
Vector of item names.
Definition at line 118 of file AthenaOutputStream.h.
|
protected |
Definition at line 100 of file AthenaOutputStream.h.
|
protected |
Handles to all the necessary services.
Definition at line 104 of file AthenaOutputStream.h.
|
protected |
mutex for this Stream write() and handle() methods
Definition at line 205 of file AthenaOutputStream.h.
|
protected |
Collection of objects being selected.
Definition at line 172 of file AthenaOutputStream.h.
|
private |
Output attributes.
Definition at line 231 of file AthenaOutputStream.h.
|
protected |
Name of the output file.
Definition at line 141 of file AthenaOutputStream.h.
|
protected |
Definition at line 109 of file AthenaOutputStream.h.
|
protected |
Collection of DataObject instances owned by this service.
FIXME: it would be simpler to just have m_objects be a vector of DataObjectSharedPtr<DataObject>, but that implies interface changes.
Definition at line 180 of file AthenaOutputStream.h.
|
protected |
The top-level folder with items to be written.
Definition at line 157 of file AthenaOutputStream.h.
|
protected |
Definition at line 108 of file AthenaOutputStream.h.
|
protected |
Name of the persistency service capable to write data from the store.
Definition at line 144 of file AthenaOutputStream.h.
|
protected |
map of RangeIDs (as used by the Sequencer) for each Range filename generated
Definition at line 199 of file AthenaOutputStream.h.
|
private |
Key used for recording selected dynamic variable information to the event store.
Definition at line 222 of file AthenaOutputStream.h.
|
protected |
map of filenames assigned to active slots
Definition at line 196 of file AthenaOutputStream.h.
|
protected |
pointer to AthenaOutputStreamTool
Definition at line 183 of file AthenaOutputStream.h.
|
protected |
map of streamerTools handling event ranges in MT
Definition at line 202 of file AthenaOutputStream.h.
|
protected |
Stream name (defaults to algorithm name)
Definition at line 112 of file AthenaOutputStream.h.
|
protected |
Definition at line 106 of file AthenaOutputStream.h.
|
protected |
Decoded list of transient ids.
Definition at line 166 of file AthenaOutputStream.h.
|
protected |
List of items that are known to be present in the transient store (and hence we can make input dependencies on them).
Definition at line 138 of file AthenaOutputStream.h.
|
protected |
Definition at line 189 of file AthenaOutputStream.h.