|
ATLAS Offline Software
|
The ATLAS event loop for pile-up applications.
More...
#include <PileUpEventLoopMgr.h>
The ATLAS event loop for pile-up applications.
Definition at line 43 of file PileUpEventLoopMgr.h.
◆ IEvtIdModifierSvc_t
◆ PileUpEventLoopMgr()
PileUpEventLoopMgr::PileUpEventLoopMgr |
( |
const std::string & |
nam, |
|
|
ISvcLocator * |
svcLoc |
|
) |
| |
Standard Constructor.
Definition at line 53 of file PileUpEventLoopMgr.cxx.
55 : base_class(
name, svcLoc)
84 declareProperty(
"MaxBunchCrossingPerOrbit",
m_maxBunchCrossingPerOrbit,
"The number of slots in each LHC beam. Default: 3564.");
85 declareProperty(
"OrigSelector",
m_origSel,
"EventSelector for original (physics) events stream" );
86 declareProperty(
"SignalSelector",
m_signalSel,
"EventSelector for signal (hard-scatter) events stream" );
87 declareProperty(
"XingFrequency",
m_xingFreq,
"ns");
88 declareProperty(
"firstXing",
m_firstXing,
"time of first xing / XingFrequency (0th xing is 1st after trigger)");
89 declareProperty(
"lastXing",
m_lastXing,
"time of last xing / XingFrequency (0th xing is 1st after trigger)");
90 declareProperty(
"MaxMinBiasCollPerXing",
m_maxCollPerXing,
"Set to digitization numberOfCollisions prop. for variable-mu and RunDMC jobs.");
91 declareProperty(
"bkgCaches",
m_caches,
"list of tools managing bkg events");
92 declareProperty(
"AllowSubEvtsEOF",
m_allowSubEvtsEOF,
"if true(default) an EOF condition in the BkgStreamsCaches is not considered to be an error IF maxevt=-1 (loop over all available events)");
93 declareProperty(
"XingByXing",
m_xingByXing,
"if set to true we will not cache bkg events from one xing to then next. This greatly increases the amount of I/O and greatly reduces the memory required to run a job");
95 "Controls behaviour of event loop depending on return code of"
96 " Algorithms. 0: all non-SUCCESSes terminate job. "
97 "1: RECOVERABLE skips to next event, FAILURE terminates job "
98 "(DEFAULT). 2: RECOVERABLE and FAILURE skip to next events");
101 "The service providing the beam intensity distribution");
103 "The service providing the beam luminosity distribution vs. run");
104 declareProperty(
"PileUpMergeSvc",
m_mergeSvc,
"PileUp Merge Service");
105 declareProperty(
"EvtIdModifierSvc",
m_evtIdModSvc,
"ServiceHandle for EvtIdModifierSvc");
106 declareProperty(
"AllowSerialAndMPToDiffer",
m_allowSerialAndMPToDiffer,
"When set to False, this will allow the code to reproduce serial output in an AthenaMP job, albeit with a significant performance penalty.");
107 declareProperty(
"EventInfoName",
m_evinfName,
"SG key for the EventInfo object");
108 declareProperty(
"EventInfoContName",
m_evinfContName,
"SG key for the EventInfoContainer object");
◆ ~PileUpEventLoopMgr()
PileUpEventLoopMgr::~PileUpEventLoopMgr |
( |
| ) |
|
|
virtual |
◆ curEvent()
int PileUpEventLoopMgr::curEvent |
( |
| ) |
const |
|
virtual |
◆ executeAlgorithms()
StatusCode PileUpEventLoopMgr::executeAlgorithms |
( |
const EventContext & |
ctx | ) |
|
|
privatevirtual |
Run the algorithms for the current event.
Definition at line 611 of file PileUpEventLoopMgr.cxx.
615 ita != m_topAlgList.end();
621 m_aess->algExecState(*ita, ctx ).setState(AlgExecState::State::Done,
sc);
622 if ( !
sc.isSuccess() ) {
624 (*ita)->name() <<
" failed with StatusCode::" <<
sc );
629 return StatusCode::SUCCESS;
◆ executeEvent()
StatusCode PileUpEventLoopMgr::executeEvent |
( |
EventContext && |
ctx | ) |
|
|
virtual |
implementation of IEventProcessor::executeEvent(void* par)
Fire begin-Run incident if new run:
m_failureMode 1, RECOVERABLE: skip algorithms, but do not terminate job FAILURE: terminate job
m_failureMode 2: skip algorithms, but do not terminate job
Definition at line 636 of file PileUpEventLoopMgr.cxx.
653 bool eventFailed(
false);
657 if (!
sc.isSuccess()) {
659 m_aess->setEventStatus( EventStatus::AlgFail, ctx );
666 "Skipping remaining algorithms." << std::endl <<
667 "\tNo output will be written for this event, " <<
668 "but job will continue to next event" );
674 ATH_MSG_INFO (
"Skipping remaining algorithms." << std::endl <<
675 "\tNo output will be written for this event, " <<
676 "but job will continue to next event" );
681 m_aess->setEventStatus( EventStatus::Success, ctx );
685 ito != m_outStreamList.end(); ++ito ) {
686 sc = (*ito)->sysExecute( ctx );
687 if ( !
sc.isSuccess() ) {
696 return eventFailed?StatusCode::FAILURE:StatusCode::SUCCESS;
◆ finalize()
StatusCode PileUpEventLoopMgr::finalize |
( |
| ) |
|
|
virtual |
implementation of IAppMgrUI::finalize
Definition at line 195 of file PileUpEventLoopMgr.cxx.
202 while (cacheIterator != endOfCaches) {
◆ getBCID()
unsigned int PileUpEventLoopMgr::getBCID |
( |
int |
bunchXing, |
|
|
unsigned int |
centralBCID |
|
) |
| const |
|
inlineprivate |
◆ initialize()
StatusCode PileUpEventLoopMgr::initialize |
( |
| ) |
|
|
virtual |
implementation of IAppMgrUI::initialize
Definition at line 120 of file PileUpEventLoopMgr.cxx.
124 ATH_MSG_WARNING (
"AllowSerialAndMPToDiffer=False! This will incur serious performance penalties! But Serial and MP output will be the same." );
145 SmartIF<IProperty> prpMgr(serviceLocator());
146 SmartIF<IEvtSelector> evtSelector;
147 if (prpMgr.isValid()) {
149 std::string evtSelName = prpMgr->getProperty(
"EvtSel").toString();
150 evtSelector = serviceLocator()->service(evtSelName);
151 CHECK(evtSelector.isValid());
154 ATH_MSG_ERROR (
"IProperty interface not found in ApplicationMgr" );
155 return StatusCode::FAILURE;
158 SmartIF<IProperty> prpMgr1(evtSelector);
159 if (prpMgr1.isValid()) {
160 std::string skipEventsStr = prpMgr1->getProperty(
"SkipEvents").toString();
164 ATH_MSG_ERROR (
"IProperty interface not found on the event selector" );
165 return StatusCode::FAILURE;
169 m_aess = serviceLocator()->service(
"AlgExecStateSvc");
172 return StatusCode::FAILURE;
179 ATH_MSG_DEBUG (
"EventID modifier Service not set. No run number, ... overrides will be applied." );
182 ATH_MSG_INFO (
"Could not find EventID modifier Service. No run number, ... overrides will be applied." );
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ modifyEventContext()
void PileUpEventLoopMgr::modifyEventContext |
( |
EventContext & |
ctx, |
|
|
const EventID & |
eID, |
|
|
bool |
consume_modifier_stream |
|
) |
| |
|
virtual |
Definition at line 225 of file PileUpEventLoopMgr.cxx.
232 unsigned int oldrunnr=eID.run_number();
233 unsigned int oldLB=eID.lumi_block();
234 unsigned int oldTS=eID.time_stamp();
235 unsigned int oldTSno=eID.time_stamp_ns_offset();
236 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc runnr=" << oldrunnr <<
" -> " << new_eID.run_number() );
237 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc LB=" << oldLB <<
" -> " << new_eID.lumi_block() );
238 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp=" << oldTS <<
" -> " << new_eID.time_stamp() );
239 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp ns Offset=" << oldTSno <<
" -> " << new_eID.time_stamp_ns_offset() );
241 ctx.setEventID(new_eID);
245 ctx.setEventID( eID );
◆ msg() [1/4]
MsgStream & AthMessaging::msg |
|
inline |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 92 of file AthMessaging.h.
◆ msg() [2/4]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
◆ msg() [3/4]
MsgStream & AthMessaging::msg |
|
inline |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 99 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msg() [4/4]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msgLvl() [1/2]
bool AthMessaging::msgLvl |
|
inline |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 86 of file AthMessaging.h.
◆ msgLvl() [2/2]
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ nextEvent()
StatusCode PileUpEventLoopMgr::nextEvent |
( |
int |
maxevt | ) |
|
|
virtual |
implementation of IAppMgreUI::terminate
implementation of IAppMgrUI::nextEvent
Is this correct, or should it be set to a pileup store?
ask the BeamLuminositySvc to check for a new scalefactor
Definition at line 252 of file PileUpEventLoopMgr.cxx.
256 return StatusCode::SUCCESS;
273 for ( ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ++ita ) {
274 if( !((*ita)->sysInitialize()).isSuccess() ) {
277 return StatusCode::FAILURE;
283 for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ++ita ) {
284 if( !((*ita)->sysInitialize()).isSuccess() ) {
287 return StatusCode::FAILURE;
295 while( (maxevt == -1 ||
m_nevt < maxevt) &&
298 if ( m_scheduledStop ) {
299 m_scheduledStop =
false;
300 ATH_MSG_ALWAYS (
"A stopRun was requested. Terminating event loop." );
311 pOverEvent->
setStore( pOverEventAux );
312 ATH_MSG_DEBUG(
" #subevents in the signal event =" << inputEventInfo->subEvents().size());
315 *pOverEvent = *inputEventInfo;
332 <<
") and provided mcChannelNumber (" <<
m_mcChannelNumber.value() <<
") do not match.");
342 return StatusCode::FAILURE;
347 ATH_MSG_ERROR(
"Input mcEventWeights are empty. This should not happen.");
348 return StatusCode::FAILURE;
358 puei->setStore( puaux );
368 bool consume_modifier_stream =
false;
371 if ( pAttrList !=
nullptr && pAttrList->size() > 6 ) {
377 consume_modifier_stream =
true;
383 ctx.eventID().run_number()) );
384 Gaudi::Hive::setCurrentContext( ctx );
387 auto puctx =std::make_unique<EventContext> ( ctx );
388 if (
m_evtStore->record( std::move(puctx) ,
"EventContext").isFailure()) {
390 return StatusCode::FAILURE;
400 ATH_MSG_INFO (
"nextEvent(): overlaying original event " <<
407 m_beamInt->selectT0(ctx.eventID().run_number(), ctx.eventID().event_number());
412 unsigned int t0BCID = pOverEvent->
bcid();
422 bool addpEvent(
true);
424 ATH_MSG_DEBUG(
"inputEventInfo->evtStore()="<<inputEventInfo->evtStore()<<
", pOverEvent->evtStore()=" << pOverEvent->evtStore()<<
", &m_origStream.store()="<<&
m_origStream.
store() );
432 ATH_MSG_DEBUG(
"Added inputEventInfo="<<inputEventInfo<<
" as subEvent "<<newEv<<
" to pOverEvent " << pOverEvent );
433 ATH_MSG_DEBUG(
" afterwards: newEv->evtStore()="<<newEv->evtStore()<<
", pOverEvent->evtStore()=" << pOverEvent->evtStore() );
459 while (cacheIterator != endOfCaches) {
461 (*cacheIterator)->resetEvtsPerXingScaleFactor(
sf);
463 (*cacheIterator++)->newEvent();
474 unsigned int currentBCID =
getBCID((t0BinCenter/25), t0BCID);
477 while (cacheIterator != endOfCaches) {
479 if (((*cacheIterator)->addSubEvts(iXing-
m_firstXing, pOverEvent, t0BinCenter,
m_loadProxies, currentBCID)).isFailure()) {
482 ATH_MSG_INFO (
"No more sub events for " << cacheIterator->name() );
483 return StatusCode::SUCCESS;
486 ATH_MSG_FATAL (
"Error adding sub events to " << cacheIterator->name() );
487 return StatusCode::FAILURE;
516 m_incidentSvc->fireIncident(ContextIncident<std::pair<unsigned,unsigned> >(this->
name(),
"ReseedIncident",std::pair<unsigned,unsigned>(pOverEvent->
eventNumber(),pOverEvent->
runNumber())));
522 ATH_MSG_ERROR (
"Terminating event processing loop due to errors" );
523 return StatusCode::FAILURE;
545 return StatusCode::SUCCESS;
◆ seek()
StatusCode PileUpEventLoopMgr::seek |
( |
int |
evt | ) |
|
|
virtual |
Seek to a given event.
Definition at line 549 of file PileUpEventLoopMgr.cxx.
554 " nevtsToAdvance=" << nevtsToAdvance );
557 for (
int i=0;
i<nevtsToAdvance; ++
i) {
561 if (this->
nextEvent(nParam).isFailure()) {
563 return StatusCode::FAILURE;
567 return StatusCode::SUCCESS;
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ setupStreams()
StatusCode PileUpEventLoopMgr::setupStreams |
( |
| ) |
|
|
private |
setup input and overlay selectors and iters
Definition at line 579 of file PileUpEventLoopMgr.cxx.
588 return StatusCode::FAILURE;
598 unsigned int firstStore(0);
600 while ((cacheIterator != endOfCaches) &&
sc.isSuccess()) {
602 firstStore += (*cacheIterator)->nStores() ;
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_aess
SmartIF<IAlgExecStateSvc> PileUpEventLoopMgr::m_aess |
|
private |
◆ m_allowSerialAndMPToDiffer
Gaudi::Property<bool> PileUpEventLoopMgr::m_allowSerialAndMPToDiffer |
|
private |
property: Default true.
When set to false, this will allow the code to reproduce serial output in an AthenaMP job, albeit with a significant performance penalty.
Definition at line 166 of file PileUpEventLoopMgr.h.
◆ m_allowSubEvtsEOF
Gaudi::Property<bool> PileUpEventLoopMgr::m_allowSubEvtsEOF |
|
private |
◆ m_beamInt
property: beam intensity service handle for beam profile in local time
Definition at line 145 of file PileUpEventLoopMgr.h.
◆ m_beamLumi
property: beam intensity service handle for luminosity profile in iovtime
Definition at line 147 of file PileUpEventLoopMgr.h.
◆ m_caches
◆ m_currentRun
uint32_t PileUpEventLoopMgr::m_currentRun |
|
private |
◆ m_evinfContName
Gaudi::Property<std::string> PileUpEventLoopMgr::m_evinfContName |
|
private |
◆ m_evinfName
Gaudi::Property<std::string> PileUpEventLoopMgr::m_evinfName |
|
private |
◆ m_evtIdModSvc
◆ m_evtStore
◆ m_failureMode
Gaudi::Property<int> PileUpEventLoopMgr::m_failureMode |
|
private |
property: control behaviour of event loop on algorithm failure
Definition at line 136 of file PileUpEventLoopMgr.h.
◆ m_firstRun
bool PileUpEventLoopMgr::m_firstRun |
|
private |
◆ m_firstXing
Gaudi::Property<int> PileUpEventLoopMgr::m_firstXing |
|
private |
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_incidentSvc
◆ m_lastXing
Gaudi::Property<int> PileUpEventLoopMgr::m_lastXing |
|
private |
◆ m_loadProxies
bool PileUpEventLoopMgr::m_loadProxies |
|
private |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_maxBunchCrossingPerOrbit
unsigned int PileUpEventLoopMgr::m_maxBunchCrossingPerOrbit |
|
private |
◆ m_maxCollPerXing
Gaudi::Property<float> PileUpEventLoopMgr::m_maxCollPerXing |
|
private |
◆ m_mcChannelNumber
Gaudi::Property<uint32_t> PileUpEventLoopMgr::m_mcChannelNumber { this, "MCChannelNumber", 0, "sample MC channel number" } |
|
private |
◆ m_mergeSvc
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_ncurevt
int PileUpEventLoopMgr::m_ncurevt |
|
private |
◆ m_nevt
int PileUpEventLoopMgr::m_nevt |
|
private |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_origSel
◆ m_origStream
◆ m_signalSel
◆ m_skipExecAlgs
bool PileUpEventLoopMgr::m_skipExecAlgs |
|
private |
◆ m_xingByXing
Gaudi::Property<bool> PileUpEventLoopMgr::m_xingByXing |
|
private |
property: process bkg events xing by xing without caching them
Definition at line 133 of file PileUpEventLoopMgr.h.
◆ m_xingFreq
Gaudi::Property<float> PileUpEventLoopMgr::m_xingFreq |
|
private |
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
std::atomic< MSG::Level > m_lvl
Current logging level.
const std::string c_pileUpEventInfoContName
default value for the EventInfoContainer storing subevents for PileUp
void setActualInteractionsPerCrossing(float value)
Set average interactions per crossing for the current BCID.
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
void setEventNumber(uint64_t value)
Set the current event's event number.
ServiceHandle< IIncidentSvc > m_incidentSvc
Incident Service.
EventInfo_v1 EventInfo
Definition of the latest event info version.
uint64_t eventNumber() const
The current event's event number.
const std::vector< float > & mcEventWeights() const
The weights of all the MC events used in the simulation.
Gaudi::Property< bool > m_allowSerialAndMPToDiffer
property: Default true.
ServiceHandle< IEvtSelector > m_signalSel
Signal Event selector (for overlay).
Auxiliary information about the event.
void clearSubEvents()
Clear all the currently held sub-events.
virtual StatusCode nextEvent(int maxevt)
implementation of IAppMgreUI::terminate
ServiceHandle< IEvtSelector > m_origSel
Original (Physics) Event selector (background for overlay).
static xAOD::EventInfo::PileUpMixtureID uuidToPileUpMixtureId(const uuid_t &hash)
Convert uuid_t to xAOD::EventInfo::PileUpMixtureID.
std::string hashSource() const
Get the current hash base.
Gaudi::Property< float > m_xingFreq
Xing frequency(ns);.
#define ATH_MSG_VERBOSE(x)
ServiceHandle< StoreGateSvc > m_evtStore
output store
Gaudi::Property< std::string > m_evinfName
SG key for the EventInfoContainer.
virtual StatusCode executeAlgorithms(const EventContext &ctx)
Run the algorithms for the current event.
@ IS_SIMULATION
true: simulation, false: data
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
PileUpStream m_origStream
Input Stream.
IMessageSvc * getMessageSvc(bool quiet=false)
uint32_t runNumber() const
The current event's run number.
unsigned int m_maxBunchCrossingPerOrbit
max bunch crossings per orbit
PileUpMixtureID pileUpMixtureID() const
Unique pile-up mixture identifier.
uint32_t mcChannelNumber() const
The MC generator's channel number.
void setPileUpMixtureID(const PileUpMixtureID &value)
Set unique pile-up mixture identifier.
AthMessaging()
Default constructor:
const xAOD::EventInfo * nextEventPre(bool readRecord=true)
return next Event, load store with next Event
StatusCode finalize()
finalize and release store. To be called on ... finalize()
ServiceHandle< PileUpMergeSvc > m_mergeSvc
PileUp Merge Service.
void setMCEventNumber(uint64_t value)
Set the MC generator's event number.
void setEventTypeBitmask(uint32_t value)
Set the event type bitmask.
Gaudi::Property< bool > m_allowSubEvtsEOF
property: allow sub evts EOF condition when maxevt==-1
void setStore(const SG::IConstAuxStore *store)
Set the store associated with this object.
bool setupStore()
setup input and overlay selectors and iters
::StatusCode StatusCode
StatusCode definition for legacy code.
ServiceHandle< IBeamIntensity > m_beamInt
property: beam intensity service handle for beam profile in local time
void addToHashSource(const std::string &string)
Add a plain string to the stream.
#define ATH_MSG_ALWAYS(x)
a triple selector/context/store defines a stream
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
#define CHECK(...)
Evaluate an expression and check for errors.
Gaudi::Property< std::string > m_evinfContName
SG key for the EventInfoContainer.
StatusCode setupStreams()
setup input and overlay selectors and iters
void setTimeStamp(uint32_t value)
Set the POSIX time of the event.
void setBCID(uint32_t value)
Set the bunch crossing ID of the event.
uint32_t lumiBlock() const
The current event's luminosity block number.
Gaudi::Property< uint32_t > m_mcChannelNumber
MsgStream & msg() const
The standard message stream.
EventAuxInfo_v3 EventAuxInfo
Definition of the latest event auxiliary info version.
Gaudi::Property< int > m_firstXing
first xing to be simulated (0th xing is 1st after trigger)
Auxiliary information about the pileup events.
unsigned int getBCID(int bunchXing, unsigned int centralBCID) const
return the 'fake BCID' corresponding to bunchXing
virtual StatusCode executeEvent(EventContext &&ctx)
implementation of IEventProcessor::executeEvent(void* par)
float averageInteractionsPerCrossing() const
Average interactions per crossing for all BCIDs - for out-of-time pile-up.
Gaudi::Property< float > m_maxCollPerXing
(max) minBias interactions per Xing, for setting MC luminosity
IEvtIdModifierSvc_t m_evtIdModSvc
void setAverageInteractionsPerCrossing(float value)
Set average interactions per crossing for all BCIDs.
const T * tryConstRetrieve() const
Class describing the basic event information.
void setMCChannelNumber(uint32_t value)
Set the MC generator's channel number.
ToolHandleArray< IBkgStreamsCache > m_caches
BkgStreamsCaches managing background events.
@ Signal
The signal event.
Gaudi::Property< bool > m_xingByXing
property: process bkg events xing by xing without caching them
#define ATH_MSG_WARNING(x)
void setRunNumber(uint32_t value)
Set the current event's run number.
std::string m_nm
Message source name.
const std::string c_pileUpEventInfoObjName
default value for the EventInfoContainer storing subevents for PileUp
uint32_t m_currentRun
current run number
SmartIF< IAlgExecStateSvc > m_aess
Reference to the Algorithm Execution State Svc.
void calculateHash(uuid_t &hash) const
Calculate the hash.
EventID eventIDFromxAOD(const xAOD::EventInfo *xaod)
Create EventID object from xAOD::EventInfo.
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
Gaudi::Property< int > m_lastXing
last xing to be simulated (0th xing is 1st after trigger)
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
void initMessaging() const
Initialize our message level and MessageSvc.
void setLumiBlock(uint32_t value)
Set the current event's luminosity block number.
const std::vector< SubEvent > & subEvents() const
Get the pileup events that were used in the simulation.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
uint32_t bcid() const
The bunch crossing ID of the event.
Gaudi::Property< int > m_failureMode
property: control behaviour of event loop on algorithm failure
xAOD::EventInfo * addSubEvent(xAOD::EventInfo *targetEv, const xAOD::EventInfo::SubEvent &subev, xAOD::EventInfoContainer *eiContainer, const std::string &eiContKey, StoreGateSvc *subev_store=nullptr)
virtual void modifyEventContext(EventContext &ctx, const EventID &eID, bool consume_modifier_stream)
uint64_t mcEventNumber() const
The MC generator's event number.
void setMCEventWeights(const std::vector< float > &value)
Set the weights of all the MC events used in the simulation.
float actualInteractionsPerCrossing() const
Average interactions per crossing for the current BCID - for in-time pile-up.
ServiceHandle< IBeamLuminosity > m_beamLumi
property: beam intensity service handle for luminosity profile in iovtime