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  ATH_MSG_INFO("number of events written: " << m_totalEventCounter);
112  return StatusCode::SUCCESS;
113 }

◆ getByteStreamMetadata() [1/2]

const ByteStreamMetadata * ByteStreamEventStorageOutputSvc::getByteStreamMetadata ( )
private

Definition at line 289 of file ByteStreamEventStorageOutputSvc.cxx.

290 {
292 
293  if (!metaDataCont.isValid()) return nullptr;
294 
295  if (metaDataCont->size() > 1)
296  ATH_MSG_WARNING("Multiple run parameters in MetaDataStore. "
297  "Bytestream format only supports one. Arbitrarily "
298  "choosing first.");
299 
300  return metaDataCont->front();
301 }

◆ getByteStreamMetadata() [2/2]

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

Definition at line 305 of file ByteStreamEventStorageOutputSvc.cxx.

307 {
309 
310  if (!metaDataCont.isValid()) return nullptr;
311 
312  if (metaDataCont->size() > 1)
313  ATH_MSG_WARNING("Multiple run parameters in MetaDataStore. "
314  "Bytestream format only supports one. Arbitrarily "
315  "choosing first.");
316 
317  return metaDataCont->front();
318 }

◆ initDataWriter()

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

initialize EventStorage's DataWriter

Definition at line 117 of file ByteStreamEventStorageOutputSvc.cxx.

117  {
118  // Called on first event. Reads run parameters first event and/or first event
119  const xAOD::EventInfo* eventInfo = ctx == nullptr
121  : SG::get(m_eventInfoKey, *ctx);
122  if (eventInfo == nullptr) ATH_MSG_WARNING("failed to retrieve EventInfo");
123 
124  const ByteStreamMetadata* metaData = ctx == nullptr ? getByteStreamMetadata() : getByteStreamMetadata(*ctx);
125  if (metaData == nullptr)
126  ATH_MSG_WARNING("failed to retrieve ByteStreamMetaData");
127 
128  // Now open a file for writing from retrieved parameters
129  return initDataWriterContents(eventInfo, metaData);
130 }

◆ initDataWriterContents()

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

Definition at line 134 of file ByteStreamEventStorageOutputSvc.cxx.

136  {
137  // check that we have sufficient information to do what we need
138  if (evtInfo or metaData)
139  ATH_MSG_DEBUG("Looking up data writer parameters");
140  else
141  throw std::runtime_error("Cannot write data without run parameters");
142 
143  // The heirarchy of run/lumiblock number, GNARR
144  //
145  // 1) User override
146  // 2) Event data
147  // 3) File metadata
148  // 4) default = unknown = 0
149  //
150  // Go from 4 to 1 and overwrite
152  if (metaData != nullptr) updateDataWriterParameters(params, *metaData);
153  if (evtInfo != nullptr) updateDataWriterParameters(params, *evtInfo);
155 
157 
158  bool result = m_dataWriter->good();
159  if (result)
160  ATH_MSG_DEBUG("initialized output stream to file with name "
161  << params.fileNameCore);
162  else
163  ATH_MSG_ERROR("Unable to initialize file");
164 
165  return result;
166 }

◆ 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 251 of file ByteStreamEventStorageOutputSvc.cxx.

251  {
252  ATH_MSG_INFO("I/O reinitialization...");
253 
254  if (!m_ioMgr->io_hasitem(this)) {
255  ATH_MSG_FATAL("IoComponentMgr does not know about myself !");
256  return StatusCode::FAILURE;
257  }
258 
259  if (!m_simpleFileName.empty()) {
260  std::string outputFile = m_simpleFileName;
261  ATH_MSG_INFO("I/O reinitialization, file = " << outputFile);
262  std::string &fname = outputFile;
263  if (!m_ioMgr->io_contains(this, fname)) {
264  ATH_MSG_ERROR("IoComponentMgr does not know about [" << fname << "] !");
265  return(StatusCode::FAILURE);
266  }
267  if (!m_ioMgr->io_retrieve(this, fname).isSuccess()) {
268  ATH_MSG_FATAL("Could not retrieve new value for [" << fname << "] !");
269  return(StatusCode::FAILURE);
270  }
271  // all good... copy over.
272  // modify directory
273  m_inputDir.setValue(outputFile.substr(0, outputFile.find_last_of("/")));
274  // FIXME: modify file name, not done for now because of
275  // IoUtils.update_io_registry vs. merge conflict.
276  //m_simpleFileName.setValue(
277  // outputFile.substr(outputFile.find_last_of("/") + 1));
278  }
279  ATH_MSG_DEBUG("Deleting DataWriter");
280  m_dataWriter.reset();
281 
282  ATH_CHECK(reinit());
283 
284  return StatusCode::SUCCESS;
285 }

