ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
TrigByteStreamCnvSvc Class Reference

A ByteStreamCnvSvc implementation for online use. More...

#include <TrigByteStreamCnvSvc.h>

Inheritance diagram for TrigByteStreamCnvSvc:
Collaboration diagram for TrigByteStreamCnvSvc:

Public Member Functions

 TrigByteStreamCnvSvc (const std::string &name, ISvcLocator *svcLoc)
 Standard constructor. More...
 
virtual ~TrigByteStreamCnvSvc ()
 Standard destructor. More...
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
virtual StatusCode connectOutput (const std::string &outputFile) override
 In the case of online BS data, this method creates the output FullEventFragment and fills its header. More...
 
StatusCode connectOutput (const std::string &outputFile, const EventContext &eventContext)
 In the case of online BS data, this method creates the output FullEventFragment and fills its header. More...
 
virtual StatusCode connectOutput (const std::string &outputFile, const std::string &openMode) override
 This overload is kept only for interface compatibility. More...
 
virtual StatusCode commitOutput (const std::string &outputFile, bool do_commit) override
 In the case of online BS data, this method binds and sends out the output FullEventFragment. More...
 
StatusCode commitOutput (const std::string &outputFile, bool do_commit, const EventContext &eventContext)
 In the case of online BS data, this method binds and sends out the output FullEventFragment. More...
 
virtual RawEventWritegetRawEvent () override
 Return a pointer to the raw event for the current event context. More...
 
RawEventWritegetRawEvent (const EventContext &eventContext) const
 Return a pointer to the raw event for the given event context. More...
 

Protected Member Functions

virtual FullEventAssemblerBasefindFullEventAssembler (const std::string &name) const override
 
virtual StatusCode storeFullEventAssembler (std::unique_ptr< FullEventAssemblerBase > fea, const std::string &name) override
 

Private Member Functions

RawEventWritesetRawEvent (std::unique_ptr< RawEventWrite > &&rawEventWrite, const EventContext &eventContext)
 Store new raw event in the cache. More...
 
void clearRawEvent (const EventContext &eventContext)
 Delete raw event from the cache. More...
 
void printRawEvent (const EventContext &eventContext) const
 Print contents of the raw event. More...
 
void monitorRawEvent (const std::unique_ptr< uint32_t[]> &rawEventPtr) const
 Fill histograms from contents of a FullEventFragment. More...
 
const EventContext * currentContext () const
 Hack used in HLT to avoid using ThreadLocalContext, see explanation in the implementation. More...
 

Private Attributes

ServiceHandle< StoreGateSvcm_evtStore {this, "EventStore", "StoreGateSvc"}
 
ServiceHandle< IROBDataProviderSvcm_robDataProviderSvc {this, "ROBDataProvider", "ROBDataProviderSvc"}
 
ToolHandle< GenericMonitoringToolm_monTool {this, "MonTool", "" , "Monitoring tool"}
 
SG::SlotSpecificObj< std::unique_ptr< RawEventWrite > > m_rawEventWriteCache
 

Detailed Description

A ByteStreamCnvSvc implementation for online use.

It overrides the connectOutput and commitOutput methods of the base class. In this implementation, they create the specific online HLT output and send it out directly to the TDAQ infrastructure without using an output service.

Definition at line 23 of file TrigByteStreamCnvSvc.h.

Constructor & Destructor Documentation

◆ TrigByteStreamCnvSvc()

TrigByteStreamCnvSvc::TrigByteStreamCnvSvc ( const std::string &  name,
ISvcLocator *  svcLoc 
)

Standard constructor.

Definition at line 86 of file TrigByteStreamCnvSvc.cxx.

87  : base_class(name, svcLoc) {}

◆ ~TrigByteStreamCnvSvc()

TrigByteStreamCnvSvc::~TrigByteStreamCnvSvc ( )
virtual

Standard destructor.

Definition at line 92 of file TrigByteStreamCnvSvc.cxx.

92 {}

Member Function Documentation

◆ clearRawEvent()

