ATLAS Offline Software
Loading...
Searching...
No Matches
EventStreamInfoCnv_p3.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
10
12#include "EventInfo/EventType.h"
13
16
18
19void EventStreamInfoCnv_p3::persToTrans(const EventStreamInfo_p3* pers, EventStreamInfo* trans, MsgStream &log) const {
20 *trans = EventStreamInfo();
21 trans->addEvent (pers->m_numberOfEvents);
22
23 for (unsigned int rn : pers->m_runNumbers)
24 trans->insertRunNumber (rn);
25 for (unsigned int lbn : pers->m_lumiBlockNumbers)
26 trans->insertLumiBlockNumber (lbn);
27 for (const std::string& tag : pers->m_processingTags)
28 trans->insertProcessingTag (tag);
29 for (const std::pair<CLID, std::string>& p : pers->m_itemList)
30 trans->insertItemList (p.first, p.second);
31 for (const EventType_p3& ptype : pers->m_eventTypes)
32 {
33 std::unique_ptr<EventType> p (typeConv.createTransientConst(&ptype, log));
34 trans->insertEventType(*p);
35 }
36}
37
38void EventStreamInfoCnv_p3::transToPers(const EventStreamInfo* trans, EventStreamInfo_p3* pers, MsgStream &log) const {
39 pers->m_numberOfEvents = trans->getNumberOfEvents();
40
41 pers->m_runNumbers.assign (trans->getRunNumbers().begin(),
42 trans->getRunNumbers().end());
43
44 pers->m_lumiBlockNumbers.assign (trans->getLumiBlockNumbers().begin(),
45 trans->getLumiBlockNumbers().end());
46
47 pers->m_processingTags.assign (trans->getProcessingTags().begin(),
48 trans->getProcessingTags().end());
49
50 pers->m_itemList.assign (trans->getItemList().begin(),
51 trans->getItemList().end());
52
53 pers->m_eventTypes.reserve(trans->getEventTypes().size());
54 pers->m_eventTypes.clear();
55 for (const EventType& ttype : trans->getEventTypes()) {
56 EventType_p3 ptype;
57 typeConv.transToPers(&ttype, &ptype, log);
58 pers->m_eventTypes.push_back(std::move(ptype));
59 }
60}
static const EventTypeCnv_p1 typeConv
This file contains the class definition for the EventStreamInfoCnv_p3 class.
This file contains the class definition for the EventStreamInfo class.
Athena::TPCnvVers::Old Athena::TPCnvVers::Current EventStreamInfo
This class provides general information about an event.
virtual void persToTrans(const EventStreamInfo_p3 *persObj, EventStreamInfo *transObj, MsgStream &log) const override
virtual void transToPers(const EventStreamInfo *transObj, EventStreamInfo_p3 *persObj, MsgStream &log) const override
This class is the persistent representation of EventStreamInfo.
unsigned int m_numberOfEvents
std::vector< unsigned int > m_lumiBlockNumbers
std::vector< EventType_p3 > m_eventTypes
std::vector< std::string > m_processingTags
std::vector< unsigned int > m_runNumbers
std::vector< std::pair< unsigned int, std::string > > m_itemList
This class provides the summary information stored for data written as a Event Stream.
const std::set< std::string > & getProcessingTags() const
const std::set< unsigned int > & getLumiBlockNumbers() const
void insertEventType(const EventType &event)
Insert new Event Type into a set.
void insertLumiBlockNumber(unsigned int lumiBlock)
Insert new Luminosity Block Number into a set.
const std::set< unsigned int > & getRunNumbers() const
void insertRunNumber(unsigned int run)
Insert new Run Number into a set.
void addEvent(unsigned int number=1)
Increase Event Counter.
const std::set< EventType > & getEventTypes() const
void insertProcessingTag(const std::string &process)
Insert new Processing Tag into a set.
const std::set< std::pair< CLID, std::string > > & getItemList() const
void insertItemList(CLID type, const std::string &key)
Insert new ItemList Entry into a set.
unsigned int getNumberOfEvents() const
This class represents the "type of event" where the type is given by one or more "characteristics".
Definition EventType.h:92