ATLAS Offline Software
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
ByteStreamCnvSvc Class Reference

Gaudi Conversion Service class for ByteStream Persistency. More...

#include <ByteStreamCnvSvc.h>

Inheritance diagram for ByteStreamCnvSvc:
Collaboration diagram for ByteStreamCnvSvc:

Classes

struct  SlotData
 Slot-specific state. More...
 

Public Types

typedef std::unordered_map< CLID, WorkerEntryWorkers
 

Public Member Functions

 ByteStreamCnvSvc (const std::string &name, ISvcLocator *svc)
 Standard Constructor. More...
 
virtual ~ByteStreamCnvSvc ()
 Standard Destructor. More...
 
virtual StatusCode initialize () override
 Gaudi Service Interface method implementations: More...
 
virtual StatusCode finalize () override
 
virtual StatusCode connectOutput (const std::string &t, const std::string &mode) override
 Implements ConversionSvc's connectOutput. More...
 
virtual StatusCode connectOutput (const std::string &t) override
 Connect the output file to the service. More...
 
virtual StatusCode commitOutput (const std::string &outputConnection, bool b) override
 Implements ConversionSvc's commitOutput. More...
 
virtual RawEventWritegetRawEvent () override
 Implementation of IByteStreamEventAccess: Get RawEvent. More...
 
template<class T >
StatusCode getFullEventAssembler (T *&t, const std::string &nm)
 Access to FullEventAssembler. More...
 
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface) override
 Required of all Gaudi services: see Gaudi documentation for details. More...
 
virtual StatusCode updateServiceState (IOpaqueAddress *pAddress) override
 Checks whether an IOpaqueAddress is a GenericAddress. More...
 
virtual void handle (const Incident &) override
 Implementation of IIncidentListener: Handle for EndEvent incidence. More...
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 Should rather be in IByteStreamSvc.h if we had one. More...
 

Protected Member Functions

RawEventWritesetRawEvent (std::unique_ptr< RawEventWrite > rawEventWrite)
 

Protected Attributes

std::vector< std::string > m_initCnvs
 
Gaudi::Property< std::vector< std::string > > m_ROD2ROBmap {this,"ROD2ROBmap",{},"","OrderedSet<std::string>"}
 

Private Types

using FEAPtr_t = std::unique_ptr< FullEventAssemblerBase >
 common FEA, indexed by string key More...
 
using FEAMap_t = std::map< std::string, FEAPtr_t >
 

Private Member Functions

void writeFEA (SlotData &slot)
 Write the FEA to RawEvent. More...
 

Private Attributes

std::string m_ioSvcName
 name of the service More...
 
Gaudi::Property< std::vector< std::string > > m_ioSvcNameList { this, "ByteStreamOutputSvcList", {}, "", "OrderedSet<T>"}
 list of service names More...
 
Gaudi::Property< bool > m_fillTriggerBits {this, "FillTriggerBits", true, "Read in xTrigDecision and use it to fill Trigger bits in event header"}
 fill trigger bits More...
 
std::map< std::string, ByteStreamOutputSvc * > m_ioSvcMap
 Services for writing output. More...
 
ServiceHandle< StoreGateSvcm_evtStore
 Event store. More...
 
std::string m_userType
 user type More...
 
SG::SlotSpecificObj< SlotDatam_slots
 

@c IConversionSvc implementation

virtual long repSvcType () const
 Retrieve the class type of the data store the converter uses. More...
 
const CLIDobjType () const
 Implementation of IConverter: dummy call. More...
 
virtual StatusCode setDataProvider (IDataProviderSvc *pService)
 Implementation of IConverter: Set Data provider service. More...
 
virtual SmartIF< IDataProviderSvc > & dataProvider () const
 Implementation of IConverter: Get Data provider service. More...
 
virtual StatusCode setConversionSvc (IConversionSvc *svc)
 Implementation of IConverter: Set conversion service the converter is connected to. More...
 
virtual SmartIF< IConversionSvc > & conversionSvc () const
 Implementation of IConverter: Get conversion service the converter is connected to. More...
 
virtual StatusCode setAddressCreator (IAddressCreator *creator)
 Set address creator facility. More...
 
virtual SmartIF< IAddressCreator > & addressCreator () const
 Retrieve address creator facility. More...
 
virtual StatusCode createObj (IOpaqueAddress *pAddress, DataObject *&refpObject)
 Implementation of IConverter: Create the transient representation of an object. More...
 
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Implementation of IConverter: Resolve the references of the created transient object. More...
 
virtual StatusCode updateObj (IOpaqueAddress *pAddress, DataObject *refpObject)
 Implementation of IConverter: Update the transient object from the other representation. More...
 
virtual StatusCode updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Implementation of IConverter: Update the references of an updated transient object. More...
 
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
 Implementation of IConverter: Convert the transient object to the requested representation. More...
 
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Implementation of IConverter: Resolve the references of the converted object. More...
 
virtual StatusCode updateRep (IOpaqueAddress *pAddress, DataObject *pObject)
 Implementation of IConverter: Update the converted representation of a transient object. More...
 
virtual StatusCode updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Implementation of IConverter: Update the references of an already converted object. More...
 
virtual StatusCode addConverter (const CLID &clid)
 Add converter object to conversion service. More...
 
virtual StatusCode addConverter (IConverter *pConverter)
 Add converter object to conversion service. More...
 
virtual StatusCode removeConverter (const CLID &clid)
 Remove converter object from conversion service (if present). More...
 
virtual IConverter * converter (const CLID &wanted)
 Retrieve converter from list. More...
 
virtual StatusCode disconnectOutput (const std::string &output)
 Disconnect output files from the service. More...
 

@c IAddressCreator interface implementation

virtual StatusCode createAddress (long svc_type, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress)
 Create a Generic address using explicit arguments to identify a single object. More...
 
virtual StatusCode createAddress (long svc_type, const CLID &clid, const std::string &refAddress, IOpaqueAddress *&refpAddress)
 Convert an address in string form to object form. More...
 
virtual StatusCode convertAddress (const IOpaqueAddress *pAddress, std::string &refAddress)
 Convert an address to string form. More...
 
virtual SmartIF< IAddressCreator > & addressCreator ()
 Retrieve address creation interface. More...
 
virtual IConverter * createConverter (long typ, const CLID &clid, const ICnvFactory *fac)
 Create new Converter using factory. More...
 
virtual StatusCode configureConverter (long typ, const CLID &clid, IConverter *cnv)
 Configure the new converter before initialize is called. More...
 
virtual StatusCode initializeConverter (long typ, const CLID &clid, IConverter *cnv)
 Initialize the new converter. More...
 
virtual StatusCode activateConverter (long typ, const CLID &clid, IConverter *cnv)
 Activate the new converter after initialization. More...
 
virtual void loadConverter (DataObject *pObject)
 Load converter or dictionary needed by the converter. More...
 
StatusCode makeCall (int typ, bool ignore_add, bool ignore_obj, bool update, IOpaqueAddress *&pAddress, DataObject *&pObject)
 
