ATLAS Offline Software
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
ByteStreamEventStorageOutputSvc Class Reference

This class provides the services for writing FullEventFragment into file. This class implements the interface IByteStreamOutputSvc for the conversion service to write the output to a file. More...

#include <ByteStreamEventStorageOutputSvc.h>

Inheritance diagram for ByteStreamEventStorageOutputSvc:
Collaboration diagram for ByteStreamEventStorageOutputSvc:

Classes

struct  EventCache
 

Public Member Functions

 ByteStreamEventStorageOutputSvc (const std::string &name, ISvcLocator *pSvcLocator)
 Constructors: More...
 
virtual ~ByteStreamEventStorageOutputSvc ()
 Destructor. More...
 
StatusCode initialize () override
 Required of all Gaudi Services. More...
 
StatusCode stop () override
 
StatusCode finalize () override
 
virtual bool putEvent (const RawEvent *re) override
 Implementation of the IByteStreamOutputSvc interface method putEvent. More...
 
virtual bool putEvent (const RawEvent *re, const EventContext &ctx) override
 
StatusCode io_reinit () override
 

Private Member Functions

StatusCode reinit ()
 reinitialize the service when a fork() occurred/was-issued More...
 
bool initDataWriter (const EventContext *ctx=nullptr)
 initialize EventStorage's DataWriter More...
 
bool initDataWriterContents (const xAOD::EventInfo *, const ByteStreamMetadata *)
 
const ByteStreamMetadatagetByteStreamMetadata ()
 
const ByteStreamMetadatagetByteStreamMetadata (const EventContext &ctx)
 
void updateDataWriterParameters (DataWriterParameters &) const
 Create DataWriter parameters from job properties. More...
 
void updateDataWriterParameters (DataWriterParameters &params, const xAOD::EventInfo &evtInfo) const
 Create DataWriter parameters from EventInfo. More...
 
void updateDataWriterParameters (DataWriterParameters &params, const ByteStreamMetadata &metaData) const
 Create DataWriter parameters from MetaData. More...
 

Private Attributes

Gaudi::Property< std::string > m_inputDir
 < directory for the data files More...
 
Gaudi::Property< std::string > m_projectTag
 Application Name. More...
 
Gaudi::Property< std::string > m_appName
 File Tag. More...
 
Gaudi::Property< std::string > m_fileTag
 stream type More...
 
Gaudi::Property< std::string > m_streamType
 stream name More...
 
Gaudi::Property< std::string > m_streamName
 eformat event version to produce, "v40" for run1, or "current" More...
 
Gaudi::Property< std::string > m_eformatVersion
 EventStorage BS version to produce, "v5" for run1, or "current". More...
 
Gaudi::Property< std::string > m_eventStorageVersion
 stream name for multiple output More...
 
Gaudi::Property< std::string > m_bsOutputStreamName
 
Gaudi::Property< std::string > m_simpleFileName
 use this string for filename, not from the "AgreedFileName" More...
 
Gaudi::Property< int > m_lumiBlockNumber
 run number More...
 
Gaudi::Property< int > m_run {this, "RunNumber", 0, "part of filename"}
 Dump fragments. More...
 
Gaudi::Property< bool > m_dump {this, "DumpFlag", false, "dump fragments"}
 Write eventless files. More...
 
Gaudi::Property< bool > m_writeEventless
 Compress events. More...
 
Gaudi::Property< bool > m_compressEvents {this, "CompressEvents", false, ""}
 number of MB per file More...
 
Gaudi::Property< unsigned int > m_maxFileMB
 number of events per file More...
 
Gaudi::Property< unsigned int > m_maxFileNE
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey
 
SG::ReadHandleKey< ByteStreamMetadataContainerm_byteStreamMetadataKey
 
ServiceHandle< IIoComponentMgr > m_ioMgr {"IoComponentMgr", name()}
 
int m_totalEventCounter {0}
 number of event counter More...
 
bool m_isRun1 {false}
 
std::unique_ptr< ByteStreamDataWriterm_dataWriter
 pointer to DataWriter More...
 
std::mutex m_dataWriterMutex
 mutex to lock data writer during initialization or writing More...
 
SG::SlotSpecificObj< EventCachem_eventCache
 Cache of event data for each slot. More...
 

Detailed Description

This class provides the services for writing FullEventFragment into file. This class implements the interface IByteStreamOutputSvc for the conversion service to write the output to a file.

