Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
15 #include "GaudiKernel/MsgStream.h"
16 #include "GaudiKernel/StatusCode.h"
17 #include "GaudiKernel/DataObject.h"
18 #include "GaudiKernel/IRegistry.h"
25 #include "eformat/StreamTag.h"
30 :
Converter(storageType(), classID(), svcloc)
32 , m_robDataProvider(
"ROBDataProviderSvc",
"EventInfoByteStreamAuxCnv")
33 , m_mdSvc(
"InputMetaDataStore",
"EventInfoByteStreamAuxCnv")
34 , m_isSimulation(false)
36 , m_isCalibration(false)
59 SmartIF<IProperty> byteStreamCnvSvc(service(
"ByteStreamCnvSvc"));
60 CHECK( byteStreamCnvSvc.isValid() );
62 SimpleProperty<bool> propIsSimulation(
"IsSimulation",
m_isSimulation);
63 StatusCode sc = byteStreamCnvSvc->getProperty(&propIsSimulation);
73 SimpleProperty<bool> propIsTestbeam(
"IsTestbeam",
m_isTestbeam);
74 sc = byteStreamCnvSvc->getProperty(&propIsTestbeam);
84 SimpleProperty<bool> propIsCalibration(
"IsCalibration",
m_isCalibration);
85 sc = byteStreamCnvSvc->getProperty(&propIsCalibration);
95 return StatusCode::SUCCESS;
103 if (
sc.isFailure()) {
115 return StatusCode::FAILURE;
124 return StatusCode::FAILURE;
132 if (
re->version() < 0x03010000) {
140 uint32_t bc_time_ns =
re->bc_time_nanoseconds();
142 if (bc_time_ns > 1000000000) {
146 bc_time_ns = bc_time_sec;
148 ATH_MSG_DEBUG(
"bc_time second/nanosecond swapped, sec/ns = " << bc_time_sec <<
" " << bc_time_ns);
152 ATH_MSG_WARNING(
"bc_time nanosecond number larger than 1e9, it is " << bc_time_ns <<
", reset it to 1 sec");
153 bc_time_ns = 1000000000;
163 unsigned int detMask0 = 0xFFFFFFFF, detMask1 = 0xFFFFFFFF, detMask2 = 0xFFFFFFFF, detMask3 = 0xFFFFFFFF;
167 if (!
status.isSuccess()) {
173 detMask0 = (
unsigned int)(detectorMask & 0x00000000FFFFFFFF);
174 detMask1 = (
unsigned int)(detectorMask >> 32);
176 detMask2 = (
unsigned int)(detectorMask2 & 0x00000000FFFFFFFF);
177 detMask3 = (
unsigned int)(detectorMask2 >> 32);
223 uint32_t level1TriggerType =
re->lvl1_trigger_type();
226 std::vector<xAOD::EventInfo::StreamTag> streamTags;
227 std::vector<eformat::helper::StreamTag> onl_streamTags;
230 for (
const eformat::helper::StreamTag& onl_streamTag : onl_streamTags) {
231 std::set<uint32_t> tmp_off_dets = std::set<uint32_t>();
232 if (!onl_streamTag.dets.empty()) {
233 std::set<eformat::SubDetector> tmp_onl_dets = onl_streamTag.dets;
234 for (
const eformat::SubDetector& subdet : tmp_onl_dets) {
235 tmp_off_dets.insert((
uint32_t) subdet);
240 , onl_streamTag.obeys_lumiblock
257 <<
" Time stamp = " <<
ascTime(bc_time_sec)
260 return StatusCode::SUCCESS;
265 ATH_MSG_DEBUG(
"Nothing to be done for xAOD::EventAuxInfo createReps");
266 return StatusCode::SUCCESS;
281 time_t
ct = mktime(&
t);
285 asctime_r (&
t2, buf);
286 return std::string (buf);
double decode(number_type binnedWeight)
Convert weight from unsigned to double.
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj) override
converter method to create object
std::string ascTime(unsigned int t)
convert timestamp to ascii time.
void setEventNumber(uint64_t value)
Set the current event's event number.
Auxiliary information about the event.
@ IS_CALIBRATION
true: calibration, false: physics
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment RawEvent
data type for reading raw event
void setExtendedLevel1ID(uint32_t value)
Set the extended Level-1 identifier.
EventInfoByteStreamAuxCnv(ISvcLocator *svcloc)
@ IS_SIMULATION
true: simulation, false: data
bool setEventFlags(EventFlagSubDet subDet, uint32_t flags)
Set the event flags for a particular sub-detector.
DataObject * asStorable(SG::DataObjectSharedPtr< T > pObject)
void setStreamTags(const std::vector< StreamTag > &value)
Set the streams that the event was put in.
void setLevel1TriggerType(uint16_t value)
Set the Level-1 trigger type.
ServiceHandle< StoreGateSvc > m_mdSvc
TDS handle.
void setMCEventNumber(uint64_t value)
Set the MC generator's event number.
void setEventTypeBitmask(uint32_t value)
Set the event type bitmask.
msgSvc
Provide convenience handles for various services.
void setStore(const SG::IConstAuxStore *store)
Set the store associated with this object.
void setDetectorMask(uint32_t mask0, uint32_t mask1)
Set the bit fields indicating with TTC timezones were present.
::StatusCode StatusCode
StatusCode definition for legacy code.
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
Class to provide easy MsgStream access and capabilities.
#define CHECK(...)
Evaluate an expression and check for errors.
void setStatusElement(uint32_t value)
Set the trigger status element.
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 CLID
The Class ID type.
static long storageType()
EventAuxInfo_v3 EventAuxInfo
Definition of the latest event auxiliary info version.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
RODDataProviderSvc handle.
static constexpr long storageType()
void setDetectorMaskExt(uint32_t mask2, uint32_t mask3)
Set the bit fields indicating with TTC timezones were present.
virtual StatusCode finalize() override
Helpers for checking error return status codes and reporting errors.
Class describing the basic event information.
void setTimeStampNSOffset(uint32_t value)
Set the nanosecond offset wrt. the time stamp.
void setMCChannelNumber(uint32_t value)
Set the MC generator's channel number.
std::vector< ALFA_RawDataContainer_p1 > t2
#define ATH_MSG_WARNING(x)
void setRunNumber(uint32_t value)
Set the current event's run number.
const boost::regex re(r_e)
static const CLID & classID()
void setLumiBlock(uint32_t value)
Set the current event's luminosity block number.
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr) override
converter method to write object
virtual StatusCode initialize() override
@ IS_TESTBEAM
true: testbeam, false: full detector
@ Core
Core flags describing the event.
Class describing a stream tag on the event.
void setMCEventWeights(const std::vector< float > &value)
Set the weights of all the MC events used in the simulation.