void TrigByteStreamCnvSvc::clearRawEvent ( const EventContext &  eventContext)
private

Delete raw event from the cache.

Definition at line 275 of file TrigByteStreamCnvSvc.cxx.

275  {
276  m_rawEventWriteCache.get(eventContext)->reset();
277 }

◆ commitOutput() [1/2]

StatusCode TrigByteStreamCnvSvc::commitOutput ( const std::string &  outputFile,
bool  do_commit 
)
overridevirtual

In the case of online BS data, this method binds and sends out the output FullEventFragment.

Definition at line 177 of file TrigByteStreamCnvSvc.cxx.

177  {
178  const EventContext* eventContext = currentContext();
179  if (eventContext == nullptr) return StatusCode::FAILURE;
180  return commitOutput(outputFile, do_commit, *eventContext);
181 }

◆ commitOutput() [2/2]

StatusCode TrigByteStreamCnvSvc::commitOutput ( const std::string &  outputFile,
bool  do_commit,
const EventContext &  eventContext 
)

In the case of online BS data, this method binds and sends out the output FullEventFragment.

Definition at line 183 of file TrigByteStreamCnvSvc.cxx.

183  {
184  ATH_MSG_VERBOSE("start of " << __FUNCTION__);
185 
186  if (msgLvl(MSG::DEBUG)) printRawEvent(eventContext);
187 
188  RawEventWrite* re = getRawEvent(eventContext);
189 
190  // Serialise the output FullEventFragment
191  std::unique_ptr<uint32_t[]> rawEventPtr;
192  try {
193  const eformat::write::node_t* top = re->bind();
194  uint32_t rawEventSize = re->size_word();
195  rawEventPtr = std::make_unique<uint32_t[]>(rawEventSize);
196  uint32_t copiedSize = eformat::write::copy(*top,rawEventPtr.get(),rawEventSize);
197  if(copiedSize!=rawEventSize) {
198  ATH_MSG_ERROR("FullEventFragment serialisation failed");
199  return StatusCode::FAILURE;
200  }
201  }
202  catch (const std::exception& e) {
203  ATH_MSG_ERROR("FullEventFragment serialisation failed, caught an unexpected std::exception " << e.what());
204  clearRawEvent(eventContext);
205  return StatusCode::FAILURE;
206  }
207  catch (...) {
208  ATH_MSG_ERROR("FullEventFragment serialisation failed, caught an unexpected exception");
209  clearRawEvent(eventContext);
210  return StatusCode::FAILURE;
211  }
212 
213  {
214  auto t_mon = Monitored::Timer("TIME_monitorRawEvent");
215  monitorRawEvent(rawEventPtr);
216  Monitored::Group(m_monTool, t_mon);
217  }
218 
219  // Send output to the DataCollector
220  StatusCode result = StatusCode::SUCCESS;
221  try {
222  auto t_eventDone = Monitored::Timer<std::chrono::duration<float, std::milli>>("TIME_eventDone");
223  hltinterface::DataCollector::instance()->eventDone(std::move(rawEventPtr));
224  Monitored::Group(m_monTool, t_eventDone);
225  ATH_MSG_DEBUG("Serialised FullEventFragment with HLT result was returned to DataCollector successfully, "
226  << "the eventDone call took " << (double)t_eventDone << " milliseconds");
227  }
228  catch (const std::exception& e) {
229  ATH_MSG_ERROR("Sending output to DataCollector failed, caught an unexpected std::exception " << e.what());
230  result = StatusCode::FAILURE;
231  }
232  catch (...) {
233  ATH_MSG_ERROR("Sending output to DataCollector failed, caught an unexpected exception");
234  result = StatusCode::FAILURE;
235  }
236 
237  clearRawEvent(eventContext);
238 
239  ATH_MSG_VERBOSE("end of " << __FUNCTION__);
240  return result;
241 }

◆ connectOutput() [1/3]

StatusCode TrigByteStreamCnvSvc::connectOutput ( const std::string &  outputFile)
overridevirtual