◆ putEvent() [1/2]

bool ByteStreamEventStorageOutputSvc::putEvent ( const RawEvent re)
overridevirtual

Implementation of the IByteStreamOutputSvc interface method putEvent.

Definition at line 170 of file ByteStreamEventStorageOutputSvc.cxx.

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

◆ putEvent() [2/2]

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

Definition at line 177 of file ByteStreamEventStorageOutputSvc.cxx.

178  {
179  // Read the next event.
182 
183  EventCache* cache = m_eventCache.get(ctx);
184  cache->releaseEvent();
185 
186  // we need the size and the start of the event to give to the data writer
187  cache->size = re->fragment_size_word();
188  ATH_MSG_DEBUG("event size = " << cache->size << ", start = " << re->start());
189 
190  if (m_isRun1) {
191  // convert to current eformat
192  // allocate some extra space just in case
193  ATH_MSG_DEBUG("converting Run 1 format ");
194 
195  cache->size += 128;
196  cache->buffer = std::make_unique< DataType[] >(cache->size);
197  ATH_MSG_DEBUG("created buffer 0x"
198  << std::hex << cache->buffer.get() << std::dec);
199 
200  // This builds no-checksum headers, should use the same
201  // checksum type as original event
203  re->start(), cache->buffer.get(), cache->size);
204  ATH_MSG_DEBUG("filled buffer");
205 
206  if (cache->size == 0) {
207  // not enough space in buffer
208  ATH_MSG_ERROR("Failed to convert event, buffer is too small");
209  return false;
210  }
211 
212  ATH_MSG_DEBUG("event size after conversion = " << cache->size
213  << " version = " << cache->buffer.get()[3]);
214 
215  } else {
216  cache->buffer = std::make_unique< DataType[] >(cache->size);
217  std::copy(re->start(), re->start() + cache->size, cache->buffer.get());
218  }
219 
220  {
221  // multiple data writers concurrently sounds like a bad idea
222  std::lock_guard< std::mutex > lock(m_dataWriterMutex);
223 
224  // make sure the data writer is ready
225  ATH_MSG_DEBUG("looking up data writer");
226  if (!m_dataWriter) {
227  if (!initDataWriter(&ctx)) {
228  ATH_MSG_ERROR("Failed to initialize DataWriter");
229  return false;
230  }
231  }
232 
233  // write event to disk
234  EventStorage::DWError write_result = m_dataWriter->putData(
235  sizeof(DataType) * cache->size,
236  reinterpret_cast< void* >(cache->buffer.get()));
237 
238  // Report success or failure
239  if (write_result != EventStorage::DWOK) {
240  ATH_MSG_ERROR("Failed to write event to DataWriter");
241  return false;
242  }
244  }
245 
246  return true;
247 }

◆ 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 322 of file ByteStreamEventStorageOutputSvc.cxx.

323  {
324 
325  if (m_eventStorageVersion == "v5" or m_eventStorageVersion == "run1")
326  params.version = 5;
327  else params.version = 0;
328 
329  params.writingPath = m_inputDir;
330 
331  if (m_run != 0) params.rPar.run_number = m_run;
332  ATH_MSG_DEBUG("Run number: " << params.rPar.run_number);
333 
334  if (m_lumiBlockNumber != 0) params.lumiBlockNumber = m_lumiBlockNumber;
335  ATH_MSG_DEBUG("LB number: " << params.lumiBlockNumber);
336 
337  if (!m_streamType.empty()) params.streamType = m_streamType;
338  if (!m_streamName.empty()) params.streamName = m_streamName;
339 
340  if (params.streamType.empty()) params.streamType = "Single";
341  if (params.streamName.empty()) params.streamName = "Stream";
342 
343  params.stream = params.streamType + "_" + params.streamName;
344 
345  if (!m_projectTag.empty()) params.project = m_projectTag;
346 
347  params.applicationName = m_appName;
348 
349  if (!m_simpleFileName.empty()) {
350  // set up for simple file name
351  boost::shared_ptr<EventStorage::SimpleFileName> simple_file_name(
352  new EventStorage::SimpleFileName(m_simpleFileName));
353  params.theFNCB = simple_file_name;
354  } else {
355  // set up for production file name
356  daq::RawFileName fileNameObj(
357  params.project,
358  params.rPar.run_number,
359  params.streamType,
360  params.streamName,
361  params.lumiBlockNumber,
362  params.applicationName);
363  params.fileNameCore = fileNameObj.fileNameCore();
364  }
365 
366  params.compression = m_compressEvents
368  : EventStorage::NONE;
369 
370  params.maxFileMB = m_maxFileMB;
371  params.maxFileNE = params.rPar.max_events = m_maxFileNE;
372 }

