![]() |
ATLAS Offline Software
|
algorithm that marks for write data objects in SG More...
#include <AthenaOutputStream.h>
Public Types | |
| 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< 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. | |
| 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 (const EventContext &ctx) override |
| virtual StatusCode | write (const EventContext &ctx) |
| Stream the data from the event store. | |
| StatusCode | write (const EventContext &ctx, StoreGateSvc &store) |
| Stream the data from the given store. | |
| void | clearSelection () |
| Clear list of selected objects. | |
| StatusCode | collectAllObjects (const EventContext &ctx, StoreGateSvc &store) |
| 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 | compressionListHandlerHigh (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. | |
| void | compressionListHandlerLow (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. | |
| StatusCode | addItemObjects (const EventContext &, StoreGateSvc &store, 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 EventContext &ctx, 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 EventContext &ctx, 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::recursive_mutex AthenaOutputStream::mutex_t |
Definition at line 57 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 66 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 569 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 778 of file AthenaOutputStream.cxx.
| void AthenaOutputStream::clearSelection | ( | ) |
Clear list of selected objects.
Definition at line 528 of file AthenaOutputStream.cxx.
| StatusCode AthenaOutputStream::collectAllObjects | ( | const EventContext & | ctx, |
| StoreGateSvc & | store ) |
Collect data objects for output streamer list.
Definition at line 535 of file AthenaOutputStream.cxx.
|
protected |
Handler for ItemNames Property.
Definition at line 877 of file AthenaOutputStream.cxx.
|
protected |
Handler for ItemNames Property.
Definition at line 886 of file AthenaOutputStream.cxx.
|
overridevirtual |
Definition at line 404 of file AthenaOutputStream.cxx.
|
overridevirtual |
Definition at line 376 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 821 of file AthenaOutputStream.cxx.
|
overridevirtual |
Definition at line 72 of file AthenaOutputStream.cxx.
|
overridevirtual |
Definition at line 911 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 897 of file AthenaOutputStream.cxx.
|
protected |
Handler for ItemNames Property.
Definition at line 867 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 932 of file AthenaOutputStream.cxx.
|
inline |
Return the list of selected objects.
Definition at line 84 of file AthenaOutputStream.h.
|
private |
Glob-style matcher, where the only meta-character is '*'.
Definition at line 944 of file AthenaOutputStream.cxx.
|
virtual |
Stream the data from the event store.
Definition at line 440 of file AthenaOutputStream.cxx.
| StatusCode AthenaOutputStream::write | ( | const EventContext & | ctx, |
| StoreGateSvc & | store ) |
Stream the data from the given store.
Definition at line 444 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 170 of file AthenaOutputStream.h.
|
private |
Key used for recording lossy float compressed variable information to the event store.
Definition at line 219 of file AthenaOutputStream.h.
|
protected |
Number of mantissa bits in the float compression.
Definition at line 129 of file AthenaOutputStream.h.
|
protected |
Number of mantissa bits in the float compression.
Definition at line 132 of file AthenaOutputStream.h.
|
protected |
The top-level folder with items to be compressed high.
Definition at line 158 of file AthenaOutputStream.h.
|
protected |
The top-level folder with items to be compressed low.
Definition at line 161 of file AthenaOutputStream.h.
|
protected |
Vector of item names.
Definition at line 123 of file AthenaOutputStream.h.
|
protected |
Vector of item names.
Definition at line 126 of file AthenaOutputStream.h.
|
protected |
Handle to the StoreGateSvc store where the data we want to write out resides.
Definition at line 98 of file AthenaOutputStream.h.
|
protected |
Definition at line 103 of file AthenaOutputStream.h.
|
protected |
Number of events written to this output stream.
Definition at line 187 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 149 of file AthenaOutputStream.h.
|
protected |
set to true to force read of data objects in item list
Definition at line 145 of file AthenaOutputStream.h.
|
protected |
vector of AlgTools that that are executed by this stream
Definition at line 181 of file AthenaOutputStream.h.
|
protected |
Definition at line 105 of file AthenaOutputStream.h.
|
protected |
Vector of item names.
Definition at line 113 of file AthenaOutputStream.h.
|
protected |
Set to write out everything in input DataHeader.
Definition at line 152 of file AthenaOutputStream.h.
|
protected |
Provenance record selection.
Definition at line 119 of file AthenaOutputStream.h.
|
protected |
Vector of item names.
Definition at line 116 of file AthenaOutputStream.h.
|
protected |
Definition at line 99 of file AthenaOutputStream.h.
|
protected |
Handles to all the necessary services.
Definition at line 102 of file AthenaOutputStream.h.
|
protected |
mutex for this Stream write() and handle() methods
Definition at line 200 of file AthenaOutputStream.h.
|
protected |
Collection of objects being selected.
Definition at line 167 of file AthenaOutputStream.h.
|
private |
Output attributes.
Definition at line 223 of file AthenaOutputStream.h.
|
protected |
Name of the output file.
Definition at line 139 of file AthenaOutputStream.h.
|
protected |
Definition at line 107 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 175 of file AthenaOutputStream.h.
|
protected |
The top-level folder with items to be written.
Definition at line 155 of file AthenaOutputStream.h.
|
protected |
Definition at line 106 of file AthenaOutputStream.h.
|
protected |
Name of the persistency service capable to write data from the store.
Definition at line 142 of file AthenaOutputStream.h.
|
protected |
map of RangeIDs (as used by the Sequencer) for each Range filename generated
Definition at line 194 of file AthenaOutputStream.h.
|
private |
Key used for recording selected dynamic variable information to the event store.
Definition at line 214 of file AthenaOutputStream.h.
|
protected |
map of filenames assigned to active slots
Definition at line 191 of file AthenaOutputStream.h.
|
protected |
pointer to AthenaOutputStreamTool
Definition at line 178 of file AthenaOutputStream.h.
|
protected |
map of streamerTools handling event ranges in MT
Definition at line 197 of file AthenaOutputStream.h.
|
protected |
Stream name (defaults to algorithm name).
Definition at line 110 of file AthenaOutputStream.h.
|
protected |
Definition at line 104 of file AthenaOutputStream.h.
|
protected |
Decoded list of transient ids.
Definition at line 164 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 136 of file AthenaOutputStream.h.
|
protected |
Definition at line 184 of file AthenaOutputStream.h.