In the case of online BS data, this method creates the output FullEventFragment and fills its header.

Definition at line 139 of file TrigByteStreamCnvSvc.cxx.

139  {
140  const EventContext* eventContext = currentContext();
141  if (eventContext == nullptr) return StatusCode::FAILURE;
142  return connectOutput(outputFile, *eventContext);
143 }

◆ connectOutput() [2/3]

StatusCode TrigByteStreamCnvSvc::connectOutput ( const std::string &  outputFile,
const EventContext &  eventContext 
)

In the case of online BS data, this method creates the output FullEventFragment and fills its header.

Definition at line 145 of file TrigByteStreamCnvSvc.cxx.

145  {
146  ATH_MSG_VERBOSE("start of " << __FUNCTION__);
147 
148  ATH_MSG_DEBUG("Creating new RawEventWrite for EventContext = " << eventContext);
149  // Create a new RawEventWrite and copy the header from the input RawEvent
150  RawEventWrite* re = setRawEvent(std::make_unique<RawEventWrite>(), eventContext);
151  const uint32_t* inputRawEvent = m_robDataProviderSvc->getEvent(eventContext)->start();
152  if (!inputRawEvent) {
153  ATH_MSG_ERROR("Input RawEvent is nullptr, cannot create output");
154  return StatusCode::FAILURE;
155  }
156  re->copy_header(inputRawEvent);
157 
158  ATH_MSG_VERBOSE("Created RawEventWrite pointer = " << re);
159 
160  ATH_MSG_VERBOSE("end of " << __FUNCTION__);
161  return StatusCode::SUCCESS;
162 }

◆ connectOutput() [3/3]

StatusCode TrigByteStreamCnvSvc::connectOutput ( const std::string &  outputFile,
const std::string &  openMode 
)
overridevirtual

This overload is kept only for interface compatibility.

Definition at line 168 of file TrigByteStreamCnvSvc.cxx.

168  {
169  return connectOutput(outputFile);
170 }

◆ currentContext()

const EventContext * TrigByteStreamCnvSvc::currentContext ( ) const
private

Hack used in HLT to avoid using ThreadLocalContext, see explanation in the implementation.

Definition at line 244 of file TrigByteStreamCnvSvc.cxx.

244  {
245  // Get the EventContext via event store because the base class doesn't allow passing it explicitly as an argument
246  // and we don't want to use ThreadLocalContext. Don't use ReadHandle here because it calls ThreadLocalContext if
247  // not given a context (which we want to retrieve). This relies on IHiveWhiteBoard::selectStore being called on the
248  // current thread before we arrive here (it is done in HltEventLoopMgr).
249  const EventContext* eventContext = nullptr;
250  if (m_evtStore->retrieve(eventContext).isFailure()) {
251  ATH_MSG_ERROR("Failed to retrieve EventContext from the event store");
252  }
253  return eventContext;
254 }

◆ finalize()

StatusCode TrigByteStreamCnvSvc::finalize ( )
overridevirtual

Definition at line 110 of file TrigByteStreamCnvSvc.cxx.

110  {
111  ATH_MSG_VERBOSE("start of " << __FUNCTION__);
112  if (m_robDataProviderSvc.release().isFailure())
113  ATH_MSG_WARNING("Failed to release service " << m_robDataProviderSvc.typeAndName());
114  if (m_evtStore.release().isFailure())
115  ATH_MSG_WARNING("Failed to release service " << m_evtStore.typeAndName());
116  ATH_MSG_VERBOSE("end of " << __FUNCTION__);
118  return StatusCode::SUCCESS;
119 }

◆ findFullEventAssembler()

FullEventAssemblerBase * TrigByteStreamCnvSvc::findFullEventAssembler ( const std::string &  name) const
overrideprotectedvirtual

Definition at line 124 of file TrigByteStreamCnvSvc.cxx.

124  {
125  ATH_MSG_ERROR("Bytestream creation is not supported by TrigByteStreamCnvSvc");
126  return nullptr;
127 }

◆ getRawEvent() [1/2]

