|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef PILEUPTOOLS_PILEUPMERGESVC_H
14 #define PILEUPTOOLS_PILEUPMERGESVC_H
22 #include "GaudiKernel/ClassID.h"
23 #include "Gaudi/Property.h"
24 #include "GaudiKernel/StatusCode.h"
25 #include "GaudiKernel/ServiceHandle.h"
26 #include "GaudiKernel/ToolHandle.h"
28 #include "AthLinks/DataLink.h"
69 template <
typename DATA>
73 typedef std::pair<PileUpTimeEventIndex, DataLink<DATA> >
value_t;
75 typedef std::list<value_t>
type;
79 template <
typename KEY,
typename DATA>
83 template <
typename KEY,
typename DATA>
88 template <
typename KEY,
typename TIMEDDATA>
91 TIMEDDATA& timedData);
93 template <
typename KEY,
typename TIMEDDATA>
96 TIMEDDATA& timedData,
int bunchXing,
100 template <
typename KEY,
typename TIMEDDATA>
103 TIMEDDATA& timedData,
unsigned int& numberOfSimHits);
121 const std::string& einame )
const;
131 template <
typename DATA,
typename KEY>
133 bool isLive(
CLID id,
const std::string& dataKey,
int iXing);
152 if (
this == &rhs) {
return *
this;}
163 assert(0.0 <= random && random <= 1.0);
char data[hepevt_bytes_allocation_ATLAS]
static const InterfaceID & interfaceID()
Retrieve interface ID.
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
virtual StatusCode initialize()
Service initialisation.
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
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface)
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
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