◆ updateDataWriterParameters() [2/3]

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

Create DataWriter parameters from MetaData.

Definition at line 422 of file ByteStreamEventStorageOutputSvc.cxx.

423  {
424  ATH_MSG_DEBUG("Parsing run parameters from metadata:\n" << metaData);
425 
426  params.rPar.run_number = metaData.getRunNumber();
427  params.lumiBlockNumber = metaData.getLumiBlock();
428 
429  const std::string stream = metaData.getStream();
430  const std::string::size_type split = stream.find('_');
431 
432  if (split != std::string::npos and params.streamType.empty())
433  params.streamType = stream.substr(0,split);
434 
435  if (split != std::string::npos and params.streamName.empty())
436  params.streamName = stream.substr(split+1);
437 
438  params.project = metaData.getProject();
439  params.maxFileNE = params.rPar.max_events = metaData.getMaxEvents();
440 
441  params.rPar.rec_enable = metaData.getRecEnable();
442  params.rPar.trigger_type = metaData.getTriggerType();
443  params.rPar.beam_type = metaData.getBeamType();
444  if (metaData.getBeamEnergy() != 0)
445  params.rPar.beam_energy = metaData.getBeamEnergy();
446 
447  params.rPar.detector_mask_LS = metaData.getDetectorMask();
448  params.rPar.detector_mask_MS = metaData.getDetectorMask2();
449 
450  for (const std::string& fmd : metaData.getFreeMetaDataStrings())
451  params.fmdStrings.push_back(fmd);
452  // if(fmd.find("Compression=") == std::string::npos)
453 }

◆ updateDataWriterParameters() [3/3]

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

Create DataWriter parameters from EventInfo.

Definition at line 376 of file ByteStreamEventStorageOutputSvc.cxx.

377  {
378  ATH_MSG_DEBUG("Parsing run parameters from EventInfo" << eventInfo);
379 
380  params.rPar.run_number = eventInfo.runNumber();
381  params.lumiBlockNumber = eventInfo.lumiBlock();
382 
383  for (const xAOD::EventInfo::StreamTag& tag : eventInfo.streamTags())
384  if(!tag.type().empty()) {
385  params.streamType = tag.type();
386  break;
387  }
388 
389  for (const xAOD::EventInfo::StreamTag& tag : eventInfo.streamTags())
390  if (!tag.name().empty()) {
391  params.streamName = tag.name();
392  break;
393  }
394 
395  for (const auto& tag : eventInfo.detDescrTags())
396  params.fmdStrings.push_back(tag.first + ' ' + tag.second);
397 
398  params.rPar.trigger_type = eventInfo.level1TriggerType();
399  params.rPar.detector_mask_LS = eventInfo.detectorMask();
400  params.rPar.detector_mask_MS = eventInfo.detectorMaskExt();
401 
402  std::string event_type = "Event type: sim/data - ";
403  if (eventInfo.eventType(xAOD::EventInfo::EventType::IS_SIMULATION))
404  event_type += "is sim";
405  else event_type += "is data";
406 
407  event_type += " , testbeam/atlas - ";
408  if (eventInfo.eventType(xAOD::EventInfo::EventType::IS_TESTBEAM))
409  event_type += "is testbeam";
410  else event_type += "is atlas";
411 
412  event_type += " , calibration/physics - ";
413  if (eventInfo.eventType(xAOD::EventInfo::EventType::IS_CALIBRATION))
414  event_type += "is calibration";
415  else event_type += "is physics";
416 
417  params.fmdStrings.push_back(event_type);
418 }

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:117
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:70
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:72
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
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:289
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:170
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:322
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
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:228
ByteStreamEventStorageOutputSvc::initDataWriterContents
bool initDataWriterContents(const xAOD::EventInfo *, const ByteStreamMetadata *)
Definition: ByteStreamEventStorageOutputSvc.cxx:134
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:67
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:27
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
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
SG::get
const T * get(const ReadHandleKey< T > &key)
Convenience function to retrieve an object given a ReadHandleKey.
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
xAOD::EventInfo_v1::StreamTag
Class describing a stream tag on the event.
Definition: EventInfo_v1.h:190