RawEventWrite * TrigByteStreamCnvSvc::getRawEvent ( )
overridevirtual

Return a pointer to the raw event for the current event context.

Definition at line 257 of file TrigByteStreamCnvSvc.cxx.

257  {
258  const EventContext* eventContext = currentContext();
259  if (eventContext == nullptr) return nullptr;
260  return getRawEvent(*eventContext);
261 }

◆ getRawEvent() [2/2]

RawEventWrite * TrigByteStreamCnvSvc::getRawEvent ( const EventContext &  eventContext) const

Return a pointer to the raw event for the given event context.

Definition at line 264 of file TrigByteStreamCnvSvc.cxx.

264  {
265  return m_rawEventWriteCache.get(eventContext)->get();
266 }

◆ initialize()

StatusCode TrigByteStreamCnvSvc::initialize ( )
overridevirtual

Definition at line 97 of file TrigByteStreamCnvSvc.cxx.

97  {
98  ATH_MSG_VERBOSE("start of " << __FUNCTION__);
100  ATH_CHECK(m_evtStore.retrieve());
101  ATH_CHECK(m_robDataProviderSvc.retrieve());
102  if (!m_monTool.empty()) ATH_CHECK(m_monTool.retrieve());
103  ATH_MSG_VERBOSE("end of " << __FUNCTION__);
104  return StatusCode::SUCCESS;
105 }

◆ monitorRawEvent()

void TrigByteStreamCnvSvc::monitorRawEvent ( const std::unique_ptr< uint32_t[]> &  rawEventPtr) const
private

Fill histograms from contents of a FullEventFragment.

Definition at line 280 of file TrigByteStreamCnvSvc.cxx.