SmartIF< IDataProviderSvc > m_dataSvc
 Pointer to data provider service. More...
 
SmartIF< IAddressCreator > m_addressCreator
 Pointer to the address creation service interface. More...
 
SmartIF< IConversionSvc > m_cnvSvc
 Pointer to the IConversionSvc interface of this. More...
 
long m_type
 Conversion service type. More...
 
Workers m_workers
 List of conversion workers. More...
 
CallMutex m_conv_mut
 
typedef std::recursive_mutex CallMutex
 Mutex to protect Converter creation. More...
 

Detailed Description

Gaudi Conversion Service class for ByteStream Persistency.

This class is responsible for converting data object to and from BS format It inherits from ByteStreamCnvSvcBase, which is used by HLT in online.

When reading the ByteStream data, the ByteStream converters are called, which in turn call IRODDataProviderSvc to retrieve the raw data.

When writing the object data to ByteStream, an FullEventFragment is assembled from lower level fragments using FullEventAssembler, and written out to BS in commitOutput method through ByteStreamOutputSvc.

Definition at line 34 of file ByteStreamCnvSvc.h.

Member Typedef Documentation

◆ CallMutex

typedef std::recursive_mutex AthCnvSvc::CallMutex
protectedinherited

Mutex to protect Converter creation.

Definition at line 323 of file AthCnvSvc.h.

◆ FEAMap_t

using ByteStreamCnvSvc::FEAMap_t = std::map<std::string, FEAPtr_t>
private

Definition at line 92 of file ByteStreamCnvSvc.h.

◆ FEAPtr_t

using ByteStreamCnvSvc::FEAPtr_t = std::unique_ptr<FullEventAssemblerBase>
private

common FEA, indexed by string key

Definition at line 91 of file ByteStreamCnvSvc.h.

◆ Workers

typedef std::unordered_map<CLID,WorkerEntry> AthCnvSvc::Workers
inherited

Definition at line 106 of file AthCnvSvc.h.

Constructor & Destructor Documentation

◆ ByteStreamCnvSvc()

ByteStreamCnvSvc::ByteStreamCnvSvc ( const std::string &  name,
ISvcLocator *  svc 
)

Standard Constructor.

Standard constructor.

Definition at line 34 of file ByteStreamCnvSvc.cxx.

35  : ByteStreamCnvSvcBase(name, pSvcLocator),
36  m_evtStore ("StoreGateSvc", name)
37 {
38  declareProperty("ByteStreamOutputSvc", m_ioSvcName);
39  declareProperty("UserType", m_userType = "RawEvent");
40  declareProperty("EventStore", m_evtStore);
41 }

◆ ~ByteStreamCnvSvc()

ByteStreamCnvSvc::~ByteStreamCnvSvc ( )
virtual

Standard Destructor.

Definition at line 44 of file ByteStreamCnvSvc.cxx.

44  {
45 }

Member Function Documentation

◆ activateConverter()

StatusCode AthCnvSvc::activateConverter ( long  typ,
const CLID clid,
IConverter *  cnv 
)
protectedvirtualinherited

Activate the new converter after initialization.

Definition at line 536 of file AthCnvSvc.cxx.

538 {
539  if (cnv) {
540  return StatusCode::SUCCESS;
541  }
542  return Status::NO_CONVERTER;
543 }

◆ addConverter() [1/2]

StatusCode AthCnvSvc::addConverter ( const CLID clid)
virtualinherited

Add converter object to conversion service.

Definition at line 336 of file AthCnvSvc.cxx.

337 {
338  // First look for the more specific converter
339  long typ = repSvcType();
340  IConverter* pConverter = createConverter(typ, clid, 0);
341  if ( 0 != pConverter ) {
342  StatusCode status = configureConverter( typ, clid, pConverter );
343  if ( status.isSuccess() ) {
344  status = initializeConverter( typ, clid, pConverter );
345  if ( status.isSuccess() ) {
346  status = activateConverter( typ, clid, pConverter );
347  if ( status.isSuccess() ) {
348  long conv_typ = pConverter->repSvcType();
349  const CLID& conv_clid = pConverter->objType();
350  typ = (typ<0xFF) ? typ : typ&0xFFFFFF00;
351  conv_typ = (conv_typ<0xFF) ? conv_typ : conv_typ&0xFFFFFF00;
352  if ( conv_typ == typ && conv_clid == clid ) {
353  return addConverter(pConverter);
354  }
355  }
356  }
357  }
358  pConverter->release();
359  }
360  return Status::NO_CONVERTER;
361 }

◆ addConverter() [2/2]

StatusCode AthCnvSvc::addConverter ( IConverter *  pConverter)
virtualinherited

Add converter object to conversion service.

Definition at line 365 of file AthCnvSvc.cxx.

366 {
367  if ( 0 != pConverter ) {
368  const CLID& clid = pConverter->objType();
369  removeConverter(clid).ignore();
370  m_workers.insert (std::make_pair(clid,WorkerEntry(clid, pConverter)));
371  pConverter->addRef();
372  return StatusCode::SUCCESS;
373  }
374  return Status::NO_CONVERTER;
375 }

◆ addressCreator() [1/2]

virtual SmartIF<IAddressCreator>& AthCnvSvc::addressCreator ( )
inlineprotectedvirtualinherited

Retrieve address creation interface.

Definition at line 300 of file AthCnvSvc.h.

301  {
302  return m_addressCreator;
303  }

◆ addressCreator() [2/2]

SmartIF< IAddressCreator > & AthCnvSvc::addressCreator ( ) const
virtualinherited

Retrieve address creator facility.

Definition at line 261 of file AthCnvSvc.cxx.

262 {
263  // FIXME: Ideally the return type should be const, but that would require
264  // changes in the Gaudi IConverter base class.
265  SmartIF<IAddressCreator>& svc ATLAS_THREAD_SAFE =
266  const_cast<SmartIF<IAddressCreator>&>(m_addressCreator);
267  return svc;
268 }

◆ commitOutput()

StatusCode ByteStreamCnvSvc::commitOutput ( const std::string &  outputConnection,
bool  b 
)
overridevirtual

Implements ConversionSvc's commitOutput.

Reimplemented from AthCnvSvc.

Definition at line 190 of file ByteStreamCnvSvc.cxx.

