ATLAS Offline Software
Loading...
Searching...
No Matches
Muon::CscRdoContByteStreamTool Class Reference

#include <CscRdoContByteStreamTool.h>

Inheritance diagram for Muon::CscRdoContByteStreamTool:
Collaboration diagram for Muon::CscRdoContByteStreamTool:

Public Member Functions

 CscRdoContByteStreamTool (const std::string &type, const std::string &name, const IInterface *parent)
 constructor
virtual ~CscRdoContByteStreamTool ()=default
virtual StatusCode initialize () override
virtual bool isCosmic () const override
 to read the cosmic data
virtual bool isOldCosmic () const override
 for the old cosmic data before the ROB id=ROD id fix
virtual StatusCode convert (const CscRawDataContainer *cont, MsgStream &log) const override

Private Attributes

CSC_Hid2RESrcID m_hid2re
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
ServiceHandle< IByteStreamCnvSvcm_byteStreamCnvSvc {this, "ByteStreamCnvSvc", "ByteStreamCnvSvc"}
ServiceHandle< CSCcablingSvcm_cabling {this, "CablingSvc", "CSCcablingSvc"}
uint16_t m_rodVersion {}
bool m_isCosmic {}
bool m_isOldCosmic {}

Detailed Description

Definition at line 29 of file CscRdoContByteStreamTool.h.

Constructor & Destructor Documentation

◆ CscRdoContByteStreamTool()

Muon::CscRdoContByteStreamTool::CscRdoContByteStreamTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

constructor

Definition at line 14 of file CscRdoContByteStreamTool.cxx.

14 :
15 base_class(type, name, parent) {
16 declareProperty("RODVersion", m_rodVersion = 0x0200);
17 declareProperty("IsCosmicData", m_isCosmic = false);
18 declareProperty("IsOldCosmicData", m_isOldCosmic = false);
19}

◆ ~CscRdoContByteStreamTool()

virtual Muon::CscRdoContByteStreamTool::~CscRdoContByteStreamTool ( )
virtualdefault

Member Function Documentation

◆ convert()

StatusCode Muon::CscRdoContByteStreamTool::convert ( const CscRawDataContainer * cont,
MsgStream & log ) const
overridevirtual

set the iterator over the RDO

set the detector event type word

Definition at line 42 of file CscRdoContByteStreamTool.cxx.

42 {
43 // Get the event assembler
44 FullEventAssembler<CSC_Hid2RESrcID>* fea = nullptr;
45 ATH_CHECK(m_byteStreamCnvSvc->getFullEventAssembler(fea, "CscRdoContByteStream"));
46
47 fea->idMap().set(m_cabling.get(), &m_idHelperSvc->cscIdHelper());
48 if (m_cabling->nROD() == 16)
49 fea->setRodMinorVersion(0x400);
50 else
52
53 StatusCode sc = StatusCode::SUCCESS;
54
56
57 // a map for ROD ID onto Encoder
58 std::map<uint32_t, CscROD_Encoder> mapEncoder;
59
61 CscRawDataContainer::const_iterator it_col = cont->begin();
62 CscRawDataContainer::const_iterator it_col_end = cont->end();
63
64 bool first = true;
65 for (; it_col != it_col_end; ++it_col) {
67 if (first && !(*it_col)->empty()) {
68 first = false;
69 uint32_t eventType = (*it_col)->eventType();
70 fea->setDetEvtType(eventType);
71 }
72
73 // get ROD ID
74 const uint32_t rodId = m_hid2re.getRodID(*it_col);
75
76 // map the RDO onto Encoder
77 mapEncoder[rodId].setRdo(*it_col);
78 mapEncoder[rodId].setIdHelper(&m_idHelperSvc->cscIdHelper());
79 }
80
81 // loop over map and fill all ROD Data Blocks
82 std::map<uint32_t, CscROD_Encoder>::iterator it_map = mapEncoder.begin();
83 std::map<uint32_t, CscROD_Encoder>::iterator it_map_end = mapEncoder.end();
84 for (; it_map != it_map_end; ++it_map) {
85 // get ROD data address
86 theROD = fea->getRodData((*it_map).first);
87
88 // fill ROD data
89 sc = ((*it_map).second).fillROD(*theROD, log);
90 if (sc.isFailure()) return StatusCode::RECOVERABLE;
91 }
92
93 return sc;
94}
#define ATH_CHECK
Evaluate an expression and check for errors.
static Double_t sc
void setRodMinorVersion(uint16_t m)
change the ROD minor version
void setDetEvtType(uint32_t m)
change Detector Event Type
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
RODDATA * getRodData(uint32_t id)
get a block of ROD data
IDMAP_t & idMap()
Return reference to IDMAP.
const_iterator end() const
return const_iterator for end of container
const_iterator begin() const
return const_iterator for first entry
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
ServiceHandle< CSCcablingSvc > m_cabling
bool first
Definition DeMoScan.py:534
::StatusCode StatusCode
StatusCode definition for legacy code.
setEventNumber uint32_t