280  {
281  // Create a read fragment from the pointer
282  eformat::read::FullEventFragment rawEvent(rawEventPtr.get());
283 
284  // Monitor error code
285  if (rawEvent.nstatus() > 1) {
286  HLT::OnlineErrorCode errorCode = static_cast<HLT::OnlineErrorCode>(rawEvent.status()[1]);
287  std::ostringstream ss;
288  ss << errorCode;
289  auto monOnlineErrorCode = Monitored::Scalar<std::string>("OnlineErrorCode", ss.str());
290  Monitored::Group(m_monTool, monOnlineErrorCode);
291  }
292 
293  // Decode stream tags
294  std::vector<eformat::helper::StreamTag> streamTags;
295  try {
296  eformat::helper::decode(rawEvent.nstream_tag(), rawEvent.stream_tag(), streamTags);
297  }
298  catch (const std::exception& ex) {
299  ATH_MSG_ERROR("StreamTag decoding failed, caught an unexpected std::exception " << ex.what());
300  return;
301  }
302  catch (...) {
303  ATH_MSG_ERROR("StreamTag decoding failed, caught an unexpected exception");
304  return;
305  }
306 
307  // Get HLT result sizes
308  std::vector<eformat::read::ROBFragment> robs;
309  rawEvent.robs(robs);
310  std::vector<uint16_t> resultSizeMap_moduleID;
311  std::vector<uint32_t> resultSizeMap_size;
312  uint32_t totalSizeWords = 0;
313  try {
314  for (const eformat::read::ROBFragment& rob : robs) {
315  eformat::helper::SourceIdentifier sid(rob.rob_source_id());
316  if (sid.subdetector_id() != eformat::SubDetector::TDAQ_HLT)
317  continue;
318  const uint16_t module_id = sid.module_id();
319  const uint32_t size = rob.fragment_size_word();
320  totalSizeWords += size;
321  if (!contains(resultSizeMap_moduleID, module_id)) {
322  resultSizeMap_moduleID.push_back(module_id);
323  resultSizeMap_size.push_back(size);
324  }
325  else {
326  ATH_MSG_ERROR("HLT result ROB monitoring found multiple HLT ROBs with the same module ID " << module_id);
327  }
328  }
329  }
330  catch (const std::exception& ex) {
331  ATH_MSG_ERROR("HLT result ROB monitoring failed, caught an unexpected std::exception " << ex.what());
332  return;
333  }
334  catch (...) {
335  ATH_MSG_ERROR("HLT result ROB monitoring failed, caught an unexpected exception");
336  return;
337  }
338 
339  // Fill helper containers for monitoring
340  std::vector<std::string> sdFromRobList;
341  std::vector<std::string> sdFromSubDetList;
342  std::vector<std::string> streamTagCorrA;
343  std::vector<std::string> streamTagCorrB;
344  std::vector<float> streamResultSize; // Correlated with streamTags vector
345  streamTagCorrA.reserve(streamTags.size() * streamTags.size());
346  streamTagCorrB.reserve(streamTags.size() * streamTags.size());
347  streamResultSize.reserve(streamTags.size());
348  for (const eformat::helper::StreamTag& st : streamTags) {
349  bool hasHLTSubDet = st.dets.find(eformat::SubDetector::TDAQ_HLT) != st.dets.end();
350  bool includeAll = st.robs.empty() && (st.dets.empty() || hasHLTSubDet);
351  // includeAll means a stream with full event building or all HLT results included
352  uint32_t sizeWords = includeAll ? totalSizeWords : 0;
353  for (const eformat::SubDetector sd : st.dets) {
354  const std::string& detName = eformat::helper::SubDetectorDictionary.string(sd);
355  if (!contains(sdFromSubDetList, detName)) sdFromSubDetList.push_back(detName);
356  }
357  for (const uint32_t robid : st.robs) {
358  eformat::helper::SourceIdentifier sid(robid);
359  const std::string& detName = sid.human_detector();
360  if (!contains(sdFromRobList, detName)) sdFromRobList.push_back(detName);
361  if (!includeAll && sid.subdetector_id() == eformat::SubDetector::TDAQ_HLT) {
362  if (const int ix = index(resultSizeMap_moduleID, sid.module_id()); ix >= 0) {
363  sizeWords += resultSizeMap_size[ix];
364  }
365  else {
366  ATH_MSG_WARNING("Stream tag " << st.type << "_" << st.name << " declares " << sid.human()
367  << " in ROB list, but the ROBFragment is missing");
368  }
369  }
370  }
371  streamResultSize.push_back(sizeWords*wordsToKiloBytes);
372  for (const eformat::helper::StreamTag& st2 : streamTags) {
373  streamTagCorrA.push_back(mon_streamTypeName(st));
374  streamTagCorrB.push_back(mon_streamTypeName(st2));
375  }
376  }
377 
378  // General stream tag monitoring
379  auto monStreamTagsNum = Monitored::Scalar<size_t>("StreamTagsNum", streamTags.size());
380  auto monStreamTags = Monitored::Collection("StreamTags", streamTags, mon_streamTypeName);
381  auto monStreamTagsType = Monitored::Collection("StreamTagsType", streamTags, mon_streamType);
382  auto monStreamTagCorrA = Monitored::Collection("StreamTagCorrA", streamTagCorrA);
383  auto monStreamTagCorrB = Monitored::Collection("StreamTagCorrB", streamTagCorrB);
384  // PEB stream tag monitoring
385  auto monStreamIsPeb = Monitored::Collection("StreamTagIsPeb", streamTags, mon_streamIsPeb);
386  auto monPebRobsNum = Monitored::Collection("StreamTagsPebRobsNum", streamTags, mon_streamPebRobsNum);
387  auto monPebSubDetsNum = Monitored::Collection("StreamTagsPebSubDetsNum", streamTags, mon_streamPebSubDetsNum);
388  auto monSubDetsFromRobList = Monitored::Collection("StreamTagsPebSubDetsFromRobList", sdFromRobList);
389  auto monSubDetsFromSubDetList = Monitored::Collection("StreamTagsPebSubDetsFromSubDetList", sdFromSubDetList);
390  // Result size monitoring
391  auto monResultSizeTotal = Monitored::Scalar<float>("ResultSizeTotal", totalSizeWords*wordsToKiloBytes);
392  auto monResultSizeFullEvFrag = Monitored::Scalar<float>("ResultSizeFullEvFrag", rawEvent.fragment_size_word()*wordsToKiloBytes);
393  auto monResultCollModuleID = Monitored::Collection("ResultModuleID", resultSizeMap_moduleID);
394  auto monResultCollModuleSize = Monitored::Collection("ResultModuleSize", resultSizeMap_size, [](uint32_t sw){return sw*wordsToKiloBytes;});
395  auto monResultSizeByStream = Monitored::Collection("ResultSizeStream", streamResultSize);
396  // Collect all variables
397  Monitored::Group(m_monTool, monStreamTagsNum, monStreamTags, monStreamTagsType, monStreamTagCorrA,
398  monStreamTagCorrB, monStreamIsPeb, monPebRobsNum, monPebSubDetsNum, monSubDetsFromRobList,
399  monSubDetsFromSubDetList, monResultSizeTotal, monResultSizeFullEvFrag, monResultCollModuleID,
400  monResultCollModuleSize, monResultSizeByStream);
401 }