190  {
191  ATH_MSG_DEBUG("In flushOutput " << outputConnection);
192 
193  const EventContext& ctx = Gaudi::Hive::currentContext();
194  SlotData& slot = *m_slots.get(ctx);
195 
196  if (m_ioSvcMap.size() == 0) {
197  ATH_MSG_ERROR("ByteStreamCnvSvc not configure for output");
198  return(StatusCode::FAILURE);
199  }
200 
201  writeFEA (slot);
202 
203  // convert RawEventWrite to RawEvent
204  RawEventWrite* re = slot.m_rawEventWrite.get();
205  uint32_t rawSize = re->size_word();
206  std::vector<uint32_t> buffer (rawSize);
207  uint32_t count = eformat::write::copy(*(re->bind()), buffer.data(), rawSize);
208  if (count != rawSize) {
209  ATH_MSG_ERROR("Memcopy failed");
210  return(StatusCode::FAILURE);
211  }
212  RawEvent rawEvent(buffer.data());
213  // check validity
214  try {
215  rawEvent.check_tree();
216  } catch (...) {
217  ATH_MSG_ERROR("commitOutput failed, because FullEventFragment invalid");
218  return(StatusCode::FAILURE);
219  }
220  ATH_MSG_DEBUG("commitOutput: Size of Event (words) = " << rawEvent.fragment_size_word());
221  // put event to OutputSvc
222  if ((m_ioSvcMap.size() == 1) or (m_ioSvcMap.count(outputConnection) > 0)) {
224  // for backward compatibility
225  if (itSvc == m_ioSvcMap.end()) {
226  itSvc = m_ioSvcMap.begin();
227  }
228  // put
229  if (!itSvc->second->putEvent(&rawEvent)) {
230  ATH_MSG_ERROR("commitOutput failed to send output");
231  return(StatusCode::FAILURE);
232  }
233  }
234  // Clear slot-specific data.
235  slot.clear();
236  return(StatusCode::SUCCESS);
237 }

◆ configureConverter()

StatusCode AthCnvSvc::configureConverter ( long  typ,
const CLID clid,
IConverter *  cnv 
)
protectedvirtualinherited

Configure the new converter before initialize is called.

Definition at line 510 of file AthCnvSvc.cxx.

512 {
513  if (cnv) {
514  cnv->setConversionSvc(this).ignore();
515  cnv->setAddressCreator(m_addressCreator).ignore();
516  cnv->setDataProvider(m_dataSvc).ignore();
517  return StatusCode::SUCCESS;
518  }
519  return Status::NO_CONVERTER;
520 
521 }

◆ connectOutput() [1/2]

StatusCode ByteStreamCnvSvc::connectOutput ( const std::string &  output)
overridevirtual

Connect the output file to the service.

Reimplemented from AthCnvSvc.

Definition at line 104 of file ByteStreamCnvSvc.cxx.

104  {
105  ATH_MSG_DEBUG("In connectOutput");
106 
107  const EventContext& ctx = Gaudi::Hive::currentContext();
108  SlotData& slot = *m_slots.get(ctx);
109 
110  // Get the EventInfo obj for run/event number
111  const xAOD::EventInfo* evtInfo{nullptr};
112  ATH_CHECK( m_evtStore->retrieve(evtInfo) );
113  uint64_t event = evtInfo->eventNumber();
114  uint32_t run_no = evtInfo->runNumber();
115  uint32_t bc_time_sec = evtInfo->timeStamp();
116  uint32_t bc_time_ns = evtInfo->timeStampNSOffset();
117  uint32_t run_type = 0;
118  uint32_t lvl1_id = evtInfo->extendedLevel1ID();
119  if (lvl1_id == 0) {
120  lvl1_id = event;
121  }
122  uint8_t lvl1_type = evtInfo->level1TriggerType();
123  uint64_t global_id = event;
124  uint16_t lumi_block = evtInfo->lumiBlock();
125  uint16_t bc_id = evtInfo->bcid();
126  uint8_t nevt = 0;
127  // create an empty RawEvent
128  eformat::helper::SourceIdentifier sid = eformat::helper::SourceIdentifier(eformat::FULL_SD_EVENT, nevt);
129  RawEventWrite* re = setRawEvent (std::make_unique<RawEventWrite>(sid.code(), bc_time_sec, bc_time_ns, global_id, run_type, run_no, lumi_block, lvl1_id, bc_id, lvl1_type));
130 
131  // set stream tags
132  std::vector<eformat::helper::StreamTag> on_streamTags;
133  for (const auto& sTag : evtInfo->streamTags()) {
134  on_streamTags.emplace_back(sTag.name(), sTag.type(), sTag.obeysLumiblock(), sTag.robs(), detsOnline(sTag.dets()));
135  }
136  uint32_t nStreamTagWords = eformat::helper::size_word(on_streamTags);
137  slot.m_tagBuff.resize (nStreamTagWords);
138  eformat::helper::encode(on_streamTags, nStreamTagWords, slot.m_tagBuff.data());
139  re->stream_tag(nStreamTagWords, slot.m_tagBuff.data());
140 
141  // Nothing left to do, unless processing trigger bits
142  if (!m_fillTriggerBits.value()) {
143  return StatusCode::SUCCESS;
144  }
145 
146  // try to get TrigDecision
147  const xAOD::TrigDecision *trigDecision{nullptr};
148  if (m_evtStore->retrieve(trigDecision, "xTrigDecision") != StatusCode::SUCCESS) {
149  ATH_MSG_WARNING("Property " << m_fillTriggerBits.name() << " set to True but failed to retrieve xAOD::TrigDecision. Leaving empty trigger bits in the event header.");
150  return StatusCode::SUCCESS;
151  }
152 
153  // LVL1 info
154  const std::vector<uint32_t> &tbp = trigDecision->tbp();
155  const std::vector<uint32_t> &tap = trigDecision->tap();
156  const std::vector<uint32_t> &tav = trigDecision->tav();
157  const size_t l1TotSize = tbp.size() + tap.size() + tav.size();
158  if (l1TotSize > 0) {
159  slot.m_l1Buff.resize (l1TotSize);
160  size_t l1Size{0};
161  for (const uint32_t tb : tbp) {
162  slot.m_l1Buff[l1Size++] = tb;
163  }
164  for (const uint32_t tb : tap) {
165  slot.m_l1Buff[l1Size++] = tb;
166  }
167  for (const uint32_t tb : tav) {
168  slot.m_l1Buff[l1Size++] = tb;
169  }
170  re->lvl1_trigger_info(l1TotSize, slot.m_l1Buff.data());
171  }
172 
173  // LVL2 info
174  const std::vector<uint32_t>& lvl2PP = trigDecision->lvl2PassedPhysics();
175  if (lvl2PP.size() > 0) {
176  slot.m_l2Buff = lvl2PP;
177  re->lvl2_trigger_info(lvl2PP.size(), slot.m_l2Buff.data());
178  }
179 
180  // EF info
181  const std::vector<uint32_t>& efPP = trigDecision->efPassedPhysics();
182  if (efPP.size() > 0) {
183  slot.m_efBuff = efPP;
184  re->event_filter_info(efPP.size(), slot.m_efBuff.data());
185  }
186 
187  return(StatusCode::SUCCESS);
188 }

◆ connectOutput() [2/2]

StatusCode ByteStreamCnvSvc::connectOutput ( const std::string &  t,
const std::string &  mode 
)
overridevirtual

Implements ConversionSvc's connectOutput.

Reimplemented from AthCnvSvc.

Definition at line 100 of file ByteStreamCnvSvc.cxx.

100  {
101  return(connectOutput(t));
102 }

◆ conversionSvc()

SmartIF< IConversionSvc > & AthCnvSvc::conversionSvc ( ) const
virtualinherited