Definition at line 47 of file ByteStreamEventStorageOutputSvc.h.

Constructor & Destructor Documentation

◆ ByteStreamEventStorageOutputSvc()

ByteStreamEventStorageOutputSvc::ByteStreamEventStorageOutputSvc ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Constructors:

Definition at line 29 of file ByteStreamEventStorageOutputSvc.cxx.

31  : base_class(name, pSvcLocator) {
32 }

◆ ~ByteStreamEventStorageOutputSvc()

virtual ByteStreamEventStorageOutputSvc::~ByteStreamEventStorageOutputSvc ( )
inlinevirtual

Destructor.

Definition at line 56 of file ByteStreamEventStorageOutputSvc.h.

56 {}

Member Function Documentation

◆ finalize()

StatusCode ByteStreamEventStorageOutputSvc::finalize ( )
override

Definition at line 107 of file ByteStreamEventStorageOutputSvc.cxx.

107  {
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 }

◆ getByteStreamMetadata() [1/2]

const ByteStreamMetadata * ByteStreamEventStorageOutputSvc::getByteStreamMetadata ( )
private

Definition at line 290 of file ByteStreamEventStorageOutputSvc.cxx.

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 }

◆ getByteStreamMetadata() [2/2]

const ByteStreamMetadata * ByteStreamEventStorageOutputSvc::getByteStreamMetadata ( const EventContext &  ctx)
private

Definition at line 306 of file ByteStreamEventStorageOutputSvc.cxx.

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 }

◆ initDataWriter()

bool ByteStreamEventStorageOutputSvc::initDataWriter ( const EventContext *  ctx = nullptr)
private

initialize EventStorage's DataWriter

Definition at line 118 of file ByteStreamEventStorageOutputSvc.cxx.

118  {
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 }

◆ initDataWriterContents()

bool ByteStreamEventStorageOutputSvc::initDataWriterContents ( const xAOD::EventInfo evtInfo,
const ByteStreamMetadata metaData 
)
private

Definition at line 135 of file ByteStreamEventStorageOutputSvc.cxx.

137  {
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 }

◆ initialize()

StatusCode ByteStreamEventStorageOutputSvc::initialize ( )
override

Required of all Gaudi Services.

Definition at line 36 of file ByteStreamEventStorageOutputSvc.cxx.

36  {
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 }

◆ io_reinit()

StatusCode ByteStreamEventStorageOutputSvc::io_reinit ( )
override

Definition at line 252 of file ByteStreamEventStorageOutputSvc.cxx.

252  {
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 }

◆ putEvent() [1/2]

bool ByteStreamEventStorageOutputSvc::putEvent ( const RawEvent re)
overridevirtual

Implementation of the IByteStreamOutputSvc interface method putEvent.

Definition at line 171 of file ByteStreamEventStorageOutputSvc.cxx.

171  {
172  // Read the next event.
173  return putEvent(re, Gaudi::Hive::currentContext());
174 }

◆ putEvent() [2/2]

bool ByteStreamEventStorageOutputSvc::putEvent ( const RawEvent re,
const EventContext &  ctx 
)
overridevirtual

Definition at line 178 of file ByteStreamEventStorageOutputSvc.cxx.

179  {
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 }

◆ reinit()

StatusCode ByteStreamEventStorageOutputSvc::reinit ( )
private

reinitialize the service when a fork() occurred/was-issued

Definition at line 84 of file ByteStreamEventStorageOutputSvc.cxx.

84  {
85  ATH_MSG_INFO("Reinitialization...");
86  return StatusCode::SUCCESS;
87 }

◆ stop()

StatusCode ByteStreamEventStorageOutputSvc::stop ( )
override

Definition at line 91 of file ByteStreamEventStorageOutputSvc.cxx.

91  {
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 }

◆ updateDataWriterParameters() [1/3]

void ByteStreamEventStorageOutputSvc::updateDataWriterParameters ( DataWriterParameters params) const
private

Create DataWriter parameters from job properties.

Definition at line 323 of file ByteStreamEventStorageOutputSvc.cxx.

324  {
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 }

◆ updateDataWriterParameters() [2/3]

void ByteStreamEventStorageOutputSvc::updateDataWriterParameters ( DataWriterParameters params,
const ByteStreamMetadata metaData 
) const
private

