ATLAS Offline Software
ByteStreamEventStorageOutputSvc.cxx
Go to the documentation of this file.
1 /* Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration */
3 
4 #include <stdexcept>
5 #include <stdlib.h>
6 #include <sstream>
7 
8 #include <boost/shared_ptr.hpp>
9 
10 #include "ByteStreamDataWriter.h"
11 
12 #include "AthenaKernel/StoreID.h"
13 
16 
17 #include "EventStorage/EventStorageRecords.h"
18 #include "EventStorage/RawFileName.h"
19 #include "EventStorage/SimpleFileName.h"
20 
22 
23 #include "GaudiKernel/ServiceHandle.h"
24 #include "GaudiKernel/IIoComponentMgr.h"
25 
26 #include "StoreGate/ReadHandle.h"
27 
28 
30  const std::string& name, ISvcLocator* pSvcLocator)
31  : base_class(name, pSvcLocator) {
32 }
33 
34 
37  ATH_MSG_INFO("Initializing");
38 
41 
42  // register this service for 'I/O' events
43  ATH_CHECK(m_ioMgr.retrieve());
44  ATH_CHECK(m_ioMgr->io_register(this));
45 
46  // Register output file's name with the I/O manager
47  if (!m_simpleFileName.empty()) {
50  ATH_MSG_VERBOSE("io_register[" << this->name() << "]("
51  << m_simpleFileName << ") [ok]");
52  }
53 
54  // validate m_eformatVersion
55  const std::vector< std::string > choices_ef{"current", "v40", "run1"};
56  if (std::find(choices_ef.begin(), choices_ef.end(), m_eformatVersion)
57  == choices_ef.end()) {
58  ATH_MSG_FATAL("Unexpected value for EformatVersion property: "
59  << m_eformatVersion);
60  return StatusCode::FAILURE;
61  }
62  ATH_MSG_INFO("eformat version to use: \"" << m_eformatVersion << "\"");
63 
64  // validate m_eventStorageVersion
65  const std::vector< std::string > choices_es{"current", "v5", "run1"};
66  if (std::find(choices_es.begin(), choices_es.end(), m_eventStorageVersion)
67  == choices_es.end()) {
68  ATH_MSG_FATAL("Unexpected value for EventStorageVersion property: "
70  return StatusCode::FAILURE;
71  }
72  ATH_MSG_INFO("event storage (BS) version to use: \""
73  << m_eventStorageVersion << "\"");
74 
75  m_isRun1 = (m_eformatVersion == "v40" or m_eformatVersion == "run1");
76 
77  ATH_CHECK(reinit());
78 
79  return StatusCode::SUCCESS;
80 }
81 
82 
85  ATH_MSG_INFO("Reinitialization...");
86  return StatusCode::SUCCESS;
87 }
88 
89 
92  // Check whether anything has been written and whether the user wants metadata
93  // only files
94  if (m_dataWriter == 0 and m_writeEventless) {
95  const ByteStreamMetadata* metaData = getByteStreamMetadata();
96 
97  // Try to write metadata to eventless file
98  bool dWok = initDataWriterContents(nullptr, metaData);
99  if (!dWok) ATH_MSG_WARNING("Could not write Metadata for eventless file");
100  }
101 
102  return StatusCode::SUCCESS;
103 }
104 
105 
108  // clean up
109  ATH_MSG_DEBUG("deleting DataWriter");
110  m_dataWriter.reset();
111  std::lock_guard< std::mutex > lock(m_dataWriterMutex);
112  ATH_MSG_INFO("number of events written: " << m_totalEventCounter);
113  return StatusCode::SUCCESS;
114 }
115 
116 
117 bool
119  // Called on first event. Reads run parameters first event and/or first event
120  const xAOD::EventInfo* eventInfo = ctx == nullptr
122  : SG::get(m_eventInfoKey, *ctx);
123  if (eventInfo == nullptr) ATH_MSG_WARNING("failed to retrieve EventInfo");
124 
125  const ByteStreamMetadata* metaData = ctx == nullptr ? getByteStreamMetadata() : getByteStreamMetadata(*ctx);
126  if (metaData == nullptr)
127  ATH_MSG_WARNING("failed to retrieve ByteStreamMetaData");
128 
129  // Now open a file for writing from retrieved parameters
130  return initDataWriterContents(eventInfo, metaData);
131 }
132 
133 
134 bool
136  const xAOD::EventInfo* evtInfo,
137  const ByteStreamMetadata* metaData) {
138  // check that we have sufficient information to do what we need
139  if (evtInfo or metaData)
140  ATH_MSG_DEBUG("Looking up data writer parameters");
141  else
142  throw std::runtime_error("Cannot write data without run parameters");
143 
144  // The heirarchy of run/lumiblock number, GNARR
145  //
146  // 1) User override
147  // 2) Event data
148  // 3) File metadata
149  // 4) default = unknown = 0
150  //
151  // Go from 4 to 1 and overwrite
153  if (metaData != nullptr) updateDataWriterParameters(params, *metaData);
154  if (evtInfo != nullptr) updateDataWriterParameters(params, *evtInfo);
156 
158 
159  bool result = m_dataWriter->good();
160  if (result)
161  ATH_MSG_DEBUG("initialized output stream to file with name "
162  << params.fileNameCore);
163  else
164  ATH_MSG_ERROR("Unable to initialize file");
165 
166  return result;
167 }
168 
169 
170 bool
172  // Read the next event.
173  return putEvent(re, Gaudi::Hive::currentContext());
174 }
175 
176 
177 bool
179  const RawEvent* re, const EventContext& ctx) {
180  // Read the next event.
183 
184  EventCache* cache = m_eventCache.get(ctx);
185  cache->releaseEvent();
186 
187  // we need the size and the start of the event to give to the data writer
188  cache->size = re->fragment_size_word();
189  ATH_MSG_DEBUG("event size = " << cache->size << ", start = " << re->start());
190 
191  if (m_isRun1) {
192  // convert to current eformat
193  // allocate some extra space just in case
194  ATH_MSG_DEBUG("converting Run 1 format ");
195 
196  cache->size += 128;
197  cache->buffer = std::make_unique< DataType[] >(cache->size);
198  ATH_MSG_DEBUG("created buffer 0x"
199  << std::hex << cache->buffer.get() << std::dec);
200 
201  // This builds no-checksum headers, should use the same
202  // checksum type as original event
204  re->start(), cache->buffer.get(), cache->size);
205  ATH_MSG_DEBUG("filled buffer");
206 
207  if (cache->size == 0) {
208  // not enough space in buffer
209  ATH_MSG_ERROR("Failed to convert event, buffer is too small");
210  return false;
211  }
212 
213  ATH_MSG_DEBUG("event size after conversion = " << cache->size
214  << " version = " << cache->buffer.get()[3]);
215 
216  } else {
217  cache->buffer = std::make_unique< DataType[] >(cache->size);
218  std::copy(re->start(), re->start() + cache->size, cache->buffer.get());
219  }
220 
221  {
222  // multiple data writers concurrently sounds like a bad idea
223  std::lock_guard< std::mutex > lock(m_dataWriterMutex);
224 
225  // make sure the data writer is ready
226  ATH_MSG_DEBUG("looking up data writer");
227  if (!m_dataWriter) {
228  if (!initDataWriter(&ctx)) {
229  ATH_MSG_ERROR("Failed to initialize DataWriter");
230  return false;
231  }
232  }
233 
234  // write event to disk
235  EventStorage::DWError write_result = m_dataWriter->putData(
236  sizeof(DataType) * cache->size,
237  reinterpret_cast< void* >(cache->buffer.get()));
238 
239  // Report success or failure
240  if (write_result != EventStorage::DWOK) {
241  ATH_MSG_ERROR("Failed to write event to DataWriter");
242  return false;
243  }
245  }
246 
247  return true;
248 }
249 
250 
253  ATH_MSG_INFO("I/O reinitialization...");
254 
255  if (!m_ioMgr->io_hasitem(this)) {
256  ATH_MSG_FATAL("IoComponentMgr does not know about myself !");
257  return StatusCode::FAILURE;
258  }
259 
260  if (!m_simpleFileName.empty()) {
261  std::string outputFile = m_simpleFileName;
262  ATH_MSG_INFO("I/O reinitialization, file = " << outputFile);
263  std::string &fname = outputFile;
264  if (!m_ioMgr->io_contains(this, fname)) {
265  ATH_MSG_ERROR("IoComponentMgr does not know about [" << fname << "] !");
266  return(StatusCode::FAILURE);
267  }
268  if (!m_ioMgr->io_retrieve(this, fname).isSuccess()) {
269  ATH_MSG_FATAL("Could not retrieve new value for [" << fname << "] !");
270  return(StatusCode::FAILURE);
271  }
272  // all good... copy over.
273  // modify directory
274  m_inputDir.setValue(outputFile.substr(0, outputFile.find_last_of("/")));
275  // FIXME: modify file name, not done for now because of
276  // IoUtils.update_io_registry vs. merge conflict.
277  //m_simpleFileName.setValue(
278  // outputFile.substr(outputFile.find_last_of("/") + 1));
279  }
280  ATH_MSG_DEBUG("Deleting DataWriter");
281  m_dataWriter.reset();
282 
283  ATH_CHECK(reinit());
284 
285  return StatusCode::SUCCESS;
286 }
287 
288 
289 const ByteStreamMetadata *
291 {
293 
294  if (!metaDataCont.isValid()) return nullptr;
295 
296  if (metaDataCont->size() > 1)
297  ATH_MSG_WARNING("Multiple run parameters in MetaDataStore. "
298  "Bytestream format only supports one. Arbitrarily "
299  "choosing first.");
300 
301  return metaDataCont->front();
302 }
303 
304 
305 const ByteStreamMetadata *
307  const EventContext& ctx)
308 {
310 
311  if (!metaDataCont.isValid()) return nullptr;
312 
313  if (metaDataCont->size() > 1)
314  ATH_MSG_WARNING("Multiple run parameters in MetaDataStore. "
315  "Bytestream format only supports one. Arbitrarily "
316  "choosing first.");
317 
318  return metaDataCont->front();
319 }
320 
321 
322 void
324  DataWriterParameters& params) const {
325 
326  if (m_eventStorageVersion == "v5" or m_eventStorageVersion == "run1")
327  params.version = 5;
328  else params.version = 0;
329 
330  params.writingPath = m_inputDir;
331 
332  if (m_run != 0) params.rPar.run_number = m_run;
333  ATH_MSG_DEBUG("Run number: " << params.rPar.run_number);
334 
335  if (m_lumiBlockNumber != 0) params.lumiBlockNumber = m_lumiBlockNumber;
336  ATH_MSG_DEBUG("LB number: " << params.lumiBlockNumber);
337 
338  if (!m_streamType.empty()) params.streamType = m_streamType;
339  if (!m_streamName.empty()) params.streamName = m_streamName;
340 
341  if (params.streamType.empty()) params.streamType = "Single";
342  if (params.streamName.empty()) params.streamName = "Stream";
343 
344  params.stream = params.streamType + "_" + params.streamName;
345 
346  if (!m_projectTag.empty()) params.project = m_projectTag;
347 
348  params.applicationName = m_appName;
349 
350  if (!m_simpleFileName.empty()) {
351  // set up for simple file name
352  boost::shared_ptr<EventStorage::SimpleFileName> simple_file_name(
353  new EventStorage::SimpleFileName(m_simpleFileName));
354  params.theFNCB = simple_file_name;
355  } else {
356  // set up for production file name
357  daq::RawFileName fileNameObj(
358  params.project,
359  params.rPar.run_number,
360  params.streamType,
361  params.streamName,
362  params.lumiBlockNumber,
363  params.applicationName);
364  params.fileNameCore = fileNameObj.fileNameCore();
365  }
366 
367  params.compression = m_compressEvents
369  : EventStorage::NONE;
370 
371  params.maxFileMB = m_maxFileMB;
372  params.maxFileNE = params.rPar.max_events = m_maxFileNE;
373 }
374 
375 
376 void
378  DataWriterParameters& params, const xAOD::EventInfo& eventInfo) const {
379  ATH_MSG_DEBUG("Parsing run parameters from EventInfo" << eventInfo);
380 
381  params.rPar.run_number = eventInfo.runNumber();
382  params.lumiBlockNumber = eventInfo.lumiBlock();
383 
384  for (const xAOD::EventInfo::StreamTag& tag : eventInfo.streamTags())
385  if(!tag.type().empty()) {
386  params.streamType = tag.type();
387  break;
388  }
389 
390  for (const xAOD::EventInfo::StreamTag& tag : eventInfo.streamTags())
391  if (!tag.name().empty()) {
392  params.streamName = tag.name();
393  break;
394  }
395 
396  for (const auto& tag : eventInfo.detDescrTags())
397  params.fmdStrings.push_back(tag.first + ' ' + tag.second);
398 
399  params.rPar.trigger_type = eventInfo.level1TriggerType();
400  params.rPar.detector_mask_LS = eventInfo.detectorMask();
401  params.rPar.detector_mask_MS = eventInfo.detectorMaskExt();
402 
403  std::string event_type = "Event type: sim/data - ";
404  if (eventInfo.eventType(xAOD::EventInfo::EventType::IS_SIMULATION))
405  event_type += "is sim";
406  else event_type += "is data";
407 
408  event_type += " , testbeam/atlas - ";
409  if (eventInfo.eventType(xAOD::EventInfo::EventType::IS_TESTBEAM))
410  event_type += "is testbeam";
411  else event_type += "is atlas";
412 
413  event_type += " , calibration/physics - ";
414  if (eventInfo.eventType(xAOD::EventInfo::EventType::IS_CALIBRATION))
415  event_type += "is calibration";
416  else event_type += "is physics";
417 
418  params.fmdStrings.push_back(std::move(event_type));
419 }
420 
421 
422 void
424  DataWriterParameters& params, const ByteStreamMetadata& metaData) const {
425  ATH_MSG_DEBUG("Parsing run parameters from metadata:\n" << metaData);
426 
427  params.rPar.run_number = metaData.getRunNumber();
428  params.lumiBlockNumber = metaData.getLumiBlock();
429 
430  const std::string stream = metaData.getStream();
431  const std::string::size_type split = stream.find('_');
432 
433  if (split != std::string::npos and params.streamType.empty())
434  params.streamType = stream.substr(0,split);
435 
436  if (split != std::string::npos and params.streamName.empty())
437  params.streamName = stream.substr(split+1);
438 
439  params.project = metaData.getProject();
440  params.maxFileNE = params.rPar.max_events = metaData.getMaxEvents();
441 
442  params.rPar.rec_enable = metaData.getRecEnable();
443  params.rPar.trigger_type = metaData.getTriggerType();
444  params.rPar.beam_type = metaData.getBeamType();
445  if (metaData.getBeamEnergy() != 0)
446  params.rPar.beam_energy = metaData.getBeamEnergy();
447 
448  params.rPar.detector_mask_LS = metaData.getDetectorMask();
449  params.rPar.detector_mask_MS = metaData.getDetectorMask2();
450 
451  for (const std::string& fmd : metaData.getFreeMetaDataStrings())
452  params.fmdStrings.push_back(fmd);
453  // if(fmd.find("Compression=") == std::string::npos)
454 }
ByteStreamEventStorageOutputSvc::initDataWriter
bool initDataWriter(const EventContext *ctx=nullptr)
initialize EventStorage's DataWriter
Definition: ByteStreamEventStorageOutputSvc.cxx:118
ByteStreamEventStorageOutputSvc::m_byteStreamMetadataKey
SG::ReadHandleKey< ByteStreamMetadataContainer > m_byteStreamMetadataKey
Definition: ByteStreamEventStorageOutputSvc.h:143
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
get_generator_info.result
result
Definition: get_generator_info.py:21
ByteStreamEventStorageOutputSvc::EventCache::size
unsigned int size
Definition: ByteStreamEventStorageOutputSvc.h:181
ByteStreamMetadata::getDetectorMask
uint64_t getDetectorMask() const
Definition: ByteStreamMetadata.cxx:156
ByteStreamEventStorageOutputSvc::m_writeEventless
Gaudi::Property< bool > m_writeEventless
Compress events.
Definition: ByteStreamEventStorageOutputSvc.h:126
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
OFFLINE_FRAGMENTS_NAMESPACE::DataType
uint32_t DataType
Definition: RawEvent.h:24
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
ByteStreamEventStorageOutputSvc::io_reinit
StatusCode io_reinit() override
Definition: ByteStreamEventStorageOutputSvc.cxx:252
ByteStreamEventStorageOutputSvc::m_eventCache
SG::SlotSpecificObj< EventCache > m_eventCache
Cache of event data for each slot.
Definition: ByteStreamEventStorageOutputSvc.h:185
ByteStreamEventStorageOutputSvc::m_streamType
Gaudi::Property< std::string > m_streamType
stream name
Definition: ByteStreamEventStorageOutputSvc.h:89
xAOD::EventInfo_v1::detectorMaskExt
uint64_t detectorMaskExt() const
Bit field indicating which TTC zones are present in the event.
Definition: EventInfo_v1.cxx:164
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
DataType
OFFLINE_FRAGMENTS_NAMESPACE::PointerType DataType
Definition: RoIBResultByteStreamTool.cxx:25
RawEvent
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment RawEvent
data type for reading raw event
Definition: RawEvent.h:37
ByteStreamEventStorageOutputSvc::m_isRun1
bool m_isRun1
Definition: ByteStreamEventStorageOutputSvc.h:153
pool::WRITE
@ WRITE
Definition: Database/APR/StorageSvc/StorageSvc/pool.h:49
ByteStreamEventStorageOutputSvc.h
This file contains the class definition for the ByteStreamEventStorageOutputSvc class.
ByteStreamEventStorageOutputSvc::m_totalEventCounter
int m_totalEventCounter
number of event counter
Definition: ByteStreamEventStorageOutputSvc.h:151
ByteStreamEventStorageOutputSvc::m_lumiBlockNumber
Gaudi::Property< int > m_lumiBlockNumber
run number
Definition: ByteStreamEventStorageOutputSvc.h:116
ByteStreamEventStorageOutputSvc::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: ByteStreamEventStorageOutputSvc.h:140
ByteStreamMetadata::getBeamEnergy
unsigned int getBeamEnergy() const
Definition: ByteStreamMetadata.cxx:168
ByteStreamMetadata::getFreeMetaDataStrings
const std::vector< std::string > & getFreeMetaDataStrings() const
Definition: ByteStreamMetadata.cxx:188
ByteStreamMetadata
This class is the StoreGate data object for bytestream metadata.
Definition: ByteStreamMetadata.h:25
ByteStreamEventStorageOutputSvc::m_maxFileNE
Gaudi::Property< unsigned int > m_maxFileNE
Definition: ByteStreamEventStorageOutputSvc.h:137
python.RatesEmulationExample.lock
lock
Definition: RatesEmulationExample.py:148
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
ByteStreamMetadata::getMaxEvents
unsigned int getMaxEvents() const
Definition: ByteStreamMetadata.cxx:144
ByteStreamEventStorageOutputSvc::m_streamName
Gaudi::Property< std::string > m_streamName
eformat event version to produce, "v40" for run1, or "current"
Definition: ByteStreamEventStorageOutputSvc.h:93
ByteStreamEventStorageOutputSvc::m_inputDir
Gaudi::Property< std::string > m_inputDir
< directory for the data files
Definition: ByteStreamEventStorageOutputSvc.h:73
ByteStreamMetadata::getStream
const std::string & getStream() const
Definition: ByteStreamMetadata.cxx:176
ByteStreamEventStorageOutputSvc::getByteStreamMetadata
const ByteStreamMetadata * getByteStreamMetadata()
Definition: ByteStreamEventStorageOutputSvc.cxx:290
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
xAOD::EventInfo_v1::runNumber
uint32_t runNumber() const
The current event's run number.
ByteStreamEventStorageOutputSvc::EventCache::releaseEvent
void releaseEvent()
Definition: ByteStreamEventStorageOutputSvc.h:173
ByteStreamEventStorageOutputSvc::putEvent
virtual bool putEvent(const RawEvent *re) override
Implementation of the IByteStreamOutputSvc interface method putEvent.
Definition: ByteStreamEventStorageOutputSvc.cxx:171
ByteStreamEventStorageOutputSvc::reinit
StatusCode reinit()
reinitialize the service when a fork() occurred/was-issued
Definition: ByteStreamEventStorageOutputSvc.cxx:84
ByteStreamMetadata::getBeamType
unsigned int getBeamType() const
Definition: ByteStreamMetadata.cxx:164
compareGeometries.outputFile
string outputFile
Definition: compareGeometries.py:25
ByteStreamDataWriter.h
This file contains the class definition for the ByteStreamDataWriter class.
ByteStreamEventStorageOutputSvc::m_run
Gaudi::Property< int > m_run
Dump fragments.
Definition: ByteStreamEventStorageOutputSvc.h:120
ByteStreamMetadata::getProject
const std::string & getProject() const
Definition: ByteStreamMetadata.cxx:180
ByteStreamMetadata::getLumiBlock
unsigned int getLumiBlock() const
Definition: ByteStreamMetadata.cxx:184
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition: RawEvent.h:25
ByteStreamMetadata::getDetectorMask2
uint64_t getDetectorMask2() const
Definition: ByteStreamMetadata.cxx:160
ByteStreamEventStorageOutputSvc::m_eformatVersion
Gaudi::Property< std::string > m_eformatVersion
EventStorage BS version to produce, "v5" for run1, or "current".
Definition: ByteStreamEventStorageOutputSvc.h:97
ByteStreamEventStorageOutputSvc::m_dataWriter
std::unique_ptr< ByteStreamDataWriter > m_dataWriter
pointer to DataWriter
Definition: ByteStreamEventStorageOutputSvc.h:156
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ByteStreamEventStorageOutputSvc::m_simpleFileName
Gaudi::Property< std::string > m_simpleFileName
use this string for filename, not from the "AgreedFileName"
Definition: ByteStreamEventStorageOutputSvc.h:112
ByteStreamEventStorageOutputSvc::updateDataWriterParameters
void updateDataWriterParameters(DataWriterParameters &) const
Create DataWriter parameters from job properties.
Definition: ByteStreamEventStorageOutputSvc.cxx:323
ByteStreamMetadata::getRecEnable
unsigned int getRecEnable() const
Definition: ByteStreamMetadata.cxx:148
ByteStreamEventStorageOutputSvc::m_appName
Gaudi::Property< std::string > m_appName
File Tag.
Definition: ByteStreamEventStorageOutputSvc.h:81
SG::get
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
Definition: ReadCondHandle.h:287
RawEvent.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
DataVector::front
const T * front() const
Access the first element in the collection as an rvalue.
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
ByteStreamEventStorageOutputSvc::m_dataWriterMutex
std::mutex m_dataWriterMutex
mutex to lock data writer during initialization or writing
Definition: ByteStreamEventStorageOutputSvc.h:159
xAOD::EventInfo_v1::detectorMask
uint64_t detectorMask() const
Bit field indicating which TTC zones are present in the event.
Definition: EventInfo_v1.cxx:143
xAOD::EventInfo_v1::lumiBlock
uint32_t lumiBlock() const
The current event's luminosity block number.
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
DataWriterParameters
Class containing parameters needed to initiate DataWriter.
Definition: ByteStreamDataWriter.h:153
offline_EventStorage_v5::ZLIB
@ ZLIB
Definition: v5_EventStorageRecords.h:41
ByteStreamEventStorageOutputSvc::m_ioMgr
ServiceHandle< IIoComponentMgr > m_ioMgr
Definition: ByteStreamEventStorageOutputSvc.h:147
StoreID.h
ByteStreamEventStorageOutputSvc::ByteStreamEventStorageOutputSvc
ByteStreamEventStorageOutputSvc(const std::string &name, ISvcLocator *pSvcLocator)
Constructors:
Definition: ByteStreamEventStorageOutputSvc.cxx:29
ByteStreamEventStorageOutputSvc::finalize
StatusCode finalize() override
Definition: ByteStreamEventStorageOutputSvc.cxx:107
ByteStreamEventStorageOutputSvc::m_eventStorageVersion
Gaudi::Property< std::string > m_eventStorageVersion
stream name for multiple output
Definition: ByteStreamEventStorageOutputSvc.h:102
ByteStreamEventStorageOutputSvc::initialize
StatusCode initialize() override
Required of all Gaudi Services.
Definition: ByteStreamEventStorageOutputSvc.cxx:36
ByteStreamEventStorageOutputSvc::EventCache
Definition: ByteStreamEventStorageOutputSvc.h:172
offline_eformat::old::convert_to_40
uint32_t convert_to_40(const uint32_t *src, uint32_t *dest, uint32_t max, eformat::CheckSum event_checksum=eformat::NO_CHECKSUM, eformat::CheckSum rob_checksum=eformat::NO_CHECKSUM)
Converts a full event fragment or a ROS fragment, from some format to v4.0 format,...
Definition: util.cxx:21
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ByteStreamEventStorageOutputSvc::initDataWriterContents
bool initDataWriterContents(const xAOD::EventInfo *, const ByteStreamMetadata *)
Definition: ByteStreamEventStorageOutputSvc.cxx:135
ByteStreamDataWriter::makeWriter
static std::unique_ptr< ByteStreamDataWriter > makeWriter(int version, const std::string &writingPath, const std::string &fileNameCore, const EventStorage::run_parameters_record &rPar, const std::vector< std::string > &fmdStrings, unsigned int maxFileNE=0, unsigned int maxFileMB=0, unsigned int startIndex=1, EventStorage::CompressionType compression=EventStorage::NONE, unsigned int compLevel=1)
Factory method returning data writer instance for specified version.
Definition: ByteStreamDataWriter.cxx:69
ByteStreamMetadata::getRunNumber
unsigned int getRunNumber() const
Definition: ByteStreamMetadata.cxx:136
ByteStreamEventStorageOutputSvc::m_compressEvents
Gaudi::Property< bool > m_compressEvents
number of MB per file
Definition: ByteStreamEventStorageOutputSvc.h:130
EventInfo.h
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
xAOD::EventInfo_v1::streamTags
const std::vector< StreamTag > & streamTags() const
Get the streams that the event was put in.
Definition: EventInfo_v1.cxx:283
python.AthDsoLogger.fname
string fname
Definition: AthDsoLogger.py:66
xAOD::EventInfo_v1::detDescrTags
const DetDescrTags_t & detDescrTags() const
The detector description tags.
ByteStreamMetadata::getTriggerType
unsigned int getTriggerType() const
Definition: ByteStreamMetadata.cxx:152
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ByteStreamEventStorageOutputSvc::stop
StatusCode stop() override
Definition: ByteStreamEventStorageOutputSvc.cxx:91
re
const boost::regex re(r_e)
ByteStreamEventStorageOutputSvc::m_maxFileMB
Gaudi::Property< unsigned int > m_maxFileMB
number of events per file
Definition: ByteStreamEventStorageOutputSvc.h:133
xAOD::EventInfo_v1::level1TriggerType
uint16_t level1TriggerType() const
The Level-1 trigger type.
calibdata.copy
bool copy
Definition: calibdata.py:26
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:23
ReadHandle.h
Handle class for reading from StoreGate.
PowhegControl_ttFCNC_NLO.params
params
Definition: PowhegControl_ttFCNC_NLO.py:226
ByteStreamEventStorageOutputSvc::m_projectTag
Gaudi::Property< std::string > m_projectTag
Application Name.
Definition: ByteStreamEventStorageOutputSvc.h:77
ByteStreamEventStorageOutputSvc::EventCache::buffer
std::unique_ptr< uint32_t[] > buffer
Underlying data structure.
Definition: ByteStreamEventStorageOutputSvc.h:179
util.h
Declarations of methods for working with old eformat versions.
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
xAOD::EventInfo_v1::StreamTag
Class describing a stream tag on the event.
Definition: EventInfo_v1.h:190
xAOD::EventInfo_v1::eventType
bool eventType(EventType type) const
Check for one particular bitmask value.