Implementation of IConverter: Get conversion service the converter is connected to.

Definition at line 232 of file AthCnvSvc.cxx.

233 {
234  // FIXME: Ideally the return type should be const, but that would require
235  // changes in the Gaudi IConverter base class.
236  SmartIF<IConversionSvc>& svc ATLAS_THREAD_SAFE =
237  const_cast<SmartIF<IConversionSvc>&>(m_cnvSvc);
238  return svc;
239 }

◆ convertAddress()

StatusCode AthCnvSvc::convertAddress ( const IOpaqueAddress *  pAddress,
std::string &  refAddress 
)
virtualinherited

Convert an address to string form.

Reimplemented in AthenaPoolCnvSvc, Athena::NtupleCnvSvc, Athena::xAODCnvSvc, and Athena::RootCnvSvc.

Definition at line 459 of file AthCnvSvc.cxx.

461 {
462  refAddress = "";
463  return StatusCode::FAILURE;
464 }

◆ converter()

IConverter * AthCnvSvc::converter ( const CLID wanted)
virtualinherited

Retrieve converter from list.

Definition at line 394 of file AthCnvSvc.cxx.

395 {
396  std::lock_guard<CallMutex> lock(m_conv_mut);
397  Workers::iterator worker = m_workers.find (clid);
398  if ( worker != m_workers.end() ) {
399  return worker->second.converter();
400  }
401  if (addConverter (clid).isSuccess()) {
402  worker = m_workers.find (clid);
403  if (worker != m_workers.end()) {
404  return worker->second.converter();
405  }
406  } else {
407  ATH_MSG_INFO("problem adding converter for CLID [" << clid << "]");
408  }
409  return 0;
410 }

◆ createAddress() [1/2]

StatusCode AthCnvSvc::createAddress ( long  svc_type,
const CLID clid,
const std::string &  refAddress,
IOpaqueAddress *&  refpAddress 
)
virtualinherited

Convert an address in string form to object form.

Reimplemented in Athena::NtupleCnvSvc, Athena::xAODCnvSvc, AthenaPoolCnvSvc, and Athena::RootCnvSvc.

Definition at line 468 of file AthCnvSvc.cxx.

472 {
473  refpAddress = 0;
474  return StatusCode::FAILURE;
475 }

◆ createAddress() [2/2]

StatusCode AthCnvSvc::createAddress ( long  svc_type,
const CLID clid,
const std::string *  par,
const unsigned long *  ip,
IOpaqueAddress *&  refpAddress 
)
virtualinherited

Create a Generic address using explicit arguments to identify a single object.

Reimplemented in Athena::NtupleCnvSvc, Athena::xAODCnvSvc, AthenaPoolCnvSvc, and Athena::RootCnvSvc.

Definition at line 447 of file AthCnvSvc.cxx.

452 {
453  refpAddress = 0;
454  return StatusCode::FAILURE;
455 }

◆ createConverter()

IConverter * AthCnvSvc::createConverter ( long  typ,
const CLID clid,
const ICnvFactory *  fac 
)
protectedvirtualinherited

Create new Converter using factory.

Reimplemented in Athena::NtupleCnvSvc, Athena::xAODCnvSvc, and Athena::RootCnvSvc.

Definition at line 491 of file AthCnvSvc.cxx.

494 {
495 
496  std::unique_ptr<IConverter> cnv{Converter::Factory::create
497  (ConverterID(typ,clid), serviceLocator().get() )};
498 
499  if (!cnv) {
500  typ = (typ<0xFF) ? typ : typ&0xFFFFFF00;
501  cnv = Converter::Factory::create
502  (ConverterID(typ,clid), serviceLocator().get() );
503  }
504  return cnv.release();
505 
506 }

◆ createObj()

StatusCode AthCnvSvc::createObj ( IOpaqueAddress *  pAddress,
DataObject *&  refpObject 
)
virtualinherited

Implementation of IConverter: Create the transient representation of an object.

Reimplemented in Athena::NtupleCnvSvc, Athena::xAODCnvSvc, and AthenaPoolCnvSvc.

Definition at line 273 of file AthCnvSvc.cxx.

274 {
275  return makeCall (CREATE_OBJ, false, true, false, pAddress, refpObject);
276 }

◆ createRep()

StatusCode AthCnvSvc::createRep ( DataObject *  pObject,
IOpaqueAddress *&  refpAddress 
)
virtualinherited

Implementation of IConverter: Convert the transient object to the requested representation.

Reimplemented in Athena::NtupleCnvSvc, Athena::xAODCnvSvc, and AthenaPoolCnvSvc.

Definition at line 305 of file AthCnvSvc.cxx.

306 {
307  return makeCall (CREATE_REP, true, false, false, refpAddress, pObject);
308 }

◆ dataProvider()

SmartIF< IDataProviderSvc > & AthCnvSvc::dataProvider ( ) const
virtualinherited

Implementation of IConverter: Get Data provider service.

Returns
Pointer to data provider service

Definition at line 212 of file AthCnvSvc.cxx.

213 {
214  // FIXME: Ideally the return type should be const, but that would require
215  // changes in the Gaudi IConverter base class.
216  SmartIF<IDataProviderSvc>& svc ATLAS_THREAD_SAFE =
217  const_cast<SmartIF<IDataProviderSvc>&>(m_dataSvc);
218  return svc;
219 }

◆ disconnectOutput()

StatusCode AthCnvSvc::disconnectOutput ( const std::string &  output)
virtualinherited

Disconnect output files from the service.

Reimplemented in AthenaPoolCnvSvc.

Definition at line 437 of file AthCnvSvc.cxx.

438 {
439  return StatusCode::SUCCESS;
440 }

◆ fillObjRefs()

StatusCode AthCnvSvc::fillObjRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
)
virtualinherited

Implementation of IConverter: Resolve the references of the created transient object.

Definition at line 281 of file AthCnvSvc.cxx.

282 {
283  return makeCall (FILL_OBJ_REFS, false, true, true, pAddress, pObject);
284 }

◆ fillRepRefs()

StatusCode AthCnvSvc::fillRepRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
)
virtualinherited

Implementation of IConverter: Resolve the references of the converted object.


Reimplemented in Athena::NtupleCnvSvc, Athena::xAODCnvSvc, and AthenaPoolCnvSvc.

Definition at line 313 of file AthCnvSvc.cxx.

314 {
315  return makeCall (FILL_REP_REFS, true, false, false, pAddress, pObject);
316 }

◆ finalize()

StatusCode ByteStreamCnvSvc::finalize ( )
overridevirtual

Reimplemented from AthCnvSvc.

Definition at line 96 of file ByteStreamCnvSvc.cxx.

96  {
98 }

◆ getFullEventAssembler()

template<class T >
StatusCode ByteStreamCnvSvc::getFullEventAssembler ( T *&  t,
const std::string &  nm 
)

Access to FullEventAssembler.

Definition at line 121 of file ByteStreamCnvSvc.h.