Create DataWriter parameters from MetaData.

Definition at line 423 of file ByteStreamEventStorageOutputSvc.cxx.

424  {
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 }

◆ updateDataWriterParameters() [3/3]

void ByteStreamEventStorageOutputSvc::updateDataWriterParameters ( DataWriterParameters params,
const xAOD::EventInfo evtInfo 
) const
private

Create DataWriter parameters from EventInfo.

Definition at line 377 of file ByteStreamEventStorageOutputSvc.cxx.

378  {
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 }

Member Data Documentation

◆ m_appName

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_appName
private
Initial value:
{this, "AppName", "",
"part of filename"}

File Tag.

Definition at line 81 of file ByteStreamEventStorageOutputSvc.h.

◆ m_bsOutputStreamName

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_bsOutputStreamName
private
Initial value:
{this, "BSOutputStreamName",
name(), "stream name for multiple output"}

Definition at line 108 of file ByteStreamEventStorageOutputSvc.h.

◆ m_byteStreamMetadataKey

SG::ReadHandleKey< ByteStreamMetadataContainer > ByteStreamEventStorageOutputSvc::m_byteStreamMetadataKey
private
Initial value:
{this,
"ByteStreamMetadataKey", "MetaDataStore+ByteStreamMetadata",
"Key for bytestream metadata object in metadata store"}

Definition at line 143 of file ByteStreamEventStorageOutputSvc.h.

◆ m_compressEvents

Gaudi::Property<bool> ByteStreamEventStorageOutputSvc::m_compressEvents {this, "CompressEvents", false, ""}
private

number of MB per file

Definition at line 130 of file ByteStreamEventStorageOutputSvc.h.

◆ m_dataWriter

std::unique_ptr<ByteStreamDataWriter> ByteStreamEventStorageOutputSvc::m_dataWriter
private

pointer to DataWriter

Definition at line 156 of file ByteStreamEventStorageOutputSvc.h.

◆ m_dataWriterMutex

std::mutex ByteStreamEventStorageOutputSvc::m_dataWriterMutex
private

mutex to lock data writer during initialization or writing

Definition at line 159 of file ByteStreamEventStorageOutputSvc.h.

◆ m_dump

Gaudi::Property<bool> ByteStreamEventStorageOutputSvc::m_dump {this, "DumpFlag", false, "dump fragments"}
private

Write eventless files.

Definition at line 123 of file ByteStreamEventStorageOutputSvc.h.

◆ m_eformatVersion

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_eformatVersion
private
Initial value:
{this, "EformatVersion",
"current", "Version of the event format data, use \"v40\" or \"run1\" "
"for run1, \"current\" for most current version (default)."}

EventStorage BS version to produce, "v5" for run1, or "current".

Definition at line 97 of file ByteStreamEventStorageOutputSvc.h.

◆ m_eventCache

SG::SlotSpecificObj<EventCache> ByteStreamEventStorageOutputSvc::m_eventCache
private

Cache of event data for each slot.

Definition at line 185 of file ByteStreamEventStorageOutputSvc.h.

◆ m_eventInfoKey

SG::ReadHandleKey< xAOD::EventInfo > ByteStreamEventStorageOutputSvc::m_eventInfoKey
private
Initial value:
{this, "EventInfoKey",
"EventInfo", "Key for EventInfo object in event store"}

Definition at line 140 of file ByteStreamEventStorageOutputSvc.h.

◆ m_eventStorageVersion

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_eventStorageVersion
private
Initial value:
{this,
"EventStorageVersion", "current", "Version of the ByteStream file data, "
"use \"v5\" or \"run1\" for run1, \"current\" for most current version "
"(default)."}

stream name for multiple output

Definition at line 102 of file ByteStreamEventStorageOutputSvc.h.

◆ m_fileTag

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_fileTag
private
Initial value:
{this, "FileTag", "",
"part of filename"}

stream type

Definition at line 85 of file ByteStreamEventStorageOutputSvc.h.

◆ m_inputDir

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_inputDir
private
Initial value:
{this, "OutputDirectory", "",
"directory for the data files"}

< directory for the data files

Project Tag

Definition at line 73 of file ByteStreamEventStorageOutputSvc.h.

◆ m_ioMgr

ServiceHandle< IIoComponentMgr > ByteStreamEventStorageOutputSvc::m_ioMgr {"IoComponentMgr", name()}
private

