 |
ATLAS Offline Software
|
this class is OBSOLETE. Use AthenaOutputStream with writeOnExecute=false and writeOnFinalize=true instead. out stream specialized for condition data. Write data at finalize only
More...
#include <AthenaConditionStream.h>
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | write () |
| Stream the data. More...
|
|
void | clearSelection () |
| Clear list of selected objects. More...
|
|
StatusCode | collectAllObjects () |
| Collect data objects for output streamer list. More...
|
|
IDataSelector * | selectedObjects () |
| Return the list of selected objects. More...
|
|
virtual void | handle (const Incident &incident) override |
| Incident service handle listening for MetaDataStop. More...
|
|
virtual StatusCode | io_reinit () override |
| Callback method to reinitialize the internal state of the component for I/O purposes (e.g. upon fork(2) ) More...
|
|
virtual StatusCode | io_finalize () override |
|
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. More...
|
|
ServiceHandle< StoreGateSvc > | m_metadataStore {this, "MetadataStore", "StoreGateSvc/MetaDataStore", "Handle to metadata store"} |
|
ServiceHandle< StoreGateSvc > * | m_currentStore |
|
ServiceHandle< IItemListSvc > | m_itemSvc {this, "ItemListSvc", "ItemListSvc"} |
| Handles to all the necessary services. More...
|
|
ServiceHandle< MetaDataSvc > | m_metaDataSvc {this, "MetaDataSvc", "MetaDataSvc"} |
|
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) More...
|
|
StringArrayProperty | m_itemList {this, "ItemList", {}, "List of items to write", "OutputStreamItemList"} |
| Vector of item names. More...
|
|
StringArrayProperty | m_metadataItemList {this, "MetadataItemList", {}, "List of metadata items to write","OutputStreamItemList"} |
| Vector of item names. More...
|
|
StringProperty | m_keepProvenances |
| Provenance record selection. More...
|
|
StringArrayProperty | m_compressionListHigh {this, "CompressionListHigh", {}, "Lossy float compression list (high)"} |
| Vector of item names. More...
|
|
StringArrayProperty | m_compressionListLow {this, "CompressionListLow", {}, "Lossy float compression list (low)"} |
| Vector of item names. More...
|
|
UnsignedIntegerProperty | m_compressionBitsHigh {this, "CompressionBitsHigh", 7, "Lossy float compression bits (high)"} |
| Number of mantissa bits in the float compression. More...
|
|
UnsignedIntegerProperty | m_compressionBitsLow {this, "CompressionBitsLow", 15, "Lossy float compression bits (low)"} |
| Number of mantissa bits in the float compression. More...
|
|
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). More...
|
|
StringProperty | m_outputName {this, "OutputFile", "DidNotNameOutput.root", "Name of the output file"} |
| Name of the output file. More...
|
|
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. More...
|
|
BooleanProperty | m_forceRead {this, "ForceRead", true, "Force read data objects in ItemList"} |
| set to true to force read of data objects in item list More...
|
|
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). More...
|
|
BooleanProperty | m_itemListFromTool {this, "TakeItemsFromInput", false, "Write everything in input DataHeader to output"} |
| Set to write out everything in input DataHeader. More...
|
|
ToolHandle< SG::IFolder > | m_p2BWritten |
| The top-level folder with items to be written. More...
|
|
ToolHandle< SG::IFolder > | m_compressionDecoderHigh |
| The top-level folder with items to be compressed high. More...
|
|
ToolHandle< SG::IFolder > | m_compressionDecoderLow |
| The top-level folder with items to be compressed low. More...
|
|
ToolHandle< SG::IFolder > | m_transient |
| Decoded list of transient ids. More...
|
|
std::multimap< CLID, std::string > | m_CLIDKeyPairs |
| Map of (clid,key) pairs to be excluded (comes from m_excludeList) More...
|
|
IDataSelector | m_objects |
| Collection of objects being selected. More...
|
|
IDataSelector | m_altObjects |
| Objects overridden by ‘exact’ handling. More...
|
|
std::vector< std::unique_ptr< DataObject > > | m_ownedObjects |
| Collection of DataObject instances owned by this service. More...
|
|
ToolHandle< IAthenaOutputStreamTool > | m_streamer |
| pointer to AthenaOutputStreamTool More...
|
|
ToolHandleArray< IAthenaOutputTool > | m_helperTools {this, "HelperTools", {}, "List of AlgTools used by this stream"} |
| vector of AlgTools that that are executed by this stream More...
|
|
bool | m_writeMetadataAndDisconnect {false} |
|
std::atomic< int > | m_events {0} |
| Number of events written to this output stream. More...
|
|
std::map< unsigned, std::string > | m_slotRangeMap |
| map of filenames assigned to active slots More...
|
|
std::map< std::string, std::string > | m_rangeIDforRangeFN |
| map of RangeIDs (as used by the Sequencer) for each Range filename generated More...
|
|
std::map< std::string, std::unique_ptr< IAthenaOutputStreamTool > > | m_streamerMap |
| map of streamerTools handling event ranges in MT More...
|
|
mutex_t | m_mutex |
| mutex for this Stream write() and handle() methods More...
|
|
SG::WriteHandleKey< SG::SelectionVetoes > | m_selVetoesKey { this, "SelVetoesKey", "" } |
| Key used for recording selected dynamic variable information to the event store. More...
|
|
SG::WriteHandleKey< SG::CompressionInfo > | m_compInfoKey { this, "CompInfoKey", "" } |
| Key used for recording lossy float compressed variable information to the event store. More...
|
|
std::string | m_outputAttributes |
| Output attributes. More...
|
|
void | itemListHandler (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. More...
|
|
void | excludeListHandler (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. More...
|
|
void | compressionListHandlerHigh (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. More...
|
|
void | compressionListHandlerLow (Gaudi::Details::PropertyBase &) |
| Handler for ItemNames Property. More...
|
|
StatusCode | addItemObjects (const SG::FolderItem &, SG::SelectionVetoes &vetoes, SG::CompressionInfo &compInfo) |
| Add item data objects to output streamer list. More...
|
|
void | handleVariableSelection (const SG::IConstAuxStore &auxstore, SG::DataProxy &itemProxy, const std::string &tns, const std::string &aux_attr, SG::SelectionVetoes &vetoes) const |
| Here we build the vetoed AuxIDs. More...
|
|
void | writeMetaData (const std::string &outputFN="") |
| Write MetaData for this stream (by default) or for a substream outputFN (in ES mode) More...
|
|
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. More...
|
|
void | finalizeRange (const std::string &rangeFN) |
|
void | loadDict (CLID clid) |
| Helper function to load dictionaries (both transient and persistent) for a given type. More...
|
|
bool | simpleMatch (const std::string &pattern, const std::string &text) |
| Glob-style matcher, where the only meta-character is '*'. More...
|
|
this class is OBSOLETE. Use AthenaOutputStream with writeOnExecute=false and writeOnFinalize=true instead. out stream specialized for condition data. Write data at finalize only
- Author
- srini.nosp@m.r@bn.nosp@m.l.gov
- Id
- AthenaConditionStream.h,v 1.2 2008-09-24 18:36:04 binet Exp
Definition at line 21 of file AthenaConditionStream.h.
◆ Items
◆ mutex_t
◆ TypeKeyPairs
◆ AthenaConditionStream()
AthenaConditionStream::AthenaConditionStream |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~AthenaConditionStream()
AthenaConditionStream::~AthenaConditionStream |
( |
| ) |
|
|
virtual |
◆ addItemObjects()
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 564 of file AthenaOutputStream.cxx.
569 size_t dotpos =
item.key().find(
'.');
570 std::string item_key, aux_attr;
571 if( dotpos != std::string::npos ) {
572 item_key =
item.key().substr(0, dotpos+1);
573 aux_attr =
item.key().substr(dotpos+1);
575 item_key =
item.key();
580 if( aux_attr.size() ) {
587 std::map< unsigned int, std::set< std::string > > comp_attr_map;
592 for(
const auto&
it : comp_attr_map ) {
594 if (
it.second.size() > 0 ) {
595 for(
const auto& attr :
it.second ) {
605 bool gotProxies =
false;
608 if (
match !=
nullptr) {
609 map.insert({item_key,
match});
615 if (!gotProxies && ((*m_currentStore)->proxyRange(remapped_item_id,
iter,
end)).isSuccess()) {
619 bool added =
false, removed =
false;
623 std::string proxyName = itemProxy->name();
630 bool keyMatch = ( item_key ==
"*" ||
631 item_key == proxyName ||
632 itemProxy->hasAlias(item_key) );
639 proxyName, item_key, keyMatch));
644 bool xkeyMatch =
false;
652 if (keyMatch && !xkeyMatch) {
654 if (
nullptr == itemProxy->accessData()) {
658 if (
nullptr != itemProxy->object()) {
662 if( item_id != remapped_item_id ) {
669 auto altbucket = std::make_unique<AltDataBucket>(
677 return StatusCode::FAILURE;
679 }
else if (
item.exact()) {
683 if (!dbb) std::abort();
684 void*
ptr = dbb->
cast (item_id);
690 std::make_unique<AltDataBucket>
699 m_objects.push_back(itemProxy->object());
705 std::stringstream tns;
706 if (!
m_pCLIDSvc->getTypeNameOfID(item_id, tn).isSuccess()) {
708 tns << item_id <<
'_' << proxyName;
710 tn +=
'_' + proxyName;
738 std::string
key = item_key;
739 key.erase (
key.size()-4, 4);
746 for(
const auto&
it :
compression.getCompressedAuxIDs( allVars ) ) {
747 if(
it.second.size() > 0 ) {
748 compInfo[
key ][
it.first ] =
it.second;
750 "lossy float compressed with {} mantissa bits",
751 key,
it.second.size(),
it.first));
759 if (
m_itemSvc->addStreamItem(this->name(),tns.str()).isFailure()) {
763 }
else if (keyMatch && xkeyMatch) {
767 if (!added && !removed) {
769 }
else if (removed) {
777 return StatusCode::SUCCESS;
◆ buildCompressionSet()
std::set< std::string > AthenaOutputStream::buildCompressionSet |
( |
const ToolHandle< SG::IFolder > & |
handle, |
|
|
const CLID & |
item_id, |
|
|
const std::string & |
item_key |
|
) |
| const |
|
privateinherited |
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 786 of file AthenaOutputStream.cxx.
791 std::set<std::string>
result;
794 if(item_key.find(
"Aux.") == std::string::npos) {
801 if (
iter.id() != item_id) {
805 size_t seppos =
iter.key().find(
'.');
806 std::string comp_item_key{
""}, comp_str{
""};
807 if(seppos != std::string::npos) {
808 comp_item_key =
iter.key().substr(0, seppos+1);
809 comp_str =
iter.key().substr(seppos+1);
811 comp_item_key =
iter.key();
815 if (!comp_str.empty() && comp_item_key == item_key) {
816 std::stringstream
ss(comp_str);
818 while( std::getline(
ss, attr,
'.') ) {
◆ clearSelection()
void AthenaOutputStream::clearSelection |
( |
| ) |
|
|
inherited |
◆ collectAllObjects()
StatusCode AthenaOutputStream::collectAllObjects |
( |
| ) |
|
|
inherited |
Collect data objects for output streamer list.
Definition at line 530 of file AthenaOutputStream.cxx.
533 ATH_MSG_WARNING(
"collectAllObjects() could not get ItemList from Tool.");
538 auto vetoes = std::make_unique<SG::SelectionVetoes>();
540 auto compInfo = std::make_unique<SG::CompressionInfo>();
549 if (!vetoes->empty()) {
554 if (!compInfo->empty()) {
558 return StatusCode::SUCCESS;
◆ compressionListHandlerHigh()
void AthenaOutputStream::compressionListHandlerHigh |
( |
Gaudi::Details::PropertyBase & |
| ) |
|
|
protectedinherited |
◆ compressionListHandlerLow()
void AthenaOutputStream::compressionListHandlerLow |
( |
Gaudi::Details::PropertyBase & |
| ) |
|
|
protectedinherited |
◆ excludeListHandler()
void AthenaOutputStream::excludeListHandler |
( |
Gaudi::Details::PropertyBase & |
| ) |
|
|
protectedinherited |
◆ execute()
StatusCode AthenaConditionStream::execute |
( |
| ) |
|
|
virtual |
◆ finalize()
StatusCode AthenaConditionStream::finalize |
( |
| ) |
|
|
virtual |
◆ finalizeRange()
void AthenaOutputStream::finalizeRange |
( |
const std::string & |
rangeFN | ) |
|
|
privateinherited |
Definition at line 299 of file AthenaOutputStream.cxx.
310 strm_iter->second->finalizeOutput().ignore();
311 strm_iter->second->finalize().ignore();
◆ handle()
void AthenaOutputStream::handle |
( |
const Incident & |
incident | ) |
|
|
overridevirtualinherited |
Incident service handle listening for MetaDataStop.
Definition at line 224 of file AthenaOutputStream.cxx.
230 if( inc.type() ==
"MetaDataStop" ) {
251 EventContext::ContextID_t slot = inc.context().slot();
252 if( slot == EventContext::INVALID_CONTEXT_ID ) {
253 throw GaudiException(
"Received Incident with invalid slot in ES mode",
name(), StatusCode::FAILURE);
255 auto count_events_in_range = [&](
const std::string&
range) {
257 [&](
auto&
el){return el.second == range;} );
259 if( inc.type() == IncidentType::BeginProcessing ) {
264 if( !rangeFN.empty() and rangeFN != newRangeFN ) {
270 if( count_events_in_range(rangeFN) == 1 ) {
279 else if( inc.type() == IncidentType::EndProcessing ) {
288 if( count_events_in_range(rangeFN) == 1 ) {
◆ handleVariableSelection()
Here we build the vetoed AuxIDs.
Definition at line 829 of file AthenaOutputStream.cxx.
837 if( aux_attr.size() ) {
838 std::stringstream
ss(aux_attr);
840 while( std::getline(
ss, attr,
'.') ) {
842 std::stringstream temp;
844 if (
m_itemSvc->addStreamItem(this->name(),temp.str()).isFailure()) {
855 std::string
key = itemProxy.
name();
856 if (
key.size() >= 4 &&
key.compare (
key.size()-4, 4,
"Aux.")==0)
858 key.erase (
key.size()-4, 4);
874 if ( !selected.
test( auxid ) ) {
◆ initialize()
StatusCode AthenaOutputStream::initialize |
( |
| ) |
|
|
overridevirtualinherited |
Definition at line 73 of file AthenaOutputStream.cxx.
123 IProperty *pAsIProp =
dynamic_cast<IProperty*
> (&*
m_transient);
126 return StatusCode::FAILURE;
134 const std::string&
k =
item.key();
135 if (
k.find(
'*') != std::string::npos)
continue;
136 if (
k.find(
'.') != std::string::npos)
continue;
138 if (titem.id() ==
item.id() && titem.key() ==
k) {
150 IProperty *pAsIProp =
dynamic_cast<IProperty*
> (&*
m_transient);
153 return StatusCode::FAILURE;
169 m_incidentSvc->addListener(
this, IncidentType::BeginProcessing, 95);
170 m_incidentSvc->addListener(
this, IncidentType::EndProcessing, 95);
175 if(m_compressionBitsHigh < 5 || m_compressionBitsHigh > 23) {
177 "({}) is outside the allowed range of [5, 23].",
182 if(m_compressionBitsLow < 5 || m_compressionBitsLow > 23) {
184 "({}) is outside the allowed range of [5, 23].",
191 "({}) is lower than or equal to high compression "
192 "({})! Please check the configuration! ",
195 return StatusCode::FAILURE;
198 ATH_MSG_VERBOSE(
"Both high and low float compression lists are empty. Float compression will NOT be applied.");
200 ATH_MSG_INFO(
"Either high or low (or both) float compression lists are defined. Float compression will be applied.");
202 "low compression will use {} mantissa bits.",
220 return StatusCode::SUCCESS;
◆ io_finalize()
StatusCode AthenaOutputStream::io_finalize |
( |
| ) |
|
|
overridevirtualinherited |
Definition at line 925 of file AthenaOutputStream.cxx.
928 if (!
tool->preFinalize().isSuccess()) {
932 const Incident metaDataStopIncident(
name(),
"MetaDataStop");
933 this->
handle(metaDataStopIncident);
938 return StatusCode::SUCCESS;
◆ io_reinit()
StatusCode AthenaOutputStream::io_reinit |
( |
| ) |
|
|
overridevirtualinherited |
Callback method to reinitialize the internal state of the component for I/O purposes (e.g. upon fork(2)
)
Definition at line 911 of file AthenaOutputStream.cxx.
916 if (!
tool->postInitialize().isSuccess()) {
920 return StatusCode::SUCCESS;
◆ itemListHandler()
void AthenaOutputStream::itemListHandler |
( |
Gaudi::Details::PropertyBase & |
| ) |
|
|
protectedinherited |
Handler for ItemNames Property.
Definition at line 881 of file AthenaOutputStream.cxx.
883 IProperty *pAsIProp(
nullptr);
885 nullptr == (pAsIProp =
dynamic_cast<IProperty*
>(&*
m_p2BWritten)) ||
886 (pAsIProp->setProperty(
m_itemList)).isFailure()) {
887 throw GaudiException(
"Folder property [itemList] not found",
name(), StatusCode::FAILURE);
◆ loadDict()
void AthenaOutputStream::loadDict |
( |
CLID |
clid | ) |
|
|
privateinherited |
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 946 of file AthenaOutputStream.cxx.
951 std::unique_ptr<ITPCnvBase> tpcnv =
m_tpCnvSvc->t2p_cnv_unique (clid);
◆ selectedObjects()
IDataSelector* AthenaOutputStream::selectedObjects |
( |
| ) |
|
|
inlineinherited |
◆ simpleMatch()
bool AthenaOutputStream::simpleMatch |
( |
const std::string & |
pattern, |
|
|
const std::string & |
text |
|
) |
| |
|
privateinherited |
Glob-style matcher, where the only meta-character is '*'.
Definition at line 958 of file AthenaOutputStream.cxx.
960 size_t pi = 0, ti = 0, star = std::string::npos,
match = 0;
961 while (ti <
text.size()) {
965 }
else if (star != std::string::npos) {
◆ write()
StatusCode AthenaOutputStream::write |
( |
| ) |
|
|
virtualinherited |
Stream the data.
Definition at line 443 of file AthenaOutputStream.cxx.
460 IProperty *mstreamer_props =
dynamic_cast<IProperty*
> (&*
m_streamer);
461 IProperty *streamer_props =
dynamic_cast<IProperty*
> (&*streamer);
462 for (
const auto& prop : mstreamer_props->getProperties() ) {
463 ATH_CHECK( streamer_props->setProperty( *prop ) );
465 if( !streamer or streamer->initialize().isFailure()
468 return StatusCode::FAILURE;
482 std::vector<std::unique_ptr<DataObject> > ownedObjects = std::move(
m_ownedObjects );
497 return StatusCode::FAILURE;
502 if (!currentStatus.isSuccess()) {
503 if (!currentStatus.isRecoverable()) {
510 bool doCommit =
false;
516 return(StatusCode::FAILURE);
519 return(StatusCode::SUCCESS);
◆ writeMetaData()
void AthenaOutputStream::writeMetaData |
( |
const std::string & |
outputFN = "" | ) |
|
|
privateinherited |
Write MetaData for this stream (by default) or for a substream outputFN (in ES mode)
Definition at line 319 of file AthenaOutputStream.cxx.
325 if (!
tool->preFinalize().isSuccess()) {
326 throw GaudiException(
"Cannot finalize helper tool",
name(), StatusCode::FAILURE);
330 throw GaudiException(
"Failed on MetaDataSvc prepareOutput",
name(), StatusCode::FAILURE);
338 size_t pos = DHFWriteIncidentfileName.find(
':');
339 if(
pos != std::string::npos ) DHFWriteIncidentfileName = DHFWriteIncidentfileName.substr(
pos+1);
340 FileIncident incident(
name(),
"WriteDataHeaderForms", DHFWriteIncidentfileName);
348 throw GaudiException(
"Unable to connect metadata services",
name(), StatusCode::FAILURE);
350 m_outputAttributes =
"[OutputCollection=MetaDataHdr][PoolContainerPrefix=MetaData][AttributeListKey=]";
352 IProperty *pAsIProp(
nullptr);
354 nullptr == (pAsIProp =
dynamic_cast<IProperty*
>(&*
m_p2BWritten)) ||
356 throw GaudiException(
"Folder property [metadataItemList] not found",
name(), StatusCode::FAILURE);
358 if (
write().isFailure()) {
359 throw GaudiException(
"Cannot write metadata",
name(), StatusCode::FAILURE);
368 throw GaudiException(
"Unable to re-connect services",
name(), StatusCode::FAILURE);
371 if ((pAsIProp->setProperty(
m_itemList)).isFailure()) {
372 throw GaudiException(
"Folder property [itemList] not found",
name(), StatusCode::FAILURE);
◆ m_altObjects
IDataSelector AthenaOutputStream::m_altObjects |
|
protectedinherited |
◆ m_CLIDKeyPairs
std::multimap<CLID,std::string> AthenaOutputStream::m_CLIDKeyPairs |
|
protectedinherited |
Map of (clid,key) pairs to be excluded (comes from m_excludeList)
Definition at line 171 of file AthenaOutputStream.h.
◆ m_compInfoKey
Key used for recording lossy float compressed variable information to the event store.
Definition at line 229 of file AthenaOutputStream.h.
◆ m_compressionBitsHigh
UnsignedIntegerProperty AthenaOutputStream::m_compressionBitsHigh {this, "CompressionBitsHigh", 7, "Lossy float compression bits (high)"} |
|
protectedinherited |
◆ m_compressionBitsLow
UnsignedIntegerProperty AthenaOutputStream::m_compressionBitsLow {this, "CompressionBitsLow", 15, "Lossy float compression bits (low)"} |
|
protectedinherited |
◆ m_compressionDecoderHigh
ToolHandle<SG::IFolder> AthenaOutputStream::m_compressionDecoderHigh |
|
protectedinherited |
◆ m_compressionDecoderLow
ToolHandle<SG::IFolder> AthenaOutputStream::m_compressionDecoderLow |
|
protectedinherited |
◆ m_compressionListHigh
StringArrayProperty AthenaOutputStream::m_compressionListHigh {this, "CompressionListHigh", {}, "Lossy float compression list (high)"} |
|
protectedinherited |
◆ m_compressionListLow
StringArrayProperty AthenaOutputStream::m_compressionListLow {this, "CompressionListLow", {}, "Lossy float compression list (low)"} |
|
protectedinherited |
◆ m_currentStore
◆ m_dataStore
◆ m_dictLoader
◆ m_events
std::atomic<int> AthenaOutputStream::m_events {0} |
|
protectedinherited |
◆ m_extendProvenanceRecord
BooleanProperty AthenaOutputStream::m_extendProvenanceRecord {this, "ExtendProvenanceRecord", true, "Extend provenance record"} |
|
protectedinherited |
◆ m_forceRead
BooleanProperty AthenaOutputStream::m_forceRead {this, "ForceRead", true, "Force read data objects in ItemList"} |
|
protectedinherited |
◆ m_helperTools
ToolHandleArray<IAthenaOutputTool> AthenaOutputStream::m_helperTools {this, "HelperTools", {}, "List of AlgTools used by this stream"} |
|
protectedinherited |
◆ m_incidentSvc
ServiceHandle<IIncidentSvc> AthenaOutputStream::m_incidentSvc {this, "IncidentSvc", "IncidentSvc"} |
|
protectedinherited |
◆ m_itemList
StringArrayProperty AthenaOutputStream::m_itemList {this, "ItemList", {}, "List of items to write", "OutputStreamItemList"} |
|
protectedinherited |
◆ m_itemListFromTool
BooleanProperty AthenaOutputStream::m_itemListFromTool {this, "TakeItemsFromInput", false, "Write everything in input DataHeader to output"} |
|
protectedinherited |
◆ m_itemSvc
◆ m_keepProvenances
StringProperty AthenaOutputStream::m_keepProvenances |
|
protectedinherited |
Initial value:{this, "KeepProvenanceTagsRegEx", {".*"},
"RegEx pattern to select processing tags for which DataHeader should retain provenances"}
Provenance record selection.
Definition at line 123 of file AthenaOutputStream.h.
◆ m_metadataItemList
StringArrayProperty AthenaOutputStream::m_metadataItemList {this, "MetadataItemList", {}, "List of metadata items to write","OutputStreamItemList"} |
|
protectedinherited |
◆ m_metadataStore
◆ m_metaDataSvc
◆ m_mutex
mutex_t AthenaOutputStream::m_mutex |
|
protectedinherited |
◆ m_objects
IDataSelector AthenaOutputStream::m_objects |
|
protectedinherited |
◆ m_outputAttributes
std::string AthenaOutputStream::m_outputAttributes |
|
privateinherited |
◆ m_outputName
StringProperty AthenaOutputStream::m_outputName {this, "OutputFile", "DidNotNameOutput.root", "Name of the output file"} |
|
protectedinherited |
◆ m_outSeqSvc
◆ m_ownedObjects
std::vector<std::unique_ptr<DataObject> > AthenaOutputStream::m_ownedObjects |
|
protectedinherited |
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 182 of file AthenaOutputStream.h.
◆ m_p2BWritten
ToolHandle<SG::IFolder> AthenaOutputStream::m_p2BWritten |
|
protectedinherited |
◆ m_pCLIDSvc
◆ m_persName
StringProperty AthenaOutputStream::m_persName {this, "EvtConversionSvc", "EventPersistencySvc", "Name of the persistency service writing data"} |
|
protectedinherited |
Name of the persistency service capable to write data from the store.
Definition at line 146 of file AthenaOutputStream.h.
◆ m_rangeIDforRangeFN
std::map< std::string, std::string > AthenaOutputStream::m_rangeIDforRangeFN |
|
protectedinherited |
◆ m_selVetoesKey
Key used for recording selected dynamic variable information to the event store.
Definition at line 224 of file AthenaOutputStream.h.
◆ m_slotRangeMap
std::map< unsigned, std::string > AthenaOutputStream::m_slotRangeMap |
|
protectedinherited |
◆ m_streamer
◆ m_streamerMap
◆ m_streamName
StringProperty AthenaOutputStream::m_streamName {this, "StreamName", "", "Name of the output stream"} |
|
protectedinherited |
◆ m_tpCnvSvc
◆ m_transient
ToolHandle<SG::IFolder> AthenaOutputStream::m_transient |
|
protectedinherited |
◆ m_transientItems
StringArrayProperty AthenaOutputStream::m_transientItems {this, "TransientItems", {}, "Transient item list"} |
|
protectedinherited |
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 140 of file AthenaOutputStream.h.
◆ m_writeMetadataAndDisconnect
bool AthenaOutputStream::m_writeMetadataAndDisconnect {false} |
|
protectedinherited |
The documentation for this class was generated from the following files:
std::map< std::string, std::string > m_rangeIDforRangeFN
map of RangeIDs (as used by the Sequencer) for each Range filename generated
void writeMetaData(const std::string &outputFN="")
Write MetaData for this stream (by default) or for a substream outputFN (in ES mode)
std::string m_outputAttributes
Output attributes.
constexpr char AUX_POSTFIX[]
Common post-fix for the names of auxiliary containers in StoreGate.
std::string find(const std::string &s)
return a remapped string
StatusCode addItemObjects(const SG::FolderItem &, SG::SelectionVetoes &vetoes, SG::CompressionInfo &compInfo)
Add item data objects to output streamer list.
A non-templated base class for DataBucket, allows to access the transient object address as a void*.
bool isTransientKey(const std::string &key)
Test to see if a key is transoent.
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
StringArrayProperty m_itemList
Vector of item names.
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.
ServiceHandle< StoreGateSvc > m_dataStore
Handle to the StoreGateSvc store where the data we want to write out resides.
StringArrayProperty m_compressionListLow
Vector of item names.
virtual void * object()=0
static const std::type_info * CLIDToTypeinfo(CLID clid)
Translate between CLID and type_info.
BooleanProperty m_forceRead
set to true to force read of data objects in item list
void loadDict(CLID clid)
Helper function to load dictionaries (both transient and persistent) for a given type.
#define ATH_MSG_VERBOSE(x)
virtual StatusCode initialize()
T * cast(SG::IRegisterTransient *irt=0, bool isConst=true)
Return the contents of the DataBucket, converted to type T.
StringArrayProperty m_transientItems
List of items that are known to be present in the transient store (and hence we can make input depend...
IDataSelector m_objects
Collection of objects being selected.
StringArrayProperty m_metadataItemList
Vector of item names.
ServiceHandle< StoreGateSvc > * m_currentStore
std::map< std::string, DataProxy * > ProxyMap
StatusCode collectAllObjects()
Collect data objects for output streamer list.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
StringArrayProperty m_compressionListHigh
Vector of item names.
ToolHandle< IAthenaOutputStreamTool > m_streamer
pointer to AthenaOutputStreamTool
ServiceHandle< OutputStreamSequencerSvc > m_outSeqSvc
size_t auxid_t
Identifier for a particular aux data item.
AthenaOutputStream(const std::string &name, ISvcLocator *pSvcLocator)
Standard algorithm Constructor.
UnsignedIntegerProperty m_compressionBitsHigh
Number of mantissa bits in the float compression.
ServiceHandle< IItemListSvc > m_itemSvc
Handles to all the necessary services.
ConcurrentBitset & insert(bit_t bit, bit_t new_nbits=0)
Set a bit to 1.
std::map< unsigned, std::string > m_slotRangeMap
map of filenames assigned to active slots
::StatusCode StatusCode
StatusCode definition for legacy code.
StringProperty m_outputName
Name of the output file.
Default, invalid implementation of ClassID_traits.
ToolHandleArray< IAthenaOutputTool > m_helperTools
vector of AlgTools that that are executed by this stream
std::vector< std::unique_ptr< DataObject > > m_ownedObjects
Collection of DataObject instances owned by this service.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
void handleVariableSelection(const SG::IConstAuxStore &auxstore, SG::DataProxy &itemProxy, const std::string &tns, const std::string &aux_attr, SG::SelectionVetoes &vetoes) const
Here we build the vetoed AuxIDs.
uint32_t CLID
The Class ID type.
StringProperty m_persName
Name of the persistency service capable to write data from the store.
bool m_writeMetadataAndDisconnect
BooleanProperty m_extendProvenanceRecord
Set to false to omit adding the current DataHeader into the DataHeader history This will cause the in...
BooleanProperty m_itemListFromTool
Set to write out everything in input DataHeader.
ToolHandle< SG::IFolder > m_transient
Decoded list of transient ids.
void finalizeRange(const std::string &rangeFN)
ServiceHandle< IIncidentSvc > m_incidentSvc
Class helping in dealing with dynamic branch selection.
ServiceHandle< StoreGateSvc > m_metadataStore
virtual StatusCode io_reinit() override
Callback method to reinitialize the internal state of the component for I/O purposes (e....
ServiceHandle< ITPCnvSvc > m_tpCnvSvc
virtual const name_type & name() const override final
Retrieve data object key == string.
StringProperty m_streamName
Stream name (defaults to algorithm name)
UnsignedIntegerProperty m_compressionBitsLow
Number of mantissa bits in the float compression.
IDataSelector m_altObjects
Objects overridden by ‘exact’ handling.
ServiceHandle< IDictLoaderSvc > m_dictLoader
ServiceHandle< MetaDataSvc > m_metaDataSvc
std::atomic< int > m_events
Number of events written to this output stream.
bool simpleMatch(const std::string &pattern, const std::string &text)
Glob-style matcher, where the only meta-character is '*'.
ToolHandle< SG::IFolder > m_compressionDecoderHigh
The top-level folder with items to be compressed high.
mutex_t m_mutex
mutex for this Stream write() and handle() methods
#define ATH_MSG_WARNING(x)
virtual const std::type_info & persistentTInfo() const =0
return C++ type id of the persistent class this converter is for
virtual StatusCode execute() override
std::map< std::string, std::unique_ptr< IAthenaOutputStreamTool > > m_streamerMap
map of streamerTools handling event ranges in MT
A set of aux data identifiers.
virtual StatusCode write()
Stream the data.
ServiceHandle< IClassIDSvc > m_pCLIDSvc
SG::WriteHandleKey< SG::SelectionVetoes > m_selVetoesKey
Key used for recording selected dynamic variable information to the event store.
Interface for const operations on an auxiliary store.
a Folder item (data object) is identified by the clid/key pair
virtual const SG::auxid_set_t & getAuxIDs() const =0
Return a set of identifiers for existing data items in this store.
ProxyMap::const_iterator ConstProxyIterator
bool match(std::string s1, std::string s2)
match the individual directories of two strings
virtual void handle(const Incident &incident) override
Incident service handle listening for MetaDataStop.
ToolHandle< SG::IFolder > m_p2BWritten
The top-level folder with items to be written.
void clearSelection()
Clear list of selected objects.
ToolHandle< SG::IFolder > m_compressionDecoderLow
The top-level folder with items to be compressed low.
bool test(bit_t bit) const
Test to see if a bit is set.
SG::WriteHandleKey< SG::CompressionInfo > m_compInfoKey
Key used for recording lossy float compressed variable information to the event store.