122 {
123  const EventContext& ctx = Gaudi::Hive::currentContext();
124  FEAMap_t& feaMap = m_slots.get (ctx)->m_feaMap;
125  FEAPtr_t& fea = feaMap[nm];
126  if (fea) {
127  T* p = dynamic_cast<T*>(fea.get());
128  if (p == 0) {
129  ATH_MSG_WARNING(" Key = " << nm << " exists, but of different type");
130  return(StatusCode::FAILURE);
131  }
132  t = p;
133  return(StatusCode::SUCCESS);
134  }
135 
136  // reach here if key does not exist
137  auto ptr = std::make_unique<T>();
138  t = ptr.get();
139  fea = std::move (ptr);
140  return(StatusCode::SUCCESS);
141 }

◆ getRawEvent()

virtual RawEventWrite* ByteStreamCnvSvc::getRawEvent ( )
inlineoverridevirtual

Implementation of IByteStreamEventAccess: Get RawEvent.

Implements IByteStreamEventAccess.

Definition at line 55 of file ByteStreamCnvSvc.h.

56  {
57  return m_slots->m_rawEventWrite.get();
58  }

◆ handle()

void ByteStreamCnvSvcBase::handle ( const Incident &  )
overridevirtualinherited

Implementation of IIncidentListener: Handle for EndEvent incidence.

Definition at line 63 of file ByteStreamCnvSvcBase.cxx.

63  {
64  ServiceHandle<IClassIDSvc> clidSvc("ClassIDSvc", name());
65  if (!clidSvc.retrieve().isSuccess()) {
66  ATH_MSG_ERROR("Cannot get ClassIDSvc.");
67  return;
68  }
69  // Initialize the converters
70  for (const std::string& cnv : m_initCnvs) {
71  ATH_MSG_DEBUG("Accessing Converter for " << cnv);
72  CLID id;
73  if (!clidSvc->getIDOfTypeName(cnv, id).isSuccess()) {
74  ATH_MSG_WARNING("Cannot get CLID for " << cnv);
75  } else {
76  IConverter* cnv = converter(id);
77  if (cnv == 0) {
78  ATH_MSG_WARNING("Cannot get converter for " << cnv);
79  }
80  }
81  }
82  return;
83 }

◆ initialize()

StatusCode ByteStreamCnvSvc::initialize ( )
overridevirtual

Gaudi Service Interface method implementations:

Initialize the service.

Reimplemented from ByteStreamCnvSvcBase.

Definition at line 48 of file ByteStreamCnvSvc.cxx.

48  {
49  if (!ByteStreamCnvSvcBase::initialize().isSuccess()) {
50  ATH_MSG_FATAL("ByteStreamCnvSvcBase::initialize() failed");
51  return(StatusCode::FAILURE);
52  }
53 
54  ATH_CHECK( m_evtStore.retrieve() );
55 
56  // get ready for output
57  std::vector<std::string> ioSvcNames = m_ioSvcNameList.value();
58  if (!m_ioSvcName.empty()) {
59  // add ioSvcName if ioSvcNameList is missing it
60  std::vector<std::string>::iterator it = find(ioSvcNames.begin(), ioSvcNames.end(), m_ioSvcName);
61  if (it == ioSvcNames.end()) {
62  ioSvcNames.push_back(m_ioSvcName);
63  }
64  }
65  if (ioSvcNames.size() != 0) {
66  // Check ByteStreamCnvSvc
67  for (std::vector<std::string>::iterator itSvc = ioSvcNames.begin(), itSvcE = ioSvcNames.end();
68  itSvc != itSvcE; ++itSvc) {
69  ATH_MSG_DEBUG("get " << *itSvc);
70  // get service
71  IService* svc;
72  if (!service(*itSvc, svc).isSuccess()) {
73  ATH_MSG_FATAL("Cannot get ByteStreamOutputSvc");
74  return(StatusCode::FAILURE);
75  }
76  ByteStreamOutputSvc* ioSvc = dynamic_cast<ByteStreamOutputSvc*>(svc);
77  if (ioSvc == 0) {
78  ATH_MSG_FATAL("Cannot cast to ByteStreamOutputSvc");
79  return(StatusCode::FAILURE);
80  }
81  // get stream name
82  std::string bsOutputStreamName;
83  SimpleProperty<std::string> propBSO("BSOutputStreamName", bsOutputStreamName);
84  if (!ioSvc->getProperty(&propBSO).isSuccess()) {
85  ATH_MSG_FATAL("Cannot get BSOutputStreamName from " << *itSvc);
86  return(StatusCode::FAILURE);
87  }
88  bsOutputStreamName = propBSO.value();
89  // append
90  m_ioSvcMap[bsOutputStreamName] = ioSvc;
91  }
92  }
93  return(StatusCode::SUCCESS);
94 }

◆ initializeConverter()

StatusCode AthCnvSvc::initializeConverter ( long  typ,
const CLID clid,
IConverter *  cnv 
)
protectedvirtualinherited

Initialize the new converter.

Definition at line 525 of file AthCnvSvc.cxx.

527 {
528  if (cnv) {
529  return cnv->initialize();
530  }
531  return Status::NO_CONVERTER;
532 }

◆ interfaceID()

const InterfaceID & ByteStreamCnvSvc::interfaceID ( )
static

Should rather be in IByteStreamSvc.h if we had one.

Definition at line 266 of file ByteStreamCnvSvc.cxx.

266  {
267  static const InterfaceID IDByteStreamCnvSvc("ByteStreamCnvSvc", 1, 0);
268  return IDByteStreamCnvSvc;
269 }

◆ loadConverter()

void AthCnvSvc::loadConverter ( DataObject *  pObject)
protectedvirtualinherited

Load converter or dictionary needed by the converter.

Definition at line 547 of file AthCnvSvc.cxx.

548 {
549 }

◆ makeCall()

StatusCode AthCnvSvc::makeCall ( int  typ,
bool  ignore_add,
bool  ignore_obj,
bool  update,
IOpaqueAddress *&  pAddress,
DataObject *&  pObject 
)
protectedinherited

Definition at line 553 of file AthCnvSvc.cxx.