Definition at line 147 of file ByteStreamEventStorageOutputSvc.h.

◆ m_isRun1

bool ByteStreamEventStorageOutputSvc::m_isRun1 {false}
private

Definition at line 153 of file ByteStreamEventStorageOutputSvc.h.

◆ m_lumiBlockNumber

Gaudi::Property<int> ByteStreamEventStorageOutputSvc::m_lumiBlockNumber
private
Initial value:
{this, "LumiBlockNumber", 0,
"part of filename"}

run number

Definition at line 116 of file ByteStreamEventStorageOutputSvc.h.

◆ m_maxFileMB

Gaudi::Property<unsigned int> ByteStreamEventStorageOutputSvc::m_maxFileMB
private
Initial value:
{this, "MaxFileMB", 10000,
"MB per file"}

number of events per file

Definition at line 133 of file ByteStreamEventStorageOutputSvc.h.

◆ m_maxFileNE

Gaudi::Property<unsigned int> ByteStreamEventStorageOutputSvc::m_maxFileNE
private
Initial value:
{this, "MaxFileNE", 100000,
"evens per file"}

Definition at line 137 of file ByteStreamEventStorageOutputSvc.h.

◆ m_projectTag

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_projectTag
private
Initial value:
{this, "ProjectTag", "",
"part of filename"}

Application Name.

Definition at line 77 of file ByteStreamEventStorageOutputSvc.h.

◆ m_run

Gaudi::Property<int> ByteStreamEventStorageOutputSvc::m_run {this, "RunNumber", 0, "part of filename"}
private

Dump fragments.

Definition at line 120 of file ByteStreamEventStorageOutputSvc.h.

◆ m_simpleFileName

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_simpleFileName
private
Initial value:
{this, "SimpleFileName", "",
"for filename not from AgreedFileName"}

use this string for filename, not from the "AgreedFileName"

luminosity block number

Definition at line 112 of file ByteStreamEventStorageOutputSvc.h.

◆ m_streamName

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_streamName
private
Initial value:
{this, "StreamName", "",
"part of filename"}

eformat event version to produce, "v40" for run1, or "current"

Definition at line 93 of file ByteStreamEventStorageOutputSvc.h.

◆ m_streamType

Gaudi::Property<std::string> ByteStreamEventStorageOutputSvc::m_streamType
private
Initial value:
{this, "StreamType", "",
"part of filename"}

stream name

Definition at line 89 of file ByteStreamEventStorageOutputSvc.h.

◆ m_totalEventCounter

int ByteStreamEventStorageOutputSvc::m_totalEventCounter {0}
private

number of event counter

Definition at line 151 of file ByteStreamEventStorageOutputSvc.h.

◆ m_writeEventless

Gaudi::Property<bool> ByteStreamEventStorageOutputSvc::m_writeEventless
private
Initial value:
{this, "WriteEventlessFiles", true,
""}

Compress events.

Definition at line 126 of file ByteStreamEventStorageOutputSvc.h.


The documentation for this class was generated from the following files:
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
ByteStreamMetadata::getDetectorMask
uint64_t getDetectorMask() const
Definition: ByteStreamMetadata.cxx:156
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
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::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
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
DataType
OFFLINE_FRAGMENTS_NAMESPACE::PointerType DataType
Definition: RoIBResultByteStreamTool.cxx:25
ByteStreamEventStorageOutputSvc::m_isRun1
bool m_isRun1
Definition: ByteStreamEventStorageOutputSvc.h:153
pool::WRITE
@ WRITE
Definition: Database/APR/StorageSvc/StorageSvc/pool.h:49
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
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
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
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
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
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
ByteStreamEventStorageOutputSvc::m_eventStorageVersion
Gaudi::Property< std::string > m_eventStorageVersion
stream name for multiple output
Definition: ByteStreamEventStorageOutputSvc.h:102
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
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
python.AthDsoLogger.fname
string fname
Definition: AthDsoLogger.py:66
ByteStreamMetadata::getTriggerType
unsigned int getTriggerType() const
Definition: ByteStreamMetadata.cxx:152
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
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
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition: hcg.cxx:127
calibdata.copy
bool copy
Definition: calibdata.py:26
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:23
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
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
xAOD::EventInfo_v1::StreamTag
Class describing a stream tag on the event.
Definition: EventInfo_v1.h:190