◆ printRawEvent()

void TrigByteStreamCnvSvc::printRawEvent ( const EventContext &  eventContext) const
private

Print contents of the raw event.

Definition at line 404 of file TrigByteStreamCnvSvc.cxx.

404  {
405  RawEventWrite* re = getRawEvent(eventContext);
406 
407  if (!re) {
408  ATH_MSG_WARNING("RawEventWrite pointer is null");
409  return;
410  }
411  std::ostringstream ss;
412  ss << "Dumping header of the FullEventFragment with HLT result:" << std::endl;
413  ss << "--> status = "
414  << printNWordsHex<uint32_t>(re->nstatus(), re->status())
415  << std::endl;
416  ss << "--> source_id = " << printWordHex<uint32_t>(re->source_id()) << std::endl;
417  ss << "--> checksum_type = " << printWordHex<uint32_t>(re->checksum_type()) << std::endl;
418  ss << "--> compression_type = " << printWordHex<uint32_t>(re->compression_type()) << std::endl;
419  ss << "--> compression_level = " << re->compression_level() << std::endl;
420  ss << "--> bc_time_seconds = " << re->bc_time_seconds() << std::endl;
421  ss << "--> bc_time_nanoseconds = " << re->bc_time_nanoseconds() << std::endl;
422  ss << "--> global_id = " << re->global_id() << std::endl;
423  ss << "--> run_type = " << re->run_type() << std::endl;
424  ss << "--> run_no = " << re->run_no() << std::endl;
425  ss << "--> lumi_block = " << re->lumi_block() << std::endl;
426  ss << "--> lvl1_id = " << re->lvl1_id() << std::endl;
427  ss << "--> bc_id = " << re->bc_id() << std::endl;
428  ss << "--> lvl1_trigger_type = " << printWordHex<uint8_t>(re->lvl1_trigger_type()) << std::endl;
429  ss << "--> lvl1_trigger_info = "
430  << printNWordsHex<uint32_t>(re->nlvl1_trigger_info(), re->lvl1_trigger_info())
431  << std::endl;
432  ss << "--> lvl2_trigger_info = "
433  << printNWordsHex<uint32_t>(re->nlvl2_trigger_info(), re->lvl2_trigger_info())
434  << std::endl;
435  ss << "--> event_filter_info = "
436  << printNWordsHex<uint32_t>(re->nevent_filter_info(), re->event_filter_info())
437  << std::endl;
438  ss << "--> hlt_info = "
439  << printNWordsHex<uint32_t>(re->nhlt_info(), re->hlt_info())
440  << std::endl;
441 
442  std::vector<eformat::helper::StreamTag> stream_tags;
443  try {
444  eformat::helper::decode(re->nstream_tag(), re->stream_tag(), stream_tags);
445  }
446  catch (const std::exception& ex) {
447  ATH_MSG_ERROR("StreamTag decoding failed, caught an unexpected std::exception " << ex.what());
448  return;
449  }
450  catch (...) {
451  ATH_MSG_ERROR("StreamTag decoding failed, caught an unexpected exception");
452  return;
453  }
454  ss << "--> stream_tags = ";
455  bool first = true;
456  for (const auto& st : stream_tags) {
457  if (first) first=false;
458  else ss << " ";
459  ss << "{" << st.name << ", " << st.type << ", obeysLB=" << st.obeys_lumiblock << ", robs=[";
460  for (const auto& robid : st.robs) ss << printWordHex<uint32_t>(robid) << ", ";
461  ss << "], dets = [";
462  for (const auto& detid : st.dets) ss << printWordHex<uint8_t>(detid) << ", ";
463  ss << "]}" << std::endl;
464  }
465 
466  ATH_MSG_DEBUG(ss.str());
467 }

