ATLAS Offline Software
Loading...
Searching...
No Matches
FullEventAssembler.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef BYTESTREAMCNVSVC_FULLEVENTASSEMBLER_H
6#define BYTESTREAMCNVSVC_FULLEVENTASSEMBLER_H
7
8#include <cstdint>
9#include <map>
10
13
14class MsgStream;
15
20
22
23 public:
25 virtual ~FullEventAssemblerBase( ) { } ;
26
27 virtual void fill(RawEventWrite* re, MsgStream& log) = 0 ;
28 virtual void clear() = 0 ;
29};
30
35
36
37template <class IDMAP=SrcIdMap>
39
40
41 public:
44 // type aliases for ROD data, and maps
45
48 using IDMAP_t = IDMAP;
49
52 using RODDATA = std::vector<uint32_t>;
53
56 using RODMAP = std::map< uint32_t, RODDATA* >;
57
60 using ROBMAP = std::map< uint32_t, OFFLINE_FRAGMENTS_NAMESPACE_WRITE::ROBFragment* >;
61
67 RODDATA* getRodData(uint32_t id );
68
71 void fill(RawEventWrite* re, MsgStream& log);
72
75 RODMAP::const_iterator begin() const;
76
79 RODMAP::const_iterator end() const;
80
83 void setRodMinorVersion(uint16_t m );
84
87 void setRobMinorVersion(uint16_t m );
88
91 void setDetEvtType(uint32_t m );
92
95 void setLvl1TriggerType(uint8_t m );
96
100
103 void clear();
104
105private:
106
109 void RodToRob(RODMAP& rodMap, ROBMAP& robMap, MsgStream& log ) const;
110
113 void RobToEvt(ROBMAP& robMap, RawEventWrite* re, MsgStream& log ) const;
114
115private:
117
120
121 uint32_t m_runnum ;
122 uint32_t m_lvl1_id ;
123
124 // minor version
125 uint16_t m_rod_version;
126 uint16_t m_rob_version;
127
128 uint32_t m_detEvtType ;
129 // level 1 trigger type
131 uint16_t m_bcid ;
132};
133
135
136#endif
137
138
139
const boost::regex re(r_e)
OFFLINE_FRAGMENTS_NAMESPACE_WRITE::FullEventFragment RawEventWrite
data type for writing raw event
Definition RawEvent.h:39
virtual void fill(RawEventWrite *re, MsgStream &log)=0
virtual void clear()=0
void setRobMinorVersion(uint16_t m)
change the ROB minor version
void setRodMinorVersion(uint16_t m)
change the ROD minor version
void RobToEvt(ROBMAP &robMap, RawEventWrite *re, MsgStream &log) const
converting from SubDetector to FullEvent
std::map< uint32_t, RODDATA * > RODMAP
map of ROD data, indexed by ROD ids
void RodToRob(RODMAP &rodMap, ROBMAP &robMap, MsgStream &log) const
converting from ROD to ROB
void setLvl1TriggerType(uint8_t m)
change LVL1 Trigger Type
void clear()
Clear internal stack.
RODMAP::const_iterator begin() const
begin iterator for all existing ROD
void fill(RawEventWrite *re, MsgStream &log)
Fill the FullEventFragment with all the ROD data stored in this.
IDMAP IDMAP_t
type for Identifier mapping
void setDetEvtType(uint32_t m)
change Detector Event Type
std::map< uint32_t, OFFLINE_FRAGMENTS_NAMESPACE_WRITE::ROBFragment * > ROBMAP
map of ROB data, indexed by ROB ids
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
RODMAP::const_iterator end() const
end iterator for all existing ROD
RODDATA * getRodData(uint32_t id)
get a block of ROD data
IDMAP_t & idMap()
Return reference to IDMAP.