559 {
560  if ( 0 != pAddress || ignore_add ) {
561  if ( 0 != pObject || ignore_obj ) {
562  const CLID& obj_class =
563  (0 != pObject && !ignore_obj) ? pObject->clID()
564  : (0 != pAddress && !ignore_add)
565  ? pAddress->clID()
566  : CLID_NULL;
567  IConverter* cnv = converter(obj_class);
568  if ( !cnv && pObject ) {
569  //Give it a try to autoload the class (dictionary) for which the converter is needed
570  loadConverter( pObject);
571  cnv = converter(obj_class);
572  }
573 
574  StatusCode status(StatusCode::FAILURE);
575  if ( 0 != cnv ) {
576  switch(typ) {
577  case CREATE_OBJ:
578  status = cnv->createObj(pAddress, pObject);
579  break;
580  case FILL_OBJ_REFS:
581  status = cnv->fillObjRefs(pAddress, pObject);
582  break;
583  case UPDATE_OBJ:
584  status = cnv->updateObj(pAddress, pObject);
585  break;
586  case UPDATE_OBJ_REFS:
587  status = cnv->updateObjRefs(pAddress, pObject);
588  break;
589  case CREATE_REP:
590  status = cnv->createRep(pObject, pAddress);
591  break;
592  case FILL_REP_REFS:
593  status = cnv->fillRepRefs(pAddress, pObject);
594  break;
595  case UPDATE_REP:
596  status = cnv->updateRep(pAddress, pObject);
597  break;
598  case UPDATE_REP_REFS:
599  status = cnv->updateRepRefs(pAddress, pObject);
600  break;
601  default:
602  status = StatusCode::FAILURE;
603  break;
604  }
605  if ( status.isSuccess() && update ) {
606  status = updateServiceState(pAddress);
607  }
608  return status;
609  }
610  status.ignore();
611  msg(MSG::INFO) << "No converter for object ";
612  if ( pObject != 0 ) {
613  msg(MSG::INFO) << System::typeinfoName(typeid(*pObject));
614  }
615  msg(MSG::INFO) << " CLID= " << obj_class << endmsg;
616  return Status::NO_CONVERTER;
617  }
618  return Status::INVALID_OBJECT;
619  }
620  return Status::INVALID_ADDRESS;
621 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Service >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Service >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Service >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ objType()

const CLID & AthCnvSvc::objType ( ) const
inherited

Implementation of IConverter: dummy call.

Definition at line 179 of file AthCnvSvc.cxx.

180 {
181  return CLID_NULL;
182 }

◆ queryInterface()

StatusCode ByteStreamCnvSvc::queryInterface ( const InterfaceID &  riid,
void **  ppvInterface 
)
overridevirtual

Required of all Gaudi services: see Gaudi documentation for details.

Reimplemented from ByteStreamCnvSvcBase.

Definition at line 251 of file ByteStreamCnvSvc.cxx.

252 {
253  if ( interfaceID().versionMatch(riid) ) {
254  *ppvInterface = (StoreGateSvc*)this;
255  }
256  else {
257  // Interface is not directly available: try out a base class
258  return ByteStreamCnvSvcBase::queryInterface(riid, ppvInterface);
259  }
260  addRef();
261  return StatusCode::SUCCESS;
262 }

◆ removeConverter()

StatusCode AthCnvSvc::removeConverter ( const CLID clid)
virtualinherited

Remove converter object from conversion service (if present).

Definition at line 379 of file AthCnvSvc.cxx.

380 {
381  Workers::iterator worker = m_workers.find (clid);
382  if ( worker != m_workers.end() ) {
383  worker->second.converter()->finalize().ignore();
384  worker->second.converter()->release();
385 
386  m_workers.erase (worker);
387  return StatusCode::SUCCESS;
388  }
389  return Status::NO_CONVERTER;
390 }

◆ repSvcType()

long AthCnvSvc::repSvcType ( ) const
virtualinherited

Retrieve the class type of the data store the converter uses.

Definition at line 172 of file AthCnvSvc.cxx.

173 {
174  return m_type;
175 }

◆ setAddressCreator()

StatusCode AthCnvSvc::setAddressCreator ( IAddressCreator *  creator)
virtualinherited

Set address creator facility.

Definition at line 243 of file AthCnvSvc.cxx.

244 {
245  m_addressCreator = creator;
248  for(Workers::iterator i=start; i != stop; ++i ) {
249  IConverter* cnv = i->second.converter();
250  if ( 0 != cnv ) {
251  if (cnv->setAddressCreator(m_addressCreator).isFailure()) {
252  ATH_MSG_ERROR ("setting Address Creator");
253  }
254  }
255  }
256  return StatusCode::SUCCESS;
257 }

◆ setConversionSvc()

StatusCode AthCnvSvc::setConversionSvc ( IConversionSvc *  svc)
virtualinherited

Implementation of IConverter: Set conversion service the converter is connected to.

Definition at line 224 of file AthCnvSvc.cxx.

225 {
226  return StatusCode::FAILURE;
227 }

◆ setDataProvider()

StatusCode AthCnvSvc::setDataProvider ( IDataProviderSvc *  pDataSvc)
virtualinherited

Implementation of IConverter: Set Data provider service.

Returns
Status code indicating success or failure
Parameters
pServicePointer to data provider service

Definition at line 189 of file AthCnvSvc.cxx.

190 {
191  if ( !pDataSvc ) return StatusCode::SUCCESS; //Atlas does not use DataSvc
192  if ( m_dataSvc ) m_dataSvc->release();
193  m_dataSvc = pDataSvc;
194  m_dataSvc->addRef();
197  for(Workers::iterator i=start; i != stop; ++i ) {
198  IConverter* cnv = i->second.converter();
199  if ( 0 != cnv ) {
200  if (cnv->setDataProvider(m_dataSvc).isFailure()) {
201  ATH_MSG_ERROR ("setting Data Provider");
202  }
203  }
204  }
205  return StatusCode::SUCCESS;
206 }

◆ setRawEvent()

RawEventWrite * ByteStreamCnvSvc::setRawEvent ( std::unique_ptr< RawEventWrite rawEventWrite)
protected

Definition at line 273 of file ByteStreamCnvSvc.cxx.

274 {
275  RawEventWrite* ptr = rawEventWrite.get();
276  m_slots->m_rawEventWrite = std::move (rawEventWrite);
277  // cppcheck-suppress returnDanglingLifetime
278  return ptr;
279 }

◆ updateObj()

StatusCode AthCnvSvc::updateObj ( IOpaqueAddress *  pAddress,
DataObject *  refpObject 
)
virtualinherited

Implementation of IConverter: Update the transient object from the other representation.

Definition at line 289 of file AthCnvSvc.cxx.

290 {
291  return makeCall (UPDATE_OBJ, false, true, false, pAddress, pObject);
292 }

◆ updateObjRefs()

StatusCode AthCnvSvc::updateObjRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
)
virtualinherited

Implementation of IConverter: Update the references of an updated transient object.

Definition at line 297 of file AthCnvSvc.cxx.

298 {
299  return makeCall (UPDATE_OBJ_REFS, false, true, true, pAddress, pObject);
300 }

◆ updateRep()

StatusCode AthCnvSvc::updateRep ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
)
virtualinherited

Implementation of IConverter: Update the converted representation of a transient object.

Definition at line 321 of file AthCnvSvc.cxx.

322 {
323  return makeCall (UPDATE_REP, true, false, false, pAddress, pObject);
324 }

◆ updateRepRefs()

StatusCode AthCnvSvc::updateRepRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
)
virtualinherited

Implementation of IConverter: Update the references of an already converted object.

Definition at line 329 of file AthCnvSvc.cxx.

330 {
331  return makeCall (UPDATE_REP_REFS, true, false, false, pAddress, pObject);
332 }

◆ updateServiceState()

StatusCode ByteStreamCnvSvcBase::updateServiceState ( IOpaqueAddress *  pAddress)
overridevirtualinherited