◆ setRawEvent()

RawEventWrite * TrigByteStreamCnvSvc::setRawEvent ( std::unique_ptr< RawEventWrite > &&  rawEventWrite,
const EventContext &  eventContext 
)
private

Store new raw event in the cache.

Definition at line 269 of file TrigByteStreamCnvSvc.cxx.

269  {
270  *(m_rawEventWriteCache.get(eventContext)) = std::move(rawEventWrite);
271  return getRawEvent(eventContext);
272 }

◆ storeFullEventAssembler()

StatusCode TrigByteStreamCnvSvc::storeFullEventAssembler ( std::unique_ptr< FullEventAssemblerBase fea,
const std::string &  name 
)
overrideprotectedvirtual

Definition at line 129 of file TrigByteStreamCnvSvc.cxx.

130  {
131  ATH_MSG_ERROR("Bytestream creation is not supported by TrigByteStreamCnvSvc");
132  return StatusCode::FAILURE;
133 }

Member Data Documentation

◆ m_evtStore

ServiceHandle<StoreGateSvc> TrigByteStreamCnvSvc::m_evtStore {this, "EventStore", "StoreGateSvc"}
private

Definition at line 72 of file TrigByteStreamCnvSvc.h.

◆ m_monTool

ToolHandle<GenericMonitoringTool> TrigByteStreamCnvSvc::m_monTool {this, "MonTool", "" , "Monitoring tool"}
private

Definition at line 74 of file TrigByteStreamCnvSvc.h.

◆ m_rawEventWriteCache

SG::SlotSpecificObj<std::unique_ptr<RawEventWrite> > TrigByteStreamCnvSvc::m_rawEventWriteCache
private

Definition at line 77 of file TrigByteStreamCnvSvc.h.

◆ m_robDataProviderSvc

ServiceHandle<IROBDataProviderSvc> TrigByteStreamCnvSvc::m_robDataProviderSvc {this, "ROBDataProvider", "ROBDataProviderSvc"}
private

Definition at line 73 of file TrigByteStreamCnvSvc.h.


