|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef PILEUPTOOLS_BKGSTREAMSCACHE_H
6 # define PILEUPTOOLS_BKGSTREAMSCACHE_H
19 #include "GaudiKernel/ServiceHandle.h"
20 #include "Gaudi/Property.h"
37 public extends<AthAlgTool, IBkgStreamsCache>
40 BkgStreamsCache(
const std::string&,
const std::string&,
const IInterface*);
51 unsigned int firstStore,
54 virtual void newEvent()
override final;
65 int t0BinCenter)
override final;
76 int t0BinCenter,
bool loadEventProxies,
unsigned int )
override final;
96 unsigned int nEvtsXing(
unsigned int iXing)
const;
157 #endif // PILEUPTOOLS_BKGSTREAMSCACHE_H
JetConstituentVector::iterator iterator
virtual StatusCode finalize() override final
void PileUpEventTypeHandler(Gaudi::Details::PropertyBase &)
StreamVector::iterator m_cursor
StatusCode nextEvent_passive(bool isCentralBunchCrossing)
as nextEvent except don't actually load anything
Gaudi::CheckedProperty< unsigned short > m_pileUpEventTypeProp
the type of events in this cache
Gaudi::Property< bool > m_ignoreBM
ignore the PileUpEventLoopMgr beam intensity tool
CLHEP::RandFlat * m_chooseEventRand
pickup an event store at random from the cache
std::vector< unsigned int > m_nEvtsXing
ServiceHandle< IAtRndmGenSvc > m_atRndmSvc
IAtRndmGenSvc controlling the distribution of bkg events per bunch crossing.
xAOD::EventInfo::PileUpType m_pileUpEventType
the type of events in this cache
unsigned int numberOfBkgForBunchCrossingDefaultImpl(unsigned int iXing) const
std::function< unsigned int(unsigned int) > m_f_numberOfBackgroundForBunchCrossing
function returning the number of bkg events per bunch crossing after bunch structure modulation
float m_collXingSF
float scaling number of collisions per bunch crossing
Gaudi::Property< unsigned short > m_subtractBC0
subtract from number of events at bunch xing = 0
std::vector< PileUpStream > StreamVector
Gaudi::Property< bool > m_forceReadForBC0
Force events used in the central bunch crossing to be refreshed.
Gaudi::Property< float > m_occupationFraction
The maximum fraction of bunch-crossings which will be occupied.
PileUpType
Enumerator describing the types of pileup events.
virtual unsigned int nStores() const override final
how many stores in this cache
std::function< long() > m_f_collDistr
function returning the number of collisions per bunch crossing before bunch structure modulation
Gaudi::Property< float > m_collXing
virtual StatusCode setup(int firstXing, unsigned int nXings, unsigned int firstStore, IBeamIntensity *) override final
bool const RAWDATA *ch2 const
unsigned int nEvtsXing(unsigned int iXing) const
IBeamIntensity * m_beamInt
pointer to the IBeamIntensity distribution tool
Gaudi::Property< std::string > m_collDistrName
select collision distribution
bool alreadyInUse(StreamVector::size_type iStream)
Gaudi::Property< float > m_readDownscale
read downscale factor (average number of times a min bias is reused)
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< bool > m_ignoreSF
bool apply scaling number of collisions per bunch crossing ?
In-memory cache for pileup events.
virtual void resetEvtsPerXingScaleFactor(float sf) override final
reset scale factor at new run/lumiblk
a triple selector/context/store defines a stream
manage multiple CLHEP random engines as named streams
virtual StatusCode initialize() override final
unsigned int numberOfCavernBkgForBunchCrossing(unsigned int iXing) const
int m_zeroXing
offset of BC=0 xing
long collXing()
meant to be used (mainly) via m_f_collDistr
CLHEP::RandPoisson * m_collXingPoisson
set number of collisions per bunch crossing (if Poisson distribution chosen)
ServiceHandle< IEvtSelector > m_selecName
unsigned int setNEvtsXing(unsigned int iXing)
Class describing the basic event information.
PileUpStream * current()
get current (last asked) stream
a triple selector/context/store defines a stream
std::vector< bool > m_usedStreams
Interface to in-memory cache for pileup events.
virtual ~BkgStreamsCache()
virtual StatusCode addSubEvts(unsigned int iXing, xAOD::EventInfo *overlaidEvent, int t0BinCenter) override final
Read input events in bkg stores and link them to overlay store.
BkgStreamsCache(const std::string &, const std::string &, const IInterface *)
virtual void newEvent() override final
inform cache that we start overlaying a new event
unsigned int numberOfBkgForBunchCrossingIgnoringBeamIntensity(unsigned int iXing) const
meant to be used via m_f_numberOfBackgroundForBunchCrossing
Gaudi::Property< std::string > m_randomStreamName
the IAtRndmGenSvc stream to generate number of bkg events per bunch crossing
const xAOD::EventInfo * nextEvent(bool isCentralBunchCrossing)
get next bkg event from cache
CLHEP::RandFlat * m_readEventRand
read a new event every downscaleFactor accesses