Checks whether an IOpaqueAddress is a GenericAddress.

Reimplemented from AthCnvSvc.

Definition at line 53 of file ByteStreamCnvSvcBase.cxx.

53  {
54  if (pAddress != 0) {
55  GenericAddress* pAddr = dynamic_cast<GenericAddress*>(pAddress);
56  if (pAddr != 0) {
57  return(StatusCode::SUCCESS);
58  }
59  }
60  return(StatusCode::FAILURE);
61 }

◆ writeFEA()

void ByteStreamCnvSvc::writeFEA ( SlotData slot)
private

Write the FEA to RawEvent.

Definition at line 239 of file ByteStreamCnvSvc.cxx.

240 {
241  FEAMap_t& feaMap = slot.m_feaMap;
242  ATH_MSG_DEBUG("before FEAMAP size = " << feaMap.size());
243  for (auto& p : feaMap) {
244  MsgStream log(msgSvc(), name());
245  p.second->fill(slot.m_rawEventWrite.get(), log);
246  }
247  ATH_MSG_DEBUG("after FEAMAP size = " << feaMap.size());
248 }

Member Data Documentation

◆ m_addressCreator

SmartIF<IAddressCreator> AthCnvSvc::m_addressCreator
protectedinherited

Pointer to the address creation service interface.

Definition at line 315 of file AthCnvSvc.h.

◆ m_cnvSvc

SmartIF<IConversionSvc> AthCnvSvc::m_cnvSvc
protectedinherited

Pointer to the IConversionSvc interface of this.

Definition at line 317 of file AthCnvSvc.h.

◆ m_conv_mut

CallMutex AthCnvSvc::m_conv_mut
protectedinherited

Definition at line 324 of file AthCnvSvc.h.

◆ m_dataSvc

SmartIF<IDataProviderSvc> AthCnvSvc::m_dataSvc
protectedinherited

Pointer to data provider service.

Definition at line 313 of file AthCnvSvc.h.

◆ m_evtStore

ServiceHandle<StoreGateSvc> ByteStreamCnvSvc::m_evtStore
private

Event store.

Definition at line 85 of file ByteStreamCnvSvc.h.

◆ m_fillTriggerBits

Gaudi::Property<bool> ByteStreamCnvSvc::m_fillTriggerBits {this, "FillTriggerBits", true, "Read in xTrigDecision and use it to fill Trigger bits in event header"}
private

fill trigger bits

Definition at line 79 of file ByteStreamCnvSvc.h.

◆ m_initCnvs

std::vector<std::string> ByteStreamCnvSvcBase::m_initCnvs
protectedinherited

Definition at line 40 of file ByteStreamCnvSvcBase.h.

◆ m_ioSvcMap

std::map<std::string, ByteStreamOutputSvc*> ByteStreamCnvSvc::m_ioSvcMap
private

Services for writing output.

Definition at line 82 of file ByteStreamCnvSvc.h.

◆ m_ioSvcName

std::string ByteStreamCnvSvc::m_ioSvcName
private

name of the service

Definition at line 73 of file ByteStreamCnvSvc.h.

◆ m_ioSvcNameList

Gaudi::Property<std::vector<std::string> > ByteStreamCnvSvc::m_ioSvcNameList { this, "ByteStreamOutputSvcList", {}, "", "OrderedSet<T>"}
private

list of service names

Definition at line 76 of file ByteStreamCnvSvc.h.

◆ m_isCalibration

Gaudi::Property<bool> ByteStreamCnvSvcBase::m_isCalibration {this, "IsCalibration", false}
privateinherited

flags for Calibration EventType

Definition at line 55 of file ByteStreamCnvSvcBase.h.

◆ m_isSimulation

Gaudi::Property<bool> ByteStreamCnvSvcBase::m_isSimulation {this, "IsSimulation", false}
privateinherited

flags for Simulation EventType

Definition at line 51 of file ByteStreamCnvSvcBase.h.

◆ m_isTestbeam

Gaudi::Property<bool> ByteStreamCnvSvcBase::m_isTestbeam {this, "IsTestbeam", false}
privateinherited

flags for TestBeam EventType

Definition at line 53 of file ByteStreamCnvSvcBase.h.

◆ m_ROD2ROBmap

Gaudi::Property<std::vector<std::string> > ByteStreamCnvSvcBase::m_ROD2ROBmap {this,"ROD2ROBmap",{},"","OrderedSet<std::string>"}
protectedinherited

Definition at line 42 of file ByteStreamCnvSvcBase.h.

◆ m_slots

SG::SlotSpecificObj<SlotData> ByteStreamCnvSvc::m_slots
private

Definition at line 114 of file ByteStreamCnvSvc.h.

◆ m_type

long AthCnvSvc::m_type
protectedinherited

Conversion service type.

Definition at line 319 of file AthCnvSvc.h.

◆ m_userType

std::string ByteStreamCnvSvc::m_userType
private

user type

Definition at line 88 of file ByteStreamCnvSvc.h.

◆ m_workers

Workers AthCnvSvc::m_workers
protectedinherited

List of conversion workers.