◆ initialize()

StatusCode Muon::CscRdoContByteStreamTool::initialize ( )
overridevirtual

Definition at line 22 of file CscRdoContByteStreamTool.cxx.

22 {
23 ATH_CHECK(AthAlgTool::initialize());
24 ATH_MSG_DEBUG("Muon::CscRdoContByteStreamTool::initialize()");
25
26 // get the cabling service
27 ATH_CHECK(m_cabling.retrieve());
28 ATH_CHECK(m_idHelperSvc.retrieve());
29
30 ATH_CHECK(m_byteStreamCnvSvc.retrieve());
31
32 // create CSC RDO ID to source ID mapper
33 m_hid2re.set(m_cabling.get(), &m_idHelperSvc->cscIdHelper());
34 if (m_isCosmic) {
35 m_hid2re.set_isCosmic();
36 if (m_isOldCosmic) m_hid2re.set_isOldCosmic();
37 }
38 return StatusCode::SUCCESS;
39}
#define ATH_MSG_DEBUG(x)

◆ isCosmic()

virtual bool Muon::CscRdoContByteStreamTool::isCosmic ( ) const
inlineoverridevirtual

to read the cosmic data

Definition at line 40 of file CscRdoContByteStreamTool.h.

40{ return m_isCosmic; }

◆ isOldCosmic()

virtual bool Muon::CscRdoContByteStreamTool::isOldCosmic ( ) const
inlineoverridevirtual

for the old cosmic data before the ROB id=ROD id fix

Definition at line 43 of file CscRdoContByteStreamTool.h.

43{ return m_isOldCosmic; }

Member Data Documentation

◆ m_byteStreamCnvSvc

ServiceHandle<IByteStreamCnvSvc> Muon::CscRdoContByteStreamTool::m_byteStreamCnvSvc {this, "ByteStreamCnvSvc", "ByteStreamCnvSvc"}
private

Definition at line 51 of file CscRdoContByteStreamTool.h.

51{this, "ByteStreamCnvSvc", "ByteStreamCnvSvc"};

◆ m_cabling

ServiceHandle<CSCcablingSvc> Muon::CscRdoContByteStreamTool::m_cabling {this, "CablingSvc", "CSCcablingSvc"}
private

Definition at line 53 of file CscRdoContByteStreamTool.h.

53{this, "CablingSvc", "CSCcablingSvc"};

◆ m_hid2re

CSC_Hid2RESrcID Muon::CscRdoContByteStreamTool::m_hid2re
private

Definition at line 48 of file CscRdoContByteStreamTool.h.

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> Muon::CscRdoContByteStreamTool::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Definition at line 49 of file CscRdoContByteStreamTool.h.

49{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};

◆ m_isCosmic

bool Muon::CscRdoContByteStreamTool::m_isCosmic {}
private

Definition at line 56 of file CscRdoContByteStreamTool.h.

56{};

◆ m_isOldCosmic

bool Muon::CscRdoContByteStreamTool::m_isOldCosmic {}
private

Definition at line 57 of file CscRdoContByteStreamTool.h.

57{};

◆ m_rodVersion

uint16_t Muon::CscRdoContByteStreamTool::m_rodVersion {}
private

Definition at line 55 of file CscRdoContByteStreamTool.h.

55{};

The documentation for this class was generated from the following files: