Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
12 #ifndef PILEUPTOOLS_PILEUPMERGESVC_H
13 #define PILEUPTOOLS_PILEUPMERGESVC_H
21 #include "GaudiKernel/ClassID.h"
22 #include "Gaudi/Property.h"
23 #include "GaudiKernel/StatusCode.h"
24 #include "GaudiKernel/ServiceHandle.h"
25 #include "GaudiKernel/ToolHandle.h"
27 #include "AthLinks/DataLink.h"
67 template <
typename DATA>
71 typedef std::pair<PileUpTimeEventIndex, DataLink<DATA> >
value_t;
73 typedef std::list<value_t>
type;
77 template <
typename KEY,
typename DATA>
81 template <
typename KEY,
typename DATA>
86 template <
typename KEY,
typename TIMEDDATA>
89 TIMEDDATA& timedData);
91 template <
typename KEY,
typename TIMEDDATA>
94 TIMEDDATA& timedData,
int bunchXing,
98 template <
typename KEY,
typename TIMEDDATA>
101 TIMEDDATA& timedData,
unsigned int& numberOfSimHits);
115 const std::string& einame )
const;
125 template <
typename DATA,
typename KEY>
127 bool isLive(
CLID id,
const std::string& dataKey,
int iXing);
146 if (
this == &rhs) {
return *
this;}
157 assert(0.0 <= random && random <= 1.0);
char data[hepevt_bytes_allocation_ATLAS]
const xAOD::EventInfo * getPileUpEvent(StoreGateSvc *sg, const std::string &einame) const
get EventInfo from SG, by default using p_overStore
Range & operator=(const Range &rhs)
SG::SlotSpecificObj< std::mutex > m_slotMutex ATLAS_THREAD_SAFE
generate the types of the timed data objects
bool contains(int xing) const
bool isLive(const KEY &key, int iXing)
is iXing live for DATA/key?
StatusCode retrieveSingleSubEvtData(const KEY &dataKey, const DATA *&data, int bunchXing, SubEventIterator iEvt)
bool doRefresh(const Range &r, int iXing)
StatusCode retrieveOriginal(const KEY &dataKey, const DATA *&data)
retrieve keyed DATA objs for the original event only
std::string m_EventInfoKeyName
the preferred mechanism to access information from the different event stores in a pileup job.
std::list< value_t > type
type of the collection of timed data object
StatusCode retrieveSubEvtsData(const KEY &dataKey, TIMEDDATA &timedData, unsigned int &numberOfSimHits)
retrieve keyed DATA objs for all sub-events and attach a time to them
The Athena Transient Store API.
bool doRefresh(float random) const
ServiceHandle< StoreGateSvc > p_overStore
overlaid SG (default)
::StatusCode StatusCode
StatusCode definition for legacy code.
Range(int first, int last, double cacheRefreshFrequency)
AthROOTErrorHandlerSvc * svc
uint32_t CLID
The Class ID type.
void decodeIntervals()
setup PileUpIntervals
StatusCode clearDataCaches()
clear bkg event caches from unneeded data objects (as configured using PileUpXingFolder CacheRefreshF...
virtual ~PileUpMergeSvc()
StatusCode retrieveSubSetEvtData(const KEY &dataKey, TIMEDDATA &timedData, int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents)
ToolHandleArray< IPileUpXingFolder > m_intervals
Property: bunch xing intervals.
interface to a tool that returns the time offset of the current trigger. Used by PileUpMergeSvc
std::map< std::pair< CLID, std::string >, Range > RangeContainer
virtual StatusCode initialize() override
Service initialisation.
Class describing the basic event information.
std::pair< PileUpTimeEventIndex, DataLink< DATA > > value_t
type of timed data object
double m_cacheRefreshFrequency
PileUpMergeSvc(const std::string &name, ISvcLocator *svc)
Standard Gaudi Constructor.
Maintain a set of objects, one per slot.
an interface to SG::Folder with an attached bunch crossing interval
Define macros for attributes used to control the static checker.
ToolHandle< xAODMaker::IEventInfoCnvTool > m_xAODCnvTool
property: Handle to the EventInfo -> xAOD::EventInfo converter tool
ToolHandle< ITriggerTime > m_pITriggerTime
allows to apply a trigger time offset
the active crossing range for a data object (CLID/key combination)
BooleanProperty m_returnTimedData
StatusCode retrieveSubEvtsData(const KEY &dataKey, TIMEDDATA &timedData)
retrieve keyed DATA objs for all sub-events and attach a time to them