Definition at line 321 of file AthCnvSvc.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
AthCnvSvc::makeCall
StatusCode makeCall(int typ, bool ignore_add, bool ignore_obj, bool update, IOpaqueAddress *&pAddress, DataObject *&pObject)
Definition: AthCnvSvc.cxx:553
ByteStreamCnvSvcBase::ByteStreamCnvSvcBase
ByteStreamCnvSvcBase(const std::string &name, ISvcLocator *pSvcLocator)
Standard Service Constructor.
Definition: ByteStreamCnvSvcBase.cxx:16
RawEventWrite
OFFLINE_FRAGMENTS_NAMESPACE_WRITE::FullEventFragment RawEventWrite
data type for writing raw event
Definition: RawEvent.h:39
AthCnvSvc::finalize
virtual StatusCode finalize()
Definition: AthCnvSvc.cxx:116
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
UPDATE_REP
@ UPDATE_REP
Definition: AthCnvSvc.cxx:36
CREATE_REP
@ CREATE_REP
Definition: AthCnvSvc.cxx:34
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
AthCnvSvc::removeConverter
virtual StatusCode removeConverter(const CLID &clid)
Remove converter object from conversion service (if present).
Definition: AthCnvSvc.cxx:379
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
ByteStreamCnvSvc::m_ioSvcMap
std::map< std::string, ByteStreamOutputSvc * > m_ioSvcMap
Services for writing output.
Definition: ByteStreamCnvSvc.h:82
AthCnvSvc::m_conv_mut
CallMutex m_conv_mut
Definition: AthCnvSvc.h:324
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
AthCnvSvc::activateConverter
virtual StatusCode activateConverter(long typ, const CLID &clid, IConverter *cnv)
Activate the new converter after initialization.
Definition: AthCnvSvc.cxx:536
AthCnvSvc::updateServiceState
virtual StatusCode updateServiceState(IOpaqueAddress *pAddress)
Update state of the service.
Definition: AthCnvSvc.cxx:479
RawEvent
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment RawEvent
data type for reading raw event
Definition: RawEvent.h:37
skel.it
it
Definition: skel.GENtoEVGEN.py:423
ByteStreamCnvSvc::m_evtStore
ServiceHandle< StoreGateSvc > m_evtStore
Event store.
Definition: ByteStreamCnvSvc.h:85
AthCnvSvc::m_addressCreator
SmartIF< IAddressCreator > m_addressCreator
Pointer to the address creation service interface.
Definition: AthCnvSvc.h:315
ByteStreamCnvSvc::m_slots
SG::SlotSpecificObj< SlotData > m_slots
Definition: ByteStreamCnvSvc.h:114
ByteStreamCnvSvc::FEAPtr_t
std::unique_ptr< FullEventAssemblerBase > FEAPtr_t
common FEA, indexed by string key
Definition: ByteStreamCnvSvc.h:91
FILL_OBJ_REFS
@ FILL_OBJ_REFS
Definition: AthCnvSvc.cxx:31
PixelModuleFeMask_create_db.stop
int stop
Definition: PixelModuleFeMask_create_db.py:76
RunTileTBRec.run_type
run_type
Definition: RunTileTBRec.py:65
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ByteStreamCnvSvcBase::queryInterface
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface) override
Required of all Gaudi services: see Gaudi documentation for details.
Definition: ByteStreamCnvSvcBase.cxx:42
xAOD::tap
setBGCode tap
Definition: TrigDecision_v1.cxx:43
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
ByteStreamCnvSvc::m_ioSvcName
std::string m_ioSvcName
name of the service
Definition: ByteStreamCnvSvc.h:73
ByteStreamCnvSvc::FEAMap_t
std::map< std::string, FEAPtr_t > FEAMap_t
Definition: ByteStreamCnvSvc.h:92
AthCnvSvc::configureConverter
virtual StatusCode configureConverter(long typ, const CLID &clid, IConverter *cnv)
Configure the new converter before initialize is called.
Definition: AthCnvSvc.cxx:510
Execution.tb
tb
Definition: Execution.py:15
UPDATE_REP_REFS
@ UPDATE_REP_REFS
Definition: AthCnvSvc.cxx:37
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
createCoolChannelIdFile.buffer
buffer
Definition: createCoolChannelIdFile.py:12
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
lumiFormat.i
int i
Definition: lumiFormat.py:92
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
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
ByteStreamCnvSvcBase::m_initCnvs
std::vector< std::string > m_initCnvs
Definition: ByteStreamCnvSvcBase.h:40
AthCnvSvc::m_cnvSvc
SmartIF< IConversionSvc > m_cnvSvc
Pointer to the IConversionSvc interface of this.
Definition: AthCnvSvc.h:317
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ByteStreamCnvSvc::m_userType
std::string m_userType
user type
Definition: ByteStreamCnvSvc.h:88
ByteStreamCnvSvc::interfaceID
static const InterfaceID & interfaceID()
Should rather be in IByteStreamSvc.h if we had one.
Definition: ByteStreamCnvSvc.cxx:266
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
CLID
uint32_t CLID
The Class ID type.
Definition: Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
AthCnvSvc::m_workers
Workers m_workers
List of conversion workers.
Definition: AthCnvSvc.h:321
AthCnvSvc::initializeConverter
virtual StatusCode initializeConverter(long typ, const CLID &clid, IConverter *cnv)
Initialize the new converter.
Definition: AthCnvSvc.cxx:525
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
AthCnvSvc::addConverter
virtual StatusCode addConverter(const CLID &clid)
Add converter object to conversion service.
Definition: AthCnvSvc.cxx:336
UPDATE_OBJ_REFS
@ UPDATE_OBJ_REFS
Definition: AthCnvSvc.cxx:33
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
AthCnvSvc::createConverter
virtual IConverter * createConverter(long typ, const CLID &clid, const ICnvFactory *fac)
Create new Converter using factory.
Definition: AthCnvSvc.cxx:491
AthCnvSvc::converter
virtual IConverter * converter(const CLID &wanted)
Retrieve converter from list.
Definition: AthCnvSvc.cxx:394
dqt_zlumi_pandas.update
update
Definition: dqt_zlumi_pandas.py:42
CalibCoolCompareRT.nm
nm
Definition: CalibCoolCompareRT.py:110
ByteStreamCnvSvc::writeFEA
void writeFEA(SlotData &slot)
Write the FEA to RawEvent.
Definition: ByteStreamCnvSvc.cxx:239
ByteStreamCnvSvc::m_fillTriggerBits
Gaudi::Property< bool > m_fillTriggerBits
fill trigger bits
Definition: ByteStreamCnvSvc.h:79
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
re
const boost::regex re(r_e)
AthCommonMsg< Service >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition: hcg.cxx:127
AthCnvSvc::loadConverter
virtual void loadConverter(DataObject *pObject)
Load converter or dictionary needed by the converter.
Definition: AthCnvSvc.cxx:547
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
AthCnvSvc::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to data provider service.
Definition: AthCnvSvc.h:313
ByteStreamOutputSvc
This class provides the base class to services to write bytestream data. The concrete class can provi...
Definition: ByteStreamOutputSvc.h:25
merge.status
status
Definition: merge.py:17
calibdata.copy
bool copy
Definition: calibdata.py:27
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211
ByteStreamCnvSvc::setRawEvent
RawEventWrite * setRawEvent(std::unique_ptr< RawEventWrite > rawEventWrite)
Definition: ByteStreamCnvSvc.cxx:273
ByteStreamCnvSvc::connectOutput
virtual StatusCode connectOutput(const std::string &t, const std::string &mode) override
Implements ConversionSvc's connectOutput.
Definition: ByteStreamCnvSvc.cxx:100
ByteStreamCnvSvc::m_ioSvcNameList
Gaudi::Property< std::vector< std::string > > m_ioSvcNameList
list of service names
Definition: ByteStreamCnvSvc.h:76
python.PerfMonSerializer.encode
def encode(data, use_base64=True)
Definition: PerfMonSerializer.py:375
FILL_REP_REFS
@ FILL_REP_REFS
Definition: AthCnvSvc.cxx:35
AthCnvSvc::repSvcType
virtual long repSvcType() const
Retrieve the class type of the data store the converter uses.
Definition: AthCnvSvc.cxx:172
xAOD::TrigDecision_v1
Interface to the raw trigger decision information of the event.
Definition: TrigDecision_v1.h:44
CREATE_OBJ
@ CREATE_OBJ
Definition: AthCnvSvc.cxx:30
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
AthCnvSvc::m_type
long m_type
Conversion service type.
Definition: AthCnvSvc.h:319
ByteStreamCnvSvcBase::initialize
virtual StatusCode initialize() override
Required of all Gaudi Services.
Definition: ByteStreamCnvSvcBase.cxx:27
ServiceHandle< IClassIDSvc >
UPDATE_OBJ
@ UPDATE_OBJ
Definition: AthCnvSvc.cxx:32