The documentation for this class was generated from the following files:
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
AtlasMcWeight::decode
double decode(number_type binnedWeight)
Convert weight from unsigned to double.
Definition: AtlasMcWeight.cxx:32
RawEventWrite
OFFLINE_FRAGMENTS_NAMESPACE_WRITE::FullEventFragment RawEventWrite
data type for writing raw event
Definition: RawEvent.h:39
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:50
TrigDefs::Group
Group
Properties of a chain group.
Definition: GroupProperties.h:13
get_generator_info.result
result
Definition: get_generator_info.py:21
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
TrigByteStreamCnvSvc::commitOutput
virtual StatusCode commitOutput(const std::string &outputFile, bool do_commit) override
In the case of online BS data, this method binds and sends out the output FullEventFragment.
Definition: TrigByteStreamCnvSvc.cxx:177
TrigByteStreamCnvSvc::monitorRawEvent
void monitorRawEvent(const std::unique_ptr< uint32_t[]> &rawEventPtr) const
Fill histograms from contents of a FullEventFragment.
Definition: TrigByteStreamCnvSvc.cxx:280
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
trigbs_dumpHLTContentInBS_run3.stream_tags
def stream_tags(event)
Definition: trigbs_dumpHLTContentInBS_run3.py:174
SG::SlotSpecificObj::get
T * get(const EventContext &ctx)
Return pointer to the object for slot given by ctx.
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment
eformat::FullEventFragment< PointerType > FullEventFragment
Definition: RawEvent.h:26
TrigByteStreamCnvSvc::m_rawEventWriteCache
SG::SlotSpecificObj< std::unique_ptr< RawEventWrite > > m_rawEventWriteCache
Definition: TrigByteStreamCnvSvc.h:77
Monitored::Collection
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
Definition: MonitoredCollection.h:38
python.selector.AtlRunQuerySelectorLhcOlc.sd
sd
Definition: AtlRunQuerySelectorLhcOlc.py:612
TrigByteStreamCnvSvc::connectOutput
virtual StatusCode connectOutput(const std::string &outputFile) override
In the case of online BS data, this method creates the output FullEventFragment and fills its header.
Definition: TrigByteStreamCnvSvc.cxx:139
instance
std::map< std::string, double > instance
Definition: Run_To_Get_Tags.h:8
compareGeometries.outputFile
string outputFile
Definition: compareGeometries.py:25
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
TrigByteStreamCnvSvc::setRawEvent
RawEventWrite * setRawEvent(std::unique_ptr< RawEventWrite > &&rawEventWrite, const EventContext &eventContext)
Store new raw event in the cache.
Definition: TrigByteStreamCnvSvc.cxx:269
TrigByteStreamCnvSvc::m_robDataProviderSvc
ServiceHandle< IROBDataProviderSvc > m_robDataProviderSvc
Definition: TrigByteStreamCnvSvc.h:73
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
python.HLT.CommonSequences.EventBuildingSequences.robs
robs
Definition: EventBuildingSequences.py:401
contains
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition: hcg.cxx:111
calibdata.exception
exception
Definition: calibdata.py:496
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment
eformat::ROBFragment< PointerType > ROBFragment
Definition: RawEvent.h:27
HLT::OnlineErrorCode
OnlineErrorCode
Definition: OnlineErrorCode.h:15
DeMoScan.index
string index
Definition: DeMoScan.py:364
TrigByteStreamCnvSvc::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrigByteStreamCnvSvc.h:74
TrigByteStreamCnvSvc::m_evtStore
ServiceHandle< StoreGateSvc > m_evtStore
Definition: TrigByteStreamCnvSvc.h:72
TrigByteStreamCnvSvc::printRawEvent
void printRawEvent(const EventContext &eventContext) const
Print contents of the raw event.
Definition: TrigByteStreamCnvSvc.cxx:404
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DeMoScan.first
bool first
Definition: DeMoScan.py:536
re
const boost::regex re(r_e)
DEBUG
#define DEBUG
Definition: page_access.h:11
TrigByteStreamCnvSvc::currentContext
const EventContext * currentContext() const
Hack used in HLT to avoid using ThreadLocalContext, see explanation in the implementation.
Definition: TrigByteStreamCnvSvc.cxx:244
top
@ top
Definition: TruthClasses.h:64
calibdata.copy
bool copy
Definition: calibdata.py:27
Monitored::Scalar
Declare a monitored scalar variable.
Definition: MonitoredScalar.h:34
TrigByteStreamCnvSvc::clearRawEvent
void clearRawEvent(const EventContext &eventContext)
Delete raw event from the cache.
Definition: TrigByteStreamCnvSvc.cxx:275
python.LArCondContChannels.detName
detName
Definition: LArCondContChannels.py:665
Monitored::Timer
A monitored timer.
Definition: MonitoredTimer.h:32
TrigByteStreamCnvSvc::getRawEvent
virtual RawEventWrite * getRawEvent() override
Return a pointer to the raw event for the current event context.
Definition: TrigByteStreamCnvSvc.cxx:257
ByteStreamCnvSvcBase::initialize
virtual StatusCode initialize() override
Required of all Gaudi Services.
Definition: ByteStreamCnvSvcBase.cxx:27