 |
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, vector of names of AlgTools that are executed by the EventSelector. More...
|
|
ToolHandle< IAthenaSelectorTool > | m_counterTool {this, "CounterTool", "", ""} |
|
ToolHandle< IAthenaIPCTool > | m_eventStreamingTool {this, "SharedMemoryTool", "", ""} |
|
IntegerProperty | 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 |
|
) |
| |
Standard Service Constructor.
Definition at line 56 of file EventSelectorAthenaPool.cxx.
57 base_class(
name, pSvcLocator)
59 declareProperty(
"HelperTools", m_helperTools);
71 m_inputCollectionsChanged =
false;
◆ ~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 755 of file EventSelectorAthenaPool.cxx.
757 std::string tokenStr;
759 if (attrList.isValid()) {
761 tokenStr = (*attrList)[
"eventRef"].data<std::string>();
762 ATH_MSG_DEBUG(
"found AthenaAttribute, name = eventRef = " << tokenStr);
765 return(StatusCode::FAILURE);
769 tokenStr = m_headerIterator->eventRef().toString();
771 auto token = std::make_unique<Token>();
772 token->fromString(tokenStr);
774 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 1219 of file EventSelectorAthenaPool.cxx.
1221 if(
m_eventStreamingTool.empty() && m_activeEventsPerSource.find(fid) != m_activeEventsPerSource.end()
1222 && m_activeEventsPerSource[fid] <= 0 && m_guid != fid ) {
1227 FileIncident endInputFileIncident(
name(),
"EndInputFile",
"FID:" + fid, fid);
1230 ATH_MSG_INFO(
"Disconnecting input sourceID: " << fid );
1232 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 1083 of file EventSelectorAthenaPool.cxx.
1085 const pool::TokenList& tokenList = m_headerIterator->currentRow().tokenList();
1088 (*attrList)[
iter.tokenName() +
suffix].data<std::string>() =
iter->toString();
1092 std::string eventRef =
"eventRef";
1096 attrList->extend(eventRef,
"string");
1097 (*attrList)[eventRef].data<std::string>() = m_headerIterator->eventRef().toString();
1098 ATH_MSG_DEBUG(
"record AthenaAttribute, name = " + eventRef +
" = " << m_headerIterator->eventRef().toString() <<
".");
1102 for (
const auto &attr : sourceAttrList) {
1103 attrList->extend(attr.specification().name() +
suffix, attr.specification().type());
1104 (*attrList)[attr.specification().name() +
suffix] = attr;
1108 return StatusCode::SUCCESS;
◆ finalize()
StatusCode EventSelectorAthenaPool::finalize |
( |
| ) |
|
|
overridevirtual |
Definition at line 412 of file EventSelectorAthenaPool.cxx.
417 for (
auto&
tool : m_helperTools) {
418 if (!
tool->preFinalize().isSuccess()) {
424 m_headerIterator =
nullptr;
425 if (m_poolCollectionConverter) {
426 m_poolCollectionConverter.reset();
437 if (!m_helperTools.release().isSuccess()) {
◆ findEvent()
int EventSelectorAthenaPool::findEvent |
( |
int |
evtNum | ) |
const |
|
private |
Search for event with number evtNum.
Definition at line 856 of file EventSelectorAthenaPool.cxx.
857 for (std::size_t
i = 0,
imax = m_numEvt.size();
i <
imax;
i++) {
858 if (m_numEvt[
i] == -1) {
863 if (!pcc.initialize().isSuccess()) {
866 int collection_size = 0;
869 collection_size = hi->
size();
872 m_firstEvt[
i] = m_firstEvt[
i - 1] + m_numEvt[
i - 1];
876 m_numEvt[
i] = collection_size;
878 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 395 of file EventSelectorAthenaPool.cxx.
401 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 1022 of file EventSelectorAthenaPool.cxx.
1029 ATH_MSG_DEBUG(
"Try item: \"" << *m_inputCollectionsIterator <<
"\" from the collection list.");
1031 *m_inputCollectionsIterator,
1035 if (!
status.isSuccess()) {
1038 if (!
status.isRecoverable()) {
1039 ATH_MSG_ERROR(
"Unable to initialize PoolCollectionConverter.");
1040 throw GaudiException(
"Unable to read: " + *m_inputCollectionsIterator,
name(), StatusCode::FAILURE);
1042 ATH_MSG_ERROR(
"Unable to open: " << *m_inputCollectionsIterator);
1043 throw GaudiException(
"Unable to open: " + *m_inputCollectionsIterator,
name(), StatusCode::FAILURE);
1046 if (!pCollCnv->isValid().isSuccess()) {
1048 ATH_MSG_DEBUG(
"No events found in: " << *m_inputCollectionsIterator <<
" skipped!!!");
1050 FileIncident beginInputFileIncident(
name(),
"BeginInputFile", *m_inputCollectionsIterator);
1052 FileIncident endInputFileIncident(
name(),
"EndInputFile",
"eventless " + *m_inputCollectionsIterator);
1055 m_athenaPoolCnvSvc->getPoolSvc()->disconnectDb(*m_inputCollectionsIterator).ignore();
1056 ++m_inputCollectionsIterator;
◆ handle()
void EventSelectorAthenaPool::handle |
( |
const Incident & |
incident | ) |
|
|
overridevirtual |
Incident service handle listening for BeginProcessing and EndProcessing.
Reimplemented in DoubleEventSelectorAthenaPool.
Definition at line 1178 of file EventSelectorAthenaPool.cxx.
1181 if (inc.type() == IncidentType::BeginProcessing) {
1192 ATH_MSG_WARNING(
"could not read event source ID from incident event context");
1195 if( m_activeEventsPerSource.find( fid ) == m_activeEventsPerSource.end()) {
1196 ATH_MSG_DEBUG(
"Incident handler ignoring unknown input FID: " << fid );
1199 ATH_MSG_DEBUG(
"** MN Incident handler " << inc.type() <<
" Event source ID=" << fid );
1200 if( inc.type() == IncidentType::BeginProcessing ) {
1202 m_activeEventsPerSource[fid]++;
1203 }
else if( inc.type() == IncidentType::EndProcessing ) {
1204 m_activeEventsPerSource[fid]--;
1209 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;
100 return(StatusCode::FAILURE);
104 ATH_MSG_FATAL(
"Use the property: EventSelector.InputCollections = "
105 <<
"[ \"<collectionName>\" ] (list of collections)");
106 return(StatusCode::FAILURE);
108 boost::char_separator<char> sep_coma(
","), sep_hyph(
"-");
110 for(
const std::string&
r:
ranges ) {
111 boost::tokenizer fromto(
r, sep_hyph);
112 auto from_iter = fromto.begin();
113 std::stringstream strstr1( *from_iter );
116 if( ++from_iter != fromto.end() ) {
117 std::stringstream strstr2( *from_iter );
122 m_skipEventRanges.push_back( std::pair(from,
to) );
126 m_skipEventRanges.push_back( std::pair(
v,
v) );
128 std::sort(m_skipEventRanges.begin(), m_skipEventRanges.end());
130 std::stringstream skip_ranges_ss;
131 for(
auto&
r: m_skipEventRanges ) {
132 if( not skip_ranges_ss.str().empty() ) skip_ranges_ss <<
", ";
133 skip_ranges_ss <<
r.first;
134 if(
r.first !=
r.second) skip_ranges_ss <<
"-" <<
r.second;
136 if( not skip_ranges_ss.str().empty() )
141 ATH_MSG_FATAL(
"EventSelector.CollectionType must be one of: RootCollection, ImplicitCollection (default)");
142 return(StatusCode::FAILURE);
147 return(StatusCode::FAILURE);
151 m_incidentSvc->addListener(
this, IncidentType::BeginProcessing, 0);
152 m_incidentSvc->addListener(
this, IncidentType::EndProcessing, 0);
158 return(StatusCode::FAILURE);
163 return(StatusCode::FAILURE);
166 if (!m_helperTools.retrieve().isSuccess()) {
168 return(StatusCode::FAILURE);
173 return(StatusCode::FAILURE);
175 std::string dummyStr;
177 ATH_MSG_ERROR(
"Could not make AthenaPoolCnvSvc a Share Client");
178 return(StatusCode::FAILURE);
184 std::vector<std::string>
propVal;
186 ATH_MSG_FATAL(
"Cannot get EventPersistencySvc Property for CnvServices");
187 return(StatusCode::FAILURE);
189 bool foundCnvSvc =
false;
190 for (
const auto& property :
propVal) {
196 ATH_MSG_FATAL(
"Cannot set EventPersistencySvc Property for CnvServices");
197 return(StatusCode::FAILURE);
203 if (!iomgr.retrieve().isSuccess()) {
205 return(StatusCode::FAILURE);
207 if (!iomgr->io_register(
this).isSuccess()) {
208 ATH_MSG_FATAL(
"Could not register myself with the IoComponentMgr !");
209 return(StatusCode::FAILURE);
216 if (incol[
icol].substr(0, 4) ==
"LFN:" || incol[
icol].substr(0, 4) ==
"FID:") {
221 if (
fileName.substr(0, 4) ==
"PFN:") {
232 return(StatusCode::FAILURE);
238 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 1163 of file EventSelectorAthenaPool.cxx.
1165 if (m_poolCollectionConverter) {
1166 m_poolCollectionConverter->disconnectDb().ignore();
1167 m_poolCollectionConverter.reset();
1169 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 1111 of file EventSelectorAthenaPool.cxx.
1113 if (m_poolCollectionConverter) {
1114 m_poolCollectionConverter->disconnectDb().ignore();
1115 m_poolCollectionConverter.reset();
1117 m_headerIterator =
nullptr;
1119 if (!iomgr.retrieve().isSuccess()) {
1121 return(StatusCode::FAILURE);
1123 if (!iomgr->io_hasitem(
this)) {
1124 ATH_MSG_FATAL(
"IoComponentMgr does not know about myself !");
1125 return(StatusCode::FAILURE);
1132 std::set<std::size_t> updatedIndexes;
1134 if (updatedIndexes.find(
i) != updatedIndexes.end())
continue;
1137 if (!iomgr->io_contains(
this,
fname)) {
1139 return(StatusCode::FAILURE);
1141 if (!iomgr->io_retrieve(
this,
fname).isSuccess()) {
1143 return(StatusCode::FAILURE);
1145 if (savedName !=
fname) {
1149 updatedIndexes.insert(
i);
1150 for (std::size_t j =
i + 1; j <
imax; j++) {
1153 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 741 of file EventSelectorAthenaPool.cxx.
744 return(StatusCode::SUCCESS);
746 return(StatusCode::FAILURE);
◆ makeClient()
StatusCode EventSelectorAthenaPool::makeClient |
( |
int |
num | ) |
|
|
overridevirtual |
Make this a client.
Definition at line 911 of file EventSelectorAthenaPool.cxx.
915 return(StatusCode::FAILURE);
917 if (
ds->makeClient(
num + 1).isFailure()) {
918 ATH_MSG_ERROR(
"Failed to switch AthenaPoolCnvSvc to DataStreaming client");
919 return(StatusCode::FAILURE);
922 return(StatusCode::SUCCESS);
925 std::string dummyStr;
◆ makeServer()
StatusCode EventSelectorAthenaPool::makeServer |
( |
int |
num | ) |
|
|
overridevirtual |
Make this a server.
Definition at line 886 of file EventSelectorAthenaPool.cxx.
890 return(StatusCode::FAILURE);
893 if (
ds->makeServer(
num - 1).isFailure()) {
894 ATH_MSG_ERROR(
"Failed to switch AthenaPoolCnvSvc to output DataStreaming server");
896 return(StatusCode::SUCCESS);
898 if (
ds->makeServer(
num + 1).isFailure()) {
899 ATH_MSG_ERROR(
"Failed to switch AthenaPoolCnvSvc to input DataStreaming server");
900 return(StatusCode::FAILURE);
903 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 458 of file EventSelectorAthenaPool.cxx.
459 std::lock_guard<CallMutex> lockGuard(
m_callLock);
463 while (
sc.isRecoverable()) {
470 void* tokenStr =
nullptr;
473 if (
sc.isRecoverable()) {
474 delete [] (
char*)tokenStr; tokenStr =
nullptr;
478 return(StatusCode::FAILURE);
480 if (
sc.isFailure()) {
481 ATH_MSG_FATAL(
"Cannot get NextEvent from AthenaSharedMemoryTool");
482 delete [] (
char*)tokenStr; tokenStr =
nullptr;
483 return(StatusCode::FAILURE);
489 athAttrList->extend(
"eventRef",
"string");
490 (*athAttrList)[
"eventRef"].data<std::string>() = std::string((
char*)tokenStr);
492 if (!
wh.record(std::move(athAttrList)).isSuccess()) {
493 delete [] (
char*)tokenStr; tokenStr =
nullptr;
495 return(StatusCode::FAILURE);
498 token.
fromString(std::string((
char*)tokenStr));
499 delete [] (
char*)tokenStr; tokenStr =
nullptr;
504 FileIncident endInputFileIncident(
name(),
"EndInputFile",
"FID:" + m_guid.toString(), m_guid.toString());
508 FileIncident beginInputFileIncident(
name(),
"BeginInputFile",
"FID:" + m_guid.toString(), m_guid.toString());
511 return(StatusCode::SUCCESS);
513 for (
const auto&
tool : m_helperTools) {
514 if (!
tool->preNext().isSuccess()) {
521 if (
sc.isRecoverable()) {
524 if (
sc.isFailure()) {
525 return StatusCode::FAILURE;
533 && (m_skipEventRanges.empty() ||
m_evtCount < m_skipEventRanges.front().first))
539 return(StatusCode::FAILURE);
541 std::string token = m_headerIterator->eventRef().
toString();
545 token.length() + 1, 0)).isRecoverable() ) {
546 while (
ds->readData().isSuccess()) {
547 ATH_MSG_VERBOSE(
"Called last readData, while putting next event in next()");
551 if (!
sc.isSuccess()) {
553 return(StatusCode::FAILURE);
557 if (!
eventStore()->clearStore().isSuccess()) {
562 return(StatusCode::FAILURE);
567 for (
const auto&
tool : m_helperTools) {
569 if (toolStatus.isRecoverable()) {
572 status = StatusCode::RECOVERABLE;
574 }
else if (toolStatus.isFailure()) {
576 status = StatusCode::FAILURE;
579 if (
status.isRecoverable()) {
581 }
else if (
status.isFailure()) {
590 while( !m_skipEventRanges.empty() &&
m_evtCount >= m_skipEventRanges.front().second ) {
591 m_skipEventRanges.erase(m_skipEventRanges.begin());
596 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 599 of file EventSelectorAthenaPool.cxx.
601 for (
int i = 0;
i < jump;
i++) {
604 return(StatusCode::SUCCESS);
606 return(StatusCode::FAILURE);
◆ nextHandleFileTransition()
StatusCode EventSelectorAthenaPool::nextHandleFileTransition |
( |
IEvtSelector::Context & |
ctxt | ) |
const |
|
overrideprotectedvirtual |
Handle file transition at the next iteration.
Definition at line 609 of file EventSelectorAthenaPool.cxx.
611 if( m_inputCollectionsChanged ) {
613 if( rc != StatusCode::SUCCESS )
return rc;
617 if (m_headerIterator ==
nullptr || m_headerIterator->next() == 0) {
618 m_headerIterator =
nullptr;
620 m_poolCollectionConverter.reset();
628 if( m_inputCollectionsChanged ) {
630 if( rc != StatusCode::SUCCESS )
return rc;
633 ++m_inputCollectionsIterator;
636 if (!m_poolCollectionConverter) {
640 return StatusCode::FAILURE;
643 m_headerIterator = &m_poolCollectionConverter->selectAll();
646 return StatusCode::RECOVERABLE;
650 const Token& headRef = m_headerIterator->eventRef();
655 if (
guid != m_guid) {
664 m_activeEventsPerSource[
guid.toString()] = 0;
669 if (!
m_athenaPoolCnvSvc->setInputAttributes(*m_inputCollectionsIterator).isSuccess()) {
671 return(StatusCode::FAILURE);
674 FileIncident beginInputFileIncident(
name(),
"BeginInputFile", *m_inputCollectionsIterator, m_guid.toString());
680 FileIncident beginInputFileIncident(
name(),
"BeginInputFile",
"FID:" + m_guid.toString(), m_guid.toString());
685 return StatusCode::SUCCESS;
◆ nextWithSkip()
StatusCode EventSelectorAthenaPool::nextWithSkip |
( |
IEvtSelector::Context & |
ctxt | ) |
const |
|
overrideprotectedvirtual |
Go to next event and skip if necessary.
Definition at line 688 of file EventSelectorAthenaPool.cxx.
694 if (
sc.isRecoverable()) {
697 if (
sc.isFailure()) {
698 return StatusCode::FAILURE;
708 && (m_skipEventRanges.empty() ||
m_evtCount < m_skipEventRanges.front().first))
710 return StatusCode::SUCCESS;
712 while( !m_skipEventRanges.empty() &&
m_evtCount >= m_skipEventRanges.front().second ) {
713 m_skipEventRanges.erase(m_skipEventRanges.begin());
723 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 726 of file EventSelectorAthenaPool.cxx.
728 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 731 of file EventSelectorAthenaPool.cxx.
733 for (
int i = 0;
i < jump;
i++) {
736 return(StatusCode::SUCCESS);
738 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 963 of file EventSelectorAthenaPool.cxx.
967 return(StatusCode::FAILURE);
970 ATH_MSG_ERROR(
"No AthenaSharedMemoryTool configured for readEvent()");
971 return(StatusCode::FAILURE);
975 for (
int i = 0;
i < maxevt || maxevt == -1; ++
i) {
976 if (!
next(*ctxt).isSuccess()) {
982 delete ctxt; ctxt =
nullptr;
983 return(StatusCode::FAILURE);
988 delete ctxt; ctxt =
nullptr;
992 while (
ds->readData().isSuccess()) {
993 ATH_MSG_VERBOSE(
"Called last readData, while marking last event in readEvent()");
997 if (!
sc.isSuccess()) {
998 ATH_MSG_ERROR(
"Cannot put last Event marker to AthenaSharedMemoryTool");
999 return(StatusCode::FAILURE);
1001 sc =
ds->readData();
1002 while (
sc.isSuccess() ||
sc.isRecoverable()) {
1003 sc =
ds->readData();
1005 ATH_MSG_DEBUG(
"Failed last readData -> Clients are stopped, after marking last event in readEvent()");
1007 return(StatusCode::SUCCESS);
◆ recordAttributeList()
StatusCode EventSelectorAthenaPool::recordAttributeList |
( |
| ) |
const |
|
overrideprotectedvirtual |
◆ reinit()
StatusCode EventSelectorAthenaPool::reinit |
( |
| ) |
const |
|
private |
Reinitialize the service when a fork()
occured/was-issued.
Definition at line 245 of file EventSelectorAthenaPool.cxx.
250 for(
auto&
el : m_numEvt )
el = -1;
252 for(
auto&
el : m_firstEvt )
el = -1;
257 if (!m_firstEvt.empty()) {
260 m_inputCollectionsChanged =
false;
262 m_headerIterator = 0;
264 ATH_MSG_INFO(
"Done reinitialization for shared reader client");
265 return(StatusCode::SUCCESS);
267 bool retError =
false;
268 for (
auto&
tool : m_helperTools) {
269 if (!
tool->postInitialize().isSuccess()) {
276 return(StatusCode::FAILURE);
281 if (!m_poolCollectionConverter) {
282 ATH_MSG_INFO(
"No Events found in any Input Collections");
288 FileIncident firstInputFileIncident(
name(),
"FirstInputFile", *m_inputCollectionsIterator);
293 return(StatusCode::SUCCESS);
297 m_headerIterator = &m_poolCollectionConverter->selectAll();
299 ATH_MSG_FATAL(
"Cannot open implicit collection - check data/software version.");
301 return(StatusCode::FAILURE);
303 while (m_headerIterator ==
nullptr || m_headerIterator->next() == 0) {
304 if (m_poolCollectionConverter) {
305 m_poolCollectionConverter->disconnectDb().ignore();
306 m_poolCollectionConverter.reset();
308 ++m_inputCollectionsIterator;
310 if (m_poolCollectionConverter) {
311 m_headerIterator = &m_poolCollectionConverter->selectAll();
316 if (!m_poolCollectionConverter || m_headerIterator ==
nullptr) {
320 if (!m_poolCollectionConverter) {
321 return(StatusCode::SUCCESS);
323 m_headerIterator = &m_poolCollectionConverter->selectAll();
324 while (m_headerIterator ==
nullptr || m_headerIterator->next() == 0) {
325 if (m_poolCollectionConverter) {
326 m_poolCollectionConverter->disconnectDb().ignore();
327 m_poolCollectionConverter.reset();
329 ++m_inputCollectionsIterator;
331 if (m_poolCollectionConverter) {
332 m_headerIterator = &m_poolCollectionConverter->selectAll();
338 if (!m_poolCollectionConverter || m_headerIterator ==
nullptr) {
339 return(StatusCode::SUCCESS);
341 const Token& headRef = m_headerIterator->eventRef();
348 FileIncident firstInputFileIncident(
name(),
"FirstInputFile",
"FID:" + fid, fid);
352 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 781 of file EventSelectorAthenaPool.cxx.
783 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 749 of file EventSelectorAthenaPool.cxx.
752 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 786 of file EventSelectorAthenaPool.cxx.
788 if( m_inputCollectionsChanged ) {
790 if( rc != StatusCode::SUCCESS )
return rc;
798 m_headerIterator =
nullptr;
801 return(StatusCode::RECOVERABLE);
805 m_poolCollectionConverter->disconnectDb().ignore();
807 m_poolCollectionConverter.reset();
812 <<
"\" from the collection list.");
820 if (!m_poolCollectionConverter->initialize().isSuccess()) {
821 m_headerIterator =
nullptr;
822 ATH_MSG_ERROR(
"seek: Unable to initialize PoolCollectionConverter.");
823 return(StatusCode::FAILURE);
826 m_headerIterator = &m_poolCollectionConverter->selectAll();
829 next(*beginIter).ignore();
830 ATH_MSG_DEBUG(
"Token " << m_headerIterator->eventRef().toString());
832 m_headerIterator =
nullptr;
834 return(StatusCode::FAILURE);
838 if (m_headerIterator->seek(evtNum - m_firstEvt[
m_curCollection]) == 0) {
839 m_headerIterator =
nullptr;
841 return(StatusCode::FAILURE);
845 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 930 of file EventSelectorAthenaPool.cxx.
934 return(StatusCode::FAILURE);
938 while (
sc.isRecoverable()) {
943 if (
sc.isFailure()) {
944 if (
ds->makeClient(0).isFailure()) {
945 return(StatusCode::FAILURE);
948 while (
sc.isRecoverable() ||
sc.isFailure()) {
953 if (
ds->makeClient(1).isFailure()) {
954 return(StatusCode::FAILURE);
959 return(StatusCode::FAILURE);
◆ size()
int EventSelectorAthenaPool::size |
( |
Context & |
ctxt | ) |
const |
|
overridevirtual |
◆ start()
StatusCode EventSelectorAthenaPool::start |
( |
| ) |
|
|
overridevirtual |
Definition at line 355 of file EventSelectorAthenaPool.cxx.
356 if (m_poolCollectionConverter) {
358 m_poolCollectionConverter->disconnectDb().ignore();
359 m_poolCollectionConverter.reset();
364 return(StatusCode::SUCCESS);
367 if (!m_poolCollectionConverter) {
368 ATH_MSG_INFO(
"No Events found in any Input Collections");
371 --m_inputCollectionsIterator;
374 m_headerIterator = &m_poolCollectionConverter->selectAll();
380 return(StatusCode::SUCCESS);
◆ stop()
StatusCode EventSelectorAthenaPool::stop |
( |
| ) |
|
|
overridevirtual |
Definition at line 383 of file EventSelectorAthenaPool.cxx.
385 return(StatusCode::SUCCESS);
387 IEvtSelector::Context* ctxt(
nullptr);
391 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} |
|
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
IntegerProperty 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
static const Guid & null()
NULL-Guid: static class method.
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() occured/was-issued.
This class provides an interface to POOL collections.
virtual StatusCode previous(IEvtSelector::Context &ctxt) const override
ServiceHandle< IIncidentSvc > m_incidentSvc
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.
const std::string toString() const
Automatic conversion to string representation.
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.
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.
Token & fromString(const std::string &from)
Build from the string representation of a token.
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.
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...
IntegerProperty m_makeStreamingToolClient
Make this instance a Streaming Client during first iteration automatically.
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.
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)