 |
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 45 of file PileUpEventLoopMgr.h.
◆ PileUpEventLoopMgr()
| PileUpEventLoopMgr::PileUpEventLoopMgr |
( |
const std::string & |
nam, |
|
|
ISvcLocator * |
svcLoc |
|
) |
| |
◆ ~PileUpEventLoopMgr()
| PileUpEventLoopMgr::~PileUpEventLoopMgr |
( |
| ) |
|
|
virtual |
◆ curEvent()
| int PileUpEventLoopMgr::curEvent |
( |
| ) |
const |
|
overridevirtual |
◆ executeAlgorithms()
| StatusCode PileUpEventLoopMgr::executeAlgorithms |
( |
const EventContext & |
ctx | ) |
|
|
privatevirtual |
Run the algorithms for the current event.
Definition at line 556 of file PileUpEventLoopMgr.cxx.
560 ita != m_topAlgList.end();
566 m_aess->algExecState(*ita, ctx ).setState(AlgExecState::State::Done,
sc);
567 if ( !
sc.isSuccess() ) {
569 (*ita)->name() <<
" failed with StatusCode::" <<
sc );
574 return StatusCode::SUCCESS;
◆ executeEvent()
| StatusCode PileUpEventLoopMgr::executeEvent |
( |
EventContext && |
ctx | ) |
|
|
overridevirtual |
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 581 of file PileUpEventLoopMgr.cxx.
598 bool eventFailed(
false);
602 if (!
sc.isSuccess()) {
604 m_aess->setEventStatus( EventStatus::AlgFail, ctx );
611 "Skipping remaining algorithms." << std::endl <<
612 "\tNo output will be written for this event, " <<
613 "but job will continue to next event" );
619 ATH_MSG_INFO (
"Skipping remaining algorithms." << std::endl <<
620 "\tNo output will be written for this event, " <<
621 "but job will continue to next event" );
626 m_aess->setEventStatus( EventStatus::Success, ctx );
630 ito != m_outStreamList.end(); ++ito ) {
631 sc = (*ito)->sysExecute( ctx );
632 if ( !
sc.isSuccess() ) {
641 return eventFailed?StatusCode::FAILURE:StatusCode::SUCCESS;
◆ finalize()
| StatusCode PileUpEventLoopMgr::finalize |
( |
| ) |
|
|
overridevirtual |
◆ getBCID()
| unsigned int PileUpEventLoopMgr::getBCID |
( |
int |
bunchXing, |
|
|
unsigned int |
centralBCID |
|
) |
| const |
|
inlineprivate |
◆ initialize()
| StatusCode PileUpEventLoopMgr::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 65 of file PileUpEventLoopMgr.cxx.
69 ATH_MSG_WARNING (
"AllowSerialAndMPToDiffer=False! This will incur serious performance penalties! But Serial and MP output will be the same." );
90 SmartIF<IProperty> prpMgr(serviceLocator());
91 SmartIF<IEvtSelector> evtSelector;
92 if (prpMgr.isValid()) {
94 evtSelector = serviceLocator()->service(prpMgr->getProperty(
"EvtSel").toString());
95 CHECK(evtSelector.isValid());
98 ATH_MSG_ERROR (
"IProperty interface not found in ApplicationMgr" );
99 return StatusCode::FAILURE;
102 SmartIF<IProperty> prpMgr1(evtSelector);
103 if (prpMgr1.isValid()) {
104 std::string skipEventsStr = prpMgr1->getProperty(
"SkipEvents").toString();
108 ATH_MSG_ERROR (
"IProperty interface not found on the event selector" );
109 return StatusCode::FAILURE;
113 m_aess = serviceLocator()->service(
"AlgExecStateSvc");
116 return StatusCode::FAILURE;
123 ATH_MSG_DEBUG (
"EventID modifier Service not set. No run number, ... overrides will be applied." );
126 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 |
|
) |
| |
|
private |
Definition at line 169 of file PileUpEventLoopMgr.cxx.
176 unsigned int oldrunnr=eID.run_number();
177 unsigned int oldLB=eID.lumi_block();
178 unsigned int oldTS=eID.time_stamp();
179 unsigned int oldTSno=eID.time_stamp_ns_offset();
180 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc runnr=" << oldrunnr <<
" -> " << new_eID.run_number() );
181 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc LB=" << oldLB <<
" -> " << new_eID.lumi_block() );
182 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp=" << oldTS <<
" -> " << new_eID.time_stamp() );
183 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp ns Offset=" << oldTSno <<
" -> " << new_eID.time_stamp_ns_offset() );
185 ctx.setEventID(new_eID);
189 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 | ) |
|
|
overridevirtual |
Is this correct, or should it be set to a pileup store?
ask the BeamLuminositySvc to check for a new scalefactor
Definition at line 196 of file PileUpEventLoopMgr.cxx.
200 return StatusCode::SUCCESS;
217 for ( ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ++ita ) {
218 if( !((*ita)->sysInitialize()).isSuccess() ) {
221 return StatusCode::FAILURE;
227 for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ++ita ) {
228 if( !((*ita)->sysInitialize()).isSuccess() ) {
231 return StatusCode::FAILURE;
239 while( (maxevt == -1 ||
m_nevt < maxevt) &&
242 if ( m_scheduledStop ) {
243 m_scheduledStop =
false;
244 ATH_MSG_ALWAYS (
"A stopRun was requested. Terminating event loop." );
253 auto upOverEvent = std::make_unique<xAOD::EventInfo>();
254 auto upOverEventAux = std::make_unique<xAOD::EventAuxInfo>();
255 upOverEvent->setStore( upOverEventAux.get() );
257 ATH_MSG_DEBUG(
" #subevents in the signal event =" << inputEventInfo->subEvents().size());
260 *pOverEvent = *inputEventInfo;
277 <<
") and provided mcChannelNumber (" <<
m_mcChannelNumber.value() <<
") do not match.");
287 return StatusCode::FAILURE;
292 ATH_MSG_ERROR(
"Input mcEventWeights are empty. This should not happen.");
293 return StatusCode::FAILURE;
303 puei->setStore( puaux );
313 bool consume_modifier_stream =
false;
316 if ( pAttrList !=
nullptr && pAttrList->size() > 6 ) {
322 consume_modifier_stream =
true;
328 ctx.eventID().run_number()) );
329 Gaudi::Hive::setCurrentContext( ctx );
332 auto puctx =std::make_unique<EventContext> ( ctx );
333 if (
m_evtStore->record( std::move(puctx) ,
"EventContext").isFailure()) {
335 return StatusCode::FAILURE;
345 ATH_MSG_INFO (
"nextEvent(): overlaying original event " <<
352 m_beamInt->selectT0(ctx.eventID().run_number(), ctx.eventID().event_number());
357 unsigned int t0BCID = pOverEvent->
bcid();
367 bool addpEvent(
true);
369 ATH_MSG_DEBUG(
"inputEventInfo->evtStore()="<<inputEventInfo->evtStore()<<
", pOverEvent->evtStore()=" << pOverEvent->evtStore()<<
", &m_origStream.store()="<<&
m_origStream.
store() );
377 ATH_MSG_DEBUG(
"Added inputEventInfo="<<inputEventInfo<<
" as subEvent "<<newEv<<
" to pOverEvent " << pOverEvent );
378 ATH_MSG_DEBUG(
" afterwards: newEv->evtStore()="<<newEv->evtStore()<<
", pOverEvent->evtStore()=" << pOverEvent->evtStore() );
404 while (cacheIterator != endOfCaches) {
406 (*cacheIterator)->resetEvtsPerXingScaleFactor(
sf);
408 (*cacheIterator++)->newEvent();
419 unsigned int currentBCID =
getBCID((t0BinCenter/25), t0BCID);
422 while (cacheIterator != endOfCaches) {
424 if (((*cacheIterator)->addSubEvts(iXing-
m_firstXing, pOverEvent, t0BinCenter,
m_loadProxies, currentBCID)).isFailure()) {
427 ATH_MSG_INFO (
"No more sub events for " << cacheIterator->name() );
428 return StatusCode::SUCCESS;
431 ATH_MSG_FATAL (
"Error adding sub events to " << cacheIterator->name() );
432 return StatusCode::FAILURE;
461 m_incidentSvc->fireIncident(ContextIncident<std::pair<unsigned,unsigned> >(this->
name(),
"ReseedIncident",std::pair<unsigned,unsigned>(pOverEvent->
eventNumber(),pOverEvent->
runNumber())));
467 ATH_MSG_ERROR (
"Terminating event processing loop due to errors" );
468 return StatusCode::FAILURE;
490 return StatusCode::SUCCESS;
◆ seek()
| StatusCode PileUpEventLoopMgr::seek |
( |
int |
evt | ) |
|
|
overridevirtual |
Definition at line 494 of file PileUpEventLoopMgr.cxx.
499 " nevtsToAdvance=" << nevtsToAdvance );
502 for (
int i=0;
i<nevtsToAdvance; ++
i) {
506 if (this->
nextEvent(nParam).isFailure()) {
508 return StatusCode::FAILURE;
512 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 524 of file PileUpEventLoopMgr.cxx.
533 return StatusCode::FAILURE;
543 unsigned int firstStore(0);
545 while ((cacheIterator != endOfCaches) &&
sc.isSuccess()) {
547 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 |
Initial value:{this, "AllowSerialAndMPToDiffer", 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 130 of file PileUpEventLoopMgr.h.
◆ m_allowSubEvtsEOF
| Gaudi::Property<bool> PileUpEventLoopMgr::m_allowSubEvtsEOF |
|
private |
Initial value:{this, "AllowSubEvtsEOF", true,
"if true(default) an EOF condition in the BkgStreamsCaches is not considered "
"to be an error IF maxevt=-1 (loop over all available events)"}
Definition at line 119 of file PileUpEventLoopMgr.h.
◆ m_beamInt
Initial value:{this, "BeamInt", "FlatBM",
"The service providing the beam intensity distribution"}
Definition at line 98 of file PileUpEventLoopMgr.h.
◆ m_beamLumi
Initial value:{this, "BeamLuminosity", "LumiProfileSvc",
"The service providing the beam luminosity distribution vs. run"}
Definition at line 100 of file PileUpEventLoopMgr.h.
◆ m_caches
Initial value:{this, "bkgCaches", {},
"list of tools managing bkg events"}
Definition at line 117 of file PileUpEventLoopMgr.h.
◆ m_currentRun
| uint32_t PileUpEventLoopMgr::m_currentRun {0} |
|
private |
◆ m_evinfContName
| Gaudi::Property<std::string> PileUpEventLoopMgr::m_evinfContName |
|
private |
◆ m_evinfName
| Gaudi::Property<std::string> PileUpEventLoopMgr::m_evinfName |
|
private |
◆ m_evtIdModSvc
Initial value:{this, "EvtIdModifierSvc", "",
"ServiceHandle for EvtIdModifierSvc"}
Definition at line 104 of file PileUpEventLoopMgr.h.
◆ m_evtStore
◆ m_failureMode
| Gaudi::Property<int> PileUpEventLoopMgr::m_failureMode |
|
private |
Initial value:{this, "FailureMode", 1,
"Controls behaviour of event loop depending on return code of"
" Algorithms. 0: all non-SUCCESSes terminate job. "
"1: RECOVERABLE skips to next event, FAILURE terminates job "
"(DEFAULT). 2: RECOVERABLE and FAILURE skip to next events"}
Definition at line 125 of file PileUpEventLoopMgr.h.
◆ m_firstRun
| bool PileUpEventLoopMgr::m_firstRun {true} |
|
private |
◆ m_firstXing
| Gaudi::Property<int> PileUpEventLoopMgr::m_firstXing |
|
private |
Initial value:{this, "firstXing", -2,
"time of first xing / XingFrequency (0th xing is 1st after trigger)"}
Definition at line 111 of file PileUpEventLoopMgr.h.
◆ m_imsg
| std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_incidentSvc
◆ m_lastXing
| Gaudi::Property<int> PileUpEventLoopMgr::m_lastXing |
|
private |
Initial value:{this, "lastXing", 1,
"time of last xing / XingFrequency (0th xing is 1st after trigger)"}
Definition at line 113 of file PileUpEventLoopMgr.h.
◆ m_loadProxies
| bool PileUpEventLoopMgr::m_loadProxies {true} |
|
private |
◆ m_lvl
| std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_maxBunchCrossingPerOrbit
| Gaudi::Property<unsigned int> PileUpEventLoopMgr::m_maxBunchCrossingPerOrbit |
|
private |
Initial value:{this, "MaxBunchCrossingPerOrbit", 3564,
"The number of slots in each LHC beam. Default: 3564."}
Definition at line 107 of file PileUpEventLoopMgr.h.
◆ m_maxCollPerXing
| Gaudi::Property<float> PileUpEventLoopMgr::m_maxCollPerXing |
|
private |
Initial value:{this, "MaxMinBiasCollPerXing", 23.0,
"Set to digitization numberOfCollisions prop. for variable-mu and RunDMC jobs."}
Definition at line 115 of file PileUpEventLoopMgr.h.
◆ m_mcChannelNumber
| Gaudi::Property<uint32_t> PileUpEventLoopMgr::m_mcChannelNumber |
|
private |
Initial value:{ this, "MCChannelNumber", 0,
"sample MC channel number" }
Definition at line 137 of file PileUpEventLoopMgr.h.
◆ m_mergeSvc
Initial value:{this, "PileUpMergeSvc", "PileUpMergeSvc",
"PileUp Merge Service"}
Definition at line 102 of file PileUpEventLoopMgr.h.
◆ 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 {0} |
|
private |
◆ m_nevt
| int PileUpEventLoopMgr::m_nevt {0} |
|
private |
◆ m_nm
| std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_origSel
Initial value:{this, "OrigSelector", "EventSelector",
"EventSelector for original (physics) events stream"}
Definition at line 94 of file PileUpEventLoopMgr.h.
◆ m_origStream
◆ m_signalSel
Initial value:{this, "SignalSelector", "",
"EventSelector for signal (hard-scatter) events stream"}
Definition at line 96 of file PileUpEventLoopMgr.h.
◆ m_skipExecAlgs
| bool PileUpEventLoopMgr::m_skipExecAlgs {false} |
|
private |
◆ m_xingByXing
| Gaudi::Property<bool> PileUpEventLoopMgr::m_xingByXing |
|
private |
Initial value:{this, "XingByXing", false,
"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"}
Definition at line 122 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.
virtual StatusCode executeEvent(EventContext &&ctx) override
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
void clearSubEvents()
Clear all the currently held sub-events.
ServiceHandle< IEvtSelector > m_origSel
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
#define ATH_MSG_VERBOSE(x)
ServiceHandle< StoreGateSvc > m_evtStore
output store
Gaudi::Property< std::string > m_evinfName
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.
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
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
bool setupStore()
setup input and overlay selectors and iters
::StatusCode StatusCode
StatusCode definition for legacy code.
ServiceHandle< IEvtIdModifierSvc > m_evtIdModSvc
ServiceHandle< IBeamIntensity > m_beamInt
void addToHashSource(const std::string &string)
Add a plain string to the stream.
virtual StatusCode nextEvent(int maxevt) override
#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
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.
Gaudi::Property< int > m_firstXing
Auxiliary information about the pileup events.
unsigned int getBCID(int bunchXing, unsigned int centralBCID) const
return the 'fake BCID' corresponding to bunchXing
float averageInteractionsPerCrossing() const
Average interactions per crossing for all BCIDs - for out-of-time pile-up.
Gaudi::Property< float > m_maxCollPerXing
void setAverageInteractionsPerCrossing(float value)
Set average interactions per crossing for all BCIDs.
Gaudi::Property< unsigned int > m_maxBunchCrossingPerOrbit
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
@ Signal
The signal event.
Gaudi::Property< bool > m_xingByXing
#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
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
xAOD::EventInfo * addSubEvent(xAOD::EventInfo *targetEv, const xAOD::EventInfo::SubEvent &subev, xAOD::EventInfoContainer *eiContainer, const std::string &eiContKey, StoreGateSvc *subev_store=nullptr)
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