 |
ATLAS Offline Software
|
This class is the EventSelector for event data.
More...
#include <EventSelectorAthenaPool.h>
|
| | EventSelectorAthenaPool (const std::string &name, ISvcLocator *pSvcLocator) |
| | Standard Service Constructor. More...
|
| |
| virtual | ~EventSelectorAthenaPool () |
| | Destructor. More...
|
| |
| virtual StatusCode | initialize () override |
| | Required of all Gaudi Services. More...
|
| |
| virtual StatusCode | start () override |
| |
| virtual StatusCode | stop () override |
| |
| virtual StatusCode | finalize () override |
| |
| virtual StatusCode | createContext (IEvtSelector::Context *&ctxt) const override |
| | create context More...
|
| |
| virtual StatusCode | next (IEvtSelector::Context &ctxt) const override |
| |
| virtual StatusCode | next (IEvtSelector::Context &ctxt, int jump) const override |
| |
| virtual StatusCode | previous (IEvtSelector::Context &ctxt) const override |
| |
| virtual StatusCode | previous (IEvtSelector::Context &ctxt, int jump) const override |
| |
| virtual StatusCode | last (IEvtSelector::Context &ctxt) const override |
| |
| virtual StatusCode | rewind (IEvtSelector::Context &ctxt) const override |
| |
| virtual StatusCode | createAddress (const IEvtSelector::Context &ctxt, IOpaqueAddress *&iop) const override |
| |
| virtual StatusCode | releaseContext (IEvtSelector::Context *&ctxt) const override |
| |
| virtual StatusCode | resetCriteria (const std::string &criteria, IEvtSelector::Context &ctxt) const override |
| | Set a selection criteria. More...
|
| |
| virtual StatusCode | seek (Context &ctxt, int evtnum) const override |
| | Seek to a given event number. More...
|
| |
| virtual int | curEvent (const Context &ctxt) const override |
| | Return the current event number. More...
|
| |
| virtual int | size (Context &ctxt) const override |
| | Return the size of the collection. More...
|
| |
| virtual StatusCode | makeServer (int num) override |
| | Make this a server. More...
|
| |
| virtual StatusCode | makeClient (int num) override |
| | Make this a client. More...
|
| |
| virtual StatusCode | share (int evtnum) override |
| | Request to share a given event number. More...
|
| |
| virtual StatusCode | readEvent (int maxevt) override |
| | Read the next maxevt events. 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 |
| | Callback method to finalize the internal state of the component for I/O purposes (e.g. before fork(2)) More...
|
| |
| virtual void | handle (const Incident &incident) override |
| | Incident service handle listening for BeginProcessing and EndProcessing. More...
|
| |
|
| EventContextAthenaPool * | m_endIter {} |
| |
| std::unique_ptr< PoolCollectionConverter > m_poolCollectionConverter | ATLAS_THREAD_SAFE {} |
| |
| pool::ICollectionCursor *m_headerIterator | ATLAS_THREAD_SAFE {} |
| |
| Guid m_guid | ATLAS_THREAD_SAFE {} |
| |
| std::map< SG::SourceID, int > m_activeEventsPerSource | ATLAS_THREAD_SAFE |
| |
| ServiceHandle< IAthenaPoolCnvSvc > | m_athenaPoolCnvSvc {this, "ConversionService", "AthenaPoolCnvSvc", ""} |
| |
| ServiceHandle< IIncidentSvc > | m_incidentSvc {this, "IncidentSvc", "IncidentSvc", ""} |
| |
| Gaudi::Property< bool > | m_isSecondary {this, "IsSecondary", false, ""} |
| | IsSecondary, know if this is an instance of secondary event selector. More...
|
| |
| Gaudi::Property< bool > | m_processMetadata {this, "ProcessMetadata", true, ""} |
| | ProcessMetadata, switch on firing of FileIncidents which will trigger processing of metadata: default = true. More...
|
| |
| Gaudi::Property< std::string > | m_collectionType {this, "CollectionType", "ImplicitCollection", ""} |
| | CollectionType, type of the collection: default = "ImplicitCollection". More...
|
| |
| Gaudi::Property< std::string > | m_collectionTree {this, "CollectionTree", APRDefaults::TTreeNames::DataHeader, ""} |
| | CollectionTree, prefix of the collection TTree: default = "POOLContainer". More...
|
| |
| Gaudi::Property< std::string > | m_connection {this, "Connection", "", ""} |
| | Connection, connection string. More...
|
| |
| Gaudi::Property< std::string > | m_attrListKey {this, "AttributeListKey", "Input", ""} |
| | AttributeList SG key. More...
|
| |
| Gaudi::Property< std::vector< std::string > > | m_inputCollectionsProp {this, "InputCollections", {}, ""} |
| | InputCollections, vector with names of the input collections. More...
|
| |
| std::vector< std::string >::const_iterator m_inputCollectionsIterator | ATLAS_THREAD_SAFE |
| |
| bool m_inputCollectionsChanged | ATLAS_THREAD_SAFE |
| | flag to notify the EvSel that the inputs were changed and reinit() needs to be called ASAP More...
|
| |
| Gaudi::Property< bool > | m_keepInputFilesOpen {this, "KeepInputFilesOpen", false, ""} |
| | KeepInputFilesOpen, boolean flag to keep files open after PoolCollection reaches end: default = false. More...
|
| |
| ToolHandleArray< IAthenaSelectorTool > m_helperTools | ATLAS_THREAD_SAFE {this, "HelperTools", {}, ""} |
| | HelperTools, vector of names of AlgTools that are executed by the EventSelector. More...
|
| |
| ToolHandle< IAthenaSelectorTool > | m_counterTool {this, "CounterTool", "", ""} |
| |
| ToolHandle< IAthenaIPCTool > | m_eventStreamingTool {this, "SharedMemoryTool", "", ""} |
| |
| Gaudi::Property< int > | m_makeStreamingToolClient {this,"MakeStreamingToolClient",0} |
| | Make this instance a Streaming Client during first iteration automatically. More...
|
| |
| Gaudi::CheckedProperty< uint32_t > | m_runNo {this, "RunNumber", 0, ""} |
| | The following are included for compatibility with McEventSelector and are not really used. More...
|
| |
| Gaudi::CheckedProperty< uint32_t > | m_oldRunNo {this, "OldRunNumber", 0, ""} |
| |
| Gaudi::Property< bool > | m_overrideRunNumber {this, "OverrideRunNumber", false, ""} |
| |
| Gaudi::Property< bool > | m_overrideRunNumberFromInput {this, "OverrideRunNumberFromInput", false, ""} |
| |
| Gaudi::CheckedProperty< uint64_t > | m_firstEventNo {this, "FirstEvent", 1, ""} |
| |
| Gaudi::CheckedProperty< uint64_t > | m_eventsPerRun {this, "EventsPerRun", 1000000, ""} |
| |
| Gaudi::CheckedProperty< uint32_t > | m_firstLBNo {this, "FirstLB", 0, ""} |
| |
| Gaudi::CheckedProperty< uint32_t > | m_eventsPerLB {this, "EventsPerLB", 1000, ""} |
| |
| Gaudi::CheckedProperty< uint32_t > | m_initTimeStamp {this, "InitialTimeStamp", 0, ""} |
| |
| Gaudi::Property< uint32_t > | m_timeStampInterval {this, "TimeStampInterval", 0, ""} |
| |
| std::atomic_long | m_curCollection {} |
| |
| std::vector< int > m_numEvt | ATLAS_THREAD_SAFE |
| |
| std::vector< int > m_firstEvt | ATLAS_THREAD_SAFE |
| |
| Gaudi::Property< int > | m_skipEvents {this, "SkipEvents", 0, ""} |
| | SkipEvents, numbers of events to skip: default = 0. More...
|
| |
| Gaudi::Property< std::vector< long > > | m_skipEventSequenceProp {this, "SkipEventSequence", {}, ""} |
| |
| Gaudi::Property< std::string > | m_skipEventRangesProp {this, "SkipEventRanges", {}, ""} |
| | Skip Events - comma separated list of event to skip, ranges with '-': <start> - <end> More...
|
| |
| std::vector< std::pair< long, long > > m_skipEventRanges | ATLAS_THREAD_SAFE |
| |
| std::atomic_int | m_evtCount {} |
| |
| std::atomic_bool | m_firedIncident {} |
| |
| CallMutex | m_callLock |
| |
| SG::SlotSpecificObj< SG::SourceID > | m_sourceID |
| |
This class is the EventSelector for event data.
Definition at line 49 of file EventSelectorAthenaPool.h.
◆ CallMutex
◆ EventSelectorAthenaPool()
| EventSelectorAthenaPool::EventSelectorAthenaPool |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~EventSelectorAthenaPool()
| EventSelectorAthenaPool::~EventSelectorAthenaPool |
( |
| ) |
|
|
virtual |
◆ createAddress()
| StatusCode EventSelectorAthenaPool::createAddress |
( |
const IEvtSelector::Context & |
ctxt, |
|
|
IOpaqueAddress *& |
iop |
|
) |
| const |
|
overridevirtual |
- Parameters
-
| ctxt | [IN] current event context. |
| iop | [OUT] pointer to IOpaqueAddress reference of selection context. |
Definition at line 705 of file EventSelectorAthenaPool.cxx.
707 std::string tokenStr;
709 if (attrList.isValid()) {
711 tokenStr = (*attrList)[
"eventRef"].data<std::string>();
712 ATH_MSG_DEBUG(
"found AthenaAttribute, name = eventRef = " << tokenStr);
715 return StatusCode::FAILURE;
719 tokenStr = m_headerIterator->eventRef().toString();
721 auto token = std::make_unique<Token>();
722 token->fromString(tokenStr);
724 return StatusCode::SUCCESS;
◆ createContext()
| StatusCode EventSelectorAthenaPool::createContext |
( |
IEvtSelector::Context *& |
ctxt | ) |
const |
|
overridevirtual |
◆ curEvent()
| int EventSelectorAthenaPool::curEvent |
( |
const Context & |
ctxt | ) |
const |
|
overridevirtual |
◆ disconnectIfFinished()
Definition at line 1162 of file EventSelectorAthenaPool.cxx.
1164 if(
m_eventStreamingTool.empty() && m_activeEventsPerSource.find(fid) != m_activeEventsPerSource.end()
1165 && m_activeEventsPerSource[fid] <= 0 && m_guid != fid ) {
1170 FileIncident endInputFileIncident(
name(),
"EndInputFile",
"FID:" + fid, fid);
1173 ATH_MSG_INFO(
"Disconnecting input sourceID: " << fid );
1175 m_activeEventsPerSource.erase( fid );
◆ eventStore()
| StoreGateSvc * EventSelectorAthenaPool::eventStore |
( |
| ) |
const |
|
private |
◆ fillAttributeList()
| StatusCode EventSelectorAthenaPool::fillAttributeList |
( |
coral::AttributeList * |
attrList, |
|
|
const std::string & |
suffix, |
|
|
bool |
copySource |
|
) |
| const |
|
overrideprotectedvirtual |
Fill AttributeList with specific items from the selector and a suffix.
Definition at line 1026 of file EventSelectorAthenaPool.cxx.
1028 const pool::TokenList& tokenList = m_headerIterator->currentRow().tokenList();
1031 (*attrList)[
iter.tokenName() +
suffix].data<std::string>() =
iter->toString();
1035 std::string eventRef =
"eventRef";
1039 attrList->extend(eventRef,
"string");
1040 (*attrList)[eventRef].data<std::string>() = m_headerIterator->eventRef().toString();
1041 ATH_MSG_DEBUG(
"record AthenaAttribute, name = " + eventRef +
" = " << m_headerIterator->eventRef().toString() <<
".");
1045 for (
const auto &attr : sourceAttrList) {
1046 attrList->extend(attr.specification().name() +
suffix, attr.specification().type());
1047 (*attrList)[attr.specification().name() +
suffix] = attr;
1051 return StatusCode::SUCCESS;
◆ finalize()
| StatusCode EventSelectorAthenaPool::finalize |
( |
| ) |
|
|
overridevirtual |
Definition at line 382 of file EventSelectorAthenaPool.cxx.
387 for (
auto&
tool : m_helperTools) {
388 if (!
tool->preFinalize().isSuccess()) {
394 m_headerIterator =
nullptr;
395 if (m_poolCollectionConverter) {
396 m_poolCollectionConverter.reset();
◆ findEvent()
| int EventSelectorAthenaPool::findEvent |
( |
int |
evtNum | ) |
const |
|
private |
Search for event with number evtNum.
Definition at line 806 of file EventSelectorAthenaPool.cxx.
807 for (std::size_t
i = 0,
imax = m_numEvt.size();
i <
imax;
i++) {
808 if (m_numEvt[
i] == -1) {
813 if (!pcc.initialize().isSuccess()) {
816 int collection_size = 0;
819 collection_size = hi->
size();
822 m_firstEvt[
i] = m_firstEvt[
i - 1] + m_numEvt[
i - 1];
826 m_numEvt[
i] = collection_size;
828 if (evtNum >= m_firstEvt[
i] && evtNum < m_firstEvt[
i] + m_numEvt[
i]) {
◆ fireEndFileIncidents()
| void EventSelectorAthenaPool::fireEndFileIncidents |
( |
bool |
isLastFile | ) |
const |
|
private |
Fires the EndInputFile incident (if there is an open file) at end of selector.
Definition at line 365 of file EventSelectorAthenaPool.cxx.
371 FileIncident endInputFileIncident(
name(),
"EndInputFile",
"FID:" + m_guid.toString(), m_guid.toString());
◆ getCollectionCnv()
| std::unique_ptr< PoolCollectionConverter > EventSelectorAthenaPool::getCollectionCnv |
( |
bool |
throwIncidents = false | ) |
const |
|
private |
Return pointer to new PoolCollectionConverter.
Definition at line 968 of file EventSelectorAthenaPool.cxx.
975 ATH_MSG_DEBUG(
"Try item: \"" << *m_inputCollectionsIterator <<
"\" from the collection list.");
977 *m_inputCollectionsIterator,
981 if (!
status.isSuccess()) {
984 if (!
status.isRecoverable()) {
985 ATH_MSG_ERROR(
"Unable to initialize PoolCollectionConverter.");
986 throw GaudiException(
"Unable to read: " + *m_inputCollectionsIterator,
name(), StatusCode::FAILURE);
988 ATH_MSG_ERROR(
"Unable to open: " << *m_inputCollectionsIterator);
989 throw GaudiException(
"Unable to open: " + *m_inputCollectionsIterator,
name(), StatusCode::FAILURE);
992 if (!pCollCnv->isValid().isSuccess()) {
994 ATH_MSG_DEBUG(
"No events found in: " << *m_inputCollectionsIterator <<
" skipped!!!");
996 FileIncident beginInputFileIncident(
name(),
"BeginInputFile", *m_inputCollectionsIterator);
998 FileIncident endInputFileIncident(
name(),
"EndInputFile",
"eventless " + *m_inputCollectionsIterator);
1001 m_athenaPoolCnvSvc->getPoolSvc()->disconnectDb(*m_inputCollectionsIterator).ignore();
1002 ++m_inputCollectionsIterator;
◆ handle()
| void EventSelectorAthenaPool::handle |
( |
const Incident & |
incident | ) |
|
|
overridevirtual |
Incident service handle listening for BeginProcessing and EndProcessing.
Reimplemented in DoubleEventSelectorAthenaPool.
Definition at line 1121 of file EventSelectorAthenaPool.cxx.
1124 if (inc.type() == IncidentType::BeginProcessing) {
1135 ATH_MSG_WARNING(
"could not read event source ID from incident event context");
1138 if( m_activeEventsPerSource.find( fid ) == m_activeEventsPerSource.end()) {
1139 ATH_MSG_DEBUG(
"Incident handler ignoring unknown input FID: " << fid );
1142 ATH_MSG_DEBUG(
"** MN Incident handler " << inc.type() <<
" Event source ID=" << fid );
1143 if( inc.type() == IncidentType::BeginProcessing ) {
1145 m_activeEventsPerSource[fid]++;
1146 }
else if( inc.type() == IncidentType::EndProcessing ) {
1147 m_activeEventsPerSource[fid]--;
1152 for(
auto&
source: m_activeEventsPerSource )
◆ initialize()
| StatusCode EventSelectorAthenaPool::initialize |
( |
| ) |
|
|
overridevirtual |
Required of all Gaudi Services.
Reimplemented in DoubleEventSelectorAthenaPool.
Definition at line 87 of file EventSelectorAthenaPool.cxx.
89 m_autoRetrieveTools =
false;
90 m_checkToolDeps =
false;
101 ATH_MSG_FATAL(
"Use the property: EventSelector.InputCollections = "
102 <<
"[ \"<collectionName>\" ] (list of collections)");
103 return StatusCode::FAILURE;
105 boost::char_separator<char> sep_coma(
","), sep_hyph(
"-");
107 for(
const std::string&
r:
ranges ) {
108 boost::tokenizer fromto(
r, sep_hyph);
109 auto from_iter = fromto.begin();
110 long from = std::stol(*from_iter);
112 if( ++from_iter != fromto.end() ) {
113 to = std::stol(*from_iter);
115 m_skipEventRanges.emplace_back(from,
to);
119 m_skipEventRanges.emplace_back(
v,
v);
121 std::sort(m_skipEventRanges.begin(), m_skipEventRanges.end());
123 std::string skip_ranges_str;
124 for(
const auto& [
first,
second] : m_skipEventRanges ) {
125 if( !skip_ranges_str.empty() ) skip_ranges_str +=
", ";
129 if( !skip_ranges_str.empty() )
134 ATH_MSG_FATAL(
"EventSelector.CollectionType must be one of: RootCollection, ImplicitCollection (default)");
135 return StatusCode::FAILURE;
141 m_incidentSvc->addListener(
this, IncidentType::BeginProcessing, 0);
142 m_incidentSvc->addListener(
this, IncidentType::EndProcessing, 0);
156 return StatusCode::FAILURE;
158 std::string dummyStr;
164 std::vector<std::string>
propVal;
166 bool foundCnvSvc =
false;
167 for (
const auto& property :
propVal) {
173 ATH_MSG_FATAL(
"Cannot set EventPersistencySvc Property for CnvServices");
174 return StatusCode::FAILURE;
186 std::string fileType;
187 for (
const auto& inputCollection : incol) {
188 if (inputCollection.starts_with(
"LFN:") || inputCollection.starts_with(
"FID:")) {
197 ATH_MSG_FATAL(
"could not register [" << inputCollection <<
"] for output !");
204 return StatusCode::FAILURE;
210 return StatusCode::FAILURE;
◆ inputCollectionsHandler()
| void EventSelectorAthenaPool::inputCollectionsHandler |
( |
Gaudi::Details::PropertyBase & |
| ) |
|
|
private |
Definition at line 74 of file EventSelectorAthenaPool.cxx.
75 if (this->FSMState() != Gaudi::StateMachine::OFFLINE) {
76 m_inputCollectionsChanged =
true;
◆ io_finalize()
| StatusCode EventSelectorAthenaPool::io_finalize |
( |
| ) |
|
|
overridevirtual |
Callback method to finalize the internal state of the component for I/O purposes (e.g. before fork(2))
Definition at line 1106 of file EventSelectorAthenaPool.cxx.
1108 if (m_poolCollectionConverter) {
1109 m_poolCollectionConverter->disconnectDb().ignore();
1110 m_poolCollectionConverter.reset();
1112 return StatusCode::SUCCESS;
◆ io_reinit()
| StatusCode EventSelectorAthenaPool::io_reinit |
( |
| ) |
|
|
overridevirtual |
Callback method to reinitialize the internal state of the component for I/O purposes (e.g. upon fork(2))
Definition at line 1054 of file EventSelectorAthenaPool.cxx.
1056 if (m_poolCollectionConverter) {
1057 m_poolCollectionConverter->disconnectDb().ignore();
1058 m_poolCollectionConverter.reset();
1060 m_headerIterator =
nullptr;
1062 if (!iomgr.retrieve().isSuccess()) {
1064 return StatusCode::FAILURE;
1066 if (!iomgr->io_hasitem(
this)) {
1067 ATH_MSG_FATAL(
"IoComponentMgr does not know about myself !");
1068 return StatusCode::FAILURE;
1075 std::set<std::size_t> updatedIndexes;
1077 if (updatedIndexes.find(
i) != updatedIndexes.end())
continue;
1080 if (!iomgr->io_contains(
this,
fname)) {
1082 return StatusCode::FAILURE;
1084 if (!iomgr->io_retrieve(
this,
fname).isSuccess()) {
1086 return StatusCode::FAILURE;
1088 if (savedName !=
fname) {
1092 updatedIndexes.insert(
i);
1093 for (std::size_t j =
i + 1; j <
imax; j++) {
1096 updatedIndexes.insert(j);
◆ last()
| StatusCode EventSelectorAthenaPool::last |
( |
IEvtSelector::Context & |
ctxt | ) |
const |
|
overridevirtual |
- Parameters
-
| ctxt | [IN/OUT] current event context is interated to last event. |
Definition at line 691 of file EventSelectorAthenaPool.cxx.
694 return StatusCode::SUCCESS;
696 return StatusCode::FAILURE;
◆ makeClient()
| StatusCode EventSelectorAthenaPool::makeClient |
( |
int |
num | ) |
|
|
overridevirtual |
Make this a client.
Definition at line 861 of file EventSelectorAthenaPool.cxx.
865 return StatusCode::FAILURE;
867 if (
ds->makeClient(
num + 1).isFailure()) {
868 ATH_MSG_ERROR(
"Failed to switch AthenaPoolCnvSvc to DataStreaming client");
869 return StatusCode::FAILURE;
872 return StatusCode::SUCCESS;
875 std::string dummyStr;
◆ makeServer()
| StatusCode EventSelectorAthenaPool::makeServer |
( |
int |
num | ) |
|
|
overridevirtual |
Make this a server.
Definition at line 836 of file EventSelectorAthenaPool.cxx.
840 return StatusCode::FAILURE;
843 if (
ds->makeServer(
num - 1).isFailure()) {
844 ATH_MSG_ERROR(
"Failed to switch AthenaPoolCnvSvc to output DataStreaming server");
846 return StatusCode::SUCCESS;
848 if (
ds->makeServer(
num + 1).isFailure()) {
849 ATH_MSG_ERROR(
"Failed to switch AthenaPoolCnvSvc to input DataStreaming server");
850 return StatusCode::FAILURE;
853 return StatusCode::SUCCESS;
◆ next() [1/2]
| StatusCode EventSelectorAthenaPool::next |
( |
IEvtSelector::Context & |
ctxt | ) |
const |
|
overridevirtual |
- Parameters
-
| ctxt | [IN/OUT] current event context is interated to next event. |
Reimplemented in DoubleEventSelectorAthenaPool.
Definition at line 408 of file EventSelectorAthenaPool.cxx.
409 std::lock_guard<CallMutex> lockGuard(
m_callLock);
413 while (
sc.isRecoverable()) {
420 void* tokenStr =
nullptr;
423 if (
sc.isRecoverable()) {
424 delete [] (
char*)tokenStr; tokenStr =
nullptr;
428 return StatusCode::FAILURE;
430 if (
sc.isFailure()) {
431 ATH_MSG_FATAL(
"Cannot get NextEvent from AthenaSharedMemoryTool");
432 delete [] (
char*)tokenStr; tokenStr =
nullptr;
433 return StatusCode::FAILURE;
439 athAttrList->extend(
"eventRef",
"string");
440 (*athAttrList)[
"eventRef"].data<std::string>() = std::string((
char*)tokenStr);
442 if (!
wh.record(std::move(athAttrList)).isSuccess()) {
443 delete [] (
char*)tokenStr; tokenStr =
nullptr;
445 return StatusCode::FAILURE;
448 token.
fromString(std::string((
char*)tokenStr));
449 delete [] (
char*)tokenStr; tokenStr =
nullptr;
454 FileIncident endInputFileIncident(
name(),
"EndInputFile",
"FID:" + m_guid.toString(), m_guid.toString());
458 FileIncident beginInputFileIncident(
name(),
"BeginInputFile",
"FID:" + m_guid.toString(), m_guid.toString());
461 return StatusCode::SUCCESS;
463 for (
const auto&
tool : m_helperTools) {
464 if (!
tool->preNext().isSuccess()) {
471 if (
sc.isRecoverable()) {
474 if (
sc.isFailure()) {
475 return StatusCode::FAILURE;
483 && (m_skipEventRanges.empty() ||
m_evtCount < m_skipEventRanges.front().first))
489 return StatusCode::FAILURE;
491 std::string token = m_headerIterator->eventRef().
toString();
495 token.length() + 1, 0)).isRecoverable() ) {
496 while (
ds->readData().isSuccess()) {
497 ATH_MSG_VERBOSE(
"Called last readData, while putting next event in next()");
501 if (!
sc.isSuccess()) {
503 return StatusCode::FAILURE;
507 if (!
eventStore()->clearStore().isSuccess()) {
512 return StatusCode::FAILURE;
517 for (
const auto&
tool : m_helperTools) {
519 if (toolStatus.isRecoverable()) {
522 status = StatusCode::RECOVERABLE;
524 }
else if (toolStatus.isFailure()) {
526 status = StatusCode::FAILURE;
529 if (
status.isRecoverable()) {
531 }
else if (
status.isFailure()) {
540 while( !m_skipEventRanges.empty() &&
m_evtCount >= m_skipEventRanges.front().second ) {
541 m_skipEventRanges.erase(m_skipEventRanges.begin());
546 return StatusCode::SUCCESS;
◆ next() [2/2]
| StatusCode EventSelectorAthenaPool::next |
( |
IEvtSelector::Context & |
ctxt, |
|
|
int |
jump |
|
) |
| const |
|
overridevirtual |
- Parameters
-
| ctxt | [IN/OUT] current event context is interated to next event. |
| jump | [IN] number of events to jump (currently not supported). |
Reimplemented in DoubleEventSelectorAthenaPool.
Definition at line 549 of file EventSelectorAthenaPool.cxx.
551 for (
int i = 0;
i < jump;
i++) {
554 return StatusCode::SUCCESS;
556 return StatusCode::FAILURE;
◆ nextHandleFileTransition()
| StatusCode EventSelectorAthenaPool::nextHandleFileTransition |
( |
IEvtSelector::Context & |
ctxt | ) |
const |
|
overrideprotectedvirtual |
Handle file transition at the next iteration.
Definition at line 559 of file EventSelectorAthenaPool.cxx.
561 if( m_inputCollectionsChanged ) {
563 if( rc != StatusCode::SUCCESS )
return rc;
567 if (m_headerIterator ==
nullptr || m_headerIterator->next() == 0) {
568 m_headerIterator =
nullptr;
570 m_poolCollectionConverter.reset();
578 if( m_inputCollectionsChanged ) {
580 if( rc != StatusCode::SUCCESS )
return rc;
583 ++m_inputCollectionsIterator;
586 if (!m_poolCollectionConverter) {
590 return StatusCode::FAILURE;
593 m_headerIterator = &m_poolCollectionConverter->selectAll();
596 return StatusCode::RECOVERABLE;
600 const Token& headRef = m_headerIterator->eventRef();
605 if (
guid != m_guid) {
614 m_activeEventsPerSource[
guid.toString()] = 0;
619 if (!
m_athenaPoolCnvSvc->setInputAttributes(*m_inputCollectionsIterator).isSuccess()) {
621 return StatusCode::FAILURE;
624 FileIncident beginInputFileIncident(
name(),
"BeginInputFile", *m_inputCollectionsIterator, m_guid.toString());
630 FileIncident beginInputFileIncident(
name(),
"BeginInputFile",
"FID:" + m_guid.toString(), m_guid.toString());
635 return StatusCode::SUCCESS;
◆ nextWithSkip()
| StatusCode EventSelectorAthenaPool::nextWithSkip |
( |
IEvtSelector::Context & |
ctxt | ) |
const |
|
overrideprotectedvirtual |
Go to next event and skip if necessary.
Definition at line 638 of file EventSelectorAthenaPool.cxx.
644 if (
sc.isRecoverable()) {
647 if (
sc.isFailure()) {
648 return StatusCode::FAILURE;
658 && (m_skipEventRanges.empty() ||
m_evtCount < m_skipEventRanges.front().first))
660 return StatusCode::SUCCESS;
662 while( !m_skipEventRanges.empty() &&
m_evtCount >= m_skipEventRanges.front().second ) {
663 m_skipEventRanges.erase(m_skipEventRanges.begin());
673 return StatusCode::SUCCESS;
◆ previous() [1/2]
| StatusCode EventSelectorAthenaPool::previous |
( |
IEvtSelector::Context & |
ctxt | ) |
const |
|
overridevirtual |
- Parameters
-
| ctxt | [IN/OUT] current event context is interated to previous event. |
Definition at line 676 of file EventSelectorAthenaPool.cxx.
678 return StatusCode::FAILURE;
◆ previous() [2/2]
| StatusCode EventSelectorAthenaPool::previous |
( |
IEvtSelector::Context & |
ctxt, |
|
|
int |
jump |
|
) |
| const |
|
overridevirtual |
- Parameters
-
| ctxt | [IN/OUT] current event context is interated to previous event. |
| jump | [IN] number of events to jump (currently not supported). |
Definition at line 681 of file EventSelectorAthenaPool.cxx.
683 for (
int i = 0;
i < jump;
i++) {
686 return StatusCode::SUCCESS;
688 return StatusCode::FAILURE;
◆ readEvent()
| StatusCode EventSelectorAthenaPool::readEvent |
( |
int |
maxevt | ) |
|
|
overridevirtual |
Read the next maxevt events.
- Parameters
-
| evtnum | [IN] The number of events to read. |
Definition at line 913 of file EventSelectorAthenaPool.cxx.
917 return StatusCode::FAILURE;
920 ATH_MSG_ERROR(
"No AthenaSharedMemoryTool configured for readEvent()");
921 return StatusCode::FAILURE;
925 for (
int i = 0;
i < maxevt || maxevt == -1; ++
i) {
926 if (!
next(*ctxt).isSuccess()) {
932 delete ctxt; ctxt =
nullptr;
933 return StatusCode::FAILURE;
938 delete ctxt; ctxt =
nullptr;
942 while (
ds->readData().isSuccess()) {
943 ATH_MSG_VERBOSE(
"Called last readData, while marking last event in readEvent()");
947 if (!
sc.isSuccess()) {
948 ATH_MSG_ERROR(
"Cannot put last Event marker to AthenaSharedMemoryTool");
949 return StatusCode::FAILURE;
952 while (
sc.isSuccess() ||
sc.isRecoverable()) {
955 ATH_MSG_DEBUG(
"Failed last readData -> Clients are stopped, after marking last event in readEvent()");
957 return StatusCode::SUCCESS;
◆ recordAttributeList()
| StatusCode EventSelectorAthenaPool::recordAttributeList |
( |
| ) |
const |
|
overrideprotectedvirtual |
◆ reinit()
| StatusCode EventSelectorAthenaPool::reinit |
( |
| ) |
const |
|
private |
Reinitialize the service when a fork() occurred/was-issued.
Definition at line 217 of file EventSelectorAthenaPool.cxx.
227 if (!m_firstEvt.empty()) {
230 m_inputCollectionsChanged =
false;
232 m_headerIterator = 0;
234 ATH_MSG_INFO(
"Done reinitialization for shared reader client");
235 return StatusCode::SUCCESS;
237 bool retError =
false;
238 for (
auto&
tool : m_helperTools) {
239 if (!
tool->postInitialize().isSuccess()) {
246 return StatusCode::FAILURE;
251 if (!m_poolCollectionConverter) {
252 ATH_MSG_INFO(
"No Events found in any Input Collections");
258 FileIncident firstInputFileIncident(
name(),
"FirstInputFile", *m_inputCollectionsIterator);
263 return StatusCode::SUCCESS;
267 m_headerIterator = &m_poolCollectionConverter->selectAll();
269 ATH_MSG_FATAL(
"Cannot open implicit collection - check data/software version.");
271 return StatusCode::FAILURE;
273 while (m_headerIterator ==
nullptr || m_headerIterator->next() == 0) {
274 if (m_poolCollectionConverter) {
275 m_poolCollectionConverter->disconnectDb().ignore();
276 m_poolCollectionConverter.reset();
278 ++m_inputCollectionsIterator;
280 if (m_poolCollectionConverter) {
281 m_headerIterator = &m_poolCollectionConverter->selectAll();
286 if (!m_poolCollectionConverter || m_headerIterator ==
nullptr) {
290 if (!m_poolCollectionConverter) {
291 return StatusCode::SUCCESS;
293 m_headerIterator = &m_poolCollectionConverter->selectAll();
294 while (m_headerIterator ==
nullptr || m_headerIterator->next() == 0) {
295 if (m_poolCollectionConverter) {
296 m_poolCollectionConverter->disconnectDb().ignore();
297 m_poolCollectionConverter.reset();
299 ++m_inputCollectionsIterator;
301 if (m_poolCollectionConverter) {
302 m_headerIterator = &m_poolCollectionConverter->selectAll();
308 if (!m_poolCollectionConverter || m_headerIterator ==
nullptr) {
309 return StatusCode::SUCCESS;
311 const Token& headRef = m_headerIterator->eventRef();
318 FileIncident firstInputFileIncident(
name(),
"FirstInputFile",
"FID:" + fid, fid);
322 return StatusCode::SUCCESS;
◆ releaseContext()
| StatusCode EventSelectorAthenaPool::releaseContext |
( |
IEvtSelector::Context *& |
ctxt | ) |
const |
|
overridevirtual |
◆ resetCriteria()
| StatusCode EventSelectorAthenaPool::resetCriteria |
( |
const std::string & |
criteria, |
|
|
IEvtSelector::Context & |
ctxt |
|
) |
| const |
|
overridevirtual |
Set a selection criteria.
- Parameters
-
| criteria | filter predicate (SQL-style WHERE clause) |
| ctxt | [IN] current event context. |
Definition at line 731 of file EventSelectorAthenaPool.cxx.
733 return StatusCode::SUCCESS;
◆ rewind()
| StatusCode EventSelectorAthenaPool::rewind |
( |
IEvtSelector::Context & |
ctxt | ) |
const |
|
overridevirtual |
- Parameters
-
| ctxt | [IN/OUT] current event context is rewound to first event. |
Definition at line 699 of file EventSelectorAthenaPool.cxx.
702 return StatusCode::SUCCESS;
◆ seek()
| StatusCode EventSelectorAthenaPool::seek |
( |
Context & |
ctxt, |
|
|
int |
evtnum |
|
) |
| const |
|
overridevirtual |
Seek to a given event number.
- Parameters
-
| ctxt | [IN/OUT] current event context. |
| evtnum | [IN] The event number to which to seek. |
Reimplemented in DoubleEventSelectorAthenaPool.
Definition at line 736 of file EventSelectorAthenaPool.cxx.
738 if( m_inputCollectionsChanged ) {
740 if( rc != StatusCode::SUCCESS )
return rc;
748 m_headerIterator =
nullptr;
751 return StatusCode::RECOVERABLE;
755 m_poolCollectionConverter->disconnectDb().ignore();
757 m_poolCollectionConverter.reset();
762 <<
"\" from the collection list.");
770 if (!m_poolCollectionConverter->initialize().isSuccess()) {
771 m_headerIterator =
nullptr;
772 ATH_MSG_ERROR(
"seek: Unable to initialize PoolCollectionConverter.");
773 return StatusCode::FAILURE;
776 m_headerIterator = &m_poolCollectionConverter->selectAll();
779 next(*beginIter).ignore();
780 ATH_MSG_DEBUG(
"Token " << m_headerIterator->eventRef().toString());
782 m_headerIterator =
nullptr;
784 return StatusCode::FAILURE;
788 if (m_headerIterator->seek(evtNum - m_firstEvt[
m_curCollection]) == 0) {
789 m_headerIterator =
nullptr;
791 return StatusCode::FAILURE;
795 return StatusCode::SUCCESS;
◆ share()
| StatusCode EventSelectorAthenaPool::share |
( |
int |
evtnum | ) |
|
|
overridevirtual |
Request to share a given event number.
- Parameters
-
| evtnum | [IN] The event number to share. |
Definition at line 880 of file EventSelectorAthenaPool.cxx.
884 return StatusCode::FAILURE;
888 while (
sc.isRecoverable()) {
893 if (
sc.isFailure()) {
894 if (
ds->makeClient(0).isFailure()) {
895 return StatusCode::FAILURE;
898 while (
sc.isRecoverable() ||
sc.isFailure()) {
903 if (
ds->makeClient(1).isFailure()) {
904 return StatusCode::FAILURE;
909 return StatusCode::FAILURE;
◆ size()
| int EventSelectorAthenaPool::size |
( |
Context & |
ctxt | ) |
const |
|
overridevirtual |
◆ start()
| StatusCode EventSelectorAthenaPool::start |
( |
| ) |
|
|
overridevirtual |
Definition at line 325 of file EventSelectorAthenaPool.cxx.
326 if (m_poolCollectionConverter) {
328 m_poolCollectionConverter->disconnectDb().ignore();
329 m_poolCollectionConverter.reset();
334 return StatusCode::SUCCESS;
337 if (!m_poolCollectionConverter) {
338 ATH_MSG_INFO(
"No Events found in any Input Collections");
341 --m_inputCollectionsIterator;
344 m_headerIterator = &m_poolCollectionConverter->selectAll();
350 return StatusCode::SUCCESS;
◆ stop()
| StatusCode EventSelectorAthenaPool::stop |
( |
| ) |
|
|
overridevirtual |
Definition at line 353 of file EventSelectorAthenaPool.cxx.
355 return StatusCode::SUCCESS;
357 IEvtSelector::Context* ctxt(
nullptr);
361 return StatusCode::SUCCESS;
◆ DoubleEventSelectorAthenaPool
◆ ATLAS_THREAD_SAFE [1/10]
◆ ATLAS_THREAD_SAFE [2/10]
◆ ATLAS_THREAD_SAFE [3/10]
| Guid m_guid EventSelectorAthenaPool::ATLAS_THREAD_SAFE {} |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [4/10]
| std::map<SG::SourceID, int> m_activeEventsPerSource EventSelectorAthenaPool::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [5/10]
| std::vector<std::string>::const_iterator m_inputCollectionsIterator EventSelectorAthenaPool::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [6/10]
| bool m_inputCollectionsChanged EventSelectorAthenaPool::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [7/10]
| ToolHandleArray<IAthenaSelectorTool> m_helperTools EventSelectorAthenaPool::ATLAS_THREAD_SAFE {this, "HelperTools", {}, ""} |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [8/10]
| std::vector<int> m_numEvt EventSelectorAthenaPool::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [9/10]
| std::vector<int> m_firstEvt EventSelectorAthenaPool::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [10/10]
| std::vector<std::pair<long,long> > m_skipEventRanges EventSelectorAthenaPool::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ m_athenaPoolCnvSvc
◆ m_attrListKey
| Gaudi::Property<std::string> EventSelectorAthenaPool::m_attrListKey {this, "AttributeListKey", "Input", ""} |
|
private |
◆ m_callLock
| CallMutex EventSelectorAthenaPool::m_callLock |
|
mutableprivate |
◆ m_collectionTree
| Gaudi::Property<std::string> EventSelectorAthenaPool::m_collectionTree {this, "CollectionTree", APRDefaults::TTreeNames::DataHeader, ""} |
|
private |
◆ m_collectionType
| Gaudi::Property<std::string> EventSelectorAthenaPool::m_collectionType {this, "CollectionType", "ImplicitCollection", ""} |
|
private |
◆ m_connection
| Gaudi::Property<std::string> EventSelectorAthenaPool::m_connection {this, "Connection", "", ""} |
|
private |
◆ m_counterTool
| ToolHandle<IAthenaSelectorTool> EventSelectorAthenaPool::m_counterTool {this, "CounterTool", "", ""} |
|
private |
◆ m_curCollection
| std::atomic_long EventSelectorAthenaPool::m_curCollection {} |
|
mutableprivate |
◆ m_endIter
◆ m_eventsPerLB
| Gaudi::CheckedProperty<uint32_t> EventSelectorAthenaPool::m_eventsPerLB {this, "EventsPerLB", 1000, ""} |
|
private |
◆ m_eventsPerRun
| Gaudi::CheckedProperty<uint64_t> EventSelectorAthenaPool::m_eventsPerRun {this, "EventsPerRun", 1000000, ""} |
|
private |
◆ m_eventStreamingTool
| ToolHandle<IAthenaIPCTool> EventSelectorAthenaPool::m_eventStreamingTool {this, "SharedMemoryTool", "", ""} |
|
private |
◆ m_evtCount
| std::atomic_int EventSelectorAthenaPool::m_evtCount {} |
|
mutableprivate |
◆ m_firedIncident
| std::atomic_bool EventSelectorAthenaPool::m_firedIncident {} |
|
mutableprivate |
◆ m_firstEventNo
| Gaudi::CheckedProperty<uint64_t> EventSelectorAthenaPool::m_firstEventNo {this, "FirstEvent", 1, ""} |
|
private |
◆ m_firstLBNo
| Gaudi::CheckedProperty<uint32_t> EventSelectorAthenaPool::m_firstLBNo {this, "FirstLB", 0, ""} |
|
private |
◆ m_incidentSvc
| ServiceHandle<IIncidentSvc> EventSelectorAthenaPool::m_incidentSvc {this, "IncidentSvc", "IncidentSvc", ""} |
|
private |
◆ m_initTimeStamp
| Gaudi::CheckedProperty<uint32_t> EventSelectorAthenaPool::m_initTimeStamp {this, "InitialTimeStamp", 0, ""} |
|
private |
◆ m_inputCollectionsProp
| Gaudi::Property<std::vector<std::string> > EventSelectorAthenaPool::m_inputCollectionsProp {this, "InputCollections", {}, ""} |
|
private |
◆ m_isSecondary
| Gaudi::Property<bool> EventSelectorAthenaPool::m_isSecondary {this, "IsSecondary", false, ""} |
|
private |
◆ m_keepInputFilesOpen
| Gaudi::Property<bool> EventSelectorAthenaPool::m_keepInputFilesOpen {this, "KeepInputFilesOpen", false, ""} |
|
private |
KeepInputFilesOpen, boolean flag to keep files open after PoolCollection reaches end: default = false.
Needed for PilUp to run without PoolFileCatalog. Relies on POOL to close files when reaching DB_AGE_LIMIT.
Definition at line 205 of file EventSelectorAthenaPool.h.
◆ m_makeStreamingToolClient
| Gaudi::Property<int> EventSelectorAthenaPool::m_makeStreamingToolClient {this,"MakeStreamingToolClient",0} |
|
private |
◆ m_oldRunNo
| Gaudi::CheckedProperty<uint32_t> EventSelectorAthenaPool::m_oldRunNo {this, "OldRunNumber", 0, ""} |
|
private |
◆ m_overrideRunNumber
| Gaudi::Property<bool> EventSelectorAthenaPool::m_overrideRunNumber {this, "OverrideRunNumber", false, ""} |
|
private |
◆ m_overrideRunNumberFromInput
| Gaudi::Property<bool> EventSelectorAthenaPool::m_overrideRunNumberFromInput {this, "OverrideRunNumberFromInput", false, ""} |
|
private |
◆ m_processMetadata
| Gaudi::Property<bool> EventSelectorAthenaPool::m_processMetadata {this, "ProcessMetadata", true, ""} |
|
private |
ProcessMetadata, switch on firing of FileIncidents which will trigger processing of metadata: default = true.
Definition at line 185 of file EventSelectorAthenaPool.h.
◆ m_runNo
| Gaudi::CheckedProperty<uint32_t> EventSelectorAthenaPool::m_runNo {this, "RunNumber", 0, ""} |
|
private |
The following are included for compatibility with McEventSelector and are not really used.
However runNo, oldRunNo and overrideRunNumberFromInput are used to reset run number for simulated events, needed to use condition
Definition at line 217 of file EventSelectorAthenaPool.h.
◆ m_skipEventRangesProp
| Gaudi::Property<std::string> EventSelectorAthenaPool::m_skipEventRangesProp {this, "SkipEventRanges", {}, ""} |
|
private |
Skip Events - comma separated list of event to skip, ranges with '-': <start> - <end>
Definition at line 238 of file EventSelectorAthenaPool.h.
◆ m_skipEvents
| Gaudi::Property<int> EventSelectorAthenaPool::m_skipEvents {this, "SkipEvents", 0, ""} |
|
private |
◆ m_skipEventSequenceProp
| Gaudi::Property<std::vector<long> > EventSelectorAthenaPool::m_skipEventSequenceProp {this, "SkipEventSequence", {}, ""} |
|
private |
◆ m_sourceID
◆ m_timeStampInterval
| Gaudi::Property<uint32_t> EventSelectorAthenaPool::m_timeStampInterval {this, "TimeStampInterval", 0, ""} |
|
private |
The documentation for this class was generated from the following files:
virtual StatusCode last(IEvtSelector::Context &ctxt) const override
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
virtual StatusCode fillAttributeList(coral::AttributeList *attrList, const std::string &suffix, bool copySource) const override
Fill AttributeList with specific items from the selector and a suffix.
Gaudi::Property< int > m_skipEvents
SkipEvents, numbers of events to skip: default = 0.
virtual StatusCode releaseContext(IEvtSelector::Context *&ctxt) const override
StatusCode parse(std::tuple< Tup... > &tup, const Gaudi::Parsers::InputData &input)
StatusCode reinit() const
Reinitialize the service when a fork() occurred/was-issued.
This class provides an interface to POOL collections.
virtual StatusCode previous(IEvtSelector::Context &ctxt) const override
ServiceHandle< IIncidentSvc > m_incidentSvc
accumulate
Update flags based on parser line args.
bool hasExtendedEventContext(const EventContext &ctx)
Test whether a context object has an extended context installed.
ServiceHandle< IAthenaPoolCnvSvc > m_athenaPoolCnvSvc
T * get(const EventContext &ctx)
Return pointer to the object for slot given by ctx.
const Guid & dbID() const
Access database identifier.
ToolHandle< IAthenaIPCTool > m_eventStreamingTool
StoreGateSvc * eventStore() const
Return pointer to active event SG.
Gaudi::Property< int > m_makeStreamingToolClient
Make this instance a Streaming Client during first iteration automatically.
iterator end()
Returns a forward iterator pointing to last element in Token list.
Gaudi::CheckedProperty< uint32_t > m_firstLBNo
#define ATH_MSG_VERBOSE(x)
int findEvent(int evtNum) const
Search for event with number evtNum.
std::string to_string(const SectorProjector proj)
This class provides the context to access an event from POOL persistent store.
This class provides a token that identifies in a unique way objects on the persistent storage.
Abstract interface for sharing data.
ToolHandle< IAthenaSelectorTool > m_counterTool
This class provides a Generic Transient Address for POOL tokens.
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.
Gaudi::CheckedProperty< uint32_t > m_runNo
The following are included for compatibility with McEventSelector and are not really used.
virtual void * identifier() const
int technology() const
Access technology type.
constexpr void toString(std::span< char, StrLen > buf, bool uppercase=true) const noexcept
Automatic conversion to string representation.
std::atomic_bool m_firedIncident
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Gaudi::CheckedProperty< uint32_t > m_oldRunNo
Gaudi::Property< std::string > m_attrListKey
AttributeList SG key.
std::unique_ptr< PoolCollectionConverter > getCollectionCnv(bool throwIncidents=false) const
Return pointer to new PoolCollectionConverter.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< bool > m_isSecondary
IsSecondary, know if this is an instance of secondary event selector.
static StoreGateSvc * currentStoreGate()
get current StoreGate
Default, invalid implementation of ClassID_traits.
void fireEndFileIncidents(bool isLastFile) const
Fires the EndInputFile incident (if there is an open file) at end of selector.
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
Gaudi::CheckedProperty< uint64_t > m_eventsPerRun
virtual StatusCode clearStore(bool forceRemove=false) override final
clear DataStore contents: called by the event loop mgrs
bool allGood
Loop over the SDOs & Digits.
Gaudi::Property< std::string > m_collectionTree
CollectionTree, prefix of the collection TTree: default = "POOLContainer".
void inputCollectionsHandler(Gaudi::Details::PropertyBase &)
Gaudi::CheckedProperty< uint64_t > m_firstEventNo
Gaudi::Property< std::string > m_skipEventRangesProp
Skip Events - comma separated list of event to skip, ranges with '-': <start> - <end>
Constant forward iterator class for navigation of TokenList objects.
virtual StatusCode next(IEvtSelector::Context &ctxt) const override
Gaudi::Property< bool > m_processMetadata
ProcessMetadata, switch on firing of FileIncidents which will trigger processing of metadata: default...
void extend(const std::string &name)
Extends the Token list by one element.
virtual bool disconnectIfFinished(const SG::SourceID &fid) const override
Gaudi::Property< std::vector< std::string > > m_inputCollectionsProp
InputCollections, vector with names of the input collections.
virtual StatusCode recordAttributeList() const override
Record AttributeList in StoreGate.
virtual const std::string toString() const
Retrieve the string representation of the token.
SG::SlotSpecificObj< SG::SourceID > m_sourceID
virtual StatusCode nextHandleFileTransition(IEvtSelector::Context &ctxt) const override
Handle file transition at the next iteration.
std::atomic_long m_curCollection
iterator begin()
Returns a forward iterator pointing to first element in Token list.
static const Guid & null() noexcept
NULL-Guid: static class method.
Token & fromString(const std::string_view from)
Build from the string representation of a token.
Gaudi::CheckedProperty< uint32_t > m_eventsPerLB
EventContextAthenaPool * m_endIter
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
std::atomic_int m_evtCount
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
virtual std::size_t size()=0
Returns the size of the collection.
Gaudi::CheckedProperty< uint32_t > m_initTimeStamp
Gaudi::Property< std::vector< long > > m_skipEventSequenceProp
Gaudi::Property< bool > m_keepInputFilesOpen
KeepInputFilesOpen, boolean flag to keep files open after PoolCollection reaches end: default = false...
Gaudi::Property< std::string > m_collectionType
CollectionType, type of the collection: default = "ImplicitCollection".
static const std::string & storeName